Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
wPAW
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-29 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { 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) { if (b == 0) return (false, 0); return (true, a / b); } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } 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) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } 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) { require(b > 0, "SafeMath: division by zero"); return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is Context, IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _decimals = 18; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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 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 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 _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _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"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } 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 _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } contract Ownable { address public _owner; event onOwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _owner = msg.sender; } modifier onlyOwner() { require(msg.sender == _owner); _; } function owner() public view virtual returns (address) { return _owner; } function transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit onOwnershipTransferred(_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 wPAW is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; uint256 public buyingTax = 10; // 1% uint256 public sellingTax = 10; // 1% address public TreasuryWallet; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) lpPairs; uint256 private _totalSupply = 1000000000000000 * (10**18); string private _name = "Wrapped PAW"; string private _symbol = "wPAW"; uint256 public thresholdAmountToSendTax = _totalSupply / 10000; constructor () ERC20(_name, _symbol) { address _routerAddress; if (block.chainid == 56) { //BNB Mainnet - Pancakeswap _routerAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E; } else if (block.chainid == 97) { //BNB Testnet _routerAddress = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; } else if (block.chainid == 1 || block.chainid == 5) { // ETH & ETH Goerli Testnet - UniswapV2 _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; } else if (block.chainid == 42161) { // Arbitrum One - UniswapV2 _routerAddress = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24; } else if (block.chainid == 8453) { // Base mainnet - UniswapV2 _routerAddress = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24; } else if (block.chainid == 137) { // POLYGON - QuickSwap _routerAddress = 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff; } else if (block.chainid == 11155111) { // ETH Sepolia testnet _routerAddress = 0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008; } else if (block.chainid == 81457) { // Blast main net - UniSwapV2 _routerAddress = 0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035; } else { revert(); } IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_routerAddress); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; lpPairs[uniswapV2Pair] = true; // exclude from paying fees excludeFromFee(owner()); excludeFromFee(address(this)); TreasuryWallet = owner(); _mint(owner(), _totalSupply); } receive() external payable {} // This allows for removal of ownership privelages from the owner once renounced or transferred. function transferOwner(address newOwner) external onlyOwner() { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); _isExcludedFromFees[_owner] = false; _isExcludedFromFees[newOwner] = true; _owner = newOwner; emit onOwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner() { _isExcludedFromFees[_owner] = false; _owner = address(0); emit onOwnershipTransferred(_owner, address(0)); } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPairs[pair] = false; } else { lpPairs[pair] = true; } } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFees[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFees[account] = false; } function setTaxes(uint256 _buyTax, uint256 _sellTax) public onlyOwner { require(_buyTax <= 10, "Buy fee shouldn't be higher than 10 (1%)"); require(_sellTax <= 10, "Sell fee shouldn't be higher than 10 (1%)"); buyingTax = _buyTax; sellingTax = _sellTax; } function setThresholdToSendTax(uint256 _newThresholdToSend) public onlyOwner { thresholdAmountToSendTax = _newThresholdToSend; } function setTreasuryWallet(address _newTreasuryWallet) public onlyOwner { require(_newTreasuryWallet != address(0), "Treasury wallet can't be zero"); TreasuryWallet = _newTreasuryWallet; } function _transfer( address from, address to, uint256 amount ) internal override { 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"); uint256 contractTokenBalance = balanceOf(address(this)); if ( contractTokenBalance >= thresholdAmountToSendTax ) { super._transfer(address(this), TreasuryWallet, contractTokenBalance); } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } if(takeFee) { uint256 fees = 0; if(lpPairs[from]){ // Buy Token fees = amount.mul(buyingTax).div(1000); }else if(lpPairs[to]){ fees = amount.mul(sellingTax).div(1000); } amount = amount.sub(fees); if(fees > 0) super._transfer(from, address(this), fees); } super._transfer(from, to, amount); } }
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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"onOwnershipTransferred","type":"event"},{"inputs":[],"name":"TreasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"buyingTax","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":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newThresholdToSend","type":"uint256"}],"name":"setThresholdToSendTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTreasuryWallet","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdAmountToSendTax","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":"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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a600855600a6009556d314dc6448d9338c15b0a00000000600d556040518060400160405280600b81526020017f5772617070656420504157000000000000000000000000000000000000000000815250600e908162000066919062000c0d565b506040518060400160405280600481526020017f7750415700000000000000000000000000000000000000000000000000000000815250600f9081620000ad919062000c0d565b50612710600d54620000c0919062000d4b565b601055348015620000cf575f80fd5b50600e8054620000df9062000a0d565b80601f01602080910402602001604051908101604052809291908181526020018280546200010d9062000a0d565b80156200015c5780601f1062000132576101008083540402835291602001916200015c565b820191905f5260205f20905b8154815290600101906020018083116200013e57829003601f168201915b5050505050600f8054620001709062000a0d565b80601f01602080910402602001604051908101604052809291908181526020018280546200019e9062000a0d565b8015620001ed5780601f10620001c357610100808354040283529160200191620001ed565b820191905f5260205f20905b815481529060010190602001808311620001cf57829003601f168201915b5050505050816003908162000203919062000c0d565b50806004908162000215919062000c0d565b50601260055f6101000a81548160ff021916908360ff160217905550505033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f603846036200029b577310ed43c718714eb63d5aa57b78b54704e256024e9050620003c3565b60614603620002c157739ac64cc6e4415144c455bd8e4837fea55603e5c39050620003c2565b6001461480620002d15750600546145b15620002f457737a250d5630b4cf539739df2c5dacb4c659f2488d9050620003c1565b61a4b146036200031b57734752ba5dbc23f44d87826276bf6fd6b1c372ad249050620003c0565b61210546036200034257734752ba5dbc23f44d87826276bf6fd6b1c372ad249050620003bf565b60894603620003685773a5e0829caced8ffdd4de3c43696c57f7d7a678ff9050620003be565b62aa36a74603620003905773c532a74256d3db42d0bf7a0400fefdbad76940089050620003bd565b62013e314603620003b85773bb66eb1c5e875933d44dae661dbd80e5d9b030359050620003bc565b5f80fd5b5b5b5b5b5b5b5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000412573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000438919062000de7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004c4919062000de7565b6040518363ffffffff1660e01b8152600401620004e392919062000e28565b6020604051808303815f875af115801562000500573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000526919062000de7565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200063e62000632620006ca60201b60201c565b620006f360201b60201c565b6200064f30620006f360201b60201c565b6200065f620006ca60201b60201c565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006c1620006b2620006ca60201b60201c565b600d54620007a560201b60201c565b50505062000fa5565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146200074d575f80fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000816576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200080d9062000eb1565b60405180910390fd5b620008295f83836200094260201b60201c565b62000840816002546200094760201b90919060201c565b60028190555062000897815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200094760201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000936919062000ee2565b60405180910390a35050565b505050565b5f80828462000957919062000efd565b9050838110156200099f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009969062000f85565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a2557607f821691505b60208210810362000a3b5762000a3a620009e0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a62565b62000aab868362000a62565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000af562000aef62000ae98462000ac3565b62000acc565b62000ac3565b9050919050565b5f819050919050565b62000b108362000ad5565b62000b2862000b1f8262000afc565b84845462000a6e565b825550505050565b5f90565b62000b3e62000b30565b62000b4b81848462000b05565b505050565b5b8181101562000b725762000b665f8262000b34565b60018101905062000b51565b5050565b601f82111562000bc15762000b8b8162000a41565b62000b968462000a53565b8101602085101562000ba6578190505b62000bbe62000bb58562000a53565b83018262000b50565b50505b505050565b5f82821c905092915050565b5f62000be35f198460080262000bc6565b1980831691505092915050565b5f62000bfd838362000bd2565b9150826002028217905092915050565b62000c1882620009a9565b67ffffffffffffffff81111562000c345762000c33620009b3565b5b62000c40825462000a0d565b62000c4d82828562000b76565b5f60209050601f83116001811462000c83575f841562000c6e578287015190505b62000c7a858262000bf0565b86555062000ce9565b601f19841662000c938662000a41565b5f5b8281101562000cbc5784890151825560018201915060208501945060208101905062000c95565b8683101562000cdc578489015162000cd8601f89168262000bd2565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000d578262000ac3565b915062000d648362000ac3565b92508262000d775762000d7662000cf1565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000db18262000d86565b9050919050565b62000dc38162000da5565b811462000dce575f80fd5b50565b5f8151905062000de18162000db8565b92915050565b5f6020828403121562000dff5762000dfe62000d82565b5b5f62000e0e8482850162000dd1565b91505092915050565b62000e228162000da5565b82525050565b5f60408201905062000e3d5f83018562000e17565b62000e4c602083018462000e17565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e99601f8362000e53565b915062000ea68262000e63565b602082019050919050565b5f6020820190508181035f83015262000eca8162000e8b565b9050919050565b62000edc8162000ac3565b82525050565b5f60208201905062000ef75f83018462000ed1565b92915050565b5f62000f098262000ac3565b915062000f168362000ac3565b925082820190508082111562000f315762000f3062000d1e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62000f6d601b8362000e53565b915062000f7a8262000f37565b602082019050919050565b5f6020820190508181035f83015262000f9e8162000f5f565b9050919050565b612bb18062000fb35f395ff3fe6080604052600436106101ba575f3560e01c806370a08231116100eb578063a9059cbb11610089578063c647b20e11610063578063c647b20e14610615578063dd62ed3e1461063d578063e9b8e23c14610679578063ea2f0b37146106a3576101c1565b8063a9059cbb14610585578063b2bdfa7b146105c1578063c335b287146105eb576101c1565b80638da5cb5b116100c55780638da5cb5b146104cd57806395d89b41146104f7578063a457c2d714610521578063a8602fea1461055d576101c1565b806370a0823114610453578063715018a61461048f57806380c581d1146104a5576101c1565b8063313ce56711610158578063478b7f5311610132578063478b7f531461039b57806349bd5a5e146103c55780634fb2e45d146103ef5780635342acb414610417576101c1565b8063313ce5671461030d5780633950935114610337578063437823ec14610373576101c1565b80631694505e116101945780631694505e1461025557806318160ddd1461027f57806323141e9e146102a957806323b872dd146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806311ffeaf21461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d96106cb565b6040516101e69190611f38565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190611fe9565b61075b565b6040516102229190612041565b60405180910390f35b348015610236575f80fd5b5061023f610778565b60405161024c9190612069565b60405180910390f35b348015610260575f80fd5b5061026961079d565b60405161027691906120dd565b60405180910390f35b34801561028a575f80fd5b506102936107c2565b6040516102a09190612105565b60405180910390f35b3480156102b4575f80fd5b506102cf60048036038101906102ca919061211e565b6107cb565b005b3480156102dc575f80fd5b506102f760048036038101906102f29190612149565b61082e565b6040516103049190612041565b60405180910390f35b348015610318575f80fd5b50610321610902565b60405161032e91906121b4565b60405180910390f35b348015610342575f80fd5b5061035d60048036038101906103589190611fe9565b610917565b60405161036a9190612041565b60405180910390f35b34801561037e575f80fd5b50610399600480360381019061039491906121cd565b6109c5565b005b3480156103a6575f80fd5b506103af610a76565b6040516103bc9190612105565b60405180910390f35b3480156103d0575f80fd5b506103d9610a7c565b6040516103e69190612069565b60405180910390f35b3480156103fa575f80fd5b50610415600480360381019061041091906121cd565b610aa1565b005b348015610422575f80fd5b5061043d600480360381019061043891906121cd565b610cf3565b60405161044a9190612041565b60405180910390f35b34801561045e575f80fd5b50610479600480360381019061047491906121cd565b610d45565b6040516104869190612105565b60405180910390f35b34801561049a575f80fd5b506104a3610d8a565b005b3480156104b0575f80fd5b506104cb60048036038101906104c69190612222565b610f18565b005b3480156104d8575f80fd5b506104e161102f565b6040516104ee9190612069565b60405180910390f35b348015610502575f80fd5b5061050b611058565b6040516105189190611f38565b60405180910390f35b34801561052c575f80fd5b5061054760048036038101906105429190611fe9565b6110e8565b6040516105549190612041565b60405180910390f35b348015610568575f80fd5b50610583600480360381019061057e91906121cd565b6111b0565b005b348015610590575f80fd5b506105ab60048036038101906105a69190611fe9565b6112ba565b6040516105b89190612041565b60405180910390f35b3480156105cc575f80fd5b506105d56112d7565b6040516105e29190612069565b60405180910390f35b3480156105f6575f80fd5b506105ff6112fd565b60405161060c9190612105565b60405180910390f35b348015610620575f80fd5b5061063b60048036038101906106369190612260565b611303565b005b348015610648575f80fd5b50610663600480360381019061065e919061229e565b6113f6565b6040516106709190612105565b60405180910390f35b348015610684575f80fd5b5061068d611478565b60405161069a9190612105565b60405180910390f35b3480156106ae575f80fd5b506106c960048036038101906106c491906121cd565b61147e565b005b6060600380546106da90612309565b80601f016020809104026020016040519081016040528092919081815260200182805461070690612309565b80156107515780601f1061072857610100808354040283529160200191610751565b820191905f5260205f20905b81548152906001019060200180831161073457829003601f168201915b5050505050905090565b5f61076e61076761152e565b8484611535565b6001905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610824575f80fd5b8060108190555050565b5f61083a8484846116f8565b6108f78461084661152e565b6108f285604051806060016040528060288152602001612b2f6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108a961152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b611535565b600190509392505050565b5f60055f9054906101000a900460ff16905090565b5f6109bb61092361152e565b846109b68560015f61093361152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9d90919063ffffffff16565b611535565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a1e575f80fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60105481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afa575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f906123a9565b60405180910390fd5b5f600b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a350565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de3575f80fd5b5f600b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a3565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f71575f80fd5b5f151581151503610fd5575f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061102b565b6001600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461106790612309565b80601f016020809104026020016040519081016040528092919081815260200182805461109390612309565b80156110de5780601f106110b5576101008083540402835291602001916110de565b820191905f5260205f20905b8154815290600101906020018083116110c157829003601f168201915b5050505050905090565b5f6111a66110f461152e565b846111a185604051806060016040528060258152602001612b576025913960015f61111d61152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b611535565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611209575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90612411565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6112cd6112c661152e565b84846116f8565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461135c575f80fd5b600a8211156113a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113979061249f565b60405180910390fd5b600a8111156113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db9061252d565b60405180910390fd5b81600881905550806009819055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114d7575f80fd5b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a906125bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160890612649565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116eb9190612105565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906126d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90612765565b60405180910390fd5b5f8111611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d906127f3565b60405180910390fd5b5f61182030610d45565b905060105481106118585761185730600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611afa565b5b5f60019050600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118f85750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611901575f90505b8015611a2e575f600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611987576119806103e861197260085487611d8390919063ffffffff16565b611dfa90919063ffffffff16565b9050611a03565b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611a02576119ff6103e86119f160095487611d8390919063ffffffff16565b611dfa90919063ffffffff16565b90505b5b611a168185611e5190919063ffffffff16565b93505f811115611a2c57611a2b863083611afa565b5b505b611a39858585611afa565b5050505050565b5f838311158290611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e9190611f38565b60405180910390fd5b508284611a94919061283e565b90509392505050565b5f808284611aab9190612871565b905083811015611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae7906128ee565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f906126d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90612765565b60405180910390fd5b611be1838383611ea9565b611c4a81604051806060016040528060268152602001612b09602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cd9815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9d90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d769190612105565b60405180910390a3505050565b5f808303611d93575f9050611df4565b5f8284611da0919061290c565b9050828482611daf919061297a565b14611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de690612a1a565b60405180910390fd5b809150505b92915050565b5f808211611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3490612a82565b60405180910390fd5b8183611e49919061297a565b905092915050565b5f82821115611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c90612aea565b60405180910390fd5b8183611ea1919061283e565b905092915050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ee5578082015181840152602081019050611eca565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f0a82611eae565b611f148185611eb8565b9350611f24818560208601611ec8565b611f2d81611ef0565b840191505092915050565b5f6020820190508181035f830152611f508184611f00565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f8582611f5c565b9050919050565b611f9581611f7b565b8114611f9f575f80fd5b50565b5f81359050611fb081611f8c565b92915050565b5f819050919050565b611fc881611fb6565b8114611fd2575f80fd5b50565b5f81359050611fe381611fbf565b92915050565b5f8060408385031215611fff57611ffe611f58565b5b5f61200c85828601611fa2565b925050602061201d85828601611fd5565b9150509250929050565b5f8115159050919050565b61203b81612027565b82525050565b5f6020820190506120545f830184612032565b92915050565b61206381611f7b565b82525050565b5f60208201905061207c5f83018461205a565b92915050565b5f819050919050565b5f6120a56120a061209b84611f5c565b612082565b611f5c565b9050919050565b5f6120b68261208b565b9050919050565b5f6120c7826120ac565b9050919050565b6120d7816120bd565b82525050565b5f6020820190506120f05f8301846120ce565b92915050565b6120ff81611fb6565b82525050565b5f6020820190506121185f8301846120f6565b92915050565b5f6020828403121561213357612132611f58565b5b5f61214084828501611fd5565b91505092915050565b5f805f606084860312156121605761215f611f58565b5b5f61216d86828701611fa2565b935050602061217e86828701611fa2565b925050604061218f86828701611fd5565b9150509250925092565b5f60ff82169050919050565b6121ae81612199565b82525050565b5f6020820190506121c75f8301846121a5565b92915050565b5f602082840312156121e2576121e1611f58565b5b5f6121ef84828501611fa2565b91505092915050565b61220181612027565b811461220b575f80fd5b50565b5f8135905061221c816121f8565b92915050565b5f806040838503121561223857612237611f58565b5b5f61224585828601611fa2565b92505060206122568582860161220e565b9150509250929050565b5f806040838503121561227657612275611f58565b5b5f61228385828601611fd5565b925050602061229485828601611fd5565b9150509250929050565b5f80604083850312156122b4576122b3611f58565b5b5f6122c185828601611fa2565b92505060206122d285828601611fa2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061232057607f821691505b602082108103612333576123326122dc565b5b50919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e73665f8201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b5f612393603d83611eb8565b915061239e82612339565b604082019050919050565b5f6020820190508181035f8301526123c081612387565b9050919050565b7f54726561737572792077616c6c65742063616e2774206265207a65726f0000005f82015250565b5f6123fb601d83611eb8565b9150612406826123c7565b602082019050919050565b5f6020820190508181035f830152612428816123ef565b9050919050565b7f427579206665652073686f756c646e277420626520686967686572207468616e5f8201527f2031302028312529000000000000000000000000000000000000000000000000602082015250565b5f612489602883611eb8565b91506124948261242f565b604082019050919050565b5f6020820190508181035f8301526124b68161247d565b9050919050565b7f53656c6c206665652073686f756c646e277420626520686967686572207468615f8201527f6e20313020283125290000000000000000000000000000000000000000000000602082015250565b5f612517602983611eb8565b9150612522826124bd565b604082019050919050565b5f6020820190508181035f8301526125448161250b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125a5602483611eb8565b91506125b08261254b565b604082019050919050565b5f6020820190508181035f8301526125d281612599565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612633602283611eb8565b915061263e826125d9565b604082019050919050565b5f6020820190508181035f83015261266081612627565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126c1602583611eb8565b91506126cc82612667565b604082019050919050565b5f6020820190508181035f8301526126ee816126b5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61274f602383611eb8565b915061275a826126f5565b604082019050919050565b5f6020820190508181035f83015261277c81612743565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127dd602983611eb8565b91506127e882612783565b604082019050919050565b5f6020820190508181035f83015261280a816127d1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61284882611fb6565b915061285383611fb6565b925082820390508181111561286b5761286a612811565b5b92915050565b5f61287b82611fb6565b915061288683611fb6565b925082820190508082111561289e5761289d612811565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6128d8601b83611eb8565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f61291682611fb6565b915061292183611fb6565b925082820261292f81611fb6565b9150828204841483151761294657612945612811565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61298482611fb6565b915061298f83611fb6565b92508261299f5761299e61294d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a04602183611eb8565b9150612a0f826129aa565b604082019050919050565b5f6020820190508181035f830152612a31816129f8565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f612a6c601a83611eb8565b9150612a7782612a38565b602082019050919050565b5f6020820190508181035f830152612a9981612a60565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612ad4601e83611eb8565b9150612adf82612aa0565b602082019050919050565b5f6020820190508181035f830152612b0181612ac8565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d4fc07722dec2f5d06d7650f58e511c5a357e1bc4b88860cfb2585db7fd2bc6c64736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101ba575f3560e01c806370a08231116100eb578063a9059cbb11610089578063c647b20e11610063578063c647b20e14610615578063dd62ed3e1461063d578063e9b8e23c14610679578063ea2f0b37146106a3576101c1565b8063a9059cbb14610585578063b2bdfa7b146105c1578063c335b287146105eb576101c1565b80638da5cb5b116100c55780638da5cb5b146104cd57806395d89b41146104f7578063a457c2d714610521578063a8602fea1461055d576101c1565b806370a0823114610453578063715018a61461048f57806380c581d1146104a5576101c1565b8063313ce56711610158578063478b7f5311610132578063478b7f531461039b57806349bd5a5e146103c55780634fb2e45d146103ef5780635342acb414610417576101c1565b8063313ce5671461030d5780633950935114610337578063437823ec14610373576101c1565b80631694505e116101945780631694505e1461025557806318160ddd1461027f57806323141e9e146102a957806323b872dd146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806311ffeaf21461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d96106cb565b6040516101e69190611f38565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190611fe9565b61075b565b6040516102229190612041565b60405180910390f35b348015610236575f80fd5b5061023f610778565b60405161024c9190612069565b60405180910390f35b348015610260575f80fd5b5061026961079d565b60405161027691906120dd565b60405180910390f35b34801561028a575f80fd5b506102936107c2565b6040516102a09190612105565b60405180910390f35b3480156102b4575f80fd5b506102cf60048036038101906102ca919061211e565b6107cb565b005b3480156102dc575f80fd5b506102f760048036038101906102f29190612149565b61082e565b6040516103049190612041565b60405180910390f35b348015610318575f80fd5b50610321610902565b60405161032e91906121b4565b60405180910390f35b348015610342575f80fd5b5061035d60048036038101906103589190611fe9565b610917565b60405161036a9190612041565b60405180910390f35b34801561037e575f80fd5b50610399600480360381019061039491906121cd565b6109c5565b005b3480156103a6575f80fd5b506103af610a76565b6040516103bc9190612105565b60405180910390f35b3480156103d0575f80fd5b506103d9610a7c565b6040516103e69190612069565b60405180910390f35b3480156103fa575f80fd5b50610415600480360381019061041091906121cd565b610aa1565b005b348015610422575f80fd5b5061043d600480360381019061043891906121cd565b610cf3565b60405161044a9190612041565b60405180910390f35b34801561045e575f80fd5b50610479600480360381019061047491906121cd565b610d45565b6040516104869190612105565b60405180910390f35b34801561049a575f80fd5b506104a3610d8a565b005b3480156104b0575f80fd5b506104cb60048036038101906104c69190612222565b610f18565b005b3480156104d8575f80fd5b506104e161102f565b6040516104ee9190612069565b60405180910390f35b348015610502575f80fd5b5061050b611058565b6040516105189190611f38565b60405180910390f35b34801561052c575f80fd5b5061054760048036038101906105429190611fe9565b6110e8565b6040516105549190612041565b60405180910390f35b348015610568575f80fd5b50610583600480360381019061057e91906121cd565b6111b0565b005b348015610590575f80fd5b506105ab60048036038101906105a69190611fe9565b6112ba565b6040516105b89190612041565b60405180910390f35b3480156105cc575f80fd5b506105d56112d7565b6040516105e29190612069565b60405180910390f35b3480156105f6575f80fd5b506105ff6112fd565b60405161060c9190612105565b60405180910390f35b348015610620575f80fd5b5061063b60048036038101906106369190612260565b611303565b005b348015610648575f80fd5b50610663600480360381019061065e919061229e565b6113f6565b6040516106709190612105565b60405180910390f35b348015610684575f80fd5b5061068d611478565b60405161069a9190612105565b60405180910390f35b3480156106ae575f80fd5b506106c960048036038101906106c491906121cd565b61147e565b005b6060600380546106da90612309565b80601f016020809104026020016040519081016040528092919081815260200182805461070690612309565b80156107515780601f1061072857610100808354040283529160200191610751565b820191905f5260205f20905b81548152906001019060200180831161073457829003601f168201915b5050505050905090565b5f61076e61076761152e565b8484611535565b6001905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610824575f80fd5b8060108190555050565b5f61083a8484846116f8565b6108f78461084661152e565b6108f285604051806060016040528060288152602001612b2f6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108a961152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b611535565b600190509392505050565b5f60055f9054906101000a900460ff16905090565b5f6109bb61092361152e565b846109b68560015f61093361152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9d90919063ffffffff16565b611535565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a1e575f80fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60105481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afa575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f906123a9565b60405180910390fd5b5f600b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a350565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de3575f80fd5b5f600b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a3565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f71575f80fd5b5f151581151503610fd5575f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061102b565b6001600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461106790612309565b80601f016020809104026020016040519081016040528092919081815260200182805461109390612309565b80156110de5780601f106110b5576101008083540402835291602001916110de565b820191905f5260205f20905b8154815290600101906020018083116110c157829003601f168201915b5050505050905090565b5f6111a66110f461152e565b846111a185604051806060016040528060258152602001612b576025913960015f61111d61152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b611535565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611209575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90612411565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6112cd6112c661152e565b84846116f8565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461135c575f80fd5b600a8211156113a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113979061249f565b60405180910390fd5b600a8111156113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db9061252d565b60405180910390fd5b81600881905550806009819055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114d7575f80fd5b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a906125bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160890612649565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116eb9190612105565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906126d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90612765565b60405180910390fd5b5f8111611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d906127f3565b60405180910390fd5b5f61182030610d45565b905060105481106118585761185730600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611afa565b5b5f60019050600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118f85750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611901575f90505b8015611a2e575f600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611987576119806103e861197260085487611d8390919063ffffffff16565b611dfa90919063ffffffff16565b9050611a03565b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611a02576119ff6103e86119f160095487611d8390919063ffffffff16565b611dfa90919063ffffffff16565b90505b5b611a168185611e5190919063ffffffff16565b93505f811115611a2c57611a2b863083611afa565b5b505b611a39858585611afa565b5050505050565b5f838311158290611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e9190611f38565b60405180910390fd5b508284611a94919061283e565b90509392505050565b5f808284611aab9190612871565b905083811015611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae7906128ee565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f906126d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90612765565b60405180910390fd5b611be1838383611ea9565b611c4a81604051806060016040528060268152602001612b09602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cd9815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9d90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d769190612105565b60405180910390a3505050565b5f808303611d93575f9050611df4565b5f8284611da0919061290c565b9050828482611daf919061297a565b14611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de690612a1a565b60405180910390fd5b809150505b92915050565b5f808211611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3490612a82565b60405180910390fd5b8183611e49919061297a565b905092915050565b5f82821115611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c90612aea565b60405180910390fd5b8183611ea1919061283e565b905092915050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ee5578082015181840152602081019050611eca565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f0a82611eae565b611f148185611eb8565b9350611f24818560208601611ec8565b611f2d81611ef0565b840191505092915050565b5f6020820190508181035f830152611f508184611f00565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f8582611f5c565b9050919050565b611f9581611f7b565b8114611f9f575f80fd5b50565b5f81359050611fb081611f8c565b92915050565b5f819050919050565b611fc881611fb6565b8114611fd2575f80fd5b50565b5f81359050611fe381611fbf565b92915050565b5f8060408385031215611fff57611ffe611f58565b5b5f61200c85828601611fa2565b925050602061201d85828601611fd5565b9150509250929050565b5f8115159050919050565b61203b81612027565b82525050565b5f6020820190506120545f830184612032565b92915050565b61206381611f7b565b82525050565b5f60208201905061207c5f83018461205a565b92915050565b5f819050919050565b5f6120a56120a061209b84611f5c565b612082565b611f5c565b9050919050565b5f6120b68261208b565b9050919050565b5f6120c7826120ac565b9050919050565b6120d7816120bd565b82525050565b5f6020820190506120f05f8301846120ce565b92915050565b6120ff81611fb6565b82525050565b5f6020820190506121185f8301846120f6565b92915050565b5f6020828403121561213357612132611f58565b5b5f61214084828501611fd5565b91505092915050565b5f805f606084860312156121605761215f611f58565b5b5f61216d86828701611fa2565b935050602061217e86828701611fa2565b925050604061218f86828701611fd5565b9150509250925092565b5f60ff82169050919050565b6121ae81612199565b82525050565b5f6020820190506121c75f8301846121a5565b92915050565b5f602082840312156121e2576121e1611f58565b5b5f6121ef84828501611fa2565b91505092915050565b61220181612027565b811461220b575f80fd5b50565b5f8135905061221c816121f8565b92915050565b5f806040838503121561223857612237611f58565b5b5f61224585828601611fa2565b92505060206122568582860161220e565b9150509250929050565b5f806040838503121561227657612275611f58565b5b5f61228385828601611fd5565b925050602061229485828601611fd5565b9150509250929050565b5f80604083850312156122b4576122b3611f58565b5b5f6122c185828601611fa2565b92505060206122d285828601611fa2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061232057607f821691505b602082108103612333576123326122dc565b5b50919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e73665f8201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b5f612393603d83611eb8565b915061239e82612339565b604082019050919050565b5f6020820190508181035f8301526123c081612387565b9050919050565b7f54726561737572792077616c6c65742063616e2774206265207a65726f0000005f82015250565b5f6123fb601d83611eb8565b9150612406826123c7565b602082019050919050565b5f6020820190508181035f830152612428816123ef565b9050919050565b7f427579206665652073686f756c646e277420626520686967686572207468616e5f8201527f2031302028312529000000000000000000000000000000000000000000000000602082015250565b5f612489602883611eb8565b91506124948261242f565b604082019050919050565b5f6020820190508181035f8301526124b68161247d565b9050919050565b7f53656c6c206665652073686f756c646e277420626520686967686572207468615f8201527f6e20313020283125290000000000000000000000000000000000000000000000602082015250565b5f612517602983611eb8565b9150612522826124bd565b604082019050919050565b5f6020820190508181035f8301526125448161250b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125a5602483611eb8565b91506125b08261254b565b604082019050919050565b5f6020820190508181035f8301526125d281612599565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612633602283611eb8565b915061263e826125d9565b604082019050919050565b5f6020820190508181035f83015261266081612627565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126c1602583611eb8565b91506126cc82612667565b604082019050919050565b5f6020820190508181035f8301526126ee816126b5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61274f602383611eb8565b915061275a826126f5565b604082019050919050565b5f6020820190508181035f83015261277c81612743565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127dd602983611eb8565b91506127e882612783565b604082019050919050565b5f6020820190508181035f83015261280a816127d1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61284882611fb6565b915061285383611fb6565b925082820390508181111561286b5761286a612811565b5b92915050565b5f61287b82611fb6565b915061288683611fb6565b925082820190508082111561289e5761289d612811565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6128d8601b83611eb8565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f61291682611fb6565b915061292183611fb6565b925082820261292f81611fb6565b9150828204841483151761294657612945612811565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61298482611fb6565b915061298f83611fb6565b92508261299f5761299e61294d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a04602183611eb8565b9150612a0f826129aa565b604082019050919050565b5f6020820190508181035f830152612a31816129f8565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f612a6c601a83611eb8565b9150612a7782612a38565b602082019050919050565b5f6020820190508181035f830152612a9981612a60565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612ad4601e83611eb8565b9150612adf82612aa0565b602082019050919050565b5f6020820190508181035f830152612b0181612ac8565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d4fc07722dec2f5d06d7650f58e511c5a357e1bc4b88860cfb2585db7fd2bc6c64736f6c63430008180033
Deployed Bytecode Sourcemap
15710:5673:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3967:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4861:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15954:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15784:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4268:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19810:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5038:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19263:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16240:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15832:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18332:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19127:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4384:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18706:198;;;;;;;;;;;;;:::i;:::-;;18912:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8083:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4066:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5593:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19960:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4519:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7812:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15911:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19506:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4702:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15869:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19387:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3967:91;4012:13;4045:5;4038:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3967:91;:::o;4861:169::-;4944:4;4961:39;4970:12;:10;:12::i;:::-;4984:7;4993:6;4961:8;:39::i;:::-;5018:4;5011:11;;4861:169;;;;:::o;15954:29::-;;;;;;;;;;;;;:::o;15784:41::-;;;;;;;;;;;;;:::o;4268:108::-;4329:7;4356:12;;4349:19;;4268:108;:::o;19810:142::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;19925:19:::1;19898:24;:46;;;;19810:142:::0;:::o;5038:321::-;5144:4;5161:36;5171:6;5179:9;5190:6;5161:9;:36::i;:::-;5208:121;5217:6;5225:12;:10;:12::i;:::-;5239:89;5277:6;5239:89;;;;;;;;;;;;;;;;;:11;:19;5251:6;5239:19;;;;;;;;;;;;;;;:33;5259:12;:10;:12::i;:::-;5239:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5208:8;:121::i;:::-;5347:4;5340:11;;5038:321;;;;;:::o;4169:91::-;4218:5;4243:9;;;;;;;;;;;4236:16;;4169:91;:::o;5367:218::-;5455:4;5472:83;5481:12;:10;:12::i;:::-;5495:7;5504:50;5543:10;5504:11;:25;5516:12;:10;:12::i;:::-;5504:25;;;;;;;;;;;;;;;:34;5530:7;5504:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5472:8;:83::i;:::-;5573:4;5566:11;;5367:218;;;;:::o;19263:112::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;19363:4:::1;19332:19;:28;19352:7;19332:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19263:112:::0;:::o;16240:62::-;;;;:::o;15832:28::-;;;;;;;;;;;;;:::o;18332:366::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;18433:1:::1;18413:22;;:8;:22;;::::0;18405:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18542:5;18512:19;:27;18532:6;;;;;;;;;;;18512:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18590:4;18558:19;:29;18578:8;18558:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18616:8;18607:6;;:17;;;;;;;;;;;;;;;;;;18671:8;18640:40;;18663:6;;;;;;;;;;;18640:40;;;;;;;;;;;;18332:366:::0;:::o;19127:124::-;19191:4;19215:19;:28;19235:7;19215:28;;;;;;;;;;;;;;;;;;;;;;;;;19208:35;;19127:124;;;:::o;4384:127::-;4458:7;4485:9;:18;4495:7;4485:18;;;;;;;;;;;;;;;;4478:25;;4384:127;;;:::o;18706:198::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;18803:5:::1;18773:19;:27;18793:6;;;;;;;;;;;18773:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18836:1;18819:6;;:19;;;;;;;;;;;;;;;;;;18893:1;18854:42;;18877:6;;;;;;;;;;;18854:42;;;;;;;;;;;;18706:198::o:0;18912:207::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;19004:5:::1;18993:16;;:7;:16;;::::0;18989:123:::1;;19042:5;19026:7;:13;19034:4;19026:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18989:123;;;19096:4;19080:7;:13;19088:4;19080:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;18989:123;18912:207:::0;;:::o;8083:87::-;8129:7;8156:6;;;;;;;;;;;8149:13;;8083:87;:::o;4066:95::-;4113:13;4146:7;4139:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4066:95;:::o;5593:269::-;5686:4;5703:129;5712:12;:10;:12::i;:::-;5726:7;5735:96;5774:15;5735:96;;;;;;;;;;;;;;;;;:11;:25;5747:12;:10;:12::i;:::-;5735:25;;;;;;;;;;;;;;;:34;5761:7;5735:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;5703:8;:129::i;:::-;5850:4;5843:11;;5593:269;;;;:::o;19960:211::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;20081:1:::1;20051:32;;:18;:32;;::::0;20043:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20145:18;20128:14;;:35;;;;;;;;;;;;;;;;;;19960:211:::0;:::o;4519:175::-;4605:4;4622:42;4632:12;:10;:12::i;:::-;4646:9;4657:6;4622:9;:42::i;:::-;4682:4;4675:11;;4519:175;;;;:::o;7812:21::-;;;;;;;;;;;;;:::o;15911:30::-;;;;:::o;19506:296::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;19606:2:::1;19595:7;:13;;19587:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19684:2;19672:8;:14;;19664:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19755:7;19743:9;:19;;;;19786:8;19773:10;:21;;;;19506:296:::0;;:::o;4702:151::-;4791:7;4818:11;:18;4830:5;4818:18;;;;;;;;;;;;;;;:27;4837:7;4818:27;;;;;;;;;;;;;;;;4811:34;;4702:151;;;;:::o;15869:29::-;;;;:::o;19387:111::-;8048:6;;;;;;;;;;;8034:20;;:10;:20;;;8026:29;;;;;;19485:5:::1;19454:19;:28;19474:7;19454:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19387:111:::0;:::o;93:107::-;146:7;181:10;166:26;;93:107;:::o;7229:346::-;7348:1;7331:19;;:5;:19;;;7323:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7429:1;7410:21;;:7;:21;;;7402:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7513:6;7483:11;:18;7495:5;7483:18;;;;;;;;;;;;;;;:27;7502:7;7483:27;;;;;;;;;;;;;;;:36;;;;7551:7;7535:32;;7544:5;7535:32;;;7560:6;7535:32;;;;;;:::i;:::-;;;;;;;;7229:346;;;:::o;20179:1201::-;20329:1;20313:18;;:4;:18;;;20305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20406:1;20392:16;;:2;:16;;;20384:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20476:1;20467:6;:10;20459:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20536:28;20567:24;20585:4;20567:9;:24::i;:::-;20536:55;;20644:24;;20620:20;:48;20602:173;;20695:68;20719:4;20726:14;;;;;;;;;;;20742:20;20695:15;:68::i;:::-;20602:173;20787:12;20802:4;20787:19;;20820;:25;20840:4;20820:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20849:19;:23;20869:2;20849:23;;;;;;;;;;;;;;;;;;;;;;;;;20820:52;20817:99;;;20899:5;20889:15;;20817:99;20931:7;20928:393;;;20955:12;20989:7;:13;20997:4;20989:13;;;;;;;;;;;;;;;;;;;;;;;;;20986:197;;;21042:31;21068:4;21042:21;21053:9;;21042:6;:10;;:21;;;;:::i;:::-;:25;;:31;;;;:::i;:::-;21035:38;;20986:197;;;21097:7;:11;21105:2;21097:11;;;;;;;;;;;;;;;;;;;;;;;;;21094:89;;;21135:32;21162:4;21135:22;21146:10;;21135:6;:10;;:22;;;;:::i;:::-;:26;;:32;;;;:::i;:::-;21128:39;;21094:89;20986:197;21206:16;21217:4;21206:6;:10;;:16;;;;:::i;:::-;21197:25;;21247:1;21240:4;:8;21237:72;;;21267:42;21283:4;21297;21304;21267:15;:42::i;:::-;21237:72;20940:381;20928:393;21339:33;21355:4;21361:2;21365:6;21339:15;:33::i;:::-;20292:1088;;20179:1201;;;:::o;2278:166::-;2364:7;2397:1;2392;:6;;2400:12;2384:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2435:1;2431;:5;;;;:::i;:::-;2424:12;;2278:166;;;;;:::o;1376:179::-;1434:7;1454:9;1470:1;1466;:5;;;;:::i;:::-;1454:17;;1495:1;1490;:6;;1482:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1546:1;1539:8;;;1376:179;;;;:::o;5870:539::-;5994:1;5976:20;;:6;:20;;;5968:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6078:1;6057:23;;:9;:23;;;6049:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6133:47;6154:6;6162:9;6173:6;6133:20;:47::i;:::-;6213:71;6235:6;6213:71;;;;;;;;;;;;;;;;;:9;:17;6223:6;6213:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;6193:9;:17;6203:6;6193:17;;;;;;;;;;;;;;;:91;;;;6318:32;6343:6;6318:9;:20;6328:9;6318:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6295:9;:20;6305:9;6295:20;;;;;;;;;;;;;;;:55;;;;6383:9;6366:35;;6375:6;6366:35;;;6394:6;6366:35;;;;;;:::i;:::-;;;;;;;;5870:539;;;:::o;1729:220::-;1787:7;1816:1;1811;:6;1807:20;;1826:1;1819:8;;;;1807:20;1838:9;1854:1;1850;:5;;;;:::i;:::-;1838:17;;1883:1;1878;1874;:5;;;;:::i;:::-;:10;1866:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1940:1;1933:8;;;1729:220;;;;;:::o;1957:153::-;2015:7;2047:1;2043;:5;2035:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2101:1;2097;:5;;;;:::i;:::-;2090:12;;1957:153;;;;:::o;1563:158::-;1621:7;1654:1;1649;:6;;1641:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1712:1;1708;:5;;;;:::i;:::-;1701:12;;1563:158;;;;:::o;7689:92::-;;;;:::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;1430:117::-;1539:1;1536;1529: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:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:118::-;4863:24;4881:5;4863:24;:::i;:::-;4858:3;4851:37;4776:118;;:::o;4900:222::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:71;5112:1;5101:9;5097:17;5088:6;5044:71;:::i;:::-;4900:222;;;;:::o;5128:329::-;5187:6;5236:2;5224:9;5215:7;5211:23;5207:32;5204:119;;;5242:79;;:::i;:::-;5204:119;5362:1;5387:53;5432:7;5423:6;5412:9;5408:22;5387:53;:::i;:::-;5377:63;;5333:117;5128:329;;;;:::o;5463:619::-;5540:6;5548;5556;5605:2;5593:9;5584:7;5580:23;5576:32;5573:119;;;5611:79;;:::i;:::-;5573:119;5731:1;5756:53;5801:7;5792:6;5781:9;5777:22;5756:53;:::i;:::-;5746:63;;5702:117;5858:2;5884:53;5929:7;5920:6;5909:9;5905:22;5884:53;:::i;:::-;5874:63;;5829:118;5986:2;6012:53;6057:7;6048:6;6037:9;6033:22;6012:53;:::i;:::-;6002:63;;5957:118;5463:619;;;;;:::o;6088:86::-;6123:7;6163:4;6156:5;6152:16;6141:27;;6088:86;;;:::o;6180:112::-;6263:22;6279:5;6263:22;:::i;:::-;6258:3;6251:35;6180:112;;:::o;6298:214::-;6387:4;6425:2;6414:9;6410:18;6402:26;;6438:67;6502:1;6491:9;6487:17;6478:6;6438:67;:::i;:::-;6298:214;;;;:::o;6518:329::-;6577:6;6626:2;6614:9;6605:7;6601:23;6597:32;6594:119;;;6632:79;;:::i;:::-;6594:119;6752:1;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;:::i;:::-;6767:63;;6723:117;6518:329;;;;:::o;6853:116::-;6923:21;6938:5;6923:21;:::i;:::-;6916:5;6913:32;6903:60;;6959:1;6956;6949:12;6903:60;6853:116;:::o;6975:133::-;7018:5;7056:6;7043:20;7034:29;;7072:30;7096:5;7072:30;:::i;:::-;6975:133;;;;:::o;7114:468::-;7179:6;7187;7236:2;7224:9;7215:7;7211:23;7207:32;7204:119;;;7242:79;;:::i;:::-;7204:119;7362:1;7387:53;7432:7;7423:6;7412:9;7408:22;7387:53;:::i;:::-;7377:63;;7333:117;7489:2;7515:50;7557:7;7548:6;7537:9;7533:22;7515:50;:::i;:::-;7505:60;;7460:115;7114:468;;;;;:::o;7588:474::-;7656:6;7664;7713:2;7701:9;7692:7;7688:23;7684:32;7681:119;;;7719:79;;:::i;:::-;7681:119;7839:1;7864:53;7909:7;7900:6;7889:9;7885:22;7864:53;:::i;:::-;7854:63;;7810:117;7966:2;7992:53;8037:7;8028:6;8017:9;8013:22;7992:53;:::i;:::-;7982:63;;7937:118;7588:474;;;;;:::o;8068:::-;8136:6;8144;8193:2;8181:9;8172:7;8168:23;8164:32;8161:119;;;8199:79;;:::i;:::-;8161:119;8319:1;8344:53;8389:7;8380:6;8369:9;8365:22;8344:53;:::i;:::-;8334:63;;8290:117;8446:2;8472:53;8517:7;8508:6;8497:9;8493:22;8472:53;:::i;:::-;8462:63;;8417:118;8068:474;;;;;:::o;8548:180::-;8596:77;8593:1;8586:88;8693:4;8690:1;8683:15;8717:4;8714:1;8707:15;8734:320;8778:6;8815:1;8809:4;8805:12;8795:22;;8862:1;8856:4;8852:12;8883:18;8873:81;;8939:4;8931:6;8927:17;8917:27;;8873:81;9001:2;8993:6;8990:14;8970:18;8967:38;8964:84;;9020:18;;:::i;:::-;8964:84;8785:269;8734:320;;;:::o;9060:248::-;9200:34;9196:1;9188:6;9184:14;9177:58;9269:31;9264:2;9256:6;9252:15;9245:56;9060:248;:::o;9314:366::-;9456:3;9477:67;9541:2;9536:3;9477:67;:::i;:::-;9470:74;;9553:93;9642:3;9553:93;:::i;:::-;9671:2;9666:3;9662:12;9655:19;;9314:366;;;:::o;9686:419::-;9852:4;9890:2;9879:9;9875:18;9867:26;;9939:9;9933:4;9929:20;9925:1;9914:9;9910:17;9903:47;9967:131;10093:4;9967:131;:::i;:::-;9959:139;;9686:419;;;:::o;10111:179::-;10251:31;10247:1;10239:6;10235:14;10228:55;10111:179;:::o;10296:366::-;10438:3;10459:67;10523:2;10518:3;10459:67;:::i;:::-;10452:74;;10535:93;10624:3;10535:93;:::i;:::-;10653:2;10648:3;10644:12;10637:19;;10296:366;;;:::o;10668:419::-;10834:4;10872:2;10861:9;10857:18;10849:26;;10921:9;10915:4;10911:20;10907:1;10896:9;10892:17;10885:47;10949:131;11075:4;10949:131;:::i;:::-;10941:139;;10668:419;;;:::o;11093:227::-;11233:34;11229:1;11221:6;11217:14;11210:58;11302:10;11297:2;11289:6;11285:15;11278:35;11093:227;:::o;11326:366::-;11468:3;11489:67;11553:2;11548:3;11489:67;:::i;:::-;11482:74;;11565:93;11654:3;11565:93;:::i;:::-;11683:2;11678:3;11674:12;11667:19;;11326:366;;;:::o;11698:419::-;11864:4;11902:2;11891:9;11887:18;11879:26;;11951:9;11945:4;11941:20;11937:1;11926:9;11922:17;11915:47;11979:131;12105:4;11979:131;:::i;:::-;11971:139;;11698:419;;;:::o;12123:228::-;12263:34;12259:1;12251:6;12247:14;12240:58;12332:11;12327:2;12319:6;12315:15;12308:36;12123:228;:::o;12357:366::-;12499:3;12520:67;12584:2;12579:3;12520:67;:::i;:::-;12513:74;;12596:93;12685:3;12596:93;:::i;:::-;12714:2;12709:3;12705:12;12698:19;;12357:366;;;:::o;12729:419::-;12895:4;12933:2;12922:9;12918:18;12910:26;;12982:9;12976:4;12972:20;12968:1;12957:9;12953:17;12946:47;13010:131;13136:4;13010:131;:::i;:::-;13002:139;;12729:419;;;:::o;13154:223::-;13294:34;13290:1;13282:6;13278:14;13271:58;13363:6;13358:2;13350:6;13346:15;13339:31;13154:223;:::o;13383:366::-;13525:3;13546:67;13610:2;13605:3;13546:67;:::i;:::-;13539:74;;13622:93;13711:3;13622:93;:::i;:::-;13740:2;13735:3;13731:12;13724:19;;13383:366;;;:::o;13755:419::-;13921:4;13959:2;13948:9;13944:18;13936:26;;14008:9;14002:4;13998:20;13994:1;13983:9;13979:17;13972:47;14036:131;14162:4;14036:131;:::i;:::-;14028:139;;13755:419;;;:::o;14180:221::-;14320:34;14316:1;14308:6;14304:14;14297:58;14389:4;14384:2;14376:6;14372:15;14365:29;14180:221;:::o;14407:366::-;14549:3;14570:67;14634:2;14629:3;14570:67;:::i;:::-;14563:74;;14646:93;14735:3;14646:93;:::i;:::-;14764:2;14759:3;14755:12;14748:19;;14407:366;;;:::o;14779:419::-;14945:4;14983:2;14972:9;14968:18;14960:26;;15032:9;15026:4;15022:20;15018:1;15007:9;15003:17;14996:47;15060:131;15186:4;15060:131;:::i;:::-;15052:139;;14779:419;;;:::o;15204:224::-;15344:34;15340:1;15332:6;15328:14;15321:58;15413:7;15408:2;15400:6;15396:15;15389:32;15204:224;:::o;15434:366::-;15576:3;15597:67;15661:2;15656:3;15597:67;:::i;:::-;15590:74;;15673:93;15762:3;15673:93;:::i;:::-;15791:2;15786:3;15782:12;15775:19;;15434:366;;;:::o;15806:419::-;15972:4;16010:2;15999:9;15995:18;15987:26;;16059:9;16053:4;16049:20;16045:1;16034:9;16030:17;16023:47;16087:131;16213:4;16087:131;:::i;:::-;16079:139;;15806:419;;;:::o;16231:222::-;16371:34;16367:1;16359:6;16355:14;16348:58;16440:5;16435:2;16427:6;16423:15;16416:30;16231:222;:::o;16459:366::-;16601:3;16622:67;16686:2;16681:3;16622:67;:::i;:::-;16615:74;;16698:93;16787:3;16698:93;:::i;:::-;16816:2;16811:3;16807:12;16800:19;;16459:366;;;:::o;16831:419::-;16997:4;17035:2;17024:9;17020:18;17012:26;;17084:9;17078:4;17074:20;17070:1;17059:9;17055:17;17048:47;17112:131;17238:4;17112:131;:::i;:::-;17104:139;;16831:419;;;:::o;17256:228::-;17396:34;17392:1;17384:6;17380:14;17373:58;17465:11;17460:2;17452:6;17448:15;17441:36;17256:228;:::o;17490:366::-;17632:3;17653:67;17717:2;17712:3;17653:67;:::i;:::-;17646:74;;17729:93;17818:3;17729:93;:::i;:::-;17847:2;17842:3;17838:12;17831:19;;17490:366;;;:::o;17862:419::-;18028:4;18066:2;18055:9;18051:18;18043:26;;18115:9;18109:4;18105:20;18101:1;18090:9;18086:17;18079:47;18143:131;18269:4;18143:131;:::i;:::-;18135:139;;17862:419;;;:::o;18287:180::-;18335:77;18332:1;18325:88;18432:4;18429:1;18422:15;18456:4;18453:1;18446:15;18473:194;18513:4;18533:20;18551:1;18533:20;:::i;:::-;18528:25;;18567:20;18585:1;18567:20;:::i;:::-;18562:25;;18611:1;18608;18604:9;18596:17;;18635:1;18629:4;18626:11;18623:37;;;18640:18;;:::i;:::-;18623:37;18473:194;;;;:::o;18673:191::-;18713:3;18732:20;18750:1;18732:20;:::i;:::-;18727:25;;18766:20;18784:1;18766:20;:::i;:::-;18761:25;;18809:1;18806;18802:9;18795:16;;18830:3;18827:1;18824:10;18821:36;;;18837:18;;:::i;:::-;18821:36;18673:191;;;;:::o;18870:177::-;19010:29;19006:1;18998:6;18994:14;18987:53;18870:177;:::o;19053:366::-;19195:3;19216:67;19280:2;19275:3;19216:67;:::i;:::-;19209:74;;19292:93;19381:3;19292:93;:::i;:::-;19410:2;19405:3;19401:12;19394:19;;19053:366;;;:::o;19425:419::-;19591:4;19629:2;19618:9;19614:18;19606:26;;19678:9;19672:4;19668:20;19664:1;19653:9;19649:17;19642:47;19706:131;19832:4;19706:131;:::i;:::-;19698:139;;19425:419;;;:::o;19850:410::-;19890:7;19913:20;19931:1;19913:20;:::i;:::-;19908:25;;19947:20;19965:1;19947:20;:::i;:::-;19942:25;;20002:1;19999;19995:9;20024:30;20042:11;20024:30;:::i;:::-;20013:41;;20203:1;20194:7;20190:15;20187:1;20184:22;20164:1;20157:9;20137:83;20114:139;;20233:18;;:::i;:::-;20114:139;19898:362;19850:410;;;;:::o;20266:180::-;20314:77;20311:1;20304:88;20411:4;20408:1;20401:15;20435:4;20432:1;20425:15;20452:185;20492:1;20509:20;20527:1;20509:20;:::i;:::-;20504:25;;20543:20;20561:1;20543:20;:::i;:::-;20538:25;;20582:1;20572:35;;20587:18;;:::i;:::-;20572:35;20629:1;20626;20622:9;20617:14;;20452:185;;;;:::o;20643:220::-;20783:34;20779:1;20771:6;20767:14;20760:58;20852:3;20847:2;20839:6;20835:15;20828:28;20643:220;:::o;20869:366::-;21011:3;21032:67;21096:2;21091:3;21032:67;:::i;:::-;21025:74;;21108:93;21197:3;21108:93;:::i;:::-;21226:2;21221:3;21217:12;21210:19;;20869:366;;;:::o;21241:419::-;21407:4;21445:2;21434:9;21430:18;21422:26;;21494:9;21488:4;21484:20;21480:1;21469:9;21465:17;21458:47;21522:131;21648:4;21522:131;:::i;:::-;21514:139;;21241:419;;;:::o;21666:176::-;21806:28;21802:1;21794:6;21790:14;21783:52;21666:176;:::o;21848:366::-;21990:3;22011:67;22075:2;22070:3;22011:67;:::i;:::-;22004:74;;22087:93;22176:3;22087:93;:::i;:::-;22205:2;22200:3;22196:12;22189:19;;21848:366;;;:::o;22220:419::-;22386:4;22424:2;22413:9;22409:18;22401:26;;22473:9;22467:4;22463:20;22459:1;22448:9;22444:17;22437:47;22501:131;22627:4;22501:131;:::i;:::-;22493:139;;22220:419;;;:::o;22645:180::-;22785:32;22781:1;22773:6;22769:14;22762:56;22645:180;:::o;22831:366::-;22973:3;22994:67;23058:2;23053:3;22994:67;:::i;:::-;22987:74;;23070:93;23159:3;23070:93;:::i;:::-;23188:2;23183:3;23179:12;23172:19;;22831:366;;;:::o;23203:419::-;23369:4;23407:2;23396:9;23392:18;23384:26;;23456:9;23450:4;23446:20;23442:1;23431:9;23427:17;23420:47;23484:131;23610:4;23484:131;:::i;:::-;23476:139;;23203:419;;;:::o
Swarm Source
ipfs://d4fc07722dec2f5d06d7650f58e511c5a357e1bc4b88860cfb2585db7fd2bc6c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.