Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 NEYMAR
Holders
17
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 4 Decimals)
Balance
0.001 NEYMARValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Beastmode
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-01 */ /* https://twitter.com/neymarjr/status/1587446047663529985?s=20&t=wnq41_LJGSrfK9ZTX_ETig https://www.nftstar.com/neymar-jr Go #Beastmode ! */ // SPDX-License-Identifier: none pragma solidity ^0.8.17; library SafeTransferLib { function safeTransferETH(address to, uint256 amount) internal { bool success; assembly { success := call(gas(), to, amount, 0, 0, 0, 0) } require(success, "ETH_TRANSFER_FAILED"); } function safeTransfer(address token, address to, uint256 amount) internal { bool success; assembly { let freeMemoryPointer := mload(0x40) mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), to) mstore(add(freeMemoryPointer, 36), amount) success := and( or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())), call(gas(), token, 0, freeMemoryPointer, 68, 0, 32) ) } require(success, "TRANSFER_FAILED"); } } abstract contract Auth { event OwnershipTransferred(address owner); mapping (address => bool) internal authorizations; address public owner; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(msg.sender == owner, "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } } interface IDexFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } contract Beastmode is Auth { event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); address WRAP; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string public name = "Beastmode"; string public symbol = "NEYMAR"; uint8 constant public decimals = 4; uint256 public totalSupply = 100_000_000 * (10 ** decimals); uint256 public max_tx = totalSupply * 20 / 1000; // 2% of Total Supply initially uint256 public max_wallet = totalSupply * 20 / 1000; // 2% of Total Supply initially mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; mapping (address => bool) public isPair; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isLimitExempt; uint256 public buybackFee = 0; // 0% uint256 public marketingFee = 40; // 4% uint256 public liquidityFee = 60; // 6% uint256 public totalFee; uint256 public feeDenominator = 1000; // 100% address public liquidityReceiver; address public marketingReceiver; uint256 launchedAt = 0; address public router; address public factory; address public main_pair; address[] public pairs; uint256 public smallSwapThreshold = totalSupply / 1000; //0,1% uint256 public largeSwapThreshold = totalSupply / 500; //0,2% uint256 public swapThreshold = smallSwapThreshold; bool public swapEnabled = true; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { if (block.chainid == 56) { //BSC router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; //pancake factory = 0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73; //pancake WRAP = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c; //WBNB } else if (block.chainid == 97) { //BSC TESTNET router = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; //pancake testnet factory = 0xB7926C0430Afb07AA7DEfDE6DA862aE0Bde767bc; //pancake testnet WRAP = 0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd; //WBNB testnet } else if (block.chainid == 1) { //ETHEREUM router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //Uniswap factory = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f; //Uniswap WRAP = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; //ETH } else revert(); allowance[address(this)][address(router)] = type(uint256).max; main_pair = IDexFactory(factory).createPair(WRAP, address(this)); pairs.push(main_pair); isPair[main_pair] = true; address deployer = msg.sender; marketingReceiver = deployer; liquidityReceiver = deployer; totalFee = buybackFee + liquidityFee + marketingFee; isFeeExempt[deployer] = true; isFeeExempt[address(this)] = true; isLimitExempt[deployer] = true; isLimitExempt[address(this)] = true; isLimitExempt[DEAD] = true; isLimitExempt[ZERO] = true; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[deployer] += totalSupply; } emit Transfer(address(0), deployer, totalSupply); } receive() external payable {} function getCirculatingSupply() public view returns (uint256) { return totalSupply - balanceOf[DEAD] - balanceOf[ZERO]; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////// TRANSFER ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function approve(address spender, uint256 amount) public virtual returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) public virtual returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) public virtual returns (bool) { uint256 allowed = allowance[sender][msg.sender]; if (allowed != type(uint256).max) allowance[sender][msg.sender] = allowed - amount; return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (!launched() && isPair[recipient]) { require(balanceOf[sender] > 0); require(sender == owner, "Only the owner can be the first to add liquidity."); launch(); } if (inSwap) return _basicTransfer(sender, recipient, amount); checkTxLimit(sender, recipient, amount); if (shouldSwapBack()) swapBack(recipient); balanceOf[sender] -= amount; uint256 amountReceived = amount; if (isPair[sender] || isPair[recipient]) { amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; } // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[recipient] += amountReceived; } emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { balanceOf[sender] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[recipient] += amount; } emit Transfer(msg.sender, recipient, amount); return true; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////// LIMITS ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function checkTxLimit(address sender, address recipient, uint256 amount) internal view { //verify sender max_tx require(amount <= max_tx || isPair[sender] && isLimitExempt[recipient] || isLimitExempt[sender], "TRANSACTION_LIMIT_EXCEEDED"); //verify recipient max_wallet if (recipient != owner && !isLimitExempt[recipient] && !isPair[recipient]) { uint256 newBalance = balanceOf[recipient] + amount; require(newBalance <= max_wallet, "WALLET_LIMIT_EXCEEDED"); } } function changeMaxTx(uint256 percent, uint256 denominator) external authorized { require(percent >= 1 && denominator <= 1000, "Max tx must be greater than 0.1%"); max_tx = totalSupply * percent / denominator; } function changeMaxWallet(uint256 percent, uint256 denominator) external authorized { require(percent >= 5 && denominator <= 1000, "Max wallet must be greater than 0.5%"); max_wallet = totalSupply * percent / denominator; } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsLimitExempt(address holder, bool exempt) external authorized { isLimitExempt[holder] = exempt; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////// FEE /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient] && totalFee > 0; } function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; //normal fee feeAmount = amount * totalFee / feeDenominator; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[address(this)] += feeAmount; } emit Transfer(sender, address(this), feeAmount); return amount - feeAmount; } function resetFees() external authorized { buybackFee = 0; //0% liquidityFee = 60; //6% marketingFee = 40; //4% totalFee = buybackFee + liquidityFee + marketingFee; feeDenominator = 1000; //100% } function adjustFees(uint256 _buybackFee, uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized { buybackFee = _buybackFee; liquidityFee = _liquidityFee; marketingFee = _marketingFee; totalFee = _buybackFee + _liquidityFee + _marketingFee; feeDenominator = _feeDenominator; //require(totalFee < feeDenominator / 5); // totalFee must be less than 20% } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized { liquidityReceiver = _autoLiquidityReceiver; marketingReceiver = _marketingFeeReceiver; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////// CONTRCT SWAP //////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function shouldSwapBack() internal view returns (bool) { return !isPair[msg.sender] && !inSwap && swapEnabled && totalFee > 0 && balanceOf[address(this)] >= swapThreshold; } function swapBack(address pair_factory) internal swapping { if (pair_factory == main_pair) { uint256 amountToLiquify = swapThreshold * liquidityFee / totalFee / 2; uint256 amountToSwap = swapThreshold - amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = WRAP; (bool success,) = router.call{gas : gasleft()}( //swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256) abi.encodeWithSelector( 0x791ac947, amountToSwap, 0, path, address(this), block.timestamp ) ); uint256 amountBNB = address(this).balance; uint256 amountBNBLiquidity = amountBNB / 3; if (amountToLiquify > 0) { (success,) = router.call{gas : gasleft(), value: amountBNBLiquidity}( //addLiquidityETH(address,uint256,uint256,uint256,address,uint256) abi.encodeWithSelector( 0xf305d719, address(this), amountToLiquify, 0, 0, liquidityReceiver, block.timestamp ) ); require(success, "SWAPBACK_FAILED"); } SafeTransferLib.safeTransferETH(marketingReceiver, address(this).balance); } swapThreshold = swapThreshold == smallSwapThreshold ? largeSwapThreshold : smallSwapThreshold; } function setSwapBackSettings(bool _enabled, uint256 _smallAmount, uint256 _largeAmount) external authorized { require(_smallAmount <= totalSupply * 25 / 10000, "Small swap threshold must be lower"); // smallSwapThreshold <= 0,25% of Total Supply initially require(_largeAmount <= totalSupply * 5 / 1000, "Large swap threshold must be lower"); // largeSwapThreshold <= 0,5% of Total Supply initially swapEnabled = _enabled; smallSwapThreshold = _smallAmount; largeSwapThreshold = _largeAmount; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////// OTHERS ///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function updateTokenDetails(string memory newName, string memory newSymbol) external authorized { name = newName; symbol = newSymbol; } function rescue() external authorized { SafeTransferLib.safeTransferETH(marketingReceiver, address(this).balance); } function rescueToken(address _token) external authorized { require(_token != address(this), "STOP"); (, bytes memory balance) = address(_token).call(abi.encodeWithSignature('balanceOf(address)', address(this))); uint256 amount = abi.decode(balance, (uint256)); require(amount > 0, "No tokens"); SafeTransferLib.safeTransfer(_token, marketingReceiver, amount); } function createPair(address token) external authorized { address new_pair = IDexFactory(factory).createPair(token, address(this)); isPair[main_pair] = true; pairs.push(new_pair); } function showPairList() public view returns(address[] memory){ return pairs; } function antiRaider(address sniperAddress) external authorized { require(!isPair[sniperAddress] , "STOP"); require(sniperAddress != address(this) , "STOP"); _basicTransfer(sniperAddress, DEAD, balanceOf[sniperAddress]); } }
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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniperAddress","type":"address"}],"name":"antiRaider","outputs":[],"stateMutability":"nonpayable","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","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":"isLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"largeSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"main_pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","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":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_smallAmount","type":"uint256"},{"internalType":"uint256","name":"_largeAmount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"showPairList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"smallSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"updateTokenDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600960809081526842656173746d6f646560b81b60a0526003906200002a9082620005a8565b506040805180820190915260068152652722aca6a0a960d11b6020820152600490620000579082620005a8565b50620000666004600a62000789565b62000076906305f5e100620007a1565b6005556103e860055460146200008d9190620007a1565b620000999190620007bb565b6006556103e86005546014620000b09190620007a1565b620000bc9190620007bb565b6007556000600d556028600e55603c600f556103e860115560006014556103e8600554620000eb9190620007bb565b6019556101f4600554620001009190620007bb565b601a55601954601b55601c805460ff191660011790553480156200012357600080fd5b50600180546001600160a01b0319163390811782556000908152602081905260409020805460ff1916909117905546603803620001c657601580546001600160a01b03199081167310ed43c718714eb63d5aa57b78b54704e256024e1790915560168054821673ca143ce32fe78f1f7019d7d551a6402fc5350c731790556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c179055620002b5565b466061036200023b57601580546001600160a01b0319908116739ac64cc6e4415144c455bd8e4837fea55603e5c31790915560168054821673b7926c0430afb07aa7defde6da862ae0bde767bc1790556002805490911673ae13d989dac2f0debff460ac112a837c89baa7cd179055620002b5565b46600103620002b057601580546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155601680548216735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f1790556002805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055620002b5565b600080fd5b3060008181526009602090815260408083206015546001600160a01b039081168552925291829020600019905560165460025492516364e329cb60e11b815292821660048401526024830193909352919091169063c9c65396906044016020604051808303816000875af115801562000332573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003589190620007de565b601780546001600160a01b039283166001600160a01b0319918216811783556018805460018181019092557fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e018054841690921790915591549092166000908152600a60205260409020805460ff1916909117905560138054821633908117909155601280549092168117909155600e54600f54600d54620003fb919062000809565b62000407919062000809565b6010556001600160a01b0381166000818152600b602090815260408083208054600160ff199182168117909255308086528386208054831684179055868652600c85528386208054831684179055855282852080548216831790557f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c80548216831790557f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e8805490911690911790556005805485855260088452828520805490910190555490519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200081f565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200052e57607f821691505b6020821081036200054f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005a357600081815260208120601f850160051c810160208610156200057e5750805b601f850160051c820191505b818110156200059f578281556001016200058a565b5050505b505050565b81516001600160401b03811115620005c457620005c462000503565b620005dc81620005d5845462000519565b8462000555565b602080601f831160018114620006145760008415620005fb5750858301515b600019600386901b1c1916600185901b1785556200059f565b600085815260208120601f198616915b82811015620006455788860151825594840194600190910190840162000624565b5085821015620006645787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006cb578160001904821115620006af57620006af62000674565b80851615620006bd57918102915b93841c93908002906200068f565b509250929050565b600082620006e45750600162000783565b81620006f35750600062000783565b81600181146200070c5760028114620007175762000737565b600191505062000783565b60ff8411156200072b576200072b62000674565b50506001821b62000783565b5060208310610133831016604e8410600b84101617156200075c575081810a62000783565b6200076883836200068a565b80600019048211156200077f576200077f62000674565b0290505b92915050565b60006200079a60ff841683620006d3565b9392505050565b808202811582820484141762000783576200078362000674565b600082620007d957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007f157600080fd5b81516001600160a01b03811681146200079a57600080fd5b8082018082111562000783576200078362000674565b61325f806200082f6000396000f3fe60806040526004361061032d5760003560e01c80638da5cb5b116101a5578063c45a0155116100ec578063e717fc3011610095578063f75282e11161006f578063f75282e114610960578063f887ea4014610980578063fbd141b8146109ad578063fe9fbb80146109cd57600080fd5b8063e717fc301461090a578063f0b37c0414610920578063f2fde38b1461094057600080fd5b8063d962cf58116100c6578063d962cf5814610882578063dd62ed3e146108a2578063e5e31b13146108da57600080fd5b8063c45a015514610815578063d0291d6614610842578063d08893581461086257600080fd5b8063a9059cbb1161014e578063b91ac78811610128578063b91ac788146107a8578063bae19235146107c8578063c150eda0146107e857600080fd5b8063a9059cbb14610738578063b0c150af14610758578063b6a5d7de1461078857600080fd5b80639ccb07441161017f5780639ccb0744146106cb578063a4b45c00146106eb578063a5949bcf1461070b57600080fd5b80638da5cb5b1461067357806395d89b41146106a057806398118cb4146106b557600080fd5b80632b112e49116102745780634460d3cf1161021d5780636ddd1713116101f75780636ddd17131461060057806370a082311461061a57806370fbc7121461064757806379426c061461065d57600080fd5b80634460d3cf146105aa578063658d4b7f146105ca5780636b67c4df146105ea57600080fd5b80633b2d081c1161024e5780633b2d081c1461054e5780633f4218e014610564578063414683a81461059457600080fd5b80632b112e49146104d65780632f54bf6e146104eb578063313ce5671461052757600080fd5b806318160ddd116102d65780631fbe1979116102b05780631fbe19791461044f57806323b872dd14610464578063264d26dd1461048457600080fd5b806318160ddd146104015780631ab33ba1146104175780631df4ccfc1461043957600080fd5b80630ec4c619116103075780630ec4c619146103b457806317e1df5b146103cb578063180b0d7e146103eb57600080fd5b80630445b6671461033957806306fdde0314610362578063095ea7b31461038457600080fd5b3661033457005b600080fd5b34801561034557600080fd5b5061034f601b5481565b6040519081526020015b60405180910390f35b34801561036e57600080fd5b50610377610a13565b6040516103599190612b35565b34801561039057600080fd5b506103a461039f366004612bab565b610aa1565b6040519015158152602001610359565b3480156103c057600080fd5b506103c9610b1b565b005b3480156103d757600080fd5b506103c96103e6366004612bd7565b610bce565b3480156103f757600080fd5b5061034f60115481565b34801561040d57600080fd5b5061034f60055481565b34801561042357600080fd5b5061042c610c76565b6040516103599190612c5a565b34801561044557600080fd5b5061034f60105481565b34801561045b57600080fd5b506103c9610ce5565b34801561047057600080fd5b506103a461047f366004612c6d565b610d83565b34801561049057600080fd5b506012546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610359565b3480156104e257600080fd5b5061034f610e2d565b3480156104f757600080fd5b506103a4610506366004612cae565b60015473ffffffffffffffffffffffffffffffffffffffff91821691161490565b34801561053357600080fd5b5061053c600481565b60405160ff9091168152602001610359565b34801561055a57600080fd5b5061034f600d5481565b34801561057057600080fd5b506103a461057f366004612cae565b600b6020526000908152604090205460ff1681565b3480156105a057600080fd5b5061034f601a5481565b3480156105b657600080fd5b506103c96105c5366004612cae565b610e9d565b3480156105d657600080fd5b506103c96105e5366004612ce0565b611131565b3480156105f657600080fd5b5061034f600e5481565b34801561060c57600080fd5b50601c546103a49060ff1681565b34801561062657600080fd5b5061034f610635366004612cae565b60086020526000908152604090205481565b34801561065357600080fd5b5061034f60065481565b34801561066957600080fd5b5061034f60195481565b34801561067f57600080fd5b506001546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156106ac57600080fd5b50610377611200565b3480156106c157600080fd5b5061034f600f5481565b3480156106d757600080fd5b506103c96106e6366004612cae565b61120d565b3480156106f757600080fd5b506103c9610706366004612d15565b6113d7565b34801561071757600080fd5b506013546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561074457600080fd5b506103a4610753366004612bab565b6114a3565b34801561076457600080fd5b506103a4610773366004612cae565b600c6020526000908152604090205460ff1681565b34801561079457600080fd5b506103c96107a3366004612cae565b6114b0565b3480156107b457600080fd5b506104b16107c3366004612d4e565b611580565b3480156107d457600080fd5b506103c96107e3366004612d67565b6115b7565b3480156107f457600080fd5b506017546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561082157600080fd5b506016546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561084e57600080fd5b506103c961085d366004612e63565b6116ee565b34801561086e57600080fd5b506103c961087d366004612ec7565b611780565b34801561088e57600080fd5b506103c961089d366004612ce0565b611987565b3480156108ae57600080fd5b5061034f6108bd366004612d15565b600960209081526000928352604080842090915290825290205481565b3480156108e657600080fd5b506103a46108f5366004612cae565b600a6020526000908152604090205460ff1681565b34801561091657600080fd5b5061034f60075481565b34801561092c57600080fd5b506103c961093b366004612cae565b611a56565b34801561094c57600080fd5b506103c961095b366004612cae565b611b23565b34801561096c57600080fd5b506103c961097b366004612d67565b611c52565b34801561098c57600080fd5b506015546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109b957600080fd5b506103c96109c8366004612cae565b611d64565b3480156109d957600080fd5b506103a46109e8366004612cae565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b60038054610a2090612efa565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612efa565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b505050505081565b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b099086815260200190565b60405180910390a35060015b92915050565b3360009081526020819052604090205460ff16610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a454400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000600d819055603c600f8190556028600e81905591610bb99190612f7c565b610bc39190612f7c565b6010556103e8601155565b3360009081526020819052604090205460ff16610c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b600d849055600f839055600e82905581610c618486612f7c565b610c6b9190612f7c565b601055601155505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610cdb57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610cb0575b5050505050905090565b3360009081526020819052604090205460ff16610d5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b601354610d819073ffffffffffffffffffffffffffffffffffffffff1647611f29565b565b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e1757610de58382612f8f565b73ffffffffffffffffffffffffffffffffffffffff861660009081526009602090815260408083203384529091529020555b610e22858585611f9e565b9150505b9392505050565b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75461dead60009081527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429954600554919291610e8e9190612f8f565b610e989190612f8f565b905090565b3360009081526020819052604090205460ff16610f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b3073ffffffffffffffffffffffffffffffffffffffff821603610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909060208082526004908201527f53544f5000000000000000000000000000000000000000000000000000000000604082015260600190565b60405130602482015260009073ffffffffffffffffffffffffffffffffffffffff831690604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a08231000000000000000000000000000000000000000000000000000000001790525161103f9190612fa2565b6000604051808303816000865af19150503d806000811461107c576040519150601f19603f3d011682016040523d82523d6000602084013e611081565b606091505b5091505060008180602001905181019061109b9190612fbe565b905060008111611107576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f20746f6b656e7300000000000000000000000000000000000000000000006044820152606401610b90565b60135461112c90849073ffffffffffffffffffffffffffffffffffffffff1683612239565b505050565b3360009081526020819052604090205460ff166111aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60048054610a2090612efa565b3360009081526020819052604090205460ff16611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b6016546040517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152306024830152600092169063c9c65396906044016020604051808303816000875af11580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113239190612fd7565b60175473ffffffffffffffffffffffffffffffffffffffff9081166000908152600a6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556018805491820181559091527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e018054919092167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555050565b3360009081526020819052604090205460ff16611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b6012805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560138054929093169116179055565b6000610e26338484611f9e565b60015473ffffffffffffffffffffffffffffffffffffffff163314611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e455200000000000000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff16600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6018818154811061159057600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3360009081526020819052604090205460ff16611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b6005821015801561164357506103e88111155b6116ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e2060448201527f302e3525000000000000000000000000000000000000000000000000000000006064820152608401610b90565b80826005546116dd9190612ff4565b6116e7919061300b565b6007555050565b3360009081526020819052604090205460ff16611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b60036117738382613094565b50600461112c8282613094565b3360009081526020819052604090205460ff166117f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b612710600554601961180b9190612ff4565b611815919061300b565b8211156118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f536d616c6c2073776170207468726573686f6c64206d757374206265206c6f7760448201527f65720000000000000000000000000000000000000000000000000000000000006064820152608401610b90565b6103e860055460056118b69190612ff4565b6118c0919061300b565b81111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4c617267652073776170207468726573686f6c64206d757374206265206c6f7760448201527f65720000000000000000000000000000000000000000000000000000000000006064820152608401610b90565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001693151593909317909255601955601a55565b3360009081526020819052604090205460ff16611a00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e455200000000000000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff16600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e455200000000000000000000000000000000000000000000000000006044820152606401610b90565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782556000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909417909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b3360009081526020819052604090205460ff16611ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b60018210158015611cde57506103e88111155b611d44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d6178207478206d7573742062652067726561746572207468616e20302e31256044820152606401610b90565b8082600554611d539190612ff4565b611d5d919061300b565b6006555050565b3360009081526020819052604090205460ff16611ddd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600a602052604090205460ff1615611e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909060208082526004908201527f53544f5000000000000000000000000000000000000000000000000000000000604082015260600190565b3073ffffffffffffffffffffffffffffffffffffffff821603611ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909060208082526004908201527f53544f5000000000000000000000000000000000000000000000000000000000604082015260600190565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902054611f2590829061dead906122f8565b5050565b600080600080600085875af190508061112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610b90565b6000611fab601454151590565b158015611fdd575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604090205460ff165b156120c45773ffffffffffffffffffffffffffffffffffffffff841660009081526008602052604090205461201157600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff8581169116146120bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4f6e6c7920746865206f776e65722063616e206265207468652066697273742060448201527f746f20616464206c69717569646974792e0000000000000000000000000000006064820152608401610b90565b6120c443601455565b601c54610100900460ff16156120e6576120df8484846122f8565b9050610e26565b6120f18484846123a5565b6120f96125c8565b15612107576121078361262c565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600860205260408120805484929061213c908490612f8f565b909155505073ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020526040902054829060ff168061219c575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff165b156121c3576121ab8585612a0e565b6121b557826121c0565b6121c0858585612a7d565b90505b73ffffffffffffffffffffffffffffffffffffffff808516600081815260086020526040908190208054850190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122269085815260200190565b60405180910390a3506001949350505050565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806122f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610b90565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526008602052604081208054839190839061232f908490612f8f565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260086020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906123939086815260200190565b60405180910390a35060019392505050565b6006548111158061240b575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604090205460ff16801561240b575073ffffffffffffffffffffffffffffffffffffffff82166000908152600c602052604090205460ff165b8061243b575073ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205460ff165b6124a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5452414e53414354494f4e5f4c494d49545f45584345454445440000000000006044820152606401610b90565b60015473ffffffffffffffffffffffffffffffffffffffff8381169116148015906124f2575073ffffffffffffffffffffffffffffffffffffffff82166000908152600c602052604090205460ff16155b8015612524575073ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205460ff16155b1561112c5773ffffffffffffffffffffffffffffffffffffffff821660009081526008602052604081205461255a908390612f7c565b90506007548111156122f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f57414c4c45545f4c494d49545f455843454544454400000000000000000000006044820152606401610b90565b336000908152600a602052604081205460ff161580156125f05750601c54610100900460ff16155b80156125fe5750601c5460ff165b801561260c57506000601054115b8015610e98575050601b5430600090815260086020526040902054101590565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560175473ffffffffffffffffffffffffffffffffffffffff908116908216036129c95760006002601054600f54601b546126929190612ff4565b61269c919061300b565b6126a6919061300b565b9050600081601b546126b89190612f8f565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106126f2576126f26131ae565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600254825191169082906001908110612730576127306131ae565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152601554600091165a63791ac94785600086304260405160240161277a9594939291906131dd565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516127c89190612fa2565b60006040518083038160008787f1925050503d8060008114612806576040519150601f19603f3d011682016040523d82523d6000602084013e61280b565b606091505b50909150479050600061281f60038361300b565b9050851561299f5760155473ffffffffffffffffffffffffffffffffffffffff165a60125460408051306024820152604481018b9052600060648201819052608482015273ffffffffffffffffffffffffffffffffffffffff90921660a48301524260c4808401919091528151808403909101815260e490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff305d719000000000000000000000000000000000000000000000000000000001790525184916128ef91612fa2565b600060405180830381858888f193505050503d806000811461292d576040519150601f19603f3d011682016040523d82523d6000602084013e612932565b606091505b5050809350508261299f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f535741504241434b5f4641494c454400000000000000000000000000000000006044820152606401610b90565b6013546129c29073ffffffffffffffffffffffffffffffffffffffff1647611f29565b5050505050505b601954601b54146129dc576019546129e0565b601a545b601b5550601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604081205460ff16158015612a6a575073ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff16155b8015610e26575050601054151592915050565b6011546010546000918291612a929085612ff4565b612a9c919061300b565b3060008181526008602052604090819020805484019055519192509073ffffffffffffffffffffffffffffffffffffffff8716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612aff9085815260200190565b60405180910390a3610e228184612f8f565b60005b83811015612b2c578181015183820152602001612b14565b50506000910152565b6020815260008251806020840152612b54816040850160208701612b11565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114612ba857600080fd5b50565b60008060408385031215612bbe57600080fd5b8235612bc981612b86565b946020939093013593505050565b60008060008060808587031215612bed57600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b83811015612c4f57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612c1d565b509495945050505050565b602081526000610e266020830184612c09565b600080600060608486031215612c8257600080fd5b8335612c8d81612b86565b92506020840135612c9d81612b86565b929592945050506040919091013590565b600060208284031215612cc057600080fd5b8135610e2681612b86565b80358015158114612cdb57600080fd5b919050565b60008060408385031215612cf357600080fd5b8235612cfe81612b86565b9150612d0c60208401612ccb565b90509250929050565b60008060408385031215612d2857600080fd5b8235612d3381612b86565b91506020830135612d4381612b86565b809150509250929050565b600060208284031215612d6057600080fd5b5035919050565b60008060408385031215612d7a57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612dc957600080fd5b813567ffffffffffffffff80821115612de457612de4612d89565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612e2a57612e2a612d89565b81604052838152866020858801011115612e4357600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612e7657600080fd5b823567ffffffffffffffff80821115612e8e57600080fd5b612e9a86838701612db8565b93506020850135915080821115612eb057600080fd5b50612ebd85828601612db8565b9150509250929050565b600080600060608486031215612edc57600080fd5b612ee584612ccb565b95602085013595506040909401359392505050565b600181811c90821680612f0e57607f821691505b602082108103612f47577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b1557610b15612f4d565b81810381811115610b1557610b15612f4d565b60008251612fb4818460208701612b11565b9190910192915050565b600060208284031215612fd057600080fd5b5051919050565b600060208284031215612fe957600080fd5b8151610e2681612b86565b8082028115828204841417610b1557610b15612f4d565b600082613041577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b601f82111561112c57600081815260208120601f850160051c8101602086101561306d5750805b601f850160051c820191505b8181101561308c57828155600101613079565b505050505050565b815167ffffffffffffffff8111156130ae576130ae612d89565b6130c2816130bc8454612efa565b84613046565b602080601f83116001811461311557600084156130df5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561308c565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561316257888601518255948401946001909101908401613143565b508582101561319e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b85815260ff8516602082015260a0604082015260006131ff60a0830186612c09565b73ffffffffffffffffffffffffffffffffffffffff9490941660608301525060800152939250505056fea2646970667358221220c614e20cf7bc9387a80364c8aa496a9be04614a95cde99d5b202f26f283cccd764736f6c63430008110033
Deployed Bytecode
0x60806040526004361061032d5760003560e01c80638da5cb5b116101a5578063c45a0155116100ec578063e717fc3011610095578063f75282e11161006f578063f75282e114610960578063f887ea4014610980578063fbd141b8146109ad578063fe9fbb80146109cd57600080fd5b8063e717fc301461090a578063f0b37c0414610920578063f2fde38b1461094057600080fd5b8063d962cf58116100c6578063d962cf5814610882578063dd62ed3e146108a2578063e5e31b13146108da57600080fd5b8063c45a015514610815578063d0291d6614610842578063d08893581461086257600080fd5b8063a9059cbb1161014e578063b91ac78811610128578063b91ac788146107a8578063bae19235146107c8578063c150eda0146107e857600080fd5b8063a9059cbb14610738578063b0c150af14610758578063b6a5d7de1461078857600080fd5b80639ccb07441161017f5780639ccb0744146106cb578063a4b45c00146106eb578063a5949bcf1461070b57600080fd5b80638da5cb5b1461067357806395d89b41146106a057806398118cb4146106b557600080fd5b80632b112e49116102745780634460d3cf1161021d5780636ddd1713116101f75780636ddd17131461060057806370a082311461061a57806370fbc7121461064757806379426c061461065d57600080fd5b80634460d3cf146105aa578063658d4b7f146105ca5780636b67c4df146105ea57600080fd5b80633b2d081c1161024e5780633b2d081c1461054e5780633f4218e014610564578063414683a81461059457600080fd5b80632b112e49146104d65780632f54bf6e146104eb578063313ce5671461052757600080fd5b806318160ddd116102d65780631fbe1979116102b05780631fbe19791461044f57806323b872dd14610464578063264d26dd1461048457600080fd5b806318160ddd146104015780631ab33ba1146104175780631df4ccfc1461043957600080fd5b80630ec4c619116103075780630ec4c619146103b457806317e1df5b146103cb578063180b0d7e146103eb57600080fd5b80630445b6671461033957806306fdde0314610362578063095ea7b31461038457600080fd5b3661033457005b600080fd5b34801561034557600080fd5b5061034f601b5481565b6040519081526020015b60405180910390f35b34801561036e57600080fd5b50610377610a13565b6040516103599190612b35565b34801561039057600080fd5b506103a461039f366004612bab565b610aa1565b6040519015158152602001610359565b3480156103c057600080fd5b506103c9610b1b565b005b3480156103d757600080fd5b506103c96103e6366004612bd7565b610bce565b3480156103f757600080fd5b5061034f60115481565b34801561040d57600080fd5b5061034f60055481565b34801561042357600080fd5b5061042c610c76565b6040516103599190612c5a565b34801561044557600080fd5b5061034f60105481565b34801561045b57600080fd5b506103c9610ce5565b34801561047057600080fd5b506103a461047f366004612c6d565b610d83565b34801561049057600080fd5b506012546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610359565b3480156104e257600080fd5b5061034f610e2d565b3480156104f757600080fd5b506103a4610506366004612cae565b60015473ffffffffffffffffffffffffffffffffffffffff91821691161490565b34801561053357600080fd5b5061053c600481565b60405160ff9091168152602001610359565b34801561055a57600080fd5b5061034f600d5481565b34801561057057600080fd5b506103a461057f366004612cae565b600b6020526000908152604090205460ff1681565b3480156105a057600080fd5b5061034f601a5481565b3480156105b657600080fd5b506103c96105c5366004612cae565b610e9d565b3480156105d657600080fd5b506103c96105e5366004612ce0565b611131565b3480156105f657600080fd5b5061034f600e5481565b34801561060c57600080fd5b50601c546103a49060ff1681565b34801561062657600080fd5b5061034f610635366004612cae565b60086020526000908152604090205481565b34801561065357600080fd5b5061034f60065481565b34801561066957600080fd5b5061034f60195481565b34801561067f57600080fd5b506001546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156106ac57600080fd5b50610377611200565b3480156106c157600080fd5b5061034f600f5481565b3480156106d757600080fd5b506103c96106e6366004612cae565b61120d565b3480156106f757600080fd5b506103c9610706366004612d15565b6113d7565b34801561071757600080fd5b506013546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561074457600080fd5b506103a4610753366004612bab565b6114a3565b34801561076457600080fd5b506103a4610773366004612cae565b600c6020526000908152604090205460ff1681565b34801561079457600080fd5b506103c96107a3366004612cae565b6114b0565b3480156107b457600080fd5b506104b16107c3366004612d4e565b611580565b3480156107d457600080fd5b506103c96107e3366004612d67565b6115b7565b3480156107f457600080fd5b506017546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561082157600080fd5b506016546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561084e57600080fd5b506103c961085d366004612e63565b6116ee565b34801561086e57600080fd5b506103c961087d366004612ec7565b611780565b34801561088e57600080fd5b506103c961089d366004612ce0565b611987565b3480156108ae57600080fd5b5061034f6108bd366004612d15565b600960209081526000928352604080842090915290825290205481565b3480156108e657600080fd5b506103a46108f5366004612cae565b600a6020526000908152604090205460ff1681565b34801561091657600080fd5b5061034f60075481565b34801561092c57600080fd5b506103c961093b366004612cae565b611a56565b34801561094c57600080fd5b506103c961095b366004612cae565b611b23565b34801561096c57600080fd5b506103c961097b366004612d67565b611c52565b34801561098c57600080fd5b506015546104b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109b957600080fd5b506103c96109c8366004612cae565b611d64565b3480156109d957600080fd5b506103a46109e8366004612cae565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b60038054610a2090612efa565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612efa565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b505050505081565b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b099086815260200190565b60405180910390a35060015b92915050565b3360009081526020819052604090205460ff16610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a454400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000600d819055603c600f8190556028600e81905591610bb99190612f7c565b610bc39190612f7c565b6010556103e8601155565b3360009081526020819052604090205460ff16610c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b600d849055600f839055600e82905581610c618486612f7c565b610c6b9190612f7c565b601055601155505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610cdb57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610cb0575b5050505050905090565b3360009081526020819052604090205460ff16610d5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b601354610d819073ffffffffffffffffffffffffffffffffffffffff1647611f29565b565b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e1757610de58382612f8f565b73ffffffffffffffffffffffffffffffffffffffff861660009081526009602090815260408083203384529091529020555b610e22858585611f9e565b9150505b9392505050565b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75461dead60009081527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429954600554919291610e8e9190612f8f565b610e989190612f8f565b905090565b3360009081526020819052604090205460ff16610f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b3073ffffffffffffffffffffffffffffffffffffffff821603610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909060208082526004908201527f53544f5000000000000000000000000000000000000000000000000000000000604082015260600190565b60405130602482015260009073ffffffffffffffffffffffffffffffffffffffff831690604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a08231000000000000000000000000000000000000000000000000000000001790525161103f9190612fa2565b6000604051808303816000865af19150503d806000811461107c576040519150601f19603f3d011682016040523d82523d6000602084013e611081565b606091505b5091505060008180602001905181019061109b9190612fbe565b905060008111611107576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f20746f6b656e7300000000000000000000000000000000000000000000006044820152606401610b90565b60135461112c90849073ffffffffffffffffffffffffffffffffffffffff1683612239565b505050565b3360009081526020819052604090205460ff166111aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60048054610a2090612efa565b3360009081526020819052604090205460ff16611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b6016546040517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152306024830152600092169063c9c65396906044016020604051808303816000875af11580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113239190612fd7565b60175473ffffffffffffffffffffffffffffffffffffffff9081166000908152600a6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556018805491820181559091527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e018054919092167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555050565b3360009081526020819052604090205460ff16611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b6012805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560138054929093169116179055565b6000610e26338484611f9e565b60015473ffffffffffffffffffffffffffffffffffffffff163314611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e455200000000000000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff16600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6018818154811061159057600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3360009081526020819052604090205460ff16611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b6005821015801561164357506103e88111155b6116ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e2060448201527f302e3525000000000000000000000000000000000000000000000000000000006064820152608401610b90565b80826005546116dd9190612ff4565b6116e7919061300b565b6007555050565b3360009081526020819052604090205460ff16611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b60036117738382613094565b50600461112c8282613094565b3360009081526020819052604090205460ff166117f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b612710600554601961180b9190612ff4565b611815919061300b565b8211156118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f536d616c6c2073776170207468726573686f6c64206d757374206265206c6f7760448201527f65720000000000000000000000000000000000000000000000000000000000006064820152608401610b90565b6103e860055460056118b69190612ff4565b6118c0919061300b565b81111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4c617267652073776170207468726573686f6c64206d757374206265206c6f7760448201527f65720000000000000000000000000000000000000000000000000000000000006064820152608401610b90565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001693151593909317909255601955601a55565b3360009081526020819052604090205460ff16611a00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e455200000000000000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff16600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e455200000000000000000000000000000000000000000000000000006044820152606401610b90565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782556000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909417909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b3360009081526020819052604090205460ff16611ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b60018210158015611cde57506103e88111155b611d44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d6178207478206d7573742062652067726561746572207468616e20302e31256044820152606401610b90565b8082600554611d539190612ff4565b611d5d919061300b565b6006555050565b3360009081526020819052604090205460ff16611ddd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a45440000000000000000000000000000000000000000006044820152606401610b90565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600a602052604090205460ff1615611e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909060208082526004908201527f53544f5000000000000000000000000000000000000000000000000000000000604082015260600190565b3073ffffffffffffffffffffffffffffffffffffffff821603611ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909060208082526004908201527f53544f5000000000000000000000000000000000000000000000000000000000604082015260600190565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902054611f2590829061dead906122f8565b5050565b600080600080600085875af190508061112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610b90565b6000611fab601454151590565b158015611fdd575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604090205460ff165b156120c45773ffffffffffffffffffffffffffffffffffffffff841660009081526008602052604090205461201157600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff8581169116146120bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4f6e6c7920746865206f776e65722063616e206265207468652066697273742060448201527f746f20616464206c69717569646974792e0000000000000000000000000000006064820152608401610b90565b6120c443601455565b601c54610100900460ff16156120e6576120df8484846122f8565b9050610e26565b6120f18484846123a5565b6120f96125c8565b15612107576121078361262c565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600860205260408120805484929061213c908490612f8f565b909155505073ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020526040902054829060ff168061219c575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff165b156121c3576121ab8585612a0e565b6121b557826121c0565b6121c0858585612a7d565b90505b73ffffffffffffffffffffffffffffffffffffffff808516600081815260086020526040908190208054850190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122269085815260200190565b60405180910390a3506001949350505050565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806122f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610b90565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526008602052604081208054839190839061232f908490612f8f565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260086020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906123939086815260200190565b60405180910390a35060019392505050565b6006548111158061240b575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604090205460ff16801561240b575073ffffffffffffffffffffffffffffffffffffffff82166000908152600c602052604090205460ff165b8061243b575073ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205460ff165b6124a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5452414e53414354494f4e5f4c494d49545f45584345454445440000000000006044820152606401610b90565b60015473ffffffffffffffffffffffffffffffffffffffff8381169116148015906124f2575073ffffffffffffffffffffffffffffffffffffffff82166000908152600c602052604090205460ff16155b8015612524575073ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205460ff16155b1561112c5773ffffffffffffffffffffffffffffffffffffffff821660009081526008602052604081205461255a908390612f7c565b90506007548111156122f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f57414c4c45545f4c494d49545f455843454544454400000000000000000000006044820152606401610b90565b336000908152600a602052604081205460ff161580156125f05750601c54610100900460ff16155b80156125fe5750601c5460ff165b801561260c57506000601054115b8015610e98575050601b5430600090815260086020526040902054101590565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560175473ffffffffffffffffffffffffffffffffffffffff908116908216036129c95760006002601054600f54601b546126929190612ff4565b61269c919061300b565b6126a6919061300b565b9050600081601b546126b89190612f8f565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106126f2576126f26131ae565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600254825191169082906001908110612730576127306131ae565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152601554600091165a63791ac94785600086304260405160240161277a9594939291906131dd565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516127c89190612fa2565b60006040518083038160008787f1925050503d8060008114612806576040519150601f19603f3d011682016040523d82523d6000602084013e61280b565b606091505b50909150479050600061281f60038361300b565b9050851561299f5760155473ffffffffffffffffffffffffffffffffffffffff165a60125460408051306024820152604481018b9052600060648201819052608482015273ffffffffffffffffffffffffffffffffffffffff90921660a48301524260c4808401919091528151808403909101815260e490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff305d719000000000000000000000000000000000000000000000000000000001790525184916128ef91612fa2565b600060405180830381858888f193505050503d806000811461292d576040519150601f19603f3d011682016040523d82523d6000602084013e612932565b606091505b5050809350508261299f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f535741504241434b5f4641494c454400000000000000000000000000000000006044820152606401610b90565b6013546129c29073ffffffffffffffffffffffffffffffffffffffff1647611f29565b5050505050505b601954601b54146129dc576019546129e0565b601a545b601b5550601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604081205460ff16158015612a6a575073ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff16155b8015610e26575050601054151592915050565b6011546010546000918291612a929085612ff4565b612a9c919061300b565b3060008181526008602052604090819020805484019055519192509073ffffffffffffffffffffffffffffffffffffffff8716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612aff9085815260200190565b60405180910390a3610e228184612f8f565b60005b83811015612b2c578181015183820152602001612b14565b50506000910152565b6020815260008251806020840152612b54816040850160208701612b11565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114612ba857600080fd5b50565b60008060408385031215612bbe57600080fd5b8235612bc981612b86565b946020939093013593505050565b60008060008060808587031215612bed57600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b83811015612c4f57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612c1d565b509495945050505050565b602081526000610e266020830184612c09565b600080600060608486031215612c8257600080fd5b8335612c8d81612b86565b92506020840135612c9d81612b86565b929592945050506040919091013590565b600060208284031215612cc057600080fd5b8135610e2681612b86565b80358015158114612cdb57600080fd5b919050565b60008060408385031215612cf357600080fd5b8235612cfe81612b86565b9150612d0c60208401612ccb565b90509250929050565b60008060408385031215612d2857600080fd5b8235612d3381612b86565b91506020830135612d4381612b86565b809150509250929050565b600060208284031215612d6057600080fd5b5035919050565b60008060408385031215612d7a57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612dc957600080fd5b813567ffffffffffffffff80821115612de457612de4612d89565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612e2a57612e2a612d89565b81604052838152866020858801011115612e4357600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612e7657600080fd5b823567ffffffffffffffff80821115612e8e57600080fd5b612e9a86838701612db8565b93506020850135915080821115612eb057600080fd5b50612ebd85828601612db8565b9150509250929050565b600080600060608486031215612edc57600080fd5b612ee584612ccb565b95602085013595506040909401359392505050565b600181811c90821680612f0e57607f821691505b602082108103612f47577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b1557610b15612f4d565b81810381811115610b1557610b15612f4d565b60008251612fb4818460208701612b11565b9190910192915050565b600060208284031215612fd057600080fd5b5051919050565b600060208284031215612fe957600080fd5b8151610e2681612b86565b8082028115828204841417610b1557610b15612f4d565b600082613041577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b601f82111561112c57600081815260208120601f850160051c8101602086101561306d5750805b601f850160051c820191505b8181101561308c57828155600101613079565b505050505050565b815167ffffffffffffffff8111156130ae576130ae612d89565b6130c2816130bc8454612efa565b84613046565b602080601f83116001811461311557600084156130df5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561308c565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561316257888601518255948401946001909101908401613143565b508582101561319e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b85815260ff8516602082015260a0604082015260006131ff60a0830186612c09565b73ffffffffffffffffffffffffffffffffffffffff9490941660608301525060800152939250505056fea2646970667358221220c614e20cf7bc9387a80364c8aa496a9be04614a95cde99d5b202f26f283cccd764736f6c63430008110033
Deployed Bytecode Sourcemap
2578:14939:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4195:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4195:49:0;;;;;;;;2945:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6949:223::-;;;;;;;;;;-1:-1:-1;6949:223:0;;;;;:::i;:::-;;:::i;:::-;;;1555:14:1;;1548:22;1530:41;;1518:2;1503:18;6949:223:0;1390:187:1;11935:265:0;;;;;;;;;;;;;:::i;:::-;;12208:446;;;;;;;;;;-1:-1:-1;12208:446:0;;;;;:::i;:::-;;:::i;3771:36::-;;;;;;;;;;;;;;;;3065:59;;;;;;;;;;;;;;;;17151:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3741:23::-;;;;;;;;;;;;;;;;16368:130;;;;;;;;;;;;;:::i;7341:324::-;;;;;;;;;;-1:-1:-1;7341:324:0;;;;;:::i;:::-;;:::i;3829:32::-;;;;;;;;;;-1:-1:-1;3829:32:0;;;;;;;;;;;3364:42:1;3352:55;;;3334:74;;3322:2;3307:18;3829:32:0;3188:226:1;6252:135:0;;;;;;;;;;;;;:::i;1868:103::-;;;;;;;;;;-1:-1:-1;1868:103:0;;;;;:::i;:::-;1958:5;;;1947:16;;;1958:5;;1947:16;;1868:103;3022:34;;;;;;;;;;;;3055:1;3022:34;;;;;3843:4:1;3831:17;;;3813:36;;3801:2;3786:18;3022:34:0;3671:184:1;3591:29:0;;;;;;;;;;;;;;;;3481:44;;;;;;;;;;-1:-1:-1;3481:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4127:53;;;;;;;;;;;;;;;;16506:415;;;;;;;;;;-1:-1:-1;16506:415:0;;;;;:::i;:::-;;:::i;10576:120::-;;;;;;;;;;-1:-1:-1;10576:120:0;;;;;:::i;:::-;;:::i;3641:32::-;;;;;;;;;;;;;;;;4251:30;;;;;;;;;;-1:-1:-1;4251:30:0;;;;;;;;3313:44;;;;;;;;;;-1:-1:-1;3313:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;3131:47;;;;;;;;;;;;;;;;4059:54;;;;;;;;;;;;;;;;1297:20;;;;;;;;;;-1:-1:-1;1297:20:0;;;;;;;;2984:31;;;;;;;;;;;;;:::i;3691:32::-;;;;;;;;;;;;;;;;16929:214;;;;;;;;;;-1:-1:-1;16929:214:0;;;;;:::i;:::-;;:::i;12662:221::-;;;;;;;;;;-1:-1:-1;12662:221:0;;;;;:::i;:::-;;:::i;3868:32::-;;;;;;;;;;-1:-1:-1;3868:32:0;;;;;;;;7180:153;;;;;;;;;;-1:-1:-1;7180:153:0;;;;;:::i;:::-;;:::i;3532:46::-;;;;;;;;;;-1:-1:-1;3532:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1661:94;;;;;;;;;;-1:-1:-1;1661:94:0;;;;;:::i;:::-;;:::i;4028:22::-;;;;;;;;;;-1:-1:-1;4028:22:0;;;;;:::i;:::-;;:::i;10323:245::-;;;;;;;;;;-1:-1:-1;10323:245:0;;;;;:::i;:::-;;:::i;3997:24::-;;;;;;;;;;-1:-1:-1;3997:24:0;;;;;;;;3968:22;;;;;;;;;;-1:-1:-1;3968:22:0;;;;;;;;16205:158;;;;;;;;;;-1:-1:-1;16205:158:0;;;;;:::i;:::-;;:::i;15270:550::-;;;;;;;;;;-1:-1:-1;15270:550:0;;;;;:::i;:::-;;:::i;10704:124::-;;;;;;;;;;-1:-1:-1;10704:124:0;;;;;:::i;:::-;;:::i;3364:64::-;;;;;;;;;;-1:-1:-1;3364:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3435:39;;;;;;;;;;-1:-1:-1;3435:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3221:51;;;;;;;;;;;;;;;;1763:97;;;;;;;;;;-1:-1:-1;1763:97:0;;;;;:::i;:::-;;:::i;2094:173::-;;;;;;;;;;-1:-1:-1;2094:173:0;;;;;:::i;:::-;;:::i;10077:234::-;;;;;;;;;;-1:-1:-1;10077:234:0;;;;;:::i;:::-;;:::i;3940:21::-;;;;;;;;;;-1:-1:-1;3940:21:0;;;;;;;;17251:263;;;;;;;;;;-1:-1:-1;17251:263:0;;;;;:::i;:::-;;:::i;1979:107::-;;;;;;;;;;-1:-1:-1;1979:107:0;;;;;:::i;:::-;2059:19;;2035:4;2059:19;;;;;;;;;;;;;;1979:107;2945:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6949:223::-;7050:10;7023:4;7040:21;;;:9;:21;;;;;;;;;:30;;;;;;;;;;:39;;;7105:37;7023:4;;7040:30;;7105:37;;;;7073:6;160:25:1;;148:2;133:18;;14:177;7105:37:0;;;;;;;;-1:-1:-1;7160:4:0;6949:223;;;;;:::o;11935:265::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;;;;;;;;;12000:1:::1;11987:10;:14:::0;;;12040:2:::1;12025:12;:17:::0;;;12078:2:::1;12063:12;:17:::0;;;12078:2;12112:25:::1;::::0;12040:2;12112:25:::1;:::i;:::-;:40;;;;:::i;:::-;12101:8;:51:::0;12180:4:::1;12163:14;:21:::0;11935:265::o;12208:446::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;12351:10:::1;:24:::0;;;12386:12:::1;:28:::0;;;12425:12:::1;:28:::0;;;12440:13;12475:27:::1;12401:13:::0;12364:11;12475:27:::1;:::i;:::-;:43;;;;:::i;:::-;12464:8;:54:::0;12529:14:::1;:32:::0;-1:-1:-1;;;12208:446:0:o;17151:92::-;17195:16;17230:5;17223:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17151:92;:::o;16368:130::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;16449:17:::1;::::0;16417:73:::1;::::0;16449:17:::1;;16468:21;16417:31;:73::i;:::-;16368:130::o:0;7341:324::-;7473:17;;;7438:4;7473:17;;;:9;:17;;;;;;;;7491:10;7473:29;;;;;;;;7530:17;7519:28;;7515:82;;7581:16;7591:6;7581:7;:16;:::i;:::-;7549:17;;;;;;;:9;:17;;;;;;;;7567:10;7549:29;;;;;;;:48;7515:82;7617:40;7631:6;7639:9;7650:6;7617:13;:40::i;:::-;7610:47;;;7341:324;;;;;;:::o;6252:135::-;6364:9;:15;;;;2821:42;6305:7;6346:15;;;;;6332:11;;6305:7;;6364:15;6332:29;;6346:15;6332:29;:::i;:::-;:47;;;;:::i;:::-;6325:54;;6252:135;:::o;16506:415::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;16600:4:::1;16582:23;::::0;::::1;::::0;16574:40:::1;;;;;;;;;;;8713:2:1::0;8695:21;;;8752:1;8732:18;;;8725:29;8790:6;8785:2;8770:18;;8763:34;8829:2;8814:18;;8511:327;16574:40:0::1;16675:60;::::0;16729:4:::1;16675:60;::::0;::::1;3334:74:1::0;16630:20:0::1;::::0;16654::::1;::::0;::::1;::::0;3307:18:1;;16675:60:0::1;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;16654:82;::::1;::::0;16675:60;16654:82:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16627:109;;;16747:14;16775:7;16764:30;;;;;;;;;;;;:::i;:::-;16747:47;;16824:1;16815:6;:10;16807:32;;;::::0;::::1;::::0;;9526:2:1;16807:32:0::1;::::0;::::1;9508:21:1::0;9565:1;9545:18;;;9538:29;9603:11;9583:18;;;9576:39;9632:18;;16807:32:0::1;9324:332:1::0;16807:32:0::1;16887:17;::::0;16850:63:::1;::::0;16879:6;;16887:17:::1;;16906:6:::0;16850:28:::1;:63::i;:::-;16563:358;;16506:415:::0;:::o;10576:120::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;10660:19:::1;::::0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;10576:120::o;2984:31::-;;;;;;;:::i;16929:214::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;17026:7:::1;::::0;17014:53:::1;::::0;;;;17026:7:::1;9914:15:1::0;;;17014:53:0::1;::::0;::::1;9896:34:1::0;17061:4:0::1;9946:18:1::0;;;9939:43;16995:16:0::1;::::0;17026:7:::1;::::0;17014:31:::1;::::0;9808:18:1;;17014:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17085:9;::::0;::::1;::::0;;::::1;17078:17;::::0;;;:6:::1;:17;::::0;;;;:24;;;::::1;17098:4;17078:24:::0;;::::1;::::0;;;17115:5:::1;:20:::0;;;;::::1;::::0;;;;;;::::1;::::0;;;;;::::1;::::0;;;::::1;;::::0;;-1:-1:-1;;16929:214:0:o;12662:221::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;12781:17:::1;:42:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;12834:17:::1;:41:::0;;;;;::::1;::::0;::::1;;::::0;;12662:221::o;7180:153::-;7257:4;7281:44;7295:10;7307:9;7318:6;7281:13;:44::i;1661:94::-;1487:5;;;;1473:10;:19;1465:38;;;;;;;10451:2:1;1465:38:0;;;10433:21:1;10490:1;10470:18;;;10463:29;10528:8;10508:18;;;10501:36;10554:18;;1465:38:0;10249:329:1;1465:38:0;1721:19:::1;;:14;:19:::0;;;::::1;::::0;;;;;;:26;;;::::1;1743:4;1721:26;::::0;;1661:94::o;4028:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4028:22:0;:::o;10323:245::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;10436:1:::1;10425:7;:12;;:35;;;;;10456:4;10441:11;:19;;10425:35;10417:84;;;::::0;::::1;::::0;;10785:2:1;10417:84:0::1;::::0;::::1;10767:21:1::0;10824:2;10804:18;;;10797:30;10863:34;10843:18;;;10836:62;10934:6;10914:18;;;10907:34;10958:19;;10417:84:0::1;10583:400:1::0;10417:84:0::1;10549:11;10539:7;10525:11;;:21;;;;:::i;:::-;:35;;;;:::i;:::-;10512:10;:48:::0;-1:-1:-1;;10323:245:0:o;16205:158::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;16312:4:::1;:14;16319:7:::0;16312:4;:14:::1;:::i;:::-;-1:-1:-1::0;16337:6:0::1;:18;16346:9:::0;16337:6;:18:::1;:::i;15270:550::-:0;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;15432:5:::1;15413:11;;15427:2;15413:16;;;;:::i;:::-;:24;;;;:::i;:::-;15397:12;:40;;15389:87;;;::::0;::::1;::::0;;14025:2:1;15389:87:0::1;::::0;::::1;14007:21:1::0;14064:2;14044:18;;;14037:30;14103:34;14083:18;;;14076:62;14174:4;14154:18;;;14147:32;14196:19;;15389:87:0::1;13823:398:1::0;15389:87:0::1;15587:4;15569:11;;15583:1;15569:15;;;;:::i;:::-;:22;;;;:::i;:::-;15553:12;:38;;15545:85;;;::::0;::::1;::::0;;14428:2:1;15545:85:0::1;::::0;::::1;14410:21:1::0;14467:2;14447:18;;;14440:30;14506:34;14486:18;;;14479:62;14577:4;14557:18;;;14550:32;14599:19;;15545:85:0::1;14226:398:1::0;15545:85:0::1;15702:11;:22:::0;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;;15735:18:::1;:33:::0;15779:18:::1;:33:::0;15270:550::o;10704:124::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;10790:21:::1;::::0;;;::::1;;::::0;;;:13:::1;:21;::::0;;;;:30;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;10704:124::o;1763:97::-;1487:5;;;;1473:10;:19;1465:38;;;;;;;10451:2:1;1465:38:0;;;10433:21:1;10490:1;10470:18;;;10463:29;10528:8;10508:18;;;10501:36;10554:18;;1465:38:0;10249:329:1;1465:38:0;1825:19:::1;;1847:5;1825:19:::0;;;::::1;::::0;;;;;;:27;;;::::1;::::0;;1763:97::o;2094:173::-;1487:5;;;;1473:10;:19;1465:38;;;;;;;10451:2:1;1465:38:0;;;10433:21:1;10490:1;10470:18;;;10463:29;10528:8;10508:18;;;10501:36;10554:18;;1465:38:0;10249:329:1;1465:38:0;2170:5:::1;:11:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;2192:19:0;;;::::1;::::0;;;;;;;;:26;;;::::1;::::0;;::::1;::::0;;;2234:25;3334:74:1;;;2234:25:0::1;::::0;3307:18:1;2234:25:0::1;;;;;;;2094:173:::0;:::o;10077:234::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;10187:1:::1;10176:7;:12;;:35;;;;;10207:4;10192:11;:19;;10176:35;10168:80;;;::::0;::::1;::::0;;15070:2:1;10168:80:0::1;::::0;::::1;15052:21:1::0;;;15089:18;;;15082:30;15148:34;15128:18;;;15121:62;15200:18;;10168:80:0::1;14868:356:1::0;10168:80:0::1;10292:11;10282:7;10268:11;;:21;;;;:::i;:::-;:35;;;;:::i;:::-;10259:6;:44:::0;-1:-1:-1;;10077:234:0:o;17251:263::-;1595:10;2035:4;2059:19;;;;;;;;;;;;;1574:48;;;;;;;7921:2:1;1574:48:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:13;7979:18;;;7972:41;8030:18;;1574:48:0;7719:335:1;1574:48:0;17334:21:::1;::::0;::::1;;::::0;;;:6:::1;:21;::::0;;;;;::::1;;17333:22;17325:40;;;;;;;;;;;8713:2:1::0;8695:21;;;8752:1;8732:18;;;8725:29;8790:6;8785:2;8770:18;;8763:34;8829:2;8814:18;;8511:327;17325:40:0::1;17409:4;17384:30;::::0;::::1;::::0;17376:48:::1;;;;;;;;;;;8713:2:1::0;8695:21;;;8752:1;8732:18;;;8725:29;8790:6;8785:2;8770:18;;8763:34;8829:2;8814:18;;8511:327;17376:48:0::1;17481:24;::::0;::::1;;::::0;;;:9:::1;:24;::::0;;;;;17445:61:::1;::::0;17460:13;;2821:42:::1;::::0;17445:14:::1;:61::i;:::-;;17251:263:::0;:::o;246:238::-;319:12;412:1;409;406;403;395:6;391:2;384:5;379:35;368:46;;445:7;437:39;;;;;;;15431:2:1;437:39:0;;;15413:21:1;15470:2;15450:18;;;15443:30;15509:21;15489:18;;;15482:49;15548:18;;437:39:0;15229:343:1;7673:1047:0;7765:4;7787:10;6462;;:15;;;6395:90;7787:10;7786:11;:32;;;;-1:-1:-1;7801:17:0;;;;;;;:6;:17;;;;;;;;7786:32;7782:210;;;7843:17;;;7863:1;7843:17;;;:9;:17;;;;;;7835:30;;;;;;7898:5;;;7888:15;;;7898:5;;7888:15;7880:77;;;;;;;15779:2:1;7880:77:0;;;15761:21:1;15818:2;15798:18;;;15791:30;15857:34;15837:18;;;15830:62;15928:19;15908:18;;;15901:47;15965:19;;7880:77:0;15577:413:1;7880:77:0;7972:8;6544:12;6531:10;:25;6493:71;7972:8;8006:6;;;;;;;8002:60;;;8021:41;8036:6;8044:9;8055:6;8021:14;:41::i;:::-;8014:48;;;;8002:60;8075:39;8088:6;8096:9;8107:6;8075:12;:39::i;:::-;8129:16;:14;:16::i;:::-;8125:41;;;8147:19;8156:9;8147:8;:19::i;:::-;8179:17;;;;;;;:9;:17;;;;;:27;;8200:6;;8179:17;:27;;8200:6;;8179:27;:::i;:::-;;;;-1:-1:-1;;8273:14:0;;;8217:22;8273:14;;;:6;:14;;;;;;8242:6;;8273:14;;;:35;;-1:-1:-1;8291:17:0;;;;;;;:6;:17;;;;;;;;8273:35;8269:163;;;8342:32;8356:6;8364:9;8342:13;:32::i;:::-;:78;;8414:6;8342:78;;;8377:34;8385:6;8393:9;8404:6;8377:7;:34::i;:::-;8325:95;;8269:163;8580:20;;;;;;;;:9;:20;;;;;;;:38;;;;;;8647:43;8580:20;;8647:43;;;;;;;8604:14;160:25:1;;148:2;133:18;;14:177;8647:43:0;;;;;;;;-1:-1:-1;8708:4:0;;7673:1047;-1:-1:-1;;;;7673:1047:0:o;492:662::-;577:12;657:4;651:11;704:66;685:17;678:93;819:2;815:1;796:17;792:25;785:37;871:6;866:2;847:17;843:26;836:42;1070:2;1067:1;1063:2;1044:17;1041:1;1034:5;1027;1022:51;985:16;978:24;972:2;954:16;951:24;947:1;943;937:8;934:15;930:46;927:76;905:183;894:194;;;1119:7;1111:35;;;;;;;16197:2:1;1111:35:0;;;16179:21:1;16236:2;16216:18;;;16209:30;16275:17;16255:18;;;16248:45;16310:18;;1111:35:0;15995:339:1;1111:35:0;566:588;492:662;;;:::o;8728:416::-;8838:17;;;8821:4;8838:17;;;:9;:17;;;;;:27;;8859:6;;8838:17;8821:4;;8838:27;;8859:6;;8838:27;:::i;:::-;;;;-1:-1:-1;;9016:20:0;;;;;;;:9;:20;;;;;;;:30;;;;;;9075:39;9084:10;;9075:39;;;;9040:6;160:25:1;;148:2;133:18;;14:177;9075:39:0;;;;;;;;-1:-1:-1;9132:4:0;8728:416;;;;;:::o;9529:540::-;9677:6;;9667;:16;;:62;;;-1:-1:-1;9687:14:0;;;;;;;:6;:14;;;;;;;;:42;;;;-1:-1:-1;9705:24:0;;;;;;;:13;:24;;;;;;;;9687:42;9667:87;;;-1:-1:-1;9733:21:0;;;;;;;:13;:21;;;;;;;;9667:87;9659:126;;;;;;;16541:2:1;9659:126:0;;;16523:21:1;16580:2;16560:18;;;16553:30;16619:28;16599:18;;;16592:56;16665:18;;9659:126:0;16339:350:1;9659:126:0;9854:5;;;9841:18;;;9854:5;;9841:18;;;;:47;;-1:-1:-1;9864:24:0;;;;;;;:13;:24;;;;;;;;9863:25;9841:47;:69;;;;-1:-1:-1;9893:17:0;;;;;;;:6;:17;;;;;;;;9892:18;9841:69;9837:225;;;9948:20;;;9927:18;9948:20;;;:9;:20;;;;;;:29;;9971:6;;9948:29;:::i;:::-;9927:50;;10014:10;;10000;:24;;9992:58;;;;;;;16896:2:1;9992:58:0;;;16878:21:1;16935:2;16915:18;;;16908:30;16974:23;16954:18;;;16947:51;17015:18;;9992:58:0;16694:345:1;13268:187:0;13349:10;13317:4;13342:18;;;:6;:18;;;;;;;;13341:19;:30;;;;-1:-1:-1;13365:6:0;;;;;;;13364:7;13341:30;:45;;;;-1:-1:-1;13375:11:0;;;;13341:45;:61;;;;;13401:1;13390:8;;:12;13341:61;:106;;;;-1:-1:-1;;13434:13:0;;13424:4;13406:24;;;;:9;:24;;;;;;:41;;;13268:187::o;13463:1799::-;4328:6;:13;;;;;;;;13552:9:::1;::::0;::::1;::::0;;::::1;13536:25:::0;;::::1;::::0;13532:1617:::1;;13578:23;13646:1;13635:8;;13620:12;;13604:13;;:28;;;;:::i;:::-;:39;;;;:::i;:::-;:43;;;;:::i;:::-;13578:69;;13662:20;13701:15;13685:13;;:31;;;;:::i;:::-;13757:16;::::0;;13771:1:::1;13757:16:::0;;;;;::::1;::::0;;13662:54;;-1:-1:-1;13733:21:0::1;::::0;13757:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13757:16:0::1;13733:40;;13806:4;13788;13793:1;13788:7;;;;;;;;:::i;:::-;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13836:4:::1;::::0;13826:7;;13836:4;::::1;::::0;13826;;13836;;13826:7;::::1;;;;;:::i;:::-;:14;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13875:6:::1;::::0;13858:12:::1;::::0;13875:6:::1;13893:9;14080:10;14113:12;14148:1;14172:4;14207;14235:15;14035:234;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13875:409;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;13857:427:0;;-1:-1:-1;14321:21:0::1;::::0;-1:-1:-1;14301:17:0::1;14386:13;14398:1;14321:21:::0;14386:13:::1;:::i;:::-;14357:42:::0;-1:-1:-1;14432:19:0;;14428:620:::1;;14485:6;::::0;::::1;;14503:9;14875:17;::::0;14651:306:::1;::::0;;14745:4:::1;14651:306;::::0;::::1;18212:34:1::0;18262:18;;;18255:34;;;-1:-1:-1;18305:18:1;;;18298:45;;;18359:18;;;18352:45;14875:17:0::1;::::0;;::::1;18413:19:1::0;;;18406:44;14919:15:0::1;18466:19:1::0;;;;18459:35;;;;14651:306:0;;;;;;;;;;18123:19:1;;;;14651:306:0;;::::1;::::0;::::1;::::0;;::::1;;::::0;::::1;::::0;;14485:491;14521:18;;14485:491:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14472:504;;;;;15005:7;14997:35;;;::::0;::::1;::::0;;18707:2:1;14997:35:0::1;::::0;::::1;18689:21:1::0;18746:2;18726:18;;;18719:30;18785:17;18765:18;;;18758:45;18820:18;;14997:35:0::1;18505:339:1::0;14997:35:0::1;15096:17;::::0;15064:73:::1;::::0;15096:17:::1;;15115:21;15064:31;:73::i;:::-;13563:1586;;;;;;13532:1617;15194:18;;15177:13;;:35;:77;;15236:18;;15177:77;;;15215:18;;15177:77;15161:13;:93:::0;-1:-1:-1;4346:6:0;:14;;;;;;13463:1799::o;11217:176::-;11323:19;;;11298:4;11323:19;;;:11;:19;;;;;;;;11322:20;:47;;;;-1:-1:-1;11347:22:0;;;;;;;:11;:22;;;;;;;;11346:23;11322:47;:63;;;;-1:-1:-1;;11373:8:0;;:12;;;11217:176;-1:-1:-1;;11217:176:0:o;11401:526::-;11602:14;;11591:8;;11486:7;;;;11582:17;;:6;:17;:::i;:::-;:34;;;;:::i;:::-;11793:4;11775:24;;;;:9;:24;;;;;;;:37;;;;;;11841:42;11570:46;;-1:-1:-1;11793:4:0;11775:24;11841:42;;;;;;;11570:46;160:25:1;;148:2;133:18;;14:177;11841:42:0;;;;;;;;11901:18;11910:9;11901:6;:18;:::i;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:455::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;822:2;810:15;827:66;806:88;791:104;;;;897:2;787:113;;451:455;-1:-1:-1;;451:455:1:o;911:154::-;997:42;990:5;986:54;979:5;976:65;966:93;;1055:1;1052;1045:12;966:93;911:154;:::o;1070:315::-;1138:6;1146;1199:2;1187:9;1178:7;1174:23;1170:32;1167:52;;;1215:1;1212;1205:12;1167:52;1254:9;1241:23;1273:31;1298:5;1273:31;:::i;:::-;1323:5;1375:2;1360:18;;;;1347:32;;-1:-1:-1;;;1070:315:1:o;1582:385::-;1668:6;1676;1684;1692;1745:3;1733:9;1724:7;1720:23;1716:33;1713:53;;;1762:1;1759;1752:12;1713:53;-1:-1:-1;;1785:23:1;;;1855:2;1840:18;;1827:32;;-1:-1:-1;1906:2:1;1891:18;;1878:32;;1957:2;1942:18;1929:32;;-1:-1:-1;1582:385:1;-1:-1:-1;1582:385:1:o;1972:484::-;2025:3;2063:5;2057:12;2090:6;2085:3;2078:19;2116:4;2145:2;2140:3;2136:12;2129:19;;2182:2;2175:5;2171:14;2203:1;2213:218;2227:6;2224:1;2221:13;2213:218;;;2292:13;;2307:42;2288:62;2276:75;;2371:12;;;;2406:15;;;;2249:1;2242:9;2213:218;;;-1:-1:-1;2447:3:1;;1972:484;-1:-1:-1;;;;;1972:484:1:o;2461:261::-;2640:2;2629:9;2622:21;2603:4;2660:56;2712:2;2701:9;2697:18;2689:6;2660:56;:::i;2727:456::-;2804:6;2812;2820;2873:2;2861:9;2852:7;2848:23;2844:32;2841:52;;;2889:1;2886;2879:12;2841:52;2928:9;2915:23;2947:31;2972:5;2947:31;:::i;:::-;2997:5;-1:-1:-1;3054:2:1;3039:18;;3026:32;3067:33;3026:32;3067:33;:::i;:::-;2727:456;;3119:7;;-1:-1:-1;;;3173:2:1;3158:18;;;;3145:32;;2727:456::o;3419:247::-;3478:6;3531:2;3519:9;3510:7;3506:23;3502:32;3499:52;;;3547:1;3544;3537:12;3499:52;3586:9;3573:23;3605:31;3630:5;3605:31;:::i;3860:160::-;3925:20;;3981:13;;3974:21;3964:32;;3954:60;;4010:1;4007;4000:12;3954:60;3860:160;;;:::o;4025:315::-;4090:6;4098;4151:2;4139:9;4130:7;4126:23;4122:32;4119:52;;;4167:1;4164;4157:12;4119:52;4206:9;4193:23;4225:31;4250:5;4225:31;:::i;:::-;4275:5;-1:-1:-1;4299:35:1;4330:2;4315:18;;4299:35;:::i;:::-;4289:45;;4025:315;;;;;:::o;4345:388::-;4413:6;4421;4474:2;4462:9;4453:7;4449:23;4445:32;4442:52;;;4490:1;4487;4480:12;4442:52;4529:9;4516:23;4548:31;4573:5;4548:31;:::i;:::-;4598:5;-1:-1:-1;4655:2:1;4640:18;;4627:32;4668:33;4627:32;4668:33;:::i;:::-;4720:7;4710:17;;;4345:388;;;;;:::o;4738:180::-;4797:6;4850:2;4838:9;4829:7;4825:23;4821:32;4818:52;;;4866:1;4863;4856:12;4818:52;-1:-1:-1;4889:23:1;;4738:180;-1:-1:-1;4738:180:1:o;4923:248::-;4991:6;4999;5052:2;5040:9;5031:7;5027:23;5023:32;5020:52;;;5068:1;5065;5058:12;5020:52;-1:-1:-1;;5091:23:1;;;5161:2;5146:18;;;5133:32;;-1:-1:-1;4923:248:1:o;5176:184::-;5228:77;5225:1;5218:88;5325:4;5322:1;5315:15;5349:4;5346:1;5339:15;5365:778;5408:5;5461:3;5454:4;5446:6;5442:17;5438:27;5428:55;;5479:1;5476;5469:12;5428:55;5515:6;5502:20;5541:18;5578:2;5574;5571:10;5568:36;;;5584:18;;:::i;:::-;5718:2;5712:9;5780:4;5772:13;;5623:66;5768:22;;;5792:2;5764:31;5760:40;5748:53;;;5816:18;;;5836:22;;;5813:46;5810:72;;;5862:18;;:::i;:::-;5902:10;5898:2;5891:22;5937:2;5929:6;5922:18;5983:3;5976:4;5971:2;5963:6;5959:15;5955:26;5952:35;5949:55;;;6000:1;5997;5990:12;5949:55;6064:2;6057:4;6049:6;6045:17;6038:4;6030:6;6026:17;6013:54;6111:1;6104:4;6099:2;6091:6;6087:15;6083:26;6076:37;6131:6;6122:15;;;;;;5365:778;;;;:::o;6148:543::-;6236:6;6244;6297:2;6285:9;6276:7;6272:23;6268:32;6265:52;;;6313:1;6310;6303:12;6265:52;6353:9;6340:23;6382:18;6423:2;6415:6;6412:14;6409:34;;;6439:1;6436;6429:12;6409:34;6462:50;6504:7;6495:6;6484:9;6480:22;6462:50;:::i;:::-;6452:60;;6565:2;6554:9;6550:18;6537:32;6521:48;;6594:2;6584:8;6581:16;6578:36;;;6610:1;6607;6600:12;6578:36;;6633:52;6677:7;6666:8;6655:9;6651:24;6633:52;:::i;:::-;6623:62;;;6148:543;;;;;:::o;6696:316::-;6770:6;6778;6786;6839:2;6827:9;6818:7;6814:23;6810:32;6807:52;;;6855:1;6852;6845:12;6807:52;6878:26;6894:9;6878:26;:::i;:::-;6868:36;6951:2;6936:18;;6923:32;;-1:-1:-1;7002:2:1;6987:18;;;6974:32;;6696:316;-1:-1:-1;;;6696:316:1:o;7277:437::-;7356:1;7352:12;;;;7399;;;7420:61;;7474:4;7466:6;7462:17;7452:27;;7420:61;7527:2;7519:6;7516:14;7496:18;7493:38;7490:218;;7564:77;7561:1;7554:88;7665:4;7662:1;7655:15;7693:4;7690:1;7683:15;7490:218;;7277:437;;;:::o;8059:184::-;8111:77;8108:1;8101:88;8208:4;8205:1;8198:15;8232:4;8229:1;8222:15;8248:125;8313:9;;;8334:10;;;8331:36;;;8347:18;;:::i;8378:128::-;8445:9;;;8466:11;;;8463:37;;;8480:18;;:::i;8843:287::-;8972:3;9010:6;9004:13;9026:66;9085:6;9080:3;9073:4;9065:6;9061:17;9026:66;:::i;:::-;9108:16;;;;;8843:287;-1:-1:-1;;8843:287:1:o;9135:184::-;9205:6;9258:2;9246:9;9237:7;9233:23;9229:32;9226:52;;;9274:1;9271;9264:12;9226:52;-1:-1:-1;9297:16:1;;9135:184;-1:-1:-1;9135:184:1:o;9993:251::-;10063:6;10116:2;10104:9;10095:7;10091:23;10087:32;10084:52;;;10132:1;10129;10122:12;10084:52;10164:9;10158:16;10183:31;10208:5;10183:31;:::i;10988:168::-;11061:9;;;11092;;11109:15;;;11103:22;;11089:37;11079:71;;11130:18;;:::i;11161:274::-;11201:1;11227;11217:189;;11262:77;11259:1;11252:88;11363:4;11360:1;11353:15;11391:4;11388:1;11381:15;11217:189;-1:-1:-1;11420:9:1;;11161:274::o;11566:545::-;11668:2;11663:3;11660:11;11657:448;;;11704:1;11729:5;11725:2;11718:17;11774:4;11770:2;11760:19;11844:2;11832:10;11828:19;11825:1;11821:27;11815:4;11811:38;11880:4;11868:10;11865:20;11862:47;;;-1:-1:-1;11903:4:1;11862:47;11958:2;11953:3;11949:12;11946:1;11942:20;11936:4;11932:31;11922:41;;12013:82;12031:2;12024:5;12021:13;12013:82;;;12076:17;;;12057:1;12046:13;12013:82;;;12017:3;;;11566:545;;;:::o;12347:1471::-;12473:3;12467:10;12500:18;12492:6;12489:30;12486:56;;;12522:18;;:::i;:::-;12551:97;12641:6;12601:38;12633:4;12627:11;12601:38;:::i;:::-;12595:4;12551:97;:::i;:::-;12703:4;;12767:2;12756:14;;12784:1;12779:782;;;;13605:1;13622:6;13619:89;;;-1:-1:-1;13674:19:1;;;13668:26;13619:89;12253:66;12244:1;12240:11;;;12236:84;12232:89;12222:100;12328:1;12324:11;;;12219:117;13721:81;;12749:1063;;12779:782;11513:1;11506:14;;;11550:4;11537:18;;12827:66;12815:79;;;12992:236;13006:7;13003:1;13000:14;12992:236;;;13095:19;;;13089:26;13074:42;;13187:27;;;;13155:1;13143:14;;;;13022:19;;12992:236;;;12996:3;13256:6;13247:7;13244:19;13241:261;;;13317:19;;;13311:26;13418:66;13400:1;13396:14;;;13412:3;13392:24;13388:97;13384:102;13369:118;13354:134;;13241:261;-1:-1:-1;;;;;13548:1:1;13532:14;;;13528:22;13515:36;;-1:-1:-1;12347:1471:1:o;17044:184::-;17096:77;17093:1;17086:88;17193:4;17190:1;17183:15;17217:4;17214:1;17207:15;17233:614;17530:6;17519:9;17512:25;17585:4;17577:6;17573:17;17568:2;17557:9;17553:18;17546:45;17627:3;17622:2;17611:9;17607:18;17600:31;17493:4;17648:57;17700:3;17689:9;17685:19;17677:6;17648:57;:::i;:::-;17753:42;17741:55;;;;17736:2;17721:18;;17714:83;-1:-1:-1;17828:3:1;17813:19;17806:35;17640:65;17233:614;-1:-1:-1;;;17233:614:1:o
Swarm Source
ipfs://c614e20cf7bc9387a80364c8aa496a9be04614a95cde99d5b202f26f283cccd7
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.