ERC-20
Overview
Max Total Supply
240,000,000,000 RFK24
Holders
13
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
502,848,115.513843263 RFK24Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
RFK24_Token
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-09 */ // Token: RFK24 v4 // Website: https://www.rfk24.io // TG Channel: https://t.me/RFK24_coin // Twitter Account https://twitter.com/RFK24_coin // SPDX-License-Identifier: MIT pragma solidity 0.8.21; library SafeMath { function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IDexFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20Extended { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); 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 ); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { 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; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = payable(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit(uint256 amount) external; function claimDividend(address _user) external; function getPaidEarnings( address shareholder ) external view returns (uint256); function getUnpaidEarnings( address shareholder ) external view returns (uint256); function totalDistributed() external view returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] public shareholders; mapping(address => uint256) public shareholderIndexes; mapping(address => uint256) public shareholderClaims; mapping(address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == token); _; } constructor() { token = msg.sender; } function setShare( address shareholder, uint256 amount ) external override onlyToken { if (shares[shareholder].amount > 0) { distributeDividend(shareholder); } if (amount > 0 && shares[shareholder].amount == 0) { addShareholder(shareholder); } else if (amount == 0 && shares[shareholder].amount > 0) { removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function deposit(uint256 amount) external override onlyToken { totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add( dividendsPerShareAccuracyFactor.mul(amount).div(totalShares) ); } function distributeDividend(address shareholder) internal { if (shares[shareholder].amount == 0) { return; } uint256 amount = getUnpaidEarnings(shareholder); if (amount > 0) { totalDistributed = totalDistributed.add(amount); IERC20Extended(token).transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder] .totalRealised .add(amount); shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } } function claimDividend(address _user) external { distributeDividend(_user); } function getPaidEarnings( address shareholder ) public view returns (uint256) { return shares[shareholder].totalRealised; } function getUnpaidEarnings( address shareholder ) public view returns (uint256) { if (shares[shareholder].amount == 0) { return 0; } uint256 shareholderTotalDividends = getCumulativeDividends( shares[shareholder].amount ); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if (shareholderTotalDividends <= shareholderTotalExcluded) { return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends( uint256 share ) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[ shareholders.length - 1 ]; shareholderIndexes[ shareholders[shareholders.length - 1] ] = shareholderIndexes[shareholder]; shareholders.pop(); } } // main contract contract RFK24_Token is IERC20Extended, Ownable { using SafeMath for uint256; string private constant _name = "RFK24"; string private constant _symbol = "RFK24"; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 240_000_000_000 * 10 ** _decimals; DividendDistributor public distributor; IDexRouter public router; address public pair; address public autoLiquidityReceiver; address public marketingFeeReceiver; uint256 _reflectionPercent = 25_00; uint256 _liquidityPercent = 10_00; uint256 _marketingPercent = 65_00; uint256 public totalBuyFee = 5_00; uint256 public totalSellFee = 5_00; uint256 public percentDivider = 100_00; uint256 public maxWalletAmount = (_totalSupply * 2) / 100; uint256 public launchedAt; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isWalletExmpt; mapping(address => bool) public isDividendExempt; uint256 public swapThreshold = 100000000000000000; bool public swapEnabled; bool public trading; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event AutoLiquify(uint256 amountEth, uint256 amountBOG); constructor() Ownable() { autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x5fc96672ebE1AEF1f305aAFc16FBFc6CEd95AC9b; distributor = new DividendDistributor(); isFeeExempt[autoLiquidityReceiver] = true; isFeeExempt[address(this)] = true; isDividendExempt[address(this)] = true; isWalletExmpt[autoLiquidityReceiver] = true; isWalletExmpt[address(this)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function totalSupply() external pure override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance( address holder, address spender ) external view override returns (uint256) { return _allowances[holder][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, _totalSupply); } function transfer( address recipient, uint256 amount ) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != _totalSupply) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (inSwap || sender == address(distributor)) { return _basicTransfer(sender, recipient, amount); } if (!isFeeExempt[sender] && !isFeeExempt[recipient]) { // trading disable till launch if (!trading) { require( pair != sender && pair != recipient, "Trading is disable" ); } } if (!isWalletExmpt[recipient]) { require( balanceOf(recipient).add(amount) <= maxWalletAmount, "Max Wallet limit exceeds" ); } if (shouldSwapBack()) { swapBack(); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived; uint256 feeAmount; if ( isFeeExempt[sender] || isFeeExempt[recipient] || (sender != pair && recipient != pair) ) { amountReceived = amount; } else { if (sender == pair) { feeAmount = amount.mul(totalBuyFee).div(percentDivider); amountReceived = amount.sub(feeAmount); } else { feeAmount = amount.mul(totalSellFee).div(percentDivider); amountReceived = amount.sub(feeAmount); } } _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); if (!isDividendExempt[sender]) { try distributor.setShare(sender, _balances[sender]) {} catch {} } if (!isDividendExempt[recipient]) { try distributor.setShare(recipient, _balances[recipient]) {} catch {} } if (feeAmount > 0) takeFee(sender, feeAmount); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, uint256 feeAmount) internal { uint256 amountToDistribute = feeAmount.mul(_reflectionPercent).div( percentDivider ); if (amountToDistribute > 0) { _balances[address(distributor)] = _balances[address(distributor)] .add(amountToDistribute); emit Transfer( address(this), address(distributor), amountToDistribute ); try distributor.deposit(amountToDistribute) {} catch {} } _balances[address(this)] = _balances[address(this)].add( feeAmount.sub(amountToDistribute) ); emit Transfer(sender, address(this), feeAmount.sub(amountToDistribute)); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 halfLp = _liquidityPercent.div(2); uint256 amountToLiquify = swapThreshold.mul(halfLp).div(percentDivider); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); _allowances[address(this)][address(router)] = _totalSupply; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountEth = address(this).balance.sub(balanceBefore); uint256 feePercentDivider = _marketingPercent.add(halfLp); uint256 amountEthLiquidity = amountEth.mul(halfLp).div( feePercentDivider ); if (amountToLiquify > 0) { router.addLiquidityETH{value: amountEthLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountEthLiquidity, amountToLiquify); } if (address(this).balance > 0) { payable(marketingFeeReceiver).transfer(address(this).balance); } } function claimDividend() external { distributor.claimDividend(msg.sender); } function getPaidDividend( address shareholder ) public view returns (uint256) { return distributor.getPaidEarnings(shareholder); } function getUnpaidDividend( address shareholder ) external view returns (uint256) { return distributor.getUnpaidEarnings(shareholder); } function getTotalDistributedDividend() external view returns (uint256) { return distributor.totalDistributed(); } function setIsDividendExempt( address holder, bool exempt ) external onlyOwner { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if (exempt) { distributor.setShare(holder, 0); } else { distributor.setShare(holder, _balances[holder]); } } function addLp(address _router) external payable onlyOwner { router = IDexRouter(_router); pair = IDexFactory(router.factory()).createPair( address(this), router.WETH() ); isFeeExempt[address(router)] = true; isDividendExempt[pair] = true; isDividendExempt[address(router)] = true; isWalletExmpt[pair] = true; isWalletExmpt[address(router)] = true; _allowances[address(this)][address(router)] = _totalSupply; router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20Extended(pair).approve(address(router), type(uint).max); } function enableTrading() external onlyOwner { require(!trading, "Already enabled"); trading = true; swapEnabled = true; launchedAt = block.timestamp; } function removeStuckEth(uint256 amount) external { require(msg.sender == autoLiquidityReceiver, "invalid"); payable(autoLiquidityReceiver).transfer(amount); } function removeStuckToken( address token, uint256 amount ) external onlyOwner { IERC20Extended(token).transfer(owner(), amount); } function setFeeReceivers( address _autoLiquidityReceiver, address _marketingFeeReceiver ) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; } function setSwapBackSettings( bool _enabled, uint256 _amount ) external onlyOwner { require(swapThreshold > 0); swapEnabled = _enabled; swapThreshold = _amount; } function multiTransfer( address[] memory accounts, uint256[] memory amounts ) external onlyOwner { require(accounts.length == amounts.length, "Invalid"); for (uint256 i; i < accounts.length; i++) { _basicTransfer(msg.sender, accounts[i], amounts[i]); } } }
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":false,"internalType":"uint256","name":"amountEth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"addLp","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getPaidDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDistributedDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExmpt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526109c46006556103e86007556119646008556101f46009556101f4600a55612710600b55606460026009600a6200003c9190620006c8565b6437e11d60006200004e919062000718565b6200005a919062000718565b6200006691906200078f565b600c5567016345785d8a000060135534801562000081575f80fd5b50620000926200052160201b60201c565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a33360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735fc96672ebe1aef1f305aafc16fbfc6ced95ac9b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620001eb9062000528565b604051809103905ff08015801562000205573d5f803e3d5ffd5b5060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a620004409190620006c8565b6437e11d600062000452919062000718565b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004f29190620006c8565b6437e11d600062000504919062000718565b604051620005139190620007d7565b60405180910390a3620007f2565b5f33905090565b6112a680620052b683390190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005c05780860481111562000598576200059762000536565b5b6001851615620005a85780820291505b8081029050620005b88562000563565b945062000578565b94509492505050565b5f82620005da5760019050620006ac565b81620005e9575f9050620006ac565b81600181146200060257600281146200060d5762000643565b6001915050620006ac565b60ff84111562000622576200062162000536565b5b8360020a9150848211156200063c576200063b62000536565b5b50620006ac565b5060208310610133831016604e8410600b84101617156200067d5782820a90508381111562000677576200067662000536565b5b620006ac565b6200068c84848460016200056f565b92509050818404811115620006a657620006a562000536565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006d482620006b3565b9150620006e183620006bc565b9250620007107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005c9565b905092915050565b5f6200072482620006b3565b91506200073183620006b3565b92508282026200074181620006b3565b915082820484148315176200075b576200075a62000536565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200079b82620006b3565b9150620007a883620006b3565b925082620007bb57620007ba62000762565b5b828204905092915050565b620007d181620006b3565b82525050565b5f602082019050620007ec5f830184620007c6565b92915050565b614ab680620008005f395ff3fe608060405260043610610249575f3560e01c80638a8c523c11610138578063ca33e64c116100b5578063ec44acf211610079578063ec44acf214610898578063f0fc6bca146108c2578063f2fde38b146108d8578063f708a64f14610900578063f887ea4014610928578063fe6f1b051461095257610250565b8063ca33e64c146107b8578063ce261d10146107e2578063dd62ed3e1461080a578063df20fd4914610846578063e96fada21461086e57610250565b8063a8aa1b31116100fc578063a8aa1b31146106d4578063a9059cbb146106fe578063aa4bde281461073a578063bf56b37114610764578063bfe109281461078e57610250565b80638a8c523c146106185780638da5cb5b1461062e57806395d89b41146106585780639d9241ec14610682578063a4b45c00146106ac57610250565b80634355855a116101c657806370a082311161018a57806370a0823114610526578063715018a61461056257806386cb8fb11461057857806386db0c05146105b4578063893c9f2b146105f057610250565b80634355855a1461041e57806349bc3feb1461045a578063571ac8b01461049657806359b107b9146104d25780636ddd1713146104fc57610250565b80631961cee21161020d5780631961cee21461032a5780631e89d5451461035457806323b872dd1461037c578063313ce567146103b85780633f4218e0146103e257610250565b80630445b6671461025457806306f200031461027e57806306fdde031461029a578063095ea7b3146102c457806318160ddd1461030057610250565b3661025057005b5f80fd5b34801561025f575f80fd5b5061026861097c565b6040516102759190613a42565b60405180910390f35b61029860048036038101906102939190613ac6565b610982565b005b3480156102a5575f80fd5b506102ae6110cc565b6040516102bb9190613b7b565b60405180910390f35b3480156102cf575f80fd5b506102ea60048036038101906102e59190613bc5565b611109565b6040516102f79190613c1d565b60405180910390f35b34801561030b575f80fd5b506103146111f6565b6040516103219190613a42565b60405180910390f35b348015610335575f80fd5b5061033e61121a565b60405161034b9190613a42565b60405180910390f35b34801561035f575f80fd5b5061037a60048036038101906103759190613e36565b6112ae565b005b348015610387575f80fd5b506103a2600480360381019061039d9190613eac565b6113e9565b6040516103af9190613c1d565b60405180910390f35b3480156103c3575f80fd5b506103cc6115d9565b6040516103d99190613f17565b60405180910390f35b3480156103ed575f80fd5b5061040860048036038101906104039190613ac6565b6115e1565b6040516104159190613c1d565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f9190613ac6565b6115fe565b6040516104519190613c1d565b60405180910390f35b348015610465575f80fd5b50610480600480360381019061047b9190613ac6565b61161b565b60405161048d9190613a42565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b79190613ac6565b6116bc565b6040516104c99190613c1d565b60405180910390f35b3480156104dd575f80fd5b506104e66116eb565b6040516104f39190613a42565b60405180910390f35b348015610507575f80fd5b506105106116f1565b60405161051d9190613c1d565b60405180910390f35b348015610531575f80fd5b5061054c60048036038101906105479190613ac6565b611703565b6040516105599190613a42565b60405180910390f35b34801561056d575f80fd5b50610576611749565b005b348015610583575f80fd5b5061059e60048036038101906105999190613ac6565b611897565b6040516105ab9190613c1d565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190613ac6565b6118b4565b6040516105e79190613a42565b60405180910390f35b3480156105fb575f80fd5b5061061660048036038101906106119190613f30565b611955565b005b348015610623575f80fd5b5061062c611a4c565b005b348015610639575f80fd5b50610642611b6e565b60405161064f9190613f6a565b60405180910390f35b348015610663575f80fd5b5061066c611b95565b6040516106799190613b7b565b60405180910390f35b34801561068d575f80fd5b50610696611bd2565b6040516106a39190613a42565b60405180910390f35b3480156106b7575f80fd5b506106d260048036038101906106cd9190613f83565b611bd8565b005b3480156106df575f80fd5b506106e8611cf0565b6040516106f59190613f6a565b60405180910390f35b348015610709575f80fd5b50610724600480360381019061071f9190613bc5565b611d15565b6040516107319190613c1d565b60405180910390f35b348015610745575f80fd5b5061074e611d29565b60405161075b9190613a42565b60405180910390f35b34801561076f575f80fd5b50610778611d2f565b6040516107859190613a42565b60405180910390f35b348015610799575f80fd5b506107a2611d35565b6040516107af919061401c565b60405180910390f35b3480156107c3575f80fd5b506107cc611d5a565b6040516107d99190613f6a565b60405180910390f35b3480156107ed575f80fd5b5061080860048036038101906108039190613bc5565b611d7f565b005b348015610815575f80fd5b50610830600480360381019061082b9190613f83565b611e9a565b60405161083d9190613a42565b60405180910390f35b348015610851575f80fd5b5061086c6004803603810190610867919061405f565b611f1c565b005b348015610879575f80fd5b50610882611fe1565b60405161088f9190613f6a565b60405180910390f35b3480156108a3575f80fd5b506108ac612006565b6040516108b99190613c1d565b60405180910390f35b3480156108cd575f80fd5b506108d6612019565b005b3480156108e3575f80fd5b506108fe60048036038101906108f99190613ac6565b6120a2565b005b34801561090b575f80fd5b506109266004803603810190610921919061409d565b61225f565b005b348015610933575f80fd5b5061093c612537565b60405161094991906140fb565b60405180910390f35b34801561095d575f80fd5b5061096661255c565b6040516109739190613a42565b60405180910390f35b60135481565b61098a612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d9061415e565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae49190614190565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8e9190614190565b6040518363ffffffff1660e01b8152600401610bab9291906141bb565b6020604051808303815f875af1158015610bc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610beb9190614190565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a610e86919061433e565b6437e11d6000610e969190614388565b600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610f7b30611703565b5f80610f85611b6e565b426040518863ffffffff1660e01b8152600401610fa796959493929190614402565b60606040518083038185885af1158015610fc3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fe89190614475565b50505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110889291906144c5565b6020604051808303815f875af11580156110a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c89190614500565b5050565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b5f81600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516111e49190613a42565b60405180910390a36001905092915050565b5f6009600a611205919061433e565b6437e11d60006112159190614388565b905090565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efca2eed6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611285573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a9919061452b565b905090565b6112b6612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113399061415e565b60405180910390fd5b8051825114611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d906145a0565b60405180910390fd5b5f5b82518110156113e4576113d0338483815181106113a8576113a76145be565b5b60200260200101518484815181106113c3576113c26145be565b5b6020026020010151612569565b5080806113dc906145eb565b915050611388565b505050565b5f6009600a6113f8919061433e565b6437e11d60006114089190614388565b600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146115c557611548826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127339092919063ffffffff16565b600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6115d0848484612787565b90509392505050565b5f6009905090565b6010602052805f5260405f205f915054906101000a900460ff1681565b6012602052805f5260405f205f915054906101000a900460ff1681565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352f48158836040518263ffffffff1660e01b81526004016116769190613f6a565b602060405180830381865afa158015611691573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b5919061452b565b9050919050565b5f6116e4826009600a6116cf919061433e565b6437e11d60006116df9190614388565b611109565b9050919050565b60095481565b60145f9054906101000a900460ff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611751612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061415e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6011602052805f5260405f205f915054906101000a900460ff1681565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161190f9190613f6a565b602060405180830381865afa15801561192a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194e919061452b565b9050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db9061467c565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a48573d5f803e3d5ffd5b5050565b611a54612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061415e565b60405180910390fd5b601460019054906101000a900460ff1615611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b27906146e4565b60405180910390fd5b6001601460016101000a81548160ff021916908315150217905550600160145f6101000a81548160ff02191690831515021790555042600d81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b611be0612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c639061415e565b60405180910390fd5b8160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611d21338484612787565b905092915050565b600c5481565b600d5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d87612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a9061415e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611e37611b6e565b836040518363ffffffff1660e01b8152600401611e559291906144c5565b6020604051808303815f875af1158015611e71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e959190614500565b505050565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611f24612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa79061415e565b60405180910390fd5b5f60135411611fbd575f80fd5b8160145f6101000a81548160ff021916908315150217905550806013819055505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460019054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b81526004016120739190613f6a565b5f604051808303815f87803b15801561208a575f80fd5b505af115801561209c573d5f803e3d5ffd5b50505050565b6120aa612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212d9061415e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219b90614772565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612267612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea9061415e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561237c575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612384575f80fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550801561246c5760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca96835f6040518363ffffffff1660e01b815260040161243a929190614790565b5f604051808303815f87803b158015612451575f80fd5b505af1158015612463573d5f803e3d5ffd5b50505050612533565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b81526004016125059291906144c5565b5f604051808303815f87803b15801561251c575f80fd5b505af115801561252e573d5f803e3d5ffd5b505050505b5050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f33905090565b5f6125f1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127339092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061268282600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127209190613a42565b60405180910390a3600190509392505050565b5f83831115829061277a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127719190613b7b565b60405180910390fd5b5082840390509392505050565b5f601460029054906101000a900460ff16806127ef575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612806576127ff848484612569565b905061309c565b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156128a4575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129a857601460019054906101000a900460ff166129a7578373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561296757508273ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d90614801565b60405180910390fd5b5b5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a5657600c54612a1483612a0686611703565b6130a390919063ffffffff16565b1115612a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4c90614869565b60405180910390fd5b5b612a5e6130b8565b15612a6c57612a6b61318a565b5b612af3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127339092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612bd1575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612c82575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015612c81575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b15612c8f57839150612d6a565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612d2857612d0c600b54612cfe600954876136bb90919063ffffffff16565b6136d090919063ffffffff16565b9050612d2181856136e590919063ffffffff16565b9150612d69565b612d51600b54612d43600a54876136bb90919063ffffffff16565b6136d090919063ffffffff16565b9050612d6681856136e590919063ffffffff16565b91505b5b612dba82600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e589190613a42565b60405180910390a360125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f715760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600e5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b8152600401612f479291906144c5565b5f604051808303815f87803b158015612f5e575f80fd5b505af1925050508015612f6f575060015b505b60125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166130825760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b81526004016130589291906144c5565b5f604051808303815f87803b15801561306f575f80fd5b505af1925050508015613080575060015b505b5f8111156130955761309486826136fa565b5b6001925050505b9392505050565b5f81836130b09190614887565b905092915050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131235750601460029054906101000a900460ff16155b801561313a575060145f9054906101000a900460ff165b80156131855750601354600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601460026101000a81548160ff0219169083151502179055505f6131bc60026007546136d090919063ffffffff16565b90505f6131e8600b546131da846013546136bb90919063ffffffff16565b6136d090919063ffffffff16565b90505f613200826013546136e590919063ffffffff16565b90506009600a613210919061433e565b6437e11d60006132209190614388565b600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600267ffffffffffffffff8111156132d9576132d8613c3a565b5b6040519080825280602002602001820160405280156133075781602001602082028036833780820191505090505b50905030815f8151811061331e5761331d6145be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133e69190614190565b816001815181106133fa576133f96145be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b815260040161349a959493929190614971565b5f604051808303815f87803b1580156134b1575f80fd5b505af11580156134c3573d5f803e3d5ffd5b505050505f6134db82476136e590919063ffffffff16565b90505f6134f3876008546130a390919063ffffffff16565b90505f61351b8261350d8a866136bb90919063ffffffff16565b6136d090919063ffffffff16565b90505f8711156136295760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a5f8060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016135ab96959493929190614402565b60606040518083038185885af11580156135c7573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906135ec9190614475565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681886040516136209291906149c9565b60405180910390a15b5f4711156136975760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015613695573d5f803e3d5ffd5b505b50505050505050505f601460026101000a81548160ff021916908315150217905550565b5f81836136c89190614388565b905092915050565b5f81836136dd9190614a1d565b905092915050565b5f81836136f29190614a4d565b905092915050565b5f613724600b54613716600654856136bb90919063ffffffff16565b6136d090919063ffffffff16565b90505f81111561390b5761379f81600e5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161387f9190613a42565b60405180910390a360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016138e19190613a42565b5f604051808303815f87803b1580156138f8575f80fd5b505af1925050508015613909575060015b505b61396d61392182846136e590919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613a1084866136e590919063ffffffff16565b604051613a1d9190613a42565b60405180910390a3505050565b5f819050919050565b613a3c81613a2a565b82525050565b5f602082019050613a555f830184613a33565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a9582613a6c565b9050919050565b613aa581613a8b565b8114613aaf575f80fd5b50565b5f81359050613ac081613a9c565b92915050565b5f60208284031215613adb57613ada613a64565b5b5f613ae884828501613ab2565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613b28578082015181840152602081019050613b0d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613b4d82613af1565b613b578185613afb565b9350613b67818560208601613b0b565b613b7081613b33565b840191505092915050565b5f6020820190508181035f830152613b938184613b43565b905092915050565b613ba481613a2a565b8114613bae575f80fd5b50565b5f81359050613bbf81613b9b565b92915050565b5f8060408385031215613bdb57613bda613a64565b5b5f613be885828601613ab2565b9250506020613bf985828601613bb1565b9150509250929050565b5f8115159050919050565b613c1781613c03565b82525050565b5f602082019050613c305f830184613c0e565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c7082613b33565b810181811067ffffffffffffffff82111715613c8f57613c8e613c3a565b5b80604052505050565b5f613ca1613a5b565b9050613cad8282613c67565b919050565b5f67ffffffffffffffff821115613ccc57613ccb613c3a565b5b602082029050602081019050919050565b5f80fd5b5f613cf3613cee84613cb2565b613c98565b90508083825260208201905060208402830185811115613d1657613d15613cdd565b5b835b81811015613d3f5780613d2b8882613ab2565b845260208401935050602081019050613d18565b5050509392505050565b5f82601f830112613d5d57613d5c613c36565b5b8135613d6d848260208601613ce1565b91505092915050565b5f67ffffffffffffffff821115613d9057613d8f613c3a565b5b602082029050602081019050919050565b5f613db3613dae84613d76565b613c98565b90508083825260208201905060208402830185811115613dd657613dd5613cdd565b5b835b81811015613dff5780613deb8882613bb1565b845260208401935050602081019050613dd8565b5050509392505050565b5f82601f830112613e1d57613e1c613c36565b5b8135613e2d848260208601613da1565b91505092915050565b5f8060408385031215613e4c57613e4b613a64565b5b5f83013567ffffffffffffffff811115613e6957613e68613a68565b5b613e7585828601613d49565b925050602083013567ffffffffffffffff811115613e9657613e95613a68565b5b613ea285828601613e09565b9150509250929050565b5f805f60608486031215613ec357613ec2613a64565b5b5f613ed086828701613ab2565b9350506020613ee186828701613ab2565b9250506040613ef286828701613bb1565b9150509250925092565b5f60ff82169050919050565b613f1181613efc565b82525050565b5f602082019050613f2a5f830184613f08565b92915050565b5f60208284031215613f4557613f44613a64565b5b5f613f5284828501613bb1565b91505092915050565b613f6481613a8b565b82525050565b5f602082019050613f7d5f830184613f5b565b92915050565b5f8060408385031215613f9957613f98613a64565b5b5f613fa685828601613ab2565b9250506020613fb785828601613ab2565b9150509250929050565b5f819050919050565b5f613fe4613fdf613fda84613a6c565b613fc1565b613a6c565b9050919050565b5f613ff582613fca565b9050919050565b5f61400682613feb565b9050919050565b61401681613ffc565b82525050565b5f60208201905061402f5f83018461400d565b92915050565b61403e81613c03565b8114614048575f80fd5b50565b5f8135905061405981614035565b92915050565b5f806040838503121561407557614074613a64565b5b5f6140828582860161404b565b925050602061409385828601613bb1565b9150509250929050565b5f80604083850312156140b3576140b2613a64565b5b5f6140c085828601613ab2565b92505060206140d18582860161404b565b9150509250929050565b5f6140e582613feb565b9050919050565b6140f5816140db565b82525050565b5f60208201905061410e5f8301846140ec565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614148602083613afb565b915061415382614114565b602082019050919050565b5f6020820190508181035f8301526141758161413c565b9050919050565b5f8151905061418a81613a9c565b92915050565b5f602082840312156141a5576141a4613a64565b5b5f6141b28482850161417c565b91505092915050565b5f6040820190506141ce5f830185613f5b565b6141db6020830184613f5b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115614264578086048111156142405761423f6141e2565b5b600185161561424f5780820291505b808102905061425d8561420f565b9450614224565b94509492505050565b5f8261427c5760019050614337565b81614289575f9050614337565b816001811461429f57600281146142a9576142d8565b6001915050614337565b60ff8411156142bb576142ba6141e2565b5b8360020a9150848211156142d2576142d16141e2565b5b50614337565b5060208310610133831016604e8410600b841016171561430d5782820a905083811115614308576143076141e2565b5b614337565b61431a848484600161421b565b92509050818404811115614331576143306141e2565b5b81810290505b9392505050565b5f61434882613a2a565b915061435383613efc565b92506143807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461426d565b905092915050565b5f61439282613a2a565b915061439d83613a2a565b92508282026143ab81613a2a565b915082820484148315176143c2576143c16141e2565b5b5092915050565b5f819050919050565b5f6143ec6143e76143e2846143c9565b613fc1565b613a2a565b9050919050565b6143fc816143d2565b82525050565b5f60c0820190506144155f830189613f5b565b6144226020830188613a33565b61442f60408301876143f3565b61443c60608301866143f3565b6144496080830185613f5b565b61445660a0830184613a33565b979650505050505050565b5f8151905061446f81613b9b565b92915050565b5f805f6060848603121561448c5761448b613a64565b5b5f61449986828701614461565b93505060206144aa86828701614461565b92505060406144bb86828701614461565b9150509250925092565b5f6040820190506144d85f830185613f5b565b6144e56020830184613a33565b9392505050565b5f815190506144fa81614035565b92915050565b5f6020828403121561451557614514613a64565b5b5f614522848285016144ec565b91505092915050565b5f602082840312156145405761453f613a64565b5b5f61454d84828501614461565b91505092915050565b7f496e76616c6964000000000000000000000000000000000000000000000000005f82015250565b5f61458a600783613afb565b915061459582614556565b602082019050919050565b5f6020820190508181035f8301526145b78161457e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6145f582613a2a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614627576146266141e2565b5b600182019050919050565b7f696e76616c6964000000000000000000000000000000000000000000000000005f82015250565b5f614666600783613afb565b915061467182614632565b602082019050919050565b5f6020820190508181035f8301526146938161465a565b9050919050565b7f416c726561647920656e61626c656400000000000000000000000000000000005f82015250565b5f6146ce600f83613afb565b91506146d98261469a565b602082019050919050565b5f6020820190508181035f8301526146fb816146c2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61475c602683613afb565b915061476782614702565b604082019050919050565b5f6020820190508181035f83015261478981614750565b9050919050565b5f6040820190506147a35f830185613f5b565b6147b060208301846143f3565b9392505050565b7f54726164696e672069732064697361626c6500000000000000000000000000005f82015250565b5f6147eb601283613afb565b91506147f6826147b7565b602082019050919050565b5f6020820190508181035f830152614818816147df565b9050919050565b7f4d61782057616c6c6574206c696d6974206578636565647300000000000000005f82015250565b5f614853601883613afb565b915061485e8261481f565b602082019050919050565b5f6020820190508181035f83015261488081614847565b9050919050565b5f61489182613a2a565b915061489c83613a2a565b92508282019050808211156148b4576148b36141e2565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6148ec81613a8b565b82525050565b5f6148fd83836148e3565b60208301905092915050565b5f602082019050919050565b5f61491f826148ba565b61492981856148c4565b9350614934836148d4565b805f5b8381101561496457815161494b88826148f2565b975061495683614909565b925050600181019050614937565b5085935050505092915050565b5f60a0820190506149845f830188613a33565b61499160208301876143f3565b81810360408301526149a38186614915565b90506149b26060830185613f5b565b6149bf6080830184613a33565b9695505050505050565b5f6040820190506149dc5f830185613a33565b6149e96020830184613a33565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a2782613a2a565b9150614a3283613a2a565b925082614a4257614a416149f0565b5b828204905092915050565b5f614a5782613a2a565b9150614a6283613a2a565b9250828203905081811115614a7a57614a796141e2565b5b9291505056fea2646970667358221220d030ca5e826be6a6034cf33e6c525096c8c01b423fef7433ed46e530afbe2ca064736f6c6343000815003360806040526ec097ce7bc90715b34b9f1000000000600955348015610022575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112378061006f5f395ff3fe608060405234801561000f575f80fd5b50600436106100f3575f3560e01c8063997664d711610095578063d4fda1f211610064578063d4fda1f214610297578063e2d2e219146102c7578063efca2eed146102e5578063fc0c546a14610303576100f3565b8063997664d7146101fb578063ab377daa14610219578063b6b55f2514610249578063ce7c2ac214610265576100f3565b806328fd3198116100d157806328fd31981461014d5780633a98ef391461017d57806352f481581461019b57806366817df5146101cb576100f3565b806311ce023d146100f757806314b6ca961461011557806315f7e05e14610131575b5f80fd5b6100ff610321565b60405161010c9190610e5d565b60405180910390f35b61012f600480360381019061012a9190610efe565b610327565b005b61014b60048036038101906101469190610f3c565b6105cb565b005b61016760048036038101906101629190610f3c565b6105d7565b6040516101749190610e5d565b60405180910390f35b6101856106e3565b6040516101929190610e5d565b60405180910390f35b6101b560048036038101906101b09190610f3c565b6106e9565b6040516101c29190610e5d565b60405180910390f35b6101e560048036038101906101e09190610f3c565b610732565b6040516101f29190610e5d565b60405180910390f35b610203610747565b6040516102109190610e5d565b60405180910390f35b610233600480360381019061022e9190610f67565b61074d565b6040516102409190610fa1565b60405180910390f35b610263600480360381019061025e9190610f67565b610788565b005b61027f600480360381019061027a9190610f3c565b61083f565b60405161028e93929190610fba565b60405180910390f35b6102b160048036038101906102ac9190610f3c565b610865565b6040516102be9190610e5d565b60405180910390f35b6102cf61087a565b6040516102dc9190610e5d565b60405180910390f35b6102ed610880565b6040516102fa9190610e5d565b60405180910390f35b61030b610886565b6040516103189190610fa1565b60405180910390f35b60095481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461037d575f80fd5b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015411156103ce576103cd826108a9565b5b5f8111801561041b57505f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154145b1561042e5761042982610b25565b61048b565b5f8114801561047b57505f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154115b1561048a5761048982610bcf565b5b5b6104f1816104e360045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154600554610dc090919063ffffffff16565b610dd590919063ffffffff16565b6005819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f018190555061058360045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154610dea565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101819055505050565b6105d4816108a9565b50565b5f8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015403610626575f90506106de565b5f61066f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154610dea565b90505f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015490508082116106c6575f925050506106de565b6106d98183610dc090919063ffffffff16565b925050505b919050565b60055481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600201549050919050565b6003602052805f5260405f205f915090505481565b60065481565b6001818154811061075c575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107de575f80fd5b6107f381600654610dd590919063ffffffff16565b60068190555061083661082560055461081784600954610e1b90919063ffffffff16565b610e3090919063ffffffff16565b600854610dd590919063ffffffff16565b60088190555050565b6004602052805f5260405f205f91509050805f0154908060010154908060020154905083565b6002602052805f5260405f205f915090505481565b60085481565b60075481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01540315610b22575f6108fa826105d7565b90505f811115610b205761091981600754610dd590919063ffffffff16565b6007819055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610979929190610fef565b6020604051808303815f875af1158015610995573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b9919061104b565b504260035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610a4f8160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154610dd590919063ffffffff16565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020181905550610adb60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154610dea565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101819055505b505b50565b60018054905060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001808080549050610be191906110a3565b81548110610bf257610bf16110d6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481548110610c6b57610c6a6110d6565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f6001808080549050610d0391906110a3565b81548110610d1457610d136110d6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001805480610d8b57610d8a611103565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b5f8183610dcd91906110a3565b905092915050565b5f8183610de29190611130565b905092915050565b5f610e14600954610e0660085485610e1b90919063ffffffff16565b610e3090919063ffffffff16565b9050919050565b5f8183610e289190611163565b905092915050565b5f8183610e3d91906111d1565b905092915050565b5f819050919050565b610e5781610e45565b82525050565b5f602082019050610e705f830184610e4e565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ea382610e7a565b9050919050565b610eb381610e99565b8114610ebd575f80fd5b50565b5f81359050610ece81610eaa565b92915050565b610edd81610e45565b8114610ee7575f80fd5b50565b5f81359050610ef881610ed4565b92915050565b5f8060408385031215610f1457610f13610e76565b5b5f610f2185828601610ec0565b9250506020610f3285828601610eea565b9150509250929050565b5f60208284031215610f5157610f50610e76565b5b5f610f5e84828501610ec0565b91505092915050565b5f60208284031215610f7c57610f7b610e76565b5b5f610f8984828501610eea565b91505092915050565b610f9b81610e99565b82525050565b5f602082019050610fb45f830184610f92565b92915050565b5f606082019050610fcd5f830186610e4e565b610fda6020830185610e4e565b610fe76040830184610e4e565b949350505050565b5f6040820190506110025f830185610f92565b61100f6020830184610e4e565b9392505050565b5f8115159050919050565b61102a81611016565b8114611034575f80fd5b50565b5f8151905061104581611021565b92915050565b5f602082840312156110605761105f610e76565b5b5f61106d84828501611037565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110ad82610e45565b91506110b883610e45565b92508282039050818111156110d0576110cf611076565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f61113a82610e45565b915061114583610e45565b925082820190508082111561115d5761115c611076565b5b92915050565b5f61116d82610e45565b915061117883610e45565b925082820261118681610e45565b9150828204841483151761119d5761119c611076565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6111db82610e45565b91506111e683610e45565b9250826111f6576111f56111a4565b5b82820490509291505056fea26469706673582212201c319a6dcbae4bbfe869f6a174d83b308470706e80f90bca48791ae8d951d76a64736f6c63430008150033
Deployed Bytecode
0x608060405260043610610249575f3560e01c80638a8c523c11610138578063ca33e64c116100b5578063ec44acf211610079578063ec44acf214610898578063f0fc6bca146108c2578063f2fde38b146108d8578063f708a64f14610900578063f887ea4014610928578063fe6f1b051461095257610250565b8063ca33e64c146107b8578063ce261d10146107e2578063dd62ed3e1461080a578063df20fd4914610846578063e96fada21461086e57610250565b8063a8aa1b31116100fc578063a8aa1b31146106d4578063a9059cbb146106fe578063aa4bde281461073a578063bf56b37114610764578063bfe109281461078e57610250565b80638a8c523c146106185780638da5cb5b1461062e57806395d89b41146106585780639d9241ec14610682578063a4b45c00146106ac57610250565b80634355855a116101c657806370a082311161018a57806370a0823114610526578063715018a61461056257806386cb8fb11461057857806386db0c05146105b4578063893c9f2b146105f057610250565b80634355855a1461041e57806349bc3feb1461045a578063571ac8b01461049657806359b107b9146104d25780636ddd1713146104fc57610250565b80631961cee21161020d5780631961cee21461032a5780631e89d5451461035457806323b872dd1461037c578063313ce567146103b85780633f4218e0146103e257610250565b80630445b6671461025457806306f200031461027e57806306fdde031461029a578063095ea7b3146102c457806318160ddd1461030057610250565b3661025057005b5f80fd5b34801561025f575f80fd5b5061026861097c565b6040516102759190613a42565b60405180910390f35b61029860048036038101906102939190613ac6565b610982565b005b3480156102a5575f80fd5b506102ae6110cc565b6040516102bb9190613b7b565b60405180910390f35b3480156102cf575f80fd5b506102ea60048036038101906102e59190613bc5565b611109565b6040516102f79190613c1d565b60405180910390f35b34801561030b575f80fd5b506103146111f6565b6040516103219190613a42565b60405180910390f35b348015610335575f80fd5b5061033e61121a565b60405161034b9190613a42565b60405180910390f35b34801561035f575f80fd5b5061037a60048036038101906103759190613e36565b6112ae565b005b348015610387575f80fd5b506103a2600480360381019061039d9190613eac565b6113e9565b6040516103af9190613c1d565b60405180910390f35b3480156103c3575f80fd5b506103cc6115d9565b6040516103d99190613f17565b60405180910390f35b3480156103ed575f80fd5b5061040860048036038101906104039190613ac6565b6115e1565b6040516104159190613c1d565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f9190613ac6565b6115fe565b6040516104519190613c1d565b60405180910390f35b348015610465575f80fd5b50610480600480360381019061047b9190613ac6565b61161b565b60405161048d9190613a42565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b79190613ac6565b6116bc565b6040516104c99190613c1d565b60405180910390f35b3480156104dd575f80fd5b506104e66116eb565b6040516104f39190613a42565b60405180910390f35b348015610507575f80fd5b506105106116f1565b60405161051d9190613c1d565b60405180910390f35b348015610531575f80fd5b5061054c60048036038101906105479190613ac6565b611703565b6040516105599190613a42565b60405180910390f35b34801561056d575f80fd5b50610576611749565b005b348015610583575f80fd5b5061059e60048036038101906105999190613ac6565b611897565b6040516105ab9190613c1d565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190613ac6565b6118b4565b6040516105e79190613a42565b60405180910390f35b3480156105fb575f80fd5b5061061660048036038101906106119190613f30565b611955565b005b348015610623575f80fd5b5061062c611a4c565b005b348015610639575f80fd5b50610642611b6e565b60405161064f9190613f6a565b60405180910390f35b348015610663575f80fd5b5061066c611b95565b6040516106799190613b7b565b60405180910390f35b34801561068d575f80fd5b50610696611bd2565b6040516106a39190613a42565b60405180910390f35b3480156106b7575f80fd5b506106d260048036038101906106cd9190613f83565b611bd8565b005b3480156106df575f80fd5b506106e8611cf0565b6040516106f59190613f6a565b60405180910390f35b348015610709575f80fd5b50610724600480360381019061071f9190613bc5565b611d15565b6040516107319190613c1d565b60405180910390f35b348015610745575f80fd5b5061074e611d29565b60405161075b9190613a42565b60405180910390f35b34801561076f575f80fd5b50610778611d2f565b6040516107859190613a42565b60405180910390f35b348015610799575f80fd5b506107a2611d35565b6040516107af919061401c565b60405180910390f35b3480156107c3575f80fd5b506107cc611d5a565b6040516107d99190613f6a565b60405180910390f35b3480156107ed575f80fd5b5061080860048036038101906108039190613bc5565b611d7f565b005b348015610815575f80fd5b50610830600480360381019061082b9190613f83565b611e9a565b60405161083d9190613a42565b60405180910390f35b348015610851575f80fd5b5061086c6004803603810190610867919061405f565b611f1c565b005b348015610879575f80fd5b50610882611fe1565b60405161088f9190613f6a565b60405180910390f35b3480156108a3575f80fd5b506108ac612006565b6040516108b99190613c1d565b60405180910390f35b3480156108cd575f80fd5b506108d6612019565b005b3480156108e3575f80fd5b506108fe60048036038101906108f99190613ac6565b6120a2565b005b34801561090b575f80fd5b506109266004803603810190610921919061409d565b61225f565b005b348015610933575f80fd5b5061093c612537565b60405161094991906140fb565b60405180910390f35b34801561095d575f80fd5b5061096661255c565b6040516109739190613a42565b60405180910390f35b60135481565b61098a612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d9061415e565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae49190614190565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8e9190614190565b6040518363ffffffff1660e01b8152600401610bab9291906141bb565b6020604051808303815f875af1158015610bc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610beb9190614190565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a610e86919061433e565b6437e11d6000610e969190614388565b600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610f7b30611703565b5f80610f85611b6e565b426040518863ffffffff1660e01b8152600401610fa796959493929190614402565b60606040518083038185885af1158015610fc3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fe89190614475565b50505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110889291906144c5565b6020604051808303815f875af11580156110a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c89190614500565b5050565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b5f81600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516111e49190613a42565b60405180910390a36001905092915050565b5f6009600a611205919061433e565b6437e11d60006112159190614388565b905090565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efca2eed6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611285573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a9919061452b565b905090565b6112b6612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113399061415e565b60405180910390fd5b8051825114611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d906145a0565b60405180910390fd5b5f5b82518110156113e4576113d0338483815181106113a8576113a76145be565b5b60200260200101518484815181106113c3576113c26145be565b5b6020026020010151612569565b5080806113dc906145eb565b915050611388565b505050565b5f6009600a6113f8919061433e565b6437e11d60006114089190614388565b600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146115c557611548826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127339092919063ffffffff16565b600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6115d0848484612787565b90509392505050565b5f6009905090565b6010602052805f5260405f205f915054906101000a900460ff1681565b6012602052805f5260405f205f915054906101000a900460ff1681565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352f48158836040518263ffffffff1660e01b81526004016116769190613f6a565b602060405180830381865afa158015611691573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b5919061452b565b9050919050565b5f6116e4826009600a6116cf919061433e565b6437e11d60006116df9190614388565b611109565b9050919050565b60095481565b60145f9054906101000a900460ff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611751612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061415e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6011602052805f5260405f205f915054906101000a900460ff1681565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161190f9190613f6a565b602060405180830381865afa15801561192a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194e919061452b565b9050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db9061467c565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a48573d5f803e3d5ffd5b5050565b611a54612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061415e565b60405180910390fd5b601460019054906101000a900460ff1615611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b27906146e4565b60405180910390fd5b6001601460016101000a81548160ff021916908315150217905550600160145f6101000a81548160ff02191690831515021790555042600d81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b611be0612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c639061415e565b60405180910390fd5b8160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611d21338484612787565b905092915050565b600c5481565b600d5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d87612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a9061415e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611e37611b6e565b836040518363ffffffff1660e01b8152600401611e559291906144c5565b6020604051808303815f875af1158015611e71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e959190614500565b505050565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611f24612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa79061415e565b60405180910390fd5b5f60135411611fbd575f80fd5b8160145f6101000a81548160ff021916908315150217905550806013819055505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460019054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b81526004016120739190613f6a565b5f604051808303815f87803b15801561208a575f80fd5b505af115801561209c573d5f803e3d5ffd5b50505050565b6120aa612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212d9061415e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219b90614772565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612267612562565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea9061415e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561237c575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612384575f80fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550801561246c5760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca96835f6040518363ffffffff1660e01b815260040161243a929190614790565b5f604051808303815f87803b158015612451575f80fd5b505af1158015612463573d5f803e3d5ffd5b50505050612533565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b81526004016125059291906144c5565b5f604051808303815f87803b15801561251c575f80fd5b505af115801561252e573d5f803e3d5ffd5b505050505b5050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f33905090565b5f6125f1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127339092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061268282600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127209190613a42565b60405180910390a3600190509392505050565b5f83831115829061277a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127719190613b7b565b60405180910390fd5b5082840390509392505050565b5f601460029054906101000a900460ff16806127ef575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612806576127ff848484612569565b905061309c565b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156128a4575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129a857601460019054906101000a900460ff166129a7578373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561296757508273ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d90614801565b60405180910390fd5b5b5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a5657600c54612a1483612a0686611703565b6130a390919063ffffffff16565b1115612a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4c90614869565b60405180910390fd5b5b612a5e6130b8565b15612a6c57612a6b61318a565b5b612af3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127339092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612bd1575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612c82575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015612c81575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b15612c8f57839150612d6a565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612d2857612d0c600b54612cfe600954876136bb90919063ffffffff16565b6136d090919063ffffffff16565b9050612d2181856136e590919063ffffffff16565b9150612d69565b612d51600b54612d43600a54876136bb90919063ffffffff16565b6136d090919063ffffffff16565b9050612d6681856136e590919063ffffffff16565b91505b5b612dba82600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e589190613a42565b60405180910390a360125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f715760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600e5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b8152600401612f479291906144c5565b5f604051808303815f87803b158015612f5e575f80fd5b505af1925050508015612f6f575060015b505b60125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166130825760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b81526004016130589291906144c5565b5f604051808303815f87803b15801561306f575f80fd5b505af1925050508015613080575060015b505b5f8111156130955761309486826136fa565b5b6001925050505b9392505050565b5f81836130b09190614887565b905092915050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131235750601460029054906101000a900460ff16155b801561313a575060145f9054906101000a900460ff165b80156131855750601354600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601460026101000a81548160ff0219169083151502179055505f6131bc60026007546136d090919063ffffffff16565b90505f6131e8600b546131da846013546136bb90919063ffffffff16565b6136d090919063ffffffff16565b90505f613200826013546136e590919063ffffffff16565b90506009600a613210919061433e565b6437e11d60006132209190614388565b600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600267ffffffffffffffff8111156132d9576132d8613c3a565b5b6040519080825280602002602001820160405280156133075781602001602082028036833780820191505090505b50905030815f8151811061331e5761331d6145be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133e69190614190565b816001815181106133fa576133f96145be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b815260040161349a959493929190614971565b5f604051808303815f87803b1580156134b1575f80fd5b505af11580156134c3573d5f803e3d5ffd5b505050505f6134db82476136e590919063ffffffff16565b90505f6134f3876008546130a390919063ffffffff16565b90505f61351b8261350d8a866136bb90919063ffffffff16565b6136d090919063ffffffff16565b90505f8711156136295760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a5f8060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016135ab96959493929190614402565b60606040518083038185885af11580156135c7573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906135ec9190614475565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681886040516136209291906149c9565b60405180910390a15b5f4711156136975760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015613695573d5f803e3d5ffd5b505b50505050505050505f601460026101000a81548160ff021916908315150217905550565b5f81836136c89190614388565b905092915050565b5f81836136dd9190614a1d565b905092915050565b5f81836136f29190614a4d565b905092915050565b5f613724600b54613716600654856136bb90919063ffffffff16565b6136d090919063ffffffff16565b90505f81111561390b5761379f81600e5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161387f9190613a42565b60405180910390a360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016138e19190613a42565b5f604051808303815f87803b1580156138f8575f80fd5b505af1925050508015613909575060015b505b61396d61392182846136e590919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130a390919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613a1084866136e590919063ffffffff16565b604051613a1d9190613a42565b60405180910390a3505050565b5f819050919050565b613a3c81613a2a565b82525050565b5f602082019050613a555f830184613a33565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a9582613a6c565b9050919050565b613aa581613a8b565b8114613aaf575f80fd5b50565b5f81359050613ac081613a9c565b92915050565b5f60208284031215613adb57613ada613a64565b5b5f613ae884828501613ab2565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613b28578082015181840152602081019050613b0d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613b4d82613af1565b613b578185613afb565b9350613b67818560208601613b0b565b613b7081613b33565b840191505092915050565b5f6020820190508181035f830152613b938184613b43565b905092915050565b613ba481613a2a565b8114613bae575f80fd5b50565b5f81359050613bbf81613b9b565b92915050565b5f8060408385031215613bdb57613bda613a64565b5b5f613be885828601613ab2565b9250506020613bf985828601613bb1565b9150509250929050565b5f8115159050919050565b613c1781613c03565b82525050565b5f602082019050613c305f830184613c0e565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c7082613b33565b810181811067ffffffffffffffff82111715613c8f57613c8e613c3a565b5b80604052505050565b5f613ca1613a5b565b9050613cad8282613c67565b919050565b5f67ffffffffffffffff821115613ccc57613ccb613c3a565b5b602082029050602081019050919050565b5f80fd5b5f613cf3613cee84613cb2565b613c98565b90508083825260208201905060208402830185811115613d1657613d15613cdd565b5b835b81811015613d3f5780613d2b8882613ab2565b845260208401935050602081019050613d18565b5050509392505050565b5f82601f830112613d5d57613d5c613c36565b5b8135613d6d848260208601613ce1565b91505092915050565b5f67ffffffffffffffff821115613d9057613d8f613c3a565b5b602082029050602081019050919050565b5f613db3613dae84613d76565b613c98565b90508083825260208201905060208402830185811115613dd657613dd5613cdd565b5b835b81811015613dff5780613deb8882613bb1565b845260208401935050602081019050613dd8565b5050509392505050565b5f82601f830112613e1d57613e1c613c36565b5b8135613e2d848260208601613da1565b91505092915050565b5f8060408385031215613e4c57613e4b613a64565b5b5f83013567ffffffffffffffff811115613e6957613e68613a68565b5b613e7585828601613d49565b925050602083013567ffffffffffffffff811115613e9657613e95613a68565b5b613ea285828601613e09565b9150509250929050565b5f805f60608486031215613ec357613ec2613a64565b5b5f613ed086828701613ab2565b9350506020613ee186828701613ab2565b9250506040613ef286828701613bb1565b9150509250925092565b5f60ff82169050919050565b613f1181613efc565b82525050565b5f602082019050613f2a5f830184613f08565b92915050565b5f60208284031215613f4557613f44613a64565b5b5f613f5284828501613bb1565b91505092915050565b613f6481613a8b565b82525050565b5f602082019050613f7d5f830184613f5b565b92915050565b5f8060408385031215613f9957613f98613a64565b5b5f613fa685828601613ab2565b9250506020613fb785828601613ab2565b9150509250929050565b5f819050919050565b5f613fe4613fdf613fda84613a6c565b613fc1565b613a6c565b9050919050565b5f613ff582613fca565b9050919050565b5f61400682613feb565b9050919050565b61401681613ffc565b82525050565b5f60208201905061402f5f83018461400d565b92915050565b61403e81613c03565b8114614048575f80fd5b50565b5f8135905061405981614035565b92915050565b5f806040838503121561407557614074613a64565b5b5f6140828582860161404b565b925050602061409385828601613bb1565b9150509250929050565b5f80604083850312156140b3576140b2613a64565b5b5f6140c085828601613ab2565b92505060206140d18582860161404b565b9150509250929050565b5f6140e582613feb565b9050919050565b6140f5816140db565b82525050565b5f60208201905061410e5f8301846140ec565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614148602083613afb565b915061415382614114565b602082019050919050565b5f6020820190508181035f8301526141758161413c565b9050919050565b5f8151905061418a81613a9c565b92915050565b5f602082840312156141a5576141a4613a64565b5b5f6141b28482850161417c565b91505092915050565b5f6040820190506141ce5f830185613f5b565b6141db6020830184613f5b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115614264578086048111156142405761423f6141e2565b5b600185161561424f5780820291505b808102905061425d8561420f565b9450614224565b94509492505050565b5f8261427c5760019050614337565b81614289575f9050614337565b816001811461429f57600281146142a9576142d8565b6001915050614337565b60ff8411156142bb576142ba6141e2565b5b8360020a9150848211156142d2576142d16141e2565b5b50614337565b5060208310610133831016604e8410600b841016171561430d5782820a905083811115614308576143076141e2565b5b614337565b61431a848484600161421b565b92509050818404811115614331576143306141e2565b5b81810290505b9392505050565b5f61434882613a2a565b915061435383613efc565b92506143807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461426d565b905092915050565b5f61439282613a2a565b915061439d83613a2a565b92508282026143ab81613a2a565b915082820484148315176143c2576143c16141e2565b5b5092915050565b5f819050919050565b5f6143ec6143e76143e2846143c9565b613fc1565b613a2a565b9050919050565b6143fc816143d2565b82525050565b5f60c0820190506144155f830189613f5b565b6144226020830188613a33565b61442f60408301876143f3565b61443c60608301866143f3565b6144496080830185613f5b565b61445660a0830184613a33565b979650505050505050565b5f8151905061446f81613b9b565b92915050565b5f805f6060848603121561448c5761448b613a64565b5b5f61449986828701614461565b93505060206144aa86828701614461565b92505060406144bb86828701614461565b9150509250925092565b5f6040820190506144d85f830185613f5b565b6144e56020830184613a33565b9392505050565b5f815190506144fa81614035565b92915050565b5f6020828403121561451557614514613a64565b5b5f614522848285016144ec565b91505092915050565b5f602082840312156145405761453f613a64565b5b5f61454d84828501614461565b91505092915050565b7f496e76616c6964000000000000000000000000000000000000000000000000005f82015250565b5f61458a600783613afb565b915061459582614556565b602082019050919050565b5f6020820190508181035f8301526145b78161457e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6145f582613a2a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614627576146266141e2565b5b600182019050919050565b7f696e76616c6964000000000000000000000000000000000000000000000000005f82015250565b5f614666600783613afb565b915061467182614632565b602082019050919050565b5f6020820190508181035f8301526146938161465a565b9050919050565b7f416c726561647920656e61626c656400000000000000000000000000000000005f82015250565b5f6146ce600f83613afb565b91506146d98261469a565b602082019050919050565b5f6020820190508181035f8301526146fb816146c2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61475c602683613afb565b915061476782614702565b604082019050919050565b5f6020820190508181035f83015261478981614750565b9050919050565b5f6040820190506147a35f830185613f5b565b6147b060208301846143f3565b9392505050565b7f54726164696e672069732064697361626c6500000000000000000000000000005f82015250565b5f6147eb601283613afb565b91506147f6826147b7565b602082019050919050565b5f6020820190508181035f830152614818816147df565b9050919050565b7f4d61782057616c6c6574206c696d6974206578636565647300000000000000005f82015250565b5f614853601883613afb565b915061485e8261481f565b602082019050919050565b5f6020820190508181035f83015261488081614847565b9050919050565b5f61489182613a2a565b915061489c83613a2a565b92508282019050808211156148b4576148b36141e2565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6148ec81613a8b565b82525050565b5f6148fd83836148e3565b60208301905092915050565b5f602082019050919050565b5f61491f826148ba565b61492981856148c4565b9350614934836148d4565b805f5b8381101561496457815161494b88826148f2565b975061495683614909565b925050600181019050614937565b5085935050505092915050565b5f60a0820190506149845f830188613a33565b61499160208301876143f3565b81810360408301526149a38186614915565b90506149b26060830185613f5b565b6149bf6080830184613a33565b9695505050505050565b5f6040820190506149dc5f830185613a33565b6149e96020830184613a33565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a2782613a2a565b9150614a3283613a2a565b925082614a4257614a416149f0565b5b828204905092915050565b5f614a5782613a2a565b9150614a6283613a2a565b9250828203905081811115614a7a57614a796141e2565b5b9291505056fea2646970667358221220d030ca5e826be6a6034cf33e6c525096c8c01b423fef7433ed46e530afbe2ca064736f6c63430008150033
Deployed Bytecode Sourcemap
10938:11919:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12070:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20668:807;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13285:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13694:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12967:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20150:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22532:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14257:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13077:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11911:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12013:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19812:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13943:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11559:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12126:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13387:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5928:157;;;;;;;;;;;;;:::i;:::-;;11961:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19978:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21683:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21483:192;;;;;;;;;;;;;:::i;:::-;;5714:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13179:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11599:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22047:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11323:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14068:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11687:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11751:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11247:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11349:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21872:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13514:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22307:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11392:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12156:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19714:90;;;;;;;;;;;;;:::i;:::-;;6093:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20285:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11292:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11640:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12070:49;;;;:::o;20668:807::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20758:7:::1;20738:6;;:28;;;;;;;;;;;;;;;;;;20796:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20784:40;;;20847:4;20867:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20784:107;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20777:4;;:114;;;;;;;;;;;;;;;;;;20933:4;20902:11;:28;20922:6;;;;;;;;;;;20902:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20973:4;20948:16;:22;20965:4;;;;;;;;;;;20948:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21024:4;20988:16;:33;21013:6;;;;;;;;;;;20988:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;21061:4;21039:13;:19;21053:4;;;;;;;;;;;21039:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;21109:4;21076:13;:30;21098:6;;;;;;;;;;;21076:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;11157:1;11223:2;:15;;;;:::i;:::-;11205;:33;;;;:::i;:::-;21124:11;:26;21144:4;21124:26;;;;;;;;;;;;;;;:43;21159:6;;;;;;;;;;;21124:43;;;;;;;;;;;;;;;:58;;;;21193:6;;;;;;;;;;;:22;;;21223:9;21256:4;21276:24;21294:4;21276:9;:24::i;:::-;21315:1;21331::::0;21347:7:::1;:5;:7::i;:::-;21369:15;21193:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21421:4;;;;;;;;;;;21406:28;;;21443:6;;;;;;;;;;;21452:14;21406:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20668:807:::0;:::o;13285:94::-;13333:13;13366:5;;;;;;;;;;;;;;;;;13359:12;;13285:94;:::o;13694:241::-;13794:4;13846:6;13811:11;:23;13823:10;13811:23;;;;;;;;;;;;;;;:32;13835:7;13811:32;;;;;;;;;;;;;;;:41;;;;13889:7;13868:37;;13877:10;13868:37;;;13898:6;13868:37;;;;;;:::i;:::-;;;;;;;;13923:4;13916:11;;13694:241;;;;:::o;12967:102::-;13022:7;11157:1;11223:2;:15;;;;:::i;:::-;11205;:33;;;;:::i;:::-;13042:19;;12967:102;:::o;20150:127::-;20212:7;20239:11;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20232:37;;20150:127;:::o;22532:322::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22690:7:::1;:14;22671:8;:15;:33;22663:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;22732:9;22727:120;22747:8;:15;22743:1;:19;22727:120;;;22784:51;22799:10;22811:8;22820:1;22811:11;;;;;;;;:::i;:::-;;;;;;;;22824:7;22832:1;22824:10;;;;;;;;:::i;:::-;;;;;;;;22784:14;:51::i;:::-;;22764:3;;;;;:::i;:::-;;;;22727:120;;;;22532:322:::0;;:::o;14257:419::-;14391:4;11157:1;11223:2;:15;;;;:::i;:::-;11205;:33;;;;:::i;:::-;14412:11;:19;14424:6;14412:19;;;;;;;;;;;;;;;:31;14432:10;14412:31;;;;;;;;;;;;;;;;:47;14408:201;;14510:87;14564:6;14510:87;;;;;;;;;;;;;;;;;:11;:19;14522:6;14510:19;;;;;;;;;;;;;;;:31;14530:10;14510:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;14476:11;:19;14488:6;14476:19;;;;;;;;;;;;;;;:31;14496:10;14476:31;;;;;;;;;;;;;;;:121;;;;14408:201;14628:40;14642:6;14650:9;14661:6;14628:13;:40::i;:::-;14621:47;;14257:419;;;;;:::o;13077:94::-;13129:5;11157:1;13147:16;;13077:94;:::o;11911:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;12013:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;19812:158::-;19895:7;19922:11;;;;;;;;;;;:27;;;19950:11;19922:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19915:47;;19812:158;;;:::o;13943:117::-;13998:4;14022:30;14030:7;11157:1;11223:2;:15;;;;:::i;:::-;11205;:33;;;;:::i;:::-;14022:7;:30::i;:::-;14015:37;;13943:117;;;:::o;11559:33::-;;;;:::o;12126:23::-;;;;;;;;;;;;;:::o;13387:119::-;13453:7;13480:9;:18;13490:7;13480:18;;;;;;;;;;;;;;;;13473:25;;13387:119;;;:::o;5928:157::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6035:1:::1;5998:40;;6019:6;::::0;::::1;;;;;;;;5998:40;;;;;;;;;;;;6074:1;6049:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;5928:157::o:0;11961:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19978:164::-;20065:7;20092:11;;;;;;;;;;;:29;;;20122:11;20092:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20085:49;;19978:164;;;:::o;21683:181::-;21765:21;;;;;;;;;;;21751:35;;:10;:35;;;21743:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;21817:21;;;;;;;;;;;21809:39;;:47;21849:6;21809:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21683:181;:::o;21483:192::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21547:7:::1;;;;;;;;;;;21546:8;21538:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;21595:4;21585:7;;:14;;;;;;;;;;;;;;;;;;21624:4;21610:11;;:18;;;;;;;;;;;;;;;;;;21652:15;21639:10;:28;;;;21483:192::o:0;5714:79::-;5752:7;5779:6;;;;;;;;;;;5772:13;;5714:79;:::o;13179:98::-;13229:13;13262:7;;;;;;;;;;;;;;;;;13255:14;;13179:98;:::o;11599:34::-;;;;:::o;22047:252::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22214:22:::1;22190:21;;:46;;;;;;;;;;;;;;;;;;22270:21;22247:20;;:44;;;;;;;;;;;;;;;;;;22047:252:::0;;:::o;11323:19::-;;;;;;;;;;;;;:::o;14068:181::-;14173:4;14197:44;14211:10;14223:9;14234:6;14197:13;:44::i;:::-;14190:51;;14068:181;;;;:::o;11687:57::-;;;;:::o;11751:25::-;;;;:::o;11247:38::-;;;;;;;;;;;;;:::o;11349:36::-;;;;;;;;;;;;;:::o;21872:167::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21999:5:::1;21984:30;;;22015:7;:5;:7::i;:::-;22024:6;21984:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21872:167:::0;;:::o;13514:172::-;13623:7;13650:11;:19;13662:6;13650:19;;;;;;;;;;;;;;;:28;13670:7;13650:28;;;;;;;;;;;;;;;;13643:35;;13514:172;;;;:::o;22307:217::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22447:1:::1;22431:13;;:17;22423:26;;;::::0;::::1;;22474:8;22460:11;;:22;;;;;;;;;;;;;;;;;;22509:7;22493:13;:23;;;;22307:217:::0;;:::o;11392:35::-;;;;;;;;;;;;;:::o;12156:19::-;;;;;;;;;;;;;:::o;19714:90::-;19759:11;;;;;;;;;;;:25;;;19785:10;19759:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19714:90::o;6093:281::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6216:1:::1;6196:22;;:8;:22;;::::0;6174:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6329:8;6300:38;;6321:6;::::0;::::1;;;;;;;;6300:38;;;;;;;;;;;;6358:8;6349:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6093:281:::0;:::o;20285:375::-;5851:12;:10;:12::i;:::-;5841:22;;:6;;;;;;;;;;:22;;;5833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20424:4:::1;20406:23;;:6;:23;;;;:41;;;;;20443:4;;;;;;;;;;;20433:14;;:6;:14;;;;20406:41;20398:50;;;::::0;::::1;;20486:6;20459:16;:24;20476:6;20459:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20507:6;20503:150;;;20530:11;;;;;;;;;;;:20;;;20551:6;20559:1;20530:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20503:150;;;20594:11;;;;;;;;;;;:20;;;20615:6;20623:9;:17;20633:6;20623:17;;;;;;;;;;;;;;;;20594:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20503:150;20285:375:::0;;:::o;11292:24::-;;;;;;;;;;;;;:::o;11640:38::-;;;;:::o;5050:115::-;5103:15;5146:10;5131:26;;5050:115;:::o;16817:401::-;16944:4;16981:90;17017:6;16981:90;;;;;;;;;;;;;;;;;:9;:17;16991:6;16981:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;16961:9;:17;16971:6;16961:17;;;;;;;;;;;;;;;:110;;;;17105:32;17130:6;17105:9;:20;17115:9;17105:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17082:9;:20;17092:9;17082:20;;;;;;;;;;;;;;;:55;;;;17170:9;17153:35;;17162:6;17153:35;;;17181:6;17153:35;;;;;;:::i;:::-;;;;;;;;17206:4;17199:11;;16817:401;;;;;:::o;2235:240::-;2355:7;2413:1;2408;:6;;2416:12;2400:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2455:1;2451;:5;2444:12;;2235:240;;;;;:::o;14684:2125::-;14810:4;14831:6;;;;;;;;;;;:40;;;;14859:11;;;;;;;;;;;14841:30;;:6;:30;;;14831:40;14827:121;;;14895:41;14910:6;14918:9;14929:6;14895:14;:41::i;:::-;14888:48;;;;14827:121;14973:11;:19;14985:6;14973:19;;;;;;;;;;;;;;;;;;;;;;;;;14972:20;:47;;;;;14997:11;:22;15009:9;14997:22;;;;;;;;;;;;;;;;;;;;;;;;;14996:23;14972:47;14968:299;;;15085:7;;;;;;;;;;;15080:176;;15151:6;15143:14;;:4;;;;;;;;;;;:14;;;;:35;;;;;15169:9;15161:17;;:4;;;;;;;;;;;:17;;;;15143:35;15113:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;15080:176;14968:299;15284:13;:24;15298:9;15284:24;;;;;;;;;;;;;;;;;;;;;;;;;15279:195;;15387:15;;15351:32;15376:6;15351:20;15361:9;15351;:20::i;:::-;:24;;:32;;;;:::i;:::-;:51;;15325:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;15279:195;15492:16;:14;:16::i;:::-;15488:59;;;15525:10;:8;:10::i;:::-;15488:59;15579:90;15615:6;15579:90;;;;;;;;;;;;;;;;;:9;:17;15589:6;15579:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;15559:9;:17;15569:6;15559:17;;;;;;;;;;;;;;;:110;;;;15682:22;15715:17;15761:11;:19;15773:6;15761:19;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;15797:11;:22;15809:9;15797:22;;;;;;;;;;;;;;;;;;;;;;;;;15761:58;:112;;;;15847:4;;;;;;;;;;;15837:14;;:6;:14;;;;:35;;;;;15868:4;;;;;;;;;;;15855:17;;:9;:17;;;;15837:35;15761:112;15743:545;;;15917:6;15900:23;;15743:545;;;15970:4;;;;;;;;;;;15960:14;;:6;:14;;;15956:321;;16007:43;16035:14;;16007:23;16018:11;;16007:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;15995:55;;16086:21;16097:9;16086:6;:10;;:21;;;;:::i;:::-;16069:38;;15956:321;;;16160:44;16189:14;;16160:24;16171:12;;16160:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;16148:56;;16240:21;16251:9;16240:6;:10;;:21;;;;:::i;:::-;16223:38;;15956:321;15743:545;16323:40;16348:14;16323:9;:20;16333:9;16323:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16300:9;:20;16310:9;16300:20;;;;;;;;;;;;;;;:63;;;;16396:9;16379:43;;16388:6;16379:43;;;16407:14;16379:43;;;;;;:::i;:::-;;;;;;;;16440:16;:24;16457:6;16440:24;;;;;;;;;;;;;;;;;;;;;;;;;16435:120;;16485:11;;;;;;;;;;;:20;;;16506:6;16514:9;:17;16524:6;16514:17;;;;;;;;;;;;;;;;16485:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16481:63;16435:120;16570:16;:27;16587:9;16570:27;;;;;;;;;;;;;;;;;;;;;;;;;16565:159;;16635:11;;;;;;;;;;;:20;;;16656:9;16667;:20;16677:9;16667:20;;;;;;;;;;;;;;;;16635:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16614:99;16565:159;16750:1;16738:9;:13;16734:45;;;16753:26;16761:6;16769:9;16753:7;:26::i;:::-;16734:45;16797:4;16790:11;;;;14684:2125;;;;;;:::o;1705:98::-;1763:7;1794:1;1790;:5;;;;:::i;:::-;1783:12;;1705:98;;;;:::o;18021:222::-;18070:4;18121;;;;;;;;;;;18107:18;;:10;:18;;;;:42;;;;;18143:6;;;;;;;;;;;18142:7;18107:42;:70;;;;;18166:11;;;;;;;;;;;18107:70;:128;;;;;18222:13;;18194:9;:24;18212:4;18194:24;;;;;;;;;;;;;;;;:41;;18107:128;18087:148;;18021:222;:::o;18251:1455::-;12240:4;12231:6;;:13;;;;;;;;;;;;;;;;;;18300:14:::1;18317:24;18339:1;18317:17;;:21;;:24;;;;:::i;:::-;18300:41;;18352:23;18378:45;18408:14;;18378:25;18396:6;18378:13;;:17;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;18352:71;;18436:20;18459:34;18477:15;18459:13;;:17;;:34;;;;:::i;:::-;18436:57;;11157:1;11223:2;:15;;;;:::i;:::-;11205;:33;;;;:::i;:::-;18504:11;:26;18524:4;18504:26;;;;;;;;;;;;;;;:43;18539:6;;;;;;;;;;;18504:43;;;;;;;;;;;;;;;:58;;;;18573:21;18611:1;18597:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18573:40;;18642:4;18624;18629:1;18624:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18668:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18658:4;18663:1;18658:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18692:21;18716;18692:45;;18750:6;;;;;;;;;;;:57;;;18822:12;18849:1;18865:4;18892;18912:15;18750:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18951:17;18971:40;18997:13;18971:21;:25;;:40;;;;:::i;:::-;18951:60;;19024:25;19052:29;19074:6;19052:17;;:21;;:29;;;;:::i;:::-;19024:57;;19094:26;19123:68;19163:17;19123:21;19137:6;19123:9;:13;;:21;;;;:::i;:::-;:25;;:68;;;;:::i;:::-;19094:97;;19226:1;19208:15;:19;19204:364;;;19244:6;;;;;;;;;;;:22;;;19274:18;19320:4;19344:15;19378:1;19398::::0;19418:21:::1;;;;;;;;;;;19458:15;19244:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19508:48;19520:18;19540:15;19508:48;;;;;;;:::i;:::-;;;;;;;;19204:364;19608:1;19584:21;:25;19580:119;;;19634:20;;;;;;;;;;;19626:38;;:61;19665:21;19626:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19580:119;18289:1417;;;;;;;;12276:5:::0;12267:6;;:14;;;;;;;;;;;;;;;;;;18251:1455::o;1917:98::-;1975:7;2006:1;2002;:5;;;;:::i;:::-;1995:12;;1917:98;;;;:::o;2023:::-;2081:7;2112:1;2108;:5;;;;:::i;:::-;2101:12;;2023:98;;;;:::o;1811:::-;1869:7;1900:1;1896;:5;;;;:::i;:::-;1889:12;;1811:98;;;;:::o;17226:787::-;17298:26;17327:77;17379:14;;17327:33;17341:18;;17327:9;:13;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;17298:106;;17440:1;17419:18;:22;17415:382;;;17492:73;17546:18;17492:9;:31;17510:11;;;;;;;;;;;17492:31;;;;;;;;;;;;;;;;:53;;:73;;;;:::i;:::-;17458:9;:31;17476:11;;;;;;;;;;;17458:31;;;;;;;;;;;;;;;:107;;;;17652:11;;;;;;;;;;;17585:131;;17620:4;17585:131;;;17683:18;17585:131;;;;;;:::i;:::-;;;;;;;;17735:11;;;;;;;;;;;:19;;;17755:18;17735:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17731:55;17415:382;17836:87;17879:33;17893:18;17879:9;:13;;:33;;;;:::i;:::-;17836:9;:24;17854:4;17836:24;;;;;;;;;;;;;;;;:28;;:87;;;;:::i;:::-;17809:9;:24;17827:4;17809:24;;;;;;;;;;;;;;;:114;;;;17964:4;17939:66;;17948:6;17939:66;;;17971:33;17985:18;17971:9;:13;;:33;;;;:::i;:::-;17939:66;;;;;;:::i;:::-;;;;;;;;17287:726;17226:787;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:246::-;1972:1;1982:113;1996:6;1993:1;1990:13;1982:113;;;2081:1;2076:3;2072:11;2066:18;2062:1;2057:3;2053:11;2046:39;2018:2;2015:1;2011:10;2006:15;;1982:113;;;2129:1;2120:6;2115:3;2111:16;2104:27;1953:184;1891:246;;;:::o;2143:102::-;2184:6;2235:2;2231:7;2226:2;2219:5;2215:14;2211:28;2201:38;;2143:102;;;:::o;2251:377::-;2339:3;2367:39;2400:5;2367:39;:::i;:::-;2422:71;2486:6;2481:3;2422:71;:::i;:::-;2415:78;;2502:65;2560:6;2555:3;2548:4;2541:5;2537:16;2502:65;:::i;:::-;2592:29;2614:6;2592:29;:::i;:::-;2587:3;2583:39;2576:46;;2343:285;2251:377;;;;:::o;2634:313::-;2747:4;2785:2;2774:9;2770:18;2762:26;;2834:9;2828:4;2824:20;2820:1;2809:9;2805:17;2798:47;2862:78;2935:4;2926:6;2862:78;:::i;:::-;2854:86;;2634:313;;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:117::-;4242:1;4239;4232:12;4256:180;4304:77;4301:1;4294:88;4401:4;4398:1;4391:15;4425:4;4422:1;4415:15;4442:281;4525:27;4547:4;4525:27;:::i;:::-;4517:6;4513:40;4655:6;4643:10;4640:22;4619:18;4607:10;4604:34;4601:62;4598:88;;;4666:18;;:::i;:::-;4598:88;4706:10;4702:2;4695:22;4485:238;4442:281;;:::o;4729:129::-;4763:6;4790:20;;:::i;:::-;4780:30;;4819:33;4847:4;4839:6;4819:33;:::i;:::-;4729:129;;;:::o;4864:311::-;4941:4;5031:18;5023:6;5020:30;5017:56;;;5053:18;;:::i;:::-;5017:56;5103:4;5095:6;5091:17;5083:25;;5163:4;5157;5153:15;5145:23;;4864:311;;;:::o;5181:117::-;5290:1;5287;5280:12;5321:710;5417:5;5442:81;5458:64;5515:6;5458:64;:::i;:::-;5442:81;:::i;:::-;5433:90;;5543:5;5572:6;5565:5;5558:21;5606:4;5599:5;5595:16;5588:23;;5659:4;5651:6;5647:17;5639:6;5635:30;5688:3;5680:6;5677:15;5674:122;;;5707:79;;:::i;:::-;5674:122;5822:6;5805:220;5839:6;5834:3;5831:15;5805:220;;;5914:3;5943:37;5976:3;5964:10;5943:37;:::i;:::-;5938:3;5931:50;6010:4;6005:3;6001:14;5994:21;;5881:144;5865:4;5860:3;5856:14;5849:21;;5805:220;;;5809:21;5423:608;;5321:710;;;;;:::o;6054:370::-;6125:5;6174:3;6167:4;6159:6;6155:17;6151:27;6141:122;;6182:79;;:::i;:::-;6141:122;6299:6;6286:20;6324:94;6414:3;6406:6;6399:4;6391:6;6387:17;6324:94;:::i;:::-;6315:103;;6131:293;6054:370;;;;:::o;6430:311::-;6507:4;6597:18;6589:6;6586:30;6583:56;;;6619:18;;:::i;:::-;6583:56;6669:4;6661:6;6657:17;6649:25;;6729:4;6723;6719:15;6711:23;;6430:311;;;:::o;6764:710::-;6860:5;6885:81;6901:64;6958:6;6901:64;:::i;:::-;6885:81;:::i;:::-;6876:90;;6986:5;7015:6;7008:5;7001:21;7049:4;7042:5;7038:16;7031:23;;7102:4;7094:6;7090:17;7082:6;7078:30;7131:3;7123:6;7120:15;7117:122;;;7150:79;;:::i;:::-;7117:122;7265:6;7248:220;7282:6;7277:3;7274:15;7248:220;;;7357:3;7386:37;7419:3;7407:10;7386:37;:::i;:::-;7381:3;7374:50;7453:4;7448:3;7444:14;7437:21;;7324:144;7308:4;7303:3;7299:14;7292:21;;7248:220;;;7252:21;6866:608;;6764:710;;;;;:::o;7497:370::-;7568:5;7617:3;7610:4;7602:6;7598:17;7594:27;7584:122;;7625:79;;:::i;:::-;7584:122;7742:6;7729:20;7767:94;7857:3;7849:6;7842:4;7834:6;7830:17;7767:94;:::i;:::-;7758:103;;7574:293;7497:370;;;;:::o;7873:894::-;7991:6;7999;8048:2;8036:9;8027:7;8023:23;8019:32;8016:119;;;8054:79;;:::i;:::-;8016:119;8202:1;8191:9;8187:17;8174:31;8232:18;8224:6;8221:30;8218:117;;;8254:79;;:::i;:::-;8218:117;8359:78;8429:7;8420:6;8409:9;8405:22;8359:78;:::i;:::-;8349:88;;8145:302;8514:2;8503:9;8499:18;8486:32;8545:18;8537:6;8534:30;8531:117;;;8567:79;;:::i;:::-;8531:117;8672:78;8742:7;8733:6;8722:9;8718:22;8672:78;:::i;:::-;8662:88;;8457:303;7873:894;;;;;:::o;8773:619::-;8850:6;8858;8866;8915:2;8903:9;8894:7;8890:23;8886:32;8883:119;;;8921:79;;:::i;:::-;8883:119;9041:1;9066:53;9111:7;9102:6;9091:9;9087:22;9066:53;:::i;:::-;9056:63;;9012:117;9168:2;9194:53;9239:7;9230:6;9219:9;9215:22;9194:53;:::i;:::-;9184:63;;9139:118;9296:2;9322:53;9367:7;9358:6;9347:9;9343:22;9322:53;:::i;:::-;9312:63;;9267:118;8773:619;;;;;:::o;9398:86::-;9433:7;9473:4;9466:5;9462:16;9451:27;;9398:86;;;:::o;9490:112::-;9573:22;9589:5;9573:22;:::i;:::-;9568:3;9561:35;9490:112;;:::o;9608:214::-;9697:4;9735:2;9724:9;9720:18;9712:26;;9748:67;9812:1;9801:9;9797:17;9788:6;9748:67;:::i;:::-;9608:214;;;;:::o;9828:329::-;9887:6;9936:2;9924:9;9915:7;9911:23;9907:32;9904:119;;;9942:79;;:::i;:::-;9904:119;10062:1;10087:53;10132:7;10123:6;10112:9;10108:22;10087:53;:::i;:::-;10077:63;;10033:117;9828:329;;;;:::o;10163:118::-;10250:24;10268:5;10250:24;:::i;:::-;10245:3;10238:37;10163:118;;:::o;10287:222::-;10380:4;10418:2;10407:9;10403:18;10395:26;;10431:71;10499:1;10488:9;10484:17;10475:6;10431:71;:::i;:::-;10287:222;;;;:::o;10515:474::-;10583:6;10591;10640:2;10628:9;10619:7;10615:23;10611:32;10608:119;;;10646:79;;:::i;:::-;10608:119;10766:1;10791:53;10836:7;10827:6;10816:9;10812:22;10791:53;:::i;:::-;10781:63;;10737:117;10893:2;10919:53;10964:7;10955:6;10944:9;10940:22;10919:53;:::i;:::-;10909:63;;10864:118;10515:474;;;;;:::o;10995:60::-;11023:3;11044:5;11037:12;;10995:60;;;:::o;11061:142::-;11111:9;11144:53;11162:34;11171:24;11189:5;11171:24;:::i;:::-;11162:34;:::i;:::-;11144:53;:::i;:::-;11131:66;;11061:142;;;:::o;11209:126::-;11259:9;11292:37;11323:5;11292:37;:::i;:::-;11279:50;;11209:126;;;:::o;11341:154::-;11419:9;11452:37;11483:5;11452:37;:::i;:::-;11439:50;;11341:154;;;:::o;11501:187::-;11616:65;11675:5;11616:65;:::i;:::-;11611:3;11604:78;11501:187;;:::o;11694:278::-;11815:4;11853:2;11842:9;11838:18;11830:26;;11866:99;11962:1;11951:9;11947:17;11938:6;11866:99;:::i;:::-;11694:278;;;;:::o;11978:116::-;12048:21;12063:5;12048:21;:::i;:::-;12041:5;12038:32;12028:60;;12084:1;12081;12074:12;12028:60;11978:116;:::o;12100:133::-;12143:5;12181:6;12168:20;12159:29;;12197:30;12221:5;12197:30;:::i;:::-;12100:133;;;;:::o;12239:468::-;12304:6;12312;12361:2;12349:9;12340:7;12336:23;12332:32;12329:119;;;12367:79;;:::i;:::-;12329:119;12487:1;12512:50;12554:7;12545:6;12534:9;12530:22;12512:50;:::i;:::-;12502:60;;12458:114;12611:2;12637:53;12682:7;12673:6;12662:9;12658:22;12637:53;:::i;:::-;12627:63;;12582:118;12239:468;;;;;:::o;12713:::-;12778:6;12786;12835:2;12823:9;12814:7;12810:23;12806:32;12803:119;;;12841:79;;:::i;:::-;12803:119;12961:1;12986:53;13031:7;13022:6;13011:9;13007:22;12986:53;:::i;:::-;12976:63;;12932:117;13088:2;13114:50;13156:7;13147:6;13136:9;13132:22;13114:50;:::i;:::-;13104:60;;13059:115;12713:468;;;;;:::o;13187:144::-;13255:9;13288:37;13319:5;13288:37;:::i;:::-;13275:50;;13187:144;;;:::o;13337:167::-;13442:55;13491:5;13442:55;:::i;:::-;13437:3;13430:68;13337:167;;:::o;13510:258::-;13621:4;13659:2;13648:9;13644:18;13636:26;;13672:89;13758:1;13747:9;13743:17;13734:6;13672:89;:::i;:::-;13510:258;;;;:::o;13774:182::-;13914:34;13910:1;13902:6;13898:14;13891:58;13774:182;:::o;13962:366::-;14104:3;14125:67;14189:2;14184:3;14125:67;:::i;:::-;14118:74;;14201:93;14290:3;14201:93;:::i;:::-;14319:2;14314:3;14310:12;14303:19;;13962:366;;;:::o;14334:419::-;14500:4;14538:2;14527:9;14523:18;14515:26;;14587:9;14581:4;14577:20;14573:1;14562:9;14558:17;14551:47;14615:131;14741:4;14615:131;:::i;:::-;14607:139;;14334:419;;;:::o;14759:143::-;14816:5;14847:6;14841:13;14832:22;;14863:33;14890:5;14863:33;:::i;:::-;14759:143;;;;:::o;14908:351::-;14978:6;15027:2;15015:9;15006:7;15002:23;14998:32;14995:119;;;15033:79;;:::i;:::-;14995:119;15153:1;15178:64;15234:7;15225:6;15214:9;15210:22;15178:64;:::i;:::-;15168:74;;15124:128;14908:351;;;;:::o;15265:332::-;15386:4;15424:2;15413:9;15409:18;15401:26;;15437:71;15505:1;15494:9;15490:17;15481:6;15437:71;:::i;:::-;15518:72;15586:2;15575:9;15571:18;15562:6;15518:72;:::i;:::-;15265:332;;;;;:::o;15603:180::-;15651:77;15648:1;15641:88;15748:4;15745:1;15738:15;15772:4;15769:1;15762:15;15789:102;15831:8;15878:5;15875:1;15871:13;15850:34;;15789:102;;;:::o;15897:848::-;15958:5;15965:4;15989:6;15980:15;;16013:5;16004:14;;16027:712;16048:1;16038:8;16035:15;16027:712;;;16143:4;16138:3;16134:14;16128:4;16125:24;16122:50;;;16152:18;;:::i;:::-;16122:50;16202:1;16192:8;16188:16;16185:451;;;16617:4;16610:5;16606:16;16597:25;;16185:451;16667:4;16661;16657:15;16649:23;;16697:32;16720:8;16697:32;:::i;:::-;16685:44;;16027:712;;;15897:848;;;;;;;:::o;16751:1073::-;16805:5;16996:8;16986:40;;17017:1;17008:10;;17019:5;;16986:40;17045:4;17035:36;;17062:1;17053:10;;17064:5;;17035:36;17131:4;17179:1;17174:27;;;;17215:1;17210:191;;;;17124:277;;17174:27;17192:1;17183:10;;17194:5;;;17210:191;17255:3;17245:8;17242:17;17239:43;;;17262:18;;:::i;:::-;17239:43;17311:8;17308:1;17304:16;17295:25;;17346:3;17339:5;17336:14;17333:40;;;17353:18;;:::i;:::-;17333:40;17386:5;;;17124:277;;17510:2;17500:8;17497:16;17491:3;17485:4;17482:13;17478:36;17460:2;17450:8;17447:16;17442:2;17436:4;17433:12;17429:35;17413:111;17410:246;;;17566:8;17560:4;17556:19;17547:28;;17601:3;17594:5;17591:14;17588:40;;;17608:18;;:::i;:::-;17588:40;17641:5;;17410:246;17681:42;17719:3;17709:8;17703:4;17700:1;17681:42;:::i;:::-;17666:57;;;;17755:4;17750:3;17746:14;17739:5;17736:25;17733:51;;;17764:18;;:::i;:::-;17733:51;17813:4;17806:5;17802:16;17793:25;;16751:1073;;;;;;:::o;17830:281::-;17888:5;17912:23;17930:4;17912:23;:::i;:::-;17904:31;;17956:25;17972:8;17956:25;:::i;:::-;17944:37;;18000:104;18037:66;18027:8;18021:4;18000:104;:::i;:::-;17991:113;;17830:281;;;;:::o;18117:410::-;18157:7;18180:20;18198:1;18180:20;:::i;:::-;18175:25;;18214:20;18232:1;18214:20;:::i;:::-;18209:25;;18269:1;18266;18262:9;18291:30;18309:11;18291:30;:::i;:::-;18280:41;;18470:1;18461:7;18457:15;18454:1;18451:22;18431:1;18424:9;18404:83;18381:139;;18500:18;;:::i;:::-;18381:139;18165:362;18117:410;;;;:::o;18533:85::-;18578:7;18607:5;18596:16;;18533:85;;;:::o;18624:158::-;18682:9;18715:61;18733:42;18742:32;18768:5;18742:32;:::i;:::-;18733:42;:::i;:::-;18715:61;:::i;:::-;18702:74;;18624:158;;;:::o;18788:147::-;18883:45;18922:5;18883:45;:::i;:::-;18878:3;18871:58;18788:147;;:::o;18941:807::-;19190:4;19228:3;19217:9;19213:19;19205:27;;19242:71;19310:1;19299:9;19295:17;19286:6;19242:71;:::i;:::-;19323:72;19391:2;19380:9;19376:18;19367:6;19323:72;:::i;:::-;19405:80;19481:2;19470:9;19466:18;19457:6;19405:80;:::i;:::-;19495;19571:2;19560:9;19556:18;19547:6;19495:80;:::i;:::-;19585:73;19653:3;19642:9;19638:19;19629:6;19585:73;:::i;:::-;19668;19736:3;19725:9;19721:19;19712:6;19668:73;:::i;:::-;18941:807;;;;;;;;;:::o;19754:143::-;19811:5;19842:6;19836:13;19827:22;;19858:33;19885:5;19858:33;:::i;:::-;19754:143;;;;:::o;19903:663::-;19991:6;19999;20007;20056:2;20044:9;20035:7;20031:23;20027:32;20024:119;;;20062:79;;:::i;:::-;20024:119;20182:1;20207:64;20263:7;20254:6;20243:9;20239:22;20207:64;:::i;:::-;20197:74;;20153:128;20320:2;20346:64;20402:7;20393:6;20382:9;20378:22;20346:64;:::i;:::-;20336:74;;20291:129;20459:2;20485:64;20541:7;20532:6;20521:9;20517:22;20485:64;:::i;:::-;20475:74;;20430:129;19903:663;;;;;:::o;20572:332::-;20693:4;20731:2;20720:9;20716:18;20708:26;;20744:71;20812:1;20801:9;20797:17;20788:6;20744:71;:::i;:::-;20825:72;20893:2;20882:9;20878:18;20869:6;20825:72;:::i;:::-;20572:332;;;;;:::o;20910:137::-;20964:5;20995:6;20989:13;20980:22;;21011:30;21035:5;21011:30;:::i;:::-;20910:137;;;;:::o;21053:345::-;21120:6;21169:2;21157:9;21148:7;21144:23;21140:32;21137:119;;;21175:79;;:::i;:::-;21137:119;21295:1;21320:61;21373:7;21364:6;21353:9;21349:22;21320:61;:::i;:::-;21310:71;;21266:125;21053:345;;;;:::o;21404:351::-;21474:6;21523:2;21511:9;21502:7;21498:23;21494:32;21491:119;;;21529:79;;:::i;:::-;21491:119;21649:1;21674:64;21730:7;21721:6;21710:9;21706:22;21674:64;:::i;:::-;21664:74;;21620:128;21404:351;;;;:::o;21761:157::-;21901:9;21897:1;21889:6;21885:14;21878:33;21761:157;:::o;21924:365::-;22066:3;22087:66;22151:1;22146:3;22087:66;:::i;:::-;22080:73;;22162:93;22251:3;22162:93;:::i;:::-;22280:2;22275:3;22271:12;22264:19;;21924:365;;;:::o;22295:419::-;22461:4;22499:2;22488:9;22484:18;22476:26;;22548:9;22542:4;22538:20;22534:1;22523:9;22519:17;22512:47;22576:131;22702:4;22576:131;:::i;:::-;22568:139;;22295:419;;;:::o;22720:180::-;22768:77;22765:1;22758:88;22865:4;22862:1;22855:15;22889:4;22886:1;22879:15;22906:233;22945:3;22968:24;22986:5;22968:24;:::i;:::-;22959:33;;23014:66;23007:5;23004:77;23001:103;;23084:18;;:::i;:::-;23001:103;23131:1;23124:5;23120:13;23113:20;;22906:233;;;:::o;23145:157::-;23285:9;23281:1;23273:6;23269:14;23262:33;23145:157;:::o;23308:365::-;23450:3;23471:66;23535:1;23530:3;23471:66;:::i;:::-;23464:73;;23546:93;23635:3;23546:93;:::i;:::-;23664:2;23659:3;23655:12;23648:19;;23308:365;;;:::o;23679:419::-;23845:4;23883:2;23872:9;23868:18;23860:26;;23932:9;23926:4;23922:20;23918:1;23907:9;23903:17;23896:47;23960:131;24086:4;23960:131;:::i;:::-;23952:139;;23679:419;;;:::o;24104:165::-;24244:17;24240:1;24232:6;24228:14;24221:41;24104:165;:::o;24275:366::-;24417:3;24438:67;24502:2;24497:3;24438:67;:::i;:::-;24431:74;;24514:93;24603:3;24514:93;:::i;:::-;24632:2;24627:3;24623:12;24616:19;;24275:366;;;:::o;24647:419::-;24813:4;24851:2;24840:9;24836:18;24828:26;;24900:9;24894:4;24890:20;24886:1;24875:9;24871:17;24864:47;24928:131;25054:4;24928:131;:::i;:::-;24920:139;;24647:419;;;:::o;25072:225::-;25212:34;25208:1;25200:6;25196:14;25189:58;25281:8;25276:2;25268:6;25264:15;25257:33;25072:225;:::o;25303:366::-;25445:3;25466:67;25530:2;25525:3;25466:67;:::i;:::-;25459:74;;25542:93;25631:3;25542:93;:::i;:::-;25660:2;25655:3;25651:12;25644:19;;25303:366;;;:::o;25675:419::-;25841:4;25879:2;25868:9;25864:18;25856:26;;25928:9;25922:4;25918:20;25914:1;25903:9;25899:17;25892:47;25956:131;26082:4;25956:131;:::i;:::-;25948:139;;25675:419;;;:::o;26100:348::-;26229:4;26267:2;26256:9;26252:18;26244:26;;26280:71;26348:1;26337:9;26333:17;26324:6;26280:71;:::i;:::-;26361:80;26437:2;26426:9;26422:18;26413:6;26361:80;:::i;:::-;26100:348;;;;;:::o;26454:168::-;26594:20;26590:1;26582:6;26578:14;26571:44;26454:168;:::o;26628:366::-;26770:3;26791:67;26855:2;26850:3;26791:67;:::i;:::-;26784:74;;26867:93;26956:3;26867:93;:::i;:::-;26985:2;26980:3;26976:12;26969:19;;26628:366;;;:::o;27000:419::-;27166:4;27204:2;27193:9;27189:18;27181:26;;27253:9;27247:4;27243:20;27239:1;27228:9;27224:17;27217:47;27281:131;27407:4;27281:131;:::i;:::-;27273:139;;27000:419;;;:::o;27425:174::-;27565:26;27561:1;27553:6;27549:14;27542:50;27425:174;:::o;27605:366::-;27747:3;27768:67;27832:2;27827:3;27768:67;:::i;:::-;27761:74;;27844:93;27933:3;27844:93;:::i;:::-;27962:2;27957:3;27953:12;27946:19;;27605:366;;;:::o;27977:419::-;28143:4;28181:2;28170:9;28166:18;28158:26;;28230:9;28224:4;28220:20;28216:1;28205:9;28201:17;28194:47;28258:131;28384:4;28258:131;:::i;:::-;28250:139;;27977:419;;;:::o;28402:191::-;28442:3;28461:20;28479:1;28461:20;:::i;:::-;28456:25;;28495:20;28513:1;28495:20;:::i;:::-;28490:25;;28538:1;28535;28531:9;28524:16;;28559:3;28556:1;28553:10;28550:36;;;28566:18;;:::i;:::-;28550:36;28402:191;;;;:::o;28599:114::-;28666:6;28700:5;28694:12;28684:22;;28599:114;;;:::o;28719:184::-;28818:11;28852:6;28847:3;28840:19;28892:4;28887:3;28883:14;28868:29;;28719:184;;;;:::o;28909:132::-;28976:4;28999:3;28991:11;;29029:4;29024:3;29020:14;29012:22;;28909:132;;;:::o;29047:108::-;29124:24;29142:5;29124:24;:::i;:::-;29119:3;29112:37;29047:108;;:::o;29161:179::-;29230:10;29251:46;29293:3;29285:6;29251:46;:::i;:::-;29329:4;29324:3;29320:14;29306:28;;29161:179;;;;:::o;29346:113::-;29416:4;29448;29443:3;29439:14;29431:22;;29346:113;;;:::o;29495:732::-;29614:3;29643:54;29691:5;29643:54;:::i;:::-;29713:86;29792:6;29787:3;29713:86;:::i;:::-;29706:93;;29823:56;29873:5;29823:56;:::i;:::-;29902:7;29933:1;29918:284;29943:6;29940:1;29937:13;29918:284;;;30019:6;30013:13;30046:63;30105:3;30090:13;30046:63;:::i;:::-;30039:70;;30132:60;30185:6;30132:60;:::i;:::-;30122:70;;29978:224;29965:1;29962;29958:9;29953:14;;29918:284;;;29922:14;30218:3;30211:10;;29619:608;;;29495:732;;;;:::o;30233:831::-;30496:4;30534:3;30523:9;30519:19;30511:27;;30548:71;30616:1;30605:9;30601:17;30592:6;30548:71;:::i;:::-;30629:80;30705:2;30694:9;30690:18;30681:6;30629:80;:::i;:::-;30756:9;30750:4;30746:20;30741:2;30730:9;30726:18;30719:48;30784:108;30887:4;30878:6;30784:108;:::i;:::-;30776:116;;30902:72;30970:2;30959:9;30955:18;30946:6;30902:72;:::i;:::-;30984:73;31052:3;31041:9;31037:19;31028:6;30984:73;:::i;:::-;30233:831;;;;;;;;:::o;31070:332::-;31191:4;31229:2;31218:9;31214:18;31206:26;;31242:71;31310:1;31299:9;31295:17;31286:6;31242:71;:::i;:::-;31323:72;31391:2;31380:9;31376:18;31367:6;31323:72;:::i;:::-;31070:332;;;;;:::o;31408:180::-;31456:77;31453:1;31446:88;31553:4;31550:1;31543:15;31577:4;31574:1;31567:15;31594:185;31634:1;31651:20;31669:1;31651:20;:::i;:::-;31646:25;;31685:20;31703:1;31685:20;:::i;:::-;31680:25;;31724:1;31714:35;;31729:18;;:::i;:::-;31714:35;31771:1;31768;31764:9;31759:14;;31594:185;;;;:::o;31785:194::-;31825:4;31845:20;31863:1;31845:20;:::i;:::-;31840:25;;31879:20;31897:1;31879:20;:::i;:::-;31874:25;;31923:1;31920;31916:9;31908:17;;31947:1;31941:4;31938:11;31935:37;;;31952:18;;:::i;:::-;31935:37;31785:194;;;;:::o
Swarm Source
ipfs://1c319a6dcbae4bbfe869f6a174d83b308470706e80f90bca48791ae8d951d76a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.