Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000,000 DogeFly
Holders
14
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
908,171,643,867.127492036 DogeFlyValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC20BUTTERDOGEFLY
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-03 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.16; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) external onlyOwner { require(adr != owner, "OWNER cant be unauthorized"); 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 renounceOwnership() external onlyOwner { authorizations[owner] = false; owner = address(0); } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ERC20BUTTERDOGEFLY is ERC20, Auth { using SafeMath for uint256; address immutable WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string public constant name = "ButterDoge"; string public constant symbol = "DogeFly"; uint8 public constant decimals = 9; uint256 public constant totalSupply = 100 * 10**12 * 10**decimals; uint256 public _maxTxAmount = totalSupply / 100; uint256 public _maxWalletToken = totalSupply / 100; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isWalletLimitExempt; uint256 public marketingFee = 2; uint256 public operationsFee = 1; uint256 public totalFee = marketingFee + operationsFee; uint256 public constant feeDenominator = 100; uint256 buyMultiplier = 300; uint256 sellMultiplier = 300; uint256 transferMultiplier = 300; address marketingFeeReceiver; address operationsFeeReceiver; IDEXRouter public router; address public immutable pair; bool tradingOpen = true; bool swapEnabled = true; uint256 swapThreshold = totalSupply / 500; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; marketingFeeReceiver = 0x982C8B03C114c9b6B6F700eFD9E694e3130dB978; operationsFeeReceiver = msg.sender; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[ZERO] = true; isTxLimitExempt[marketingFeeReceiver] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[DEAD] = true; isWalletLimitExempt[marketingFeeReceiver] = true; balanceOf[msg.sender] = totalSupply; emit Transfer(address(0), msg.sender, totalSupply); } receive() external payable { } function getOwner() external view override returns (address) { return owner; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner { require(maxWallPercent_base1000 >= 5,"Cannot set max wallet less than 0.5%"); _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000; } function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner { require(maxTXPercentage_base1000 >= 5,"Cannot set max transaction less than 0.5%"); _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000; } function manage_FeeExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isFeeExempt[addresses[i]] = status; } } function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isTxLimitExempt[addresses[i]] = status; } } function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isWalletLimitExempt[addresses[i]] = status; } } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen,"trading not open yet"); } if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) { require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached"); } require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded"); if(shouldSwapBack()){ swapBack(); } balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); balanceOf[recipient] = balanceOf[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); balanceOf[recipient] = balanceOf[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { if(amount == 0 || totalFee == 0){ return amount; } uint256 multiplier = transferMultiplier; if(recipient == pair) { multiplier = sellMultiplier; } else if(sender == pair) { multiplier = buyMultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); if(feeAmount > 0){ balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && balanceOf[address(this)] >= swapThreshold; } function clearStuckBalance(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; uint256 amountToClear = ( amountETH * amountPercentage ) / 100; payable(msg.sender).transfer(amountToClear); } function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function takeitlive() external onlyOwner { tradingOpen = true; swapEnabled = true; } function swapBack() internal swapping { address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( swapThreshold, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee; uint256 amountETHOperations = (amountETH * operationsFee) / totalFee; (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(operationsFeeReceiver).call{value: amountETHOperations}(""); } function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized { sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; } function setFees_base100(uint256 _marketingFee, uint256 _operationsFee) external onlyOwner { marketingFee = _marketingFee; operationsFee = _operationsFee; totalFee = _marketingFee + _operationsFee; } function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner { swapEnabled = _enabled; swapThreshold = totalSupply / _denominator; } function getCirculatingSupply() public view returns (uint256) { return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","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":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"setFees_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeitlive","outputs":[],"stateMutability":"nonpayable","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","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260646009600a62000016919062000b5f565b655af3107a400062000029919062000bb0565b62000035919062000c40565b60025560646009600a6200004a919062000b5f565b655af3107a40006200005d919062000bb0565b62000069919062000c40565b60035560026009556001600a55600a5460095462000088919062000c78565b600b5561012c600c5561012c600d5561012c600e556001601160146101000a81548160ff0219169083151502179055506001601160156101000a81548160ff0219169083151502179055506101f46009600a620000e6919062000b5f565b655af3107a4000620000f9919062000bb0565b62000105919062000c40565b6012553480156200011557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000298919062000d1d565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035f919062000d1d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396608051306040518363ffffffff1660e01b81526004016200039d92919062000d60565b6020604051808303816000875af1158015620003bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e3919062000d1d565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073982c8b03c114c9b6b6f700efd9e694e3130db978600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a620008df919062000b5f565b655af3107a4000620008f2919062000bb0565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000995919062000b5f565b655af3107a4000620009a8919062000bb0565b604051620009b7919062000d9e565b60405180910390a362000dbb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a535780860481111562000a2b5762000a2a620009c5565b5b600185161562000a3b5780820291505b808102905062000a4b85620009f4565b945062000a0b565b94509492505050565b60008262000a6e576001905062000b41565b8162000a7e576000905062000b41565b816001811462000a97576002811462000aa25762000ad8565b600191505062000b41565b60ff84111562000ab75762000ab6620009c5565b5b8360020a91508482111562000ad15762000ad0620009c5565b5b5062000b41565b5060208310610133831016604e8410600b841016171562000b125782820a90508381111562000b0c5762000b0b620009c5565b5b62000b41565b62000b21848484600162000a01565b9250905081840481111562000b3b5762000b3a620009c5565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b6c8262000b48565b915062000b798362000b52565b925062000ba87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a5c565b905092915050565b600062000bbd8262000b48565b915062000bca8362000b48565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c065762000c05620009c5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c4d8262000b48565b915062000c5a8362000b48565b92508262000c6d5762000c6c62000c11565b5b828204905092915050565b600062000c858262000b48565b915062000c928362000b48565b925082820190508082111562000cad5762000cac620009c5565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ce58262000cb8565b9050919050565b62000cf78162000cd8565b811462000d0357600080fd5b50565b60008151905062000d178162000cec565b92915050565b60006020828403121562000d365762000d3562000cb3565b5b600062000d468482850162000d06565b91505092915050565b62000d5a8162000cd8565b82525050565b600060408201905062000d77600083018562000d4f565b62000d86602083018462000d4f565b9392505050565b62000d988162000b48565b82525050565b600060208201905062000db5600083018462000d8d565b92915050565b60805160a051613dd262000dfd6000396000818161179c01528181611eb4015281816125000152818161293901526129960152600061268b0152613dd26000f3fe6080604052600436106102325760003560e01c80636ce46bc31161012e578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e1461086e578063df20fd49146108ab578063f0b37c04146108d4578063f887ea40146108fd578063fe9fbb801461092857610239565b8063a8aa1b3114610777578063a9059cbb146107a2578063b6a5d7de146107df578063bd9ab53714610808578063c867d60b1461083157610239565b80637d1db4a5116100f25780637d1db4a5146106a2578063893d20e8146106cd5780638b42507f146106f857806395d89b4114610735578063963c44bf1461076057610239565b80636ce46bc3146105bd57806370a08231146105e6578063715018a61461062357806377b54bad1461063a57806378109e541461067757610239565b80631df4ccfc116101bc5780633f4218e0116101805780633f4218e0146104c657806348a5df04146105035780634be9d8691461052c578063571ac8b0146105555780636b67c4df1461059257610239565b80631df4ccfc146103cb57806323b872dd146103f65780632b112e49146104335780632f54bf6e1461045e578063313ce5671461049b57610239565b806309302dc61161020357806309302dc6146102e6578063095ea7b31461030f578063180b0d7e1461034c57806318160ddd146103775780631da1db5e146103a257610239565b80621086831461023e578062bff4461461026757806306fdde0314610290578063090896be146102bb57610239565b3661023957005b600080fd5b34801561024a57600080fd5b5061026560048036038101906102609190612dd0565b610965565b005b34801561027357600080fd5b5061028e60048036038101906102899190612dd0565b610a97565b005b34801561029c57600080fd5b506102a5610bc9565b6040516102b29190612ec0565b60405180910390f35b3480156102c757600080fd5b506102d0610c02565b6040516102dd9190612efb565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612f42565b610c08565b005b34801561031b57600080fd5b5061033660048036038101906103319190612fcd565b610cd4565b604051610343919061301c565b60405180910390f35b34801561035857600080fd5b50610361610dc6565b60405161036e9190612efb565b60405180910390f35b34801561038357600080fd5b5061038c610dcb565b6040516103999190612efb565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190612f42565b610ded565b005b3480156103d757600080fd5b506103e0610ea2565b6040516103ed9190612efb565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613037565b610ea8565b60405161042a919061301c565b60405180910390f35b34801561043f57600080fd5b506104486110a8565b6040516104559190612efb565b60405180910390f35b34801561046a57600080fd5b506104856004803603810190610480919061308a565b611164565b604051610492919061301c565b60405180910390f35b3480156104a757600080fd5b506104b06111bd565b6040516104bd91906130d3565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e8919061308a565b6111c2565b6040516104fa919061301c565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906130ee565b6111e2565b005b34801561053857600080fd5b50610553600480360381019061054e9190612dd0565b61124e565b005b34801561056157600080fd5b5061057c6004803603810190610577919061308a565b611380565b604051610589919061301c565b60405180910390f35b34801561059e57600080fd5b506105a76113b3565b6040516105b49190612efb565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df919061312e565b6113b9565b005b3480156105f257600080fd5b5061060d6004803603810190610608919061308a565b61141b565b60405161061a9190612efb565b60405180910390f35b34801561062f57600080fd5b50610638611433565b005b34801561064657600080fd5b50610661600480360381019061065c9190612fcd565b611537565b60405161066e919061301c565b60405180910390f35b34801561068357600080fd5b5061068c61168c565b6040516106999190612efb565b60405180910390f35b3480156106ae57600080fd5b506106b7611692565b6040516106c49190612efb565b60405180910390f35b3480156106d957600080fd5b506106e2611698565b6040516106ef9190613190565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a919061308a565b6116c1565b60405161072c919061301c565b60405180910390f35b34801561074157600080fd5b5061074a6116e1565b6040516107579190612ec0565b60405180910390f35b34801561076c57600080fd5b5061077561171a565b005b34801561078357600080fd5b5061078c61179a565b6040516107999190613190565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c49190612fcd565b6117be565b6040516107d6919061301c565b60405180910390f35b3480156107eb57600080fd5b506108066004803603810190610801919061308a565b6117d3565b005b34801561081457600080fd5b5061082f600480360381019061082a9190612f42565b611875565b005b34801561083d57600080fd5b506108586004803603810190610853919061308a565b611941565b604051610865919061301c565b60405180910390f35b34801561087a57600080fd5b50610895600480360381019061089091906131ab565b611961565b6040516108a29190612efb565b60405180910390f35b3480156108b757600080fd5b506108d260048036038101906108cd91906131eb565b6119e8565b005b3480156108e057600080fd5b506108fb60048036038101906108f6919061308a565b611a7e565b005b34801561090957600080fd5b50610912611baf565b60405161091f919061328a565b60405180910390f35b34801561093457600080fd5b5061094f600480360381019061094a919061308a565b611bd5565b60405161095c919061301c565b60405180910390f35b61096e33611bd5565b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a4906132f1565b60405180910390fd5b6101f583839050106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90613383565b60405180910390fd5b60005b83839050811015610a91578160086000868685818110610a1a57610a196133a3565b5b9050602002016020810190610a2f919061308a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610a8a90613401565b90506109f7565b50505050565b610aa033611bd5565b610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad6906132f1565b60405180910390fd5b6101f58383905010610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90613383565b60405180910390fd5b60005b83839050811015610bc3578160066000868685818110610b4c57610b4b6133a3565b5b9050602002016020810190610b61919061308a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610bbc90613401565b9050610b29565b50505050565b6040518060400160405280600a81526020017f427574746572446f67650000000000000000000000000000000000000000000081525081565b600a5481565b610c1133611164565b610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790613495565b60405180910390fd5b6005811015610c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8b90613527565b60405180910390fd5b6103e8816009600a610ca6919061367a565b655af3107a4000610cb791906136c5565b610cc191906136c5565b610ccb919061374e565b60038190555050565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610db49190612efb565b60405180910390a36001905092915050565b606481565b6009600a610dd9919061367a565b655af3107a4000610dea91906136c5565b81565b610df633611164565b610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90613495565b60405180910390fd5b6000479050600060648383610e4a91906136c5565b610e54919061374e565b90503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e9c573d6000803e3d6000fd5b50505050565b600b5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461109457611013826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2b9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61109f848484611c8f565b90509392505050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a61113a919061367a565b655af3107a400061114b91906136c5565b611155919061377f565b61115f919061377f565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600981565b60066020528060005260406000206000915054906101000a900460ff1681565b6111eb33611164565b61122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613495565b60405180910390fd5b8160098190555080600a81905550808261124491906137b3565b600b819055505050565b61125733611bd5565b611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d906132f1565b60405180910390fd5b6101f583839050106112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613383565b60405180910390fd5b60005b8383905081101561137a578160076000868685818110611303576113026133a3565b5b9050602002016020810190611318919061308a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061137390613401565b90506112e0565b50505050565b60006113ac827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610cd4565b9050919050565b60095481565b6113c233611bd5565b611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906132f1565b60405180910390fd5b81600d8190555082600c8190555080600e81905550505050565b60046020528060005260406000206000915090505481565b61143c33611164565b61147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147290613495565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061154233611164565b611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890613495565b60405180910390fd5b60008203611606578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115c29190613190565b602060405180830381865afa1580156115df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160391906137fc565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611641929190613829565b6020604051808303816000875af1158015611660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116849190613867565b905092915050565b60035481565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600781526020017f446f6765466c790000000000000000000000000000000000000000000000000081525081565b61172333611164565b611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613495565b60405180910390fd5b6001601160146101000a81548160ff0219169083151502179055506001601160156101000a81548160ff021916908315150217905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006117cb338484611c8f565b905092915050565b6117dc33611164565b61181b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181290613495565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61187e33611164565b6118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b490613495565b60405180910390fd5b6005811015611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f890613906565b60405180910390fd5b6103e8816009600a611913919061367a565b655af3107a400061192491906136c5565b61192e91906136c5565b611938919061374e565b60028190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119f133611164565b611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613495565b60405180910390fd5b81601160156101000a81548160ff021916908315150217905550806009600a611a59919061367a565b655af3107a4000611a6a91906136c5565b611a74919061374e565b6012819055505050565b611a8733611164565b611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90613495565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4b90613972565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a9190612ec0565b60405180910390fd5b5060008385611c82919061377f565b9050809150509392505050565b6000601360009054906101000a900460ff1615611cb857611cb1848484612329565b9050612322565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d5c5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611db157601160149054906101000a900460ff16611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da7906139de565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e555750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611eab5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f0357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f985760035482600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5691906137b3565b1115611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e90613a4a565b60405180910390fd5b5b60025482111580611ff25750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120465750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613ab6565b60405180910390fd5b61208d6124fc565b1561209b5761209a6125d1565b5b612124826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2b9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061220a5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61221e57612219858486612911565b612220565b825b905061227481600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5a90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123149190612efb565b60405180910390a360019150505b9392505050565b60006123b4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2b9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5a90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e99190612efb565b60405180910390a3600190509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125675750601360009054906101000a900460ff16155b801561257f5750601160159054906101000a900460ff165b80156125cc5750601254600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601360006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561260957612608613ad6565b5b6040519080825280602002602001820160405280156126375781602001602082028036833780820191505090505b509050308160008151811061264f5761264e6133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106126be576126bd6133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94760125460008430426040518663ffffffff1660e01b815260040161275e959493929190613bfe565b600060405180830381600087803b15801561277857600080fd5b505af115801561278c573d6000803e3d6000fd5b5050505060004790506000600b54600954836127a891906136c5565b6127b2919061374e565b90506000600b54600a54846127c791906136c5565b6127d1919061374e565b90506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161281b90613c89565b60006040518083038185875af1925050503d8060008114612858576040519150601f19603f3d011682016040523d82523d6000602084013e61285d565b606091505b50509050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516128a790613c89565b60006040518083038185875af1925050503d80600081146128e4576040519150601f19603f3d011682016040523d82523d6000602084013e6128e9565b606091505b50508091505050505050506000601360006101000a81548160ff021916908315150217905550565b60008083148061292357506000600b54145b1561293057829050612b53565b6000600e5490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361299457600d5490506129ee565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036129ed57600c5490505b5b6000612a35606480612a0091906136c5565b612a2784612a19600b548a612bb890919063ffffffff16565b612bb890919063ffffffff16565b612c3290919063ffffffff16565b90506000811115612b3b57612a9281600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b329190612efb565b60405180910390a35b612b4e8186612c7c90919063ffffffff16565b925050505b9392505050565b6000808284612b6991906137b3565b905083811015612bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba590613cea565b60405180910390fd5b8091505092915050565b6000808303612bca5760009050612c2c565b60008284612bd891906136c5565b9050828482612be7919061374e565b14612c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1e90613d7c565b60405180910390fd5b809150505b92915050565b6000612c7483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc6565b905092915050565b6000612cbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2b565b905092915050565b60008083118290612d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d049190612ec0565b60405180910390fd5b5060008385612d1c919061374e565b9050809150509392505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612d5857612d57612d33565b5b8235905067ffffffffffffffff811115612d7557612d74612d38565b5b602083019150836020820283011115612d9157612d90612d3d565b5b9250929050565b60008115159050919050565b612dad81612d98565b8114612db857600080fd5b50565b600081359050612dca81612da4565b92915050565b600080600060408486031215612de957612de8612d29565b5b600084013567ffffffffffffffff811115612e0757612e06612d2e565b5b612e1386828701612d42565b93509350506020612e2686828701612dbb565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e6a578082015181840152602081019050612e4f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e9282612e30565b612e9c8185612e3b565b9350612eac818560208601612e4c565b612eb581612e76565b840191505092915050565b60006020820190508181036000830152612eda8184612e87565b905092915050565b6000819050919050565b612ef581612ee2565b82525050565b6000602082019050612f106000830184612eec565b92915050565b612f1f81612ee2565b8114612f2a57600080fd5b50565b600081359050612f3c81612f16565b92915050565b600060208284031215612f5857612f57612d29565b5b6000612f6684828501612f2d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f9a82612f6f565b9050919050565b612faa81612f8f565b8114612fb557600080fd5b50565b600081359050612fc781612fa1565b92915050565b60008060408385031215612fe457612fe3612d29565b5b6000612ff285828601612fb8565b925050602061300385828601612f2d565b9150509250929050565b61301681612d98565b82525050565b6000602082019050613031600083018461300d565b92915050565b6000806000606084860312156130505761304f612d29565b5b600061305e86828701612fb8565b935050602061306f86828701612fb8565b925050604061308086828701612f2d565b9150509250925092565b6000602082840312156130a05761309f612d29565b5b60006130ae84828501612fb8565b91505092915050565b600060ff82169050919050565b6130cd816130b7565b82525050565b60006020820190506130e860008301846130c4565b92915050565b6000806040838503121561310557613104612d29565b5b600061311385828601612f2d565b925050602061312485828601612f2d565b9150509250929050565b60008060006060848603121561314757613146612d29565b5b600061315586828701612f2d565b935050602061316686828701612f2d565b925050604061317786828701612f2d565b9150509250925092565b61318a81612f8f565b82525050565b60006020820190506131a56000830184613181565b92915050565b600080604083850312156131c2576131c1612d29565b5b60006131d085828601612fb8565b92505060206131e185828601612fb8565b9150509250929050565b6000806040838503121561320257613201612d29565b5b600061321085828601612dbb565b925050602061322185828601612f2d565b9150509250929050565b6000819050919050565b600061325061324b61324684612f6f565b61322b565b612f6f565b9050919050565b600061326282613235565b9050919050565b600061327482613257565b9050919050565b61328481613269565b82525050565b600060208201905061329f600083018461327b565b92915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b60006132db600b83612e3b565b91506132e6826132a5565b602082019050919050565b6000602082019050818103600083015261330a816132ce565b9050919050565b7f474153204572726f723a206d6178206c696d697420697320353030206164647260008201527f6573736573000000000000000000000000000000000000000000000000000000602082015250565b600061336d602583612e3b565b915061337882613311565b604082019050919050565b6000602082019050818103600083015261339c81613360565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340c82612ee2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361343e5761343d6133d2565b5b600182019050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061347f600683612e3b565b915061348a82613449565b602082019050919050565b600060208201905081810360008301526134ae81613472565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613511602483612e3b565b915061351c826134b5565b604082019050919050565b6000602082019050818103600083015261354081613504565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561359e5780860481111561357a576135796133d2565b5b60018516156135895780820291505b808102905061359785613547565b945061355e565b94509492505050565b6000826135b75760019050613673565b816135c55760009050613673565b81600181146135db57600281146135e557613614565b6001915050613673565b60ff8411156135f7576135f66133d2565b5b8360020a91508482111561360e5761360d6133d2565b5b50613673565b5060208310610133831016604e8410600b84101617156136495782820a905083811115613644576136436133d2565b5b613673565b6136568484846001613554565b9250905081840481111561366d5761366c6133d2565b5b81810290505b9392505050565b600061368582612ee2565b9150613690836130b7565b92506136bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135a7565b905092915050565b60006136d082612ee2565b91506136db83612ee2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613714576137136133d2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061375982612ee2565b915061376483612ee2565b9250826137745761377361371f565b5b828204905092915050565b600061378a82612ee2565b915061379583612ee2565b92508282039050818111156137ad576137ac6133d2565b5b92915050565b60006137be82612ee2565b91506137c983612ee2565b92508282019050808211156137e1576137e06133d2565b5b92915050565b6000815190506137f681612f16565b92915050565b60006020828403121561381257613811612d29565b5b6000613820848285016137e7565b91505092915050565b600060408201905061383e6000830185613181565b61384b6020830184612eec565b9392505050565b60008151905061386181612da4565b92915050565b60006020828403121561387d5761387c612d29565b5b600061388b84828501613852565b91505092915050565b7f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6573732060008201527f7468616e20302e35250000000000000000000000000000000000000000000000602082015250565b60006138f0602983612e3b565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f4f574e45522063616e7420626520756e617574686f72697a6564000000000000600082015250565b600061395c601a83612e3b565b915061396782613926565b602082019050919050565b6000602082019050818103600083015261398b8161394f565b9050919050565b7f74726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006139c8601483612e3b565b91506139d382613992565b602082019050919050565b600060208201905081810360008301526139f7816139bb565b9050919050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b6000613a34601883612e3b565b9150613a3f826139fe565b602082019050919050565b60006020820190508181036000830152613a6381613a27565b9050919050565b7f4d6178205458204c696d69742045786365656465640000000000000000000000600082015250565b6000613aa0601583612e3b565b9150613aab82613a6a565b602082019050919050565b60006020820190508181036000830152613acf81613a93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000613b2a613b25613b2084613b05565b61322b565b612ee2565b9050919050565b613b3a81613b0f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b7581612f8f565b82525050565b6000613b878383613b6c565b60208301905092915050565b6000602082019050919050565b6000613bab82613b40565b613bb58185613b4b565b9350613bc083613b5c565b8060005b83811015613bf1578151613bd88882613b7b565b9750613be383613b93565b925050600181019050613bc4565b5085935050505092915050565b600060a082019050613c136000830188612eec565b613c206020830187613b31565b8181036040830152613c328186613ba0565b9050613c416060830185613181565b613c4e6080830184612eec565b9695505050505050565b600081905092915050565b50565b6000613c73600083613c58565b9150613c7e82613c63565b600082019050919050565b6000613c9482613c66565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613cd4601b83612e3b565b9150613cdf82613c9e565b602082019050919050565b60006020820190508181036000830152613d0381613cc7565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d66602183612e3b565b9150613d7182613d0a565b604082019050919050565b60006020820190508181036000830152613d9581613d59565b905091905056fea26469706673582212203bfb3c25261f2f8f95d86b473d2d84c9445e18164726cf8d669b000a5007029d64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106102325760003560e01c80636ce46bc31161012e578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e1461086e578063df20fd49146108ab578063f0b37c04146108d4578063f887ea40146108fd578063fe9fbb801461092857610239565b8063a8aa1b3114610777578063a9059cbb146107a2578063b6a5d7de146107df578063bd9ab53714610808578063c867d60b1461083157610239565b80637d1db4a5116100f25780637d1db4a5146106a2578063893d20e8146106cd5780638b42507f146106f857806395d89b4114610735578063963c44bf1461076057610239565b80636ce46bc3146105bd57806370a08231146105e6578063715018a61461062357806377b54bad1461063a57806378109e541461067757610239565b80631df4ccfc116101bc5780633f4218e0116101805780633f4218e0146104c657806348a5df04146105035780634be9d8691461052c578063571ac8b0146105555780636b67c4df1461059257610239565b80631df4ccfc146103cb57806323b872dd146103f65780632b112e49146104335780632f54bf6e1461045e578063313ce5671461049b57610239565b806309302dc61161020357806309302dc6146102e6578063095ea7b31461030f578063180b0d7e1461034c57806318160ddd146103775780631da1db5e146103a257610239565b80621086831461023e578062bff4461461026757806306fdde0314610290578063090896be146102bb57610239565b3661023957005b600080fd5b34801561024a57600080fd5b5061026560048036038101906102609190612dd0565b610965565b005b34801561027357600080fd5b5061028e60048036038101906102899190612dd0565b610a97565b005b34801561029c57600080fd5b506102a5610bc9565b6040516102b29190612ec0565b60405180910390f35b3480156102c757600080fd5b506102d0610c02565b6040516102dd9190612efb565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612f42565b610c08565b005b34801561031b57600080fd5b5061033660048036038101906103319190612fcd565b610cd4565b604051610343919061301c565b60405180910390f35b34801561035857600080fd5b50610361610dc6565b60405161036e9190612efb565b60405180910390f35b34801561038357600080fd5b5061038c610dcb565b6040516103999190612efb565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190612f42565b610ded565b005b3480156103d757600080fd5b506103e0610ea2565b6040516103ed9190612efb565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613037565b610ea8565b60405161042a919061301c565b60405180910390f35b34801561043f57600080fd5b506104486110a8565b6040516104559190612efb565b60405180910390f35b34801561046a57600080fd5b506104856004803603810190610480919061308a565b611164565b604051610492919061301c565b60405180910390f35b3480156104a757600080fd5b506104b06111bd565b6040516104bd91906130d3565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e8919061308a565b6111c2565b6040516104fa919061301c565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906130ee565b6111e2565b005b34801561053857600080fd5b50610553600480360381019061054e9190612dd0565b61124e565b005b34801561056157600080fd5b5061057c6004803603810190610577919061308a565b611380565b604051610589919061301c565b60405180910390f35b34801561059e57600080fd5b506105a76113b3565b6040516105b49190612efb565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df919061312e565b6113b9565b005b3480156105f257600080fd5b5061060d6004803603810190610608919061308a565b61141b565b60405161061a9190612efb565b60405180910390f35b34801561062f57600080fd5b50610638611433565b005b34801561064657600080fd5b50610661600480360381019061065c9190612fcd565b611537565b60405161066e919061301c565b60405180910390f35b34801561068357600080fd5b5061068c61168c565b6040516106999190612efb565b60405180910390f35b3480156106ae57600080fd5b506106b7611692565b6040516106c49190612efb565b60405180910390f35b3480156106d957600080fd5b506106e2611698565b6040516106ef9190613190565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a919061308a565b6116c1565b60405161072c919061301c565b60405180910390f35b34801561074157600080fd5b5061074a6116e1565b6040516107579190612ec0565b60405180910390f35b34801561076c57600080fd5b5061077561171a565b005b34801561078357600080fd5b5061078c61179a565b6040516107999190613190565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c49190612fcd565b6117be565b6040516107d6919061301c565b60405180910390f35b3480156107eb57600080fd5b506108066004803603810190610801919061308a565b6117d3565b005b34801561081457600080fd5b5061082f600480360381019061082a9190612f42565b611875565b005b34801561083d57600080fd5b506108586004803603810190610853919061308a565b611941565b604051610865919061301c565b60405180910390f35b34801561087a57600080fd5b50610895600480360381019061089091906131ab565b611961565b6040516108a29190612efb565b60405180910390f35b3480156108b757600080fd5b506108d260048036038101906108cd91906131eb565b6119e8565b005b3480156108e057600080fd5b506108fb60048036038101906108f6919061308a565b611a7e565b005b34801561090957600080fd5b50610912611baf565b60405161091f919061328a565b60405180910390f35b34801561093457600080fd5b5061094f600480360381019061094a919061308a565b611bd5565b60405161095c919061301c565b60405180910390f35b61096e33611bd5565b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a4906132f1565b60405180910390fd5b6101f583839050106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90613383565b60405180910390fd5b60005b83839050811015610a91578160086000868685818110610a1a57610a196133a3565b5b9050602002016020810190610a2f919061308a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610a8a90613401565b90506109f7565b50505050565b610aa033611bd5565b610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad6906132f1565b60405180910390fd5b6101f58383905010610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90613383565b60405180910390fd5b60005b83839050811015610bc3578160066000868685818110610b4c57610b4b6133a3565b5b9050602002016020810190610b61919061308a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610bbc90613401565b9050610b29565b50505050565b6040518060400160405280600a81526020017f427574746572446f67650000000000000000000000000000000000000000000081525081565b600a5481565b610c1133611164565b610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790613495565b60405180910390fd5b6005811015610c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8b90613527565b60405180910390fd5b6103e8816009600a610ca6919061367a565b655af3107a4000610cb791906136c5565b610cc191906136c5565b610ccb919061374e565b60038190555050565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610db49190612efb565b60405180910390a36001905092915050565b606481565b6009600a610dd9919061367a565b655af3107a4000610dea91906136c5565b81565b610df633611164565b610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90613495565b60405180910390fd5b6000479050600060648383610e4a91906136c5565b610e54919061374e565b90503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e9c573d6000803e3d6000fd5b50505050565b600b5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461109457611013826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2b9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61109f848484611c8f565b90509392505050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a61113a919061367a565b655af3107a400061114b91906136c5565b611155919061377f565b61115f919061377f565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600981565b60066020528060005260406000206000915054906101000a900460ff1681565b6111eb33611164565b61122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613495565b60405180910390fd5b8160098190555080600a81905550808261124491906137b3565b600b819055505050565b61125733611bd5565b611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d906132f1565b60405180910390fd5b6101f583839050106112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613383565b60405180910390fd5b60005b8383905081101561137a578160076000868685818110611303576113026133a3565b5b9050602002016020810190611318919061308a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061137390613401565b90506112e0565b50505050565b60006113ac827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610cd4565b9050919050565b60095481565b6113c233611bd5565b611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906132f1565b60405180910390fd5b81600d8190555082600c8190555080600e81905550505050565b60046020528060005260406000206000915090505481565b61143c33611164565b61147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147290613495565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061154233611164565b611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890613495565b60405180910390fd5b60008203611606578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115c29190613190565b602060405180830381865afa1580156115df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160391906137fc565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611641929190613829565b6020604051808303816000875af1158015611660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116849190613867565b905092915050565b60035481565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600781526020017f446f6765466c790000000000000000000000000000000000000000000000000081525081565b61172333611164565b611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613495565b60405180910390fd5b6001601160146101000a81548160ff0219169083151502179055506001601160156101000a81548160ff021916908315150217905550565b7f000000000000000000000000865665ebdfceaf6cbdb285861b4cb6b31586ebdf81565b60006117cb338484611c8f565b905092915050565b6117dc33611164565b61181b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181290613495565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61187e33611164565b6118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b490613495565b60405180910390fd5b6005811015611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f890613906565b60405180910390fd5b6103e8816009600a611913919061367a565b655af3107a400061192491906136c5565b61192e91906136c5565b611938919061374e565b60028190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119f133611164565b611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613495565b60405180910390fd5b81601160156101000a81548160ff021916908315150217905550806009600a611a59919061367a565b655af3107a4000611a6a91906136c5565b611a74919061374e565b6012819055505050565b611a8733611164565b611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90613495565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4b90613972565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a9190612ec0565b60405180910390fd5b5060008385611c82919061377f565b9050809150509392505050565b6000601360009054906101000a900460ff1615611cb857611cb1848484612329565b9050612322565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d5c5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611db157601160149054906101000a900460ff16611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da7906139de565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e555750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611eab5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f0357507f000000000000000000000000865665ebdfceaf6cbdb285861b4cb6b31586ebdf73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f985760035482600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5691906137b3565b1115611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e90613a4a565b60405180910390fd5b5b60025482111580611ff25750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120465750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613ab6565b60405180910390fd5b61208d6124fc565b1561209b5761209a6125d1565b5b612124826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2b9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061220a5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61221e57612219858486612911565b612220565b825b905061227481600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5a90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123149190612efb565b60405180910390a360019150505b9392505050565b60006123b4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2b9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5a90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e99190612efb565b60405180910390a3600190509392505050565b60007f000000000000000000000000865665ebdfceaf6cbdb285861b4cb6b31586ebdf73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125675750601360009054906101000a900460ff16155b801561257f5750601160159054906101000a900460ff165b80156125cc5750601254600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601360006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561260957612608613ad6565b5b6040519080825280602002602001820160405280156126375781602001602082028036833780820191505090505b509050308160008151811061264f5761264e6133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106126be576126bd6133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94760125460008430426040518663ffffffff1660e01b815260040161275e959493929190613bfe565b600060405180830381600087803b15801561277857600080fd5b505af115801561278c573d6000803e3d6000fd5b5050505060004790506000600b54600954836127a891906136c5565b6127b2919061374e565b90506000600b54600a54846127c791906136c5565b6127d1919061374e565b90506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161281b90613c89565b60006040518083038185875af1925050503d8060008114612858576040519150601f19603f3d011682016040523d82523d6000602084013e61285d565b606091505b50509050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516128a790613c89565b60006040518083038185875af1925050503d80600081146128e4576040519150601f19603f3d011682016040523d82523d6000602084013e6128e9565b606091505b50508091505050505050506000601360006101000a81548160ff021916908315150217905550565b60008083148061292357506000600b54145b1561293057829050612b53565b6000600e5490507f000000000000000000000000865665ebdfceaf6cbdb285861b4cb6b31586ebdf73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361299457600d5490506129ee565b7f000000000000000000000000865665ebdfceaf6cbdb285861b4cb6b31586ebdf73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036129ed57600c5490505b5b6000612a35606480612a0091906136c5565b612a2784612a19600b548a612bb890919063ffffffff16565b612bb890919063ffffffff16565b612c3290919063ffffffff16565b90506000811115612b3b57612a9281600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b329190612efb565b60405180910390a35b612b4e8186612c7c90919063ffffffff16565b925050505b9392505050565b6000808284612b6991906137b3565b905083811015612bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba590613cea565b60405180910390fd5b8091505092915050565b6000808303612bca5760009050612c2c565b60008284612bd891906136c5565b9050828482612be7919061374e565b14612c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1e90613d7c565b60405180910390fd5b809150505b92915050565b6000612c7483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc6565b905092915050565b6000612cbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2b565b905092915050565b60008083118290612d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d049190612ec0565b60405180910390fd5b5060008385612d1c919061374e565b9050809150509392505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612d5857612d57612d33565b5b8235905067ffffffffffffffff811115612d7557612d74612d38565b5b602083019150836020820283011115612d9157612d90612d3d565b5b9250929050565b60008115159050919050565b612dad81612d98565b8114612db857600080fd5b50565b600081359050612dca81612da4565b92915050565b600080600060408486031215612de957612de8612d29565b5b600084013567ffffffffffffffff811115612e0757612e06612d2e565b5b612e1386828701612d42565b93509350506020612e2686828701612dbb565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e6a578082015181840152602081019050612e4f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e9282612e30565b612e9c8185612e3b565b9350612eac818560208601612e4c565b612eb581612e76565b840191505092915050565b60006020820190508181036000830152612eda8184612e87565b905092915050565b6000819050919050565b612ef581612ee2565b82525050565b6000602082019050612f106000830184612eec565b92915050565b612f1f81612ee2565b8114612f2a57600080fd5b50565b600081359050612f3c81612f16565b92915050565b600060208284031215612f5857612f57612d29565b5b6000612f6684828501612f2d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f9a82612f6f565b9050919050565b612faa81612f8f565b8114612fb557600080fd5b50565b600081359050612fc781612fa1565b92915050565b60008060408385031215612fe457612fe3612d29565b5b6000612ff285828601612fb8565b925050602061300385828601612f2d565b9150509250929050565b61301681612d98565b82525050565b6000602082019050613031600083018461300d565b92915050565b6000806000606084860312156130505761304f612d29565b5b600061305e86828701612fb8565b935050602061306f86828701612fb8565b925050604061308086828701612f2d565b9150509250925092565b6000602082840312156130a05761309f612d29565b5b60006130ae84828501612fb8565b91505092915050565b600060ff82169050919050565b6130cd816130b7565b82525050565b60006020820190506130e860008301846130c4565b92915050565b6000806040838503121561310557613104612d29565b5b600061311385828601612f2d565b925050602061312485828601612f2d565b9150509250929050565b60008060006060848603121561314757613146612d29565b5b600061315586828701612f2d565b935050602061316686828701612f2d565b925050604061317786828701612f2d565b9150509250925092565b61318a81612f8f565b82525050565b60006020820190506131a56000830184613181565b92915050565b600080604083850312156131c2576131c1612d29565b5b60006131d085828601612fb8565b92505060206131e185828601612fb8565b9150509250929050565b6000806040838503121561320257613201612d29565b5b600061321085828601612dbb565b925050602061322185828601612f2d565b9150509250929050565b6000819050919050565b600061325061324b61324684612f6f565b61322b565b612f6f565b9050919050565b600061326282613235565b9050919050565b600061327482613257565b9050919050565b61328481613269565b82525050565b600060208201905061329f600083018461327b565b92915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b60006132db600b83612e3b565b91506132e6826132a5565b602082019050919050565b6000602082019050818103600083015261330a816132ce565b9050919050565b7f474153204572726f723a206d6178206c696d697420697320353030206164647260008201527f6573736573000000000000000000000000000000000000000000000000000000602082015250565b600061336d602583612e3b565b915061337882613311565b604082019050919050565b6000602082019050818103600083015261339c81613360565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340c82612ee2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361343e5761343d6133d2565b5b600182019050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061347f600683612e3b565b915061348a82613449565b602082019050919050565b600060208201905081810360008301526134ae81613472565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613511602483612e3b565b915061351c826134b5565b604082019050919050565b6000602082019050818103600083015261354081613504565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561359e5780860481111561357a576135796133d2565b5b60018516156135895780820291505b808102905061359785613547565b945061355e565b94509492505050565b6000826135b75760019050613673565b816135c55760009050613673565b81600181146135db57600281146135e557613614565b6001915050613673565b60ff8411156135f7576135f66133d2565b5b8360020a91508482111561360e5761360d6133d2565b5b50613673565b5060208310610133831016604e8410600b84101617156136495782820a905083811115613644576136436133d2565b5b613673565b6136568484846001613554565b9250905081840481111561366d5761366c6133d2565b5b81810290505b9392505050565b600061368582612ee2565b9150613690836130b7565b92506136bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135a7565b905092915050565b60006136d082612ee2565b91506136db83612ee2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613714576137136133d2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061375982612ee2565b915061376483612ee2565b9250826137745761377361371f565b5b828204905092915050565b600061378a82612ee2565b915061379583612ee2565b92508282039050818111156137ad576137ac6133d2565b5b92915050565b60006137be82612ee2565b91506137c983612ee2565b92508282019050808211156137e1576137e06133d2565b5b92915050565b6000815190506137f681612f16565b92915050565b60006020828403121561381257613811612d29565b5b6000613820848285016137e7565b91505092915050565b600060408201905061383e6000830185613181565b61384b6020830184612eec565b9392505050565b60008151905061386181612da4565b92915050565b60006020828403121561387d5761387c612d29565b5b600061388b84828501613852565b91505092915050565b7f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6573732060008201527f7468616e20302e35250000000000000000000000000000000000000000000000602082015250565b60006138f0602983612e3b565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f4f574e45522063616e7420626520756e617574686f72697a6564000000000000600082015250565b600061395c601a83612e3b565b915061396782613926565b602082019050919050565b6000602082019050818103600083015261398b8161394f565b9050919050565b7f74726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006139c8601483612e3b565b91506139d382613992565b602082019050919050565b600060208201905081810360008301526139f7816139bb565b9050919050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b6000613a34601883612e3b565b9150613a3f826139fe565b602082019050919050565b60006020820190508181036000830152613a6381613a27565b9050919050565b7f4d6178205458204c696d69742045786365656465640000000000000000000000600082015250565b6000613aa0601583612e3b565b9150613aab82613a6a565b602082019050919050565b60006020820190508181036000830152613acf81613a93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000613b2a613b25613b2084613b05565b61322b565b612ee2565b9050919050565b613b3a81613b0f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b7581612f8f565b82525050565b6000613b878383613b6c565b60208301905092915050565b6000602082019050919050565b6000613bab82613b40565b613bb58185613b4b565b9350613bc083613b5c565b8060005b83811015613bf1578151613bd88882613b7b565b9750613be383613b93565b925050600181019050613bc4565b5085935050505092915050565b600060a082019050613c136000830188612eec565b613c206020830187613b31565b8181036040830152613c328186613ba0565b9050613c416060830185613181565b613c4e6080830184612eec565b9695505050505050565b600081905092915050565b50565b6000613c73600083613c58565b9150613c7e82613c63565b600082019050919050565b6000613c9482613c66565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613cd4601b83612e3b565b9150613cdf82613c9e565b602082019050919050565b60006020820190508181036000830152613d0381613cc7565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d66602183612e3b565b9150613d7182613d0a565b604082019050919050565b60006020820190508181036000830152613d9581613d59565b905091905056fea26469706673582212203bfb3c25261f2f8f95d86b473d2d84c9445e18164726cf8d669b000a5007029d64736f6c63430008100033
Deployed Bytecode Sourcemap
3405:9744:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8205:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7591:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3667:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4321:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7050:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6154:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4421:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3807:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10925:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4360:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6672:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13007:137;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2570:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3764:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4116:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12581:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7894:303;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6378:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4283:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12374:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3994:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2796:125;;;;;;;;;;;;;:::i;:::-;;11192:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3881:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5929:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4167:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3716:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11486:107;;;;;;;;;;;;;:::i;:::-;;4692:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6508:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2299:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7319:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4222:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6013:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12820:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2401:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4661:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2681:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8205:311;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8340:3:::1;8321:9;;:16;;:22;8313:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8400:9;8395:114;8417:9;;:16;;8413:1;:20;8395:114;;;8491:6;8455:19;:33;8475:9;;8485:1;8475:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8455:33;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;8435:3;;;;:::i;:::-;;;8395:114;;;;8205:311:::0;;;:::o;7591:295::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;7718:3:::1;7699:9;;:16;;:22;7691:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7778:9;7773:106;7795:9;;:16;;7791:1;:20;7773:106;;;7861:6;7833:11;:25;7845:9;;7855:1;7845:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7833:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;7813:3;;;;:::i;:::-;;;7773:106;;;;7591:295:::0;;;:::o;3667:42::-;;;;;;;;;;;;;;;;;;;:::o;4321:32::-;;;;:::o;7050:261::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7186:1:::1;7159:23;:28;;7151:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;7299:4;7271:23;3797:1;3860:2;:12;;;;:::i;:::-;3845;:27;;;;:::i;:::-;7257:37;;;;:::i;:::-;7256:47;;;;:::i;:::-;7238:15;:65;;;;7050:261:::0;:::o;6154:216::-;6229:4;6281:6;6246:11;:23;6258:10;6246:23;;;;;;;;;;;;;;;:32;6270:7;6246:32;;;;;;;;;;;;;;;:41;;;;6324:7;6303:37;;6312:10;6303:37;;;6333:6;6303:37;;;;;;:::i;:::-;;;;;;;;6358:4;6351:11;;6154:216;;;;:::o;4421:44::-;4462:3;4421:44;:::o;3807:65::-;3797:1;3860:2;:12;;;;:::i;:::-;3845;:27;;;;:::i;:::-;3807:65;:::o;10925:259::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11008:17:::1;11028:21;11008:41;;11060:21;11119:3;11098:16;11086:9;:28;;;;:::i;:::-;11084:38;;;;:::i;:::-;11060:62;;11141:10;11133:28;;:43;11162:13;11133:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10997:187;;10925:259:::0;:::o;4360:54::-;;;;:::o;6672:370::-;6772:4;6827:17;6792:11;:19;6804:6;6792:19;;;;;;;;;;;;;;;:31;6812:10;6792:31;;;;;;;;;;;;;;;;:52;6789:186;;6894:69;6930:6;6894:69;;;;;;;;;;;;;;;;;:11;:19;6906:6;6894:19;;;;;;;;;;;;;;;:31;6914:10;6894:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;6860:11;:19;6872:6;6860:19;;;;;;;;;;;;;;;:31;6880:10;6860:31;;;;;;;;;;;;;;;:103;;;;6789:186;6994:40;7008:6;7016:9;7027:6;6994:13;:40::i;:::-;6987:47;;6672:370;;;;;:::o;13007:137::-;13060:7;13120:9;:15;3616:42;13120:15;;;;;;;;;;;;;;;;13102:9;:15;3543:42;13102:15;;;;;;;;;;;;;;;;3797:1;3860:2;:12;;;;:::i;:::-;3845;:27;;;;:::i;:::-;13088:29;;;;:::i;:::-;:47;;;;:::i;:::-;13080:56;;13007:137;:::o;2570:103::-;2625:4;2660:5;;;;;;;;;;;2649:16;;:7;:16;;;2642:23;;2570:103;;;:::o;3764:34::-;3797:1;3764:34;:::o;4116:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12581:231::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12698:13:::1;12683:12;:28;;;;12738:14;12722:13;:30;;;;12790:14;12774:13;:30;;;;:::i;:::-;12763:8;:41;;;;12581:231:::0;;:::o;7894:303::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8025:3:::1;8006:9;;:16;;:22;7998:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8085:9;8080:110;8102:9;;:16;;8098:1;:20;8080:110;;;8172:6;8140:15;:29;8156:9;;8166:1;8156:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8140:29;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;8120:3;;;;:::i;:::-;;;8080:110;;;;7894:303:::0;;;:::o;6378:122::-;6433:4;6457:35;6465:7;6474:17;6457:7;:35::i;:::-;6450:42;;6378:122;;;:::o;4283:31::-;;;;:::o;12374:199::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12491:5:::1;12474:14;:22;;;;12523:4;12507:13;:20;;;;12559:6;12538:18;:27;;;;12374:199:::0;;;:::o;3994:45::-;;;;;;;;;;;;;;;;;:::o;2796:125::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2879:5:::1;2855:14;:21;2870:5:::0;::::1;;;;;;;;;;2855:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2911:1;2895:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2796:125::o:0;11192:286::-;11283:12;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11321:1:::1;11311:6;:11:::0;11308:95:::1;;11353:12;11347:29;;;11385:4;11347:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11338:53;;11308:95;11428:12;11422:28;;;11451:10;11463:6;11422:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11415:55;;11192:286:::0;;;;:::o;3935:50::-;;;;:::o;3881:47::-;;;;:::o;5929:78::-;5981:7;5999:5;;;;;;;;;;;5992:12;;5929:78;:::o;4167:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3716:41::-;;;;;;;;;;;;;;;;;;;:::o;11486:107::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11552:4:::1;11538:11;;:18;;;;;;;;;;;;;;;;;;11581:4;11567:11;;:18;;;;;;;;;;;;;;;;;;11486:107::o:0;4692:29::-;;;:::o;6508:156::-;6588:4;6612:44;6626:10;6638:9;6649:6;6612:13;:44::i;:::-;6605:51;;6508:156;;;;:::o;2299:94::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2381:4:::1;2359:14:::0;:19:::1;2374:3;2359:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2299:94:::0;:::o;7319:262::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7453:1:::1;7425:24;:29;;7417:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;7569:4;7540:24;3797:1;3860:2;:12;;;;:::i;:::-;3845;:27;;;;:::i;:::-;7526:38;;;;:::i;:::-;7525:48;;;;:::i;:::-;7510:12;:63;;;;7319:262:::0;:::o;4222:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;6013:133::-;6097:7;6115:11;:19;6127:6;6115:19;;;;;;;;;;;;;;;:28;6135:7;6115:28;;;;;;;;;;;;;;;;6108:35;;6013:133;;;;:::o;12820:179::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12930:8:::1;12916:11;;:22;;;;;;;;;;;;;;;;;;12979:12;3797:1;3860:2;:12;;;;:::i;:::-;3845;:27;;;;:::i;:::-;12965:26;;;;:::i;:::-;12949:13;:42;;;;12820:179:::0;;:::o;2401:161::-;2150:19;2158:10;2150:7;:19::i;:::-;2142:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2480:5:::1;::::0;::::1;;;;;;;;2473:12;;:3;:12;;::::0;2465:51:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2549:5;2527:14;:19;2542:3;2527:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2401:161:::0;:::o;4661:24::-;;;;;;;;;;;;;:::o;2681:107::-;2737:4;2761:14;:19;2776:3;2761:19;;;;;;;;;;;;;;;;;;;;;;;;;2754:26;;2681:107;;;:::o;422:192::-;508:7;541:1;536;:6;;544:12;528:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;568:9;584:1;580;:5;;;;:::i;:::-;568:17;;605:1;598:8;;;422:192;;;;;:::o;8524:1115::-;8616:4;8636:6;;;;;;;;;;;8633:63;;;8652:41;8667:6;8675:9;8686:6;8652:14;:41::i;:::-;8645:48;;;;8633:63;8712:14;:22;8727:6;8712:22;;;;;;;;;;;;;;;;;;;;;;;;;8711:23;:53;;;;;8739:14;:25;8754:9;8739:25;;;;;;;;;;;;;;;;;;;;;;;;;8738:26;8711:53;8708:127;;;8788:11;;;;;;;;;;;8780:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8708:127;8852:14;:22;8867:6;8852:22;;;;;;;;;;;;;;;;;;;;;;;;;8851:23;:55;;;;;8879:19;:27;8899:6;8879:27;;;;;;;;;;;;;;;;;;;;;;;;;8878:28;8851:55;:90;;;;;8911:19;:30;8931:9;8911:30;;;;;;;;;;;;;;;;;;;;;;;;;8910:31;8851:90;:111;;;;;8958:4;8945:17;;:9;:17;;;;8851:111;8847:230;;;9022:15;;9011:6;8988:9;:20;8998:9;8988:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;8987:50;;8979:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;8847:230;9112:12;;9102:6;:22;;9101:51;;;;9129:15;:23;9145:6;9129:23;;;;;;;;;;;;;;;;;;;;;;;;;9101:51;:81;;;;9156:15;:26;9172:9;9156:26;;;;;;;;;;;;;;;;;;;;;;;;;9101:81;9093:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;9224:16;:14;:16::i;:::-;9221:35;;;9243:10;:8;:10::i;:::-;9221:35;9288:53;9310:6;9288:53;;;;;;;;;;;;;;;;;:9;:17;9298:6;9288:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9268:9;:17;9278:6;9268:17;;;;;;;;;;;;;;;:73;;;;9354:22;9380:11;:19;9392:6;9380:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;9403:11;:22;9415:9;9403:22;;;;;;;;;;;;;;;;;;;;;;;;;9380:45;9379:93;;9438:34;9446:6;9454;9462:9;9438:7;:34::i;:::-;9379:93;;;9429:6;9379:93;9354:118;;9508:40;9533:14;9508:9;:20;9518:9;9508:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9485:9;:20;9495:9;9485:20;;;;;;;;;;;;;;;:63;;;;9583:9;9566:43;;9575:6;9566:43;;;9594:14;9566:43;;;;;;:::i;:::-;;;;;;;;9627:4;9620:11;;;8524:1115;;;;;;:::o;9651:330::-;9744:4;9781:53;9803:6;9781:53;;;;;;;;;;;;;;;;;:9;:17;9791:6;9781:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9761:9;:17;9771:6;9761:17;;;;;;;;;;;;;;;:73;;;;9868:32;9893:6;9868:9;:20;9878:9;9868:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9845:9;:20;9855:9;9845:20;;;;;;;;;;;;;;;:55;;;;9933:9;9916:35;;9925:6;9916:35;;;9944:6;9916:35;;;;;;:::i;:::-;;;;;;;;9969:4;9962:11;;9651:330;;;;;:::o;10720:197::-;10769:4;10807;10793:18;;:10;:18;;;;:38;;;;;10825:6;;;;;;;;;;;10824:7;10793:38;:62;;;;;10844:11;;;;;;;;;;;10793:62;:116;;;;;10896:13;;10868:9;:24;10886:4;10868:24;;;;;;;;;;;;;;;;:41;;10793:116;10786:123;;10720:197;:::o;11601:765::-;4889:4;4880:6;;:13;;;;;;;;;;;;;;;;;;11652:21:::1;11690:1;11676:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11652:40;;11721:4;11703;11708:1;11703:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11747:4;11737;11742:1;11737:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11764:6;;;;;;;;;;;:57;;;11836:13;;11864:1;11880:4;11907;11927:15;11764:189;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11966:17;11986:21;11966:41;;12020:26;12078:8;;12062:12;;12050:9;:24;;;;:::i;:::-;12049:37;;;;:::i;:::-;12020:66;;12097:27;12157:8;;12140:13;;12128:9;:25;;;;:::i;:::-;12127:38;;;;:::i;:::-;12097:68;;12179:15;12207:20;;;;;;;;;;;12199:34;;12241:18;12199:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12178:86;;;12299:21;;;;;;;;;;;12291:35;;12334:19;12291:67;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12275:83;;;;;11639:727;;;;;4907:5:::0;4898:6;;:14;;;;;;;;;;;;;;;;;;11601:765::o;9989:723::-;10075:7;10108:1;10098:6;:11;:28;;;;10125:1;10113:8;;:13;10098:28;10095:72;;;10149:6;10142:13;;;;10095:72;10179:18;10200;;10179:39;;10247:4;10234:17;;:9;:17;;;10231:154;;10281:14;;10268:27;;10231:154;;;10326:4;10316:14;;:6;:14;;;10313:72;;10360:13;;10347:26;;10313:72;10231:154;10397:17;10417:62;10475:3;4462;10458:20;;;;:::i;:::-;10417:36;10442:10;10417:20;10428:8;;10417:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;10397:82;;10507:1;10495:9;:13;10492:172;;;10551:39;10580:9;10551;:24;10569:4;10551:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10524:9;:24;10542:4;10524:24;;;;;;;;;;;;;;;:66;;;;10635:4;10610:42;;10619:6;10610:42;;;10642:9;10610:42;;;;;;:::i;:::-;;;;;;;;10492:172;10683:21;10694:9;10683:6;:10;;:21;;;;:::i;:::-;10676:28;;;;9989:723;;;;;;:::o;93:181::-;151:7;171:9;187:1;183;:5;;;;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;265:1;258:8;;;93:181;;;;:::o;620:250::-;678:7;707:1;702;:6;698:47;;732:1;725:8;;;;698:47;757:9;773:1;769;:5;;;;:::i;:::-;757:17;;802:1;797;793;:5;;;;:::i;:::-;:10;785:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;861:1;854:8;;;620:250;;;;;:::o;876:132::-;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;954:46;;876:132;;;;:::o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;358:50;;280:136;;;;:::o;1014:189::-;1100:7;1132:1;1128;:5;1135:12;1120:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1159:9;1175:1;1171;:5;;;;:::i;:::-;1159:17;;1194:1;1187:8;;;1014:189;;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;720:568;793:8;803:6;853:3;846:4;838:6;834:17;830:27;820:122;;861:79;;:::i;:::-;820:122;974:6;961:20;951:30;;1004:18;996:6;993:30;990:117;;;1026:79;;:::i;:::-;990:117;1140:4;1132:6;1128:17;1116:29;;1194:3;1186:4;1178:6;1174:17;1164:8;1160:32;1157:41;1154:128;;;1201:79;;:::i;:::-;1154:128;720:568;;;;;:::o;1294:90::-;1328:7;1371:5;1364:13;1357:21;1346:32;;1294:90;;;:::o;1390:116::-;1460:21;1475:5;1460:21;:::i;:::-;1453:5;1450:32;1440:60;;1496:1;1493;1486:12;1440:60;1390:116;:::o;1512:133::-;1555:5;1593:6;1580:20;1571:29;;1609:30;1633:5;1609:30;:::i;:::-;1512:133;;;;:::o;1651:698::-;1743:6;1751;1759;1808:2;1796:9;1787:7;1783:23;1779:32;1776:119;;;1814:79;;:::i;:::-;1776:119;1962:1;1951:9;1947:17;1934:31;1992:18;1984:6;1981:30;1978:117;;;2014:79;;:::i;:::-;1978:117;2127:80;2199:7;2190:6;2179:9;2175:22;2127:80;:::i;:::-;2109:98;;;;1905:312;2256:2;2282:50;2324:7;2315:6;2304:9;2300:22;2282:50;:::i;:::-;2272:60;;2227:115;1651:698;;;;;:::o;2355:99::-;2407:6;2441:5;2435:12;2425:22;;2355:99;;;:::o;2460:169::-;2544:11;2578:6;2573:3;2566:19;2618:4;2613:3;2609:14;2594:29;;2460:169;;;;:::o;2635:246::-;2716:1;2726:113;2740:6;2737:1;2734:13;2726:113;;;2825:1;2820:3;2816:11;2810:18;2806:1;2801:3;2797:11;2790:39;2762:2;2759:1;2755:10;2750:15;;2726:113;;;2873:1;2864:6;2859:3;2855:16;2848:27;2697:184;2635:246;;;:::o;2887:102::-;2928:6;2979:2;2975:7;2970:2;2963:5;2959:14;2955:28;2945:38;;2887:102;;;:::o;2995:377::-;3083:3;3111:39;3144:5;3111:39;:::i;:::-;3166:71;3230:6;3225:3;3166:71;:::i;:::-;3159:78;;3246:65;3304:6;3299:3;3292:4;3285:5;3281:16;3246:65;:::i;:::-;3336:29;3358:6;3336:29;:::i;:::-;3331:3;3327:39;3320:46;;3087:285;2995:377;;;;:::o;3378:313::-;3491:4;3529:2;3518:9;3514:18;3506:26;;3578:9;3572:4;3568:20;3564:1;3553:9;3549:17;3542:47;3606:78;3679:4;3670:6;3606:78;:::i;:::-;3598:86;;3378:313;;;;:::o;3697:77::-;3734:7;3763:5;3752:16;;3697:77;;;:::o;3780:118::-;3867:24;3885:5;3867:24;:::i;:::-;3862:3;3855:37;3780:118;;:::o;3904:222::-;3997:4;4035:2;4024:9;4020:18;4012:26;;4048:71;4116:1;4105:9;4101:17;4092:6;4048:71;:::i;:::-;3904:222;;;;:::o;4132:122::-;4205:24;4223:5;4205:24;:::i;:::-;4198:5;4195:35;4185:63;;4244:1;4241;4234:12;4185:63;4132:122;:::o;4260:139::-;4306:5;4344:6;4331:20;4322:29;;4360:33;4387:5;4360:33;:::i;:::-;4260:139;;;;:::o;4405:329::-;4464:6;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4405:329;;;;:::o;4740:126::-;4777:7;4817:42;4810:5;4806:54;4795:65;;4740:126;;;:::o;4872:96::-;4909:7;4938:24;4956:5;4938:24;:::i;:::-;4927:35;;4872:96;;;:::o;4974:122::-;5047:24;5065:5;5047:24;:::i;:::-;5040:5;5037:35;5027:63;;5086:1;5083;5076:12;5027:63;4974:122;:::o;5102:139::-;5148:5;5186:6;5173:20;5164:29;;5202:33;5229:5;5202:33;:::i;:::-;5102:139;;;;:::o;5247:474::-;5315:6;5323;5372:2;5360:9;5351:7;5347:23;5343:32;5340:119;;;5378:79;;:::i;:::-;5340:119;5498:1;5523:53;5568:7;5559:6;5548:9;5544:22;5523:53;:::i;:::-;5513:63;;5469:117;5625:2;5651:53;5696:7;5687:6;5676:9;5672:22;5651:53;:::i;:::-;5641:63;;5596:118;5247:474;;;;;:::o;5727:109::-;5808:21;5823:5;5808:21;:::i;:::-;5803:3;5796:34;5727:109;;:::o;5842:210::-;5929:4;5967:2;5956:9;5952:18;5944:26;;5980:65;6042:1;6031:9;6027:17;6018:6;5980:65;:::i;:::-;5842:210;;;;:::o;6058:619::-;6135:6;6143;6151;6200:2;6188:9;6179:7;6175:23;6171:32;6168:119;;;6206:79;;:::i;:::-;6168:119;6326:1;6351:53;6396:7;6387:6;6376:9;6372:22;6351:53;:::i;:::-;6341:63;;6297:117;6453:2;6479:53;6524:7;6515:6;6504:9;6500:22;6479:53;:::i;:::-;6469:63;;6424:118;6581:2;6607:53;6652:7;6643:6;6632:9;6628:22;6607:53;:::i;:::-;6597:63;;6552:118;6058:619;;;;;:::o;6683:329::-;6742:6;6791:2;6779:9;6770:7;6766:23;6762:32;6759:119;;;6797:79;;:::i;:::-;6759:119;6917:1;6942:53;6987:7;6978:6;6967:9;6963:22;6942:53;:::i;:::-;6932:63;;6888:117;6683:329;;;;:::o;7018:86::-;7053:7;7093:4;7086:5;7082:16;7071:27;;7018:86;;;:::o;7110:112::-;7193:22;7209:5;7193:22;:::i;:::-;7188:3;7181:35;7110:112;;:::o;7228:214::-;7317:4;7355:2;7344:9;7340:18;7332:26;;7368:67;7432:1;7421:9;7417:17;7408:6;7368:67;:::i;:::-;7228:214;;;;:::o;7448:474::-;7516:6;7524;7573:2;7561:9;7552:7;7548:23;7544:32;7541:119;;;7579:79;;:::i;:::-;7541:119;7699:1;7724:53;7769:7;7760:6;7749:9;7745:22;7724:53;:::i;:::-;7714:63;;7670:117;7826:2;7852:53;7897:7;7888:6;7877:9;7873:22;7852:53;:::i;:::-;7842:63;;7797:118;7448:474;;;;;:::o;7928:619::-;8005:6;8013;8021;8070:2;8058:9;8049:7;8045:23;8041:32;8038:119;;;8076:79;;:::i;:::-;8038:119;8196:1;8221:53;8266:7;8257:6;8246:9;8242:22;8221:53;:::i;:::-;8211:63;;8167:117;8323:2;8349:53;8394:7;8385:6;8374:9;8370:22;8349:53;:::i;:::-;8339:63;;8294:118;8451:2;8477:53;8522:7;8513:6;8502:9;8498:22;8477:53;:::i;:::-;8467:63;;8422:118;7928:619;;;;;:::o;8553:118::-;8640:24;8658:5;8640:24;:::i;:::-;8635:3;8628:37;8553:118;;:::o;8677:222::-;8770:4;8808:2;8797:9;8793:18;8785:26;;8821:71;8889:1;8878:9;8874:17;8865:6;8821:71;:::i;:::-;8677:222;;;;:::o;8905:474::-;8973:6;8981;9030:2;9018:9;9009:7;9005:23;9001:32;8998:119;;;9036:79;;:::i;:::-;8998:119;9156:1;9181:53;9226:7;9217:6;9206:9;9202:22;9181:53;:::i;:::-;9171:63;;9127:117;9283:2;9309:53;9354:7;9345:6;9334:9;9330:22;9309:53;:::i;:::-;9299:63;;9254:118;8905:474;;;;;:::o;9385:468::-;9450:6;9458;9507:2;9495:9;9486:7;9482:23;9478:32;9475:119;;;9513:79;;:::i;:::-;9475:119;9633:1;9658:50;9700:7;9691:6;9680:9;9676:22;9658:50;:::i;:::-;9648:60;;9604:114;9757:2;9783:53;9828:7;9819:6;9808:9;9804:22;9783:53;:::i;:::-;9773:63;;9728:118;9385:468;;;;;:::o;9859:60::-;9887:3;9908:5;9901:12;;9859:60;;;:::o;9925:142::-;9975:9;10008:53;10026:34;10035:24;10053:5;10035:24;:::i;:::-;10026:34;:::i;:::-;10008:53;:::i;:::-;9995:66;;9925:142;;;:::o;10073:126::-;10123:9;10156:37;10187:5;10156:37;:::i;:::-;10143:50;;10073:126;;;:::o;10205:144::-;10273:9;10306:37;10337:5;10306:37;:::i;:::-;10293:50;;10205:144;;;:::o;10355:167::-;10460:55;10509:5;10460:55;:::i;:::-;10455:3;10448:68;10355:167;;:::o;10528:258::-;10639:4;10677:2;10666:9;10662:18;10654:26;;10690:89;10776:1;10765:9;10761:17;10752:6;10690:89;:::i;:::-;10528:258;;;;:::o;10792:161::-;10932:13;10928:1;10920:6;10916:14;10909:37;10792:161;:::o;10959:366::-;11101:3;11122:67;11186:2;11181:3;11122:67;:::i;:::-;11115:74;;11198:93;11287:3;11198:93;:::i;:::-;11316:2;11311:3;11307:12;11300:19;;10959:366;;;:::o;11331:419::-;11497:4;11535:2;11524:9;11520:18;11512:26;;11584:9;11578:4;11574:20;11570:1;11559:9;11555:17;11548:47;11612:131;11738:4;11612:131;:::i;:::-;11604:139;;11331:419;;;:::o;11756:224::-;11896:34;11892:1;11884:6;11880:14;11873:58;11965:7;11960:2;11952:6;11948:15;11941:32;11756:224;:::o;11986:366::-;12128:3;12149:67;12213:2;12208:3;12149:67;:::i;:::-;12142:74;;12225:93;12314:3;12225:93;:::i;:::-;12343:2;12338:3;12334:12;12327:19;;11986:366;;;:::o;12358:419::-;12524:4;12562:2;12551:9;12547:18;12539:26;;12611:9;12605:4;12601:20;12597:1;12586:9;12582:17;12575:47;12639:131;12765:4;12639:131;:::i;:::-;12631:139;;12358:419;;;:::o;12783:180::-;12831:77;12828:1;12821:88;12928:4;12925:1;12918:15;12952:4;12949:1;12942:15;12969:180;13017:77;13014:1;13007:88;13114:4;13111:1;13104:15;13138:4;13135:1;13128:15;13155:233;13194:3;13217:24;13235:5;13217:24;:::i;:::-;13208:33;;13263:66;13256:5;13253:77;13250:103;;13333:18;;:::i;:::-;13250:103;13380:1;13373:5;13369:13;13362:20;;13155:233;;;:::o;13394:156::-;13534:8;13530:1;13522:6;13518:14;13511:32;13394:156;:::o;13556:365::-;13698:3;13719:66;13783:1;13778:3;13719:66;:::i;:::-;13712:73;;13794:93;13883:3;13794:93;:::i;:::-;13912:2;13907:3;13903:12;13896:19;;13556:365;;;:::o;13927:419::-;14093:4;14131:2;14120:9;14116:18;14108:26;;14180:9;14174:4;14170:20;14166:1;14155:9;14151:17;14144:47;14208:131;14334:4;14208:131;:::i;:::-;14200:139;;13927:419;;;:::o;14352:223::-;14492:34;14488:1;14480:6;14476:14;14469:58;14561:6;14556:2;14548:6;14544:15;14537:31;14352:223;:::o;14581:366::-;14723:3;14744:67;14808:2;14803:3;14744:67;:::i;:::-;14737:74;;14820:93;14909:3;14820:93;:::i;:::-;14938:2;14933:3;14929:12;14922:19;;14581:366;;;:::o;14953:419::-;15119:4;15157:2;15146:9;15142:18;15134:26;;15206:9;15200:4;15196:20;15192:1;15181:9;15177:17;15170:47;15234:131;15360:4;15234:131;:::i;:::-;15226:139;;14953:419;;;:::o;15378:102::-;15420:8;15467:5;15464:1;15460:13;15439:34;;15378:102;;;:::o;15486:848::-;15547:5;15554:4;15578:6;15569:15;;15602:5;15593:14;;15616:712;15637:1;15627:8;15624:15;15616:712;;;15732:4;15727:3;15723:14;15717:4;15714:24;15711:50;;;15741:18;;:::i;:::-;15711:50;15791:1;15781:8;15777:16;15774:451;;;16206:4;16199:5;16195:16;16186:25;;15774:451;16256:4;16250;16246:15;16238:23;;16286:32;16309:8;16286:32;:::i;:::-;16274:44;;15616:712;;;15486:848;;;;;;;:::o;16340:1073::-;16394:5;16585:8;16575:40;;16606:1;16597:10;;16608:5;;16575:40;16634:4;16624:36;;16651:1;16642:10;;16653:5;;16624:36;16720:4;16768:1;16763:27;;;;16804:1;16799:191;;;;16713:277;;16763:27;16781:1;16772:10;;16783:5;;;16799:191;16844:3;16834:8;16831:17;16828:43;;;16851:18;;:::i;:::-;16828:43;16900:8;16897:1;16893:16;16884:25;;16935:3;16928:5;16925:14;16922:40;;;16942:18;;:::i;:::-;16922:40;16975:5;;;16713:277;;17099:2;17089:8;17086:16;17080:3;17074:4;17071:13;17067:36;17049:2;17039:8;17036:16;17031:2;17025:4;17022:12;17018:35;17002:111;16999:246;;;17155:8;17149:4;17145:19;17136:28;;17190:3;17183:5;17180:14;17177:40;;;17197:18;;:::i;:::-;17177:40;17230:5;;16999:246;17270:42;17308:3;17298:8;17292:4;17289:1;17270:42;:::i;:::-;17255:57;;;;17344:4;17339:3;17335:14;17328:5;17325:25;17322:51;;;17353:18;;:::i;:::-;17322:51;17402:4;17395:5;17391:16;17382:25;;16340:1073;;;;;;:::o;17419:281::-;17477:5;17501:23;17519:4;17501:23;:::i;:::-;17493:31;;17545:25;17561:8;17545:25;:::i;:::-;17533:37;;17589:104;17626:66;17616:8;17610:4;17589:104;:::i;:::-;17580:113;;17419:281;;;;:::o;17706:348::-;17746:7;17769:20;17787:1;17769:20;:::i;:::-;17764:25;;17803:20;17821:1;17803:20;:::i;:::-;17798:25;;17991:1;17923:66;17919:74;17916:1;17913:81;17908:1;17901:9;17894:17;17890:105;17887:131;;;17998:18;;:::i;:::-;17887:131;18046:1;18043;18039:9;18028:20;;17706:348;;;;:::o;18060:180::-;18108:77;18105:1;18098:88;18205:4;18202:1;18195:15;18229:4;18226:1;18219:15;18246:185;18286:1;18303:20;18321:1;18303:20;:::i;:::-;18298:25;;18337:20;18355:1;18337:20;:::i;:::-;18332:25;;18376:1;18366:35;;18381:18;;:::i;:::-;18366:35;18423:1;18420;18416:9;18411:14;;18246:185;;;;:::o;18437:194::-;18477:4;18497:20;18515:1;18497:20;:::i;:::-;18492:25;;18531:20;18549:1;18531:20;:::i;:::-;18526:25;;18575:1;18572;18568:9;18560:17;;18599:1;18593:4;18590:11;18587:37;;;18604:18;;:::i;:::-;18587:37;18437:194;;;;:::o;18637:191::-;18677:3;18696:20;18714:1;18696:20;:::i;:::-;18691:25;;18730:20;18748:1;18730:20;:::i;:::-;18725:25;;18773:1;18770;18766:9;18759:16;;18794:3;18791:1;18788:10;18785:36;;;18801:18;;:::i;:::-;18785:36;18637:191;;;;:::o;18834:143::-;18891:5;18922:6;18916:13;18907:22;;18938:33;18965:5;18938:33;:::i;:::-;18834:143;;;;:::o;18983:351::-;19053:6;19102:2;19090:9;19081:7;19077:23;19073:32;19070:119;;;19108:79;;:::i;:::-;19070:119;19228:1;19253:64;19309:7;19300:6;19289:9;19285:22;19253:64;:::i;:::-;19243:74;;19199:128;18983:351;;;;:::o;19340:332::-;19461:4;19499:2;19488:9;19484:18;19476:26;;19512:71;19580:1;19569:9;19565:17;19556:6;19512:71;:::i;:::-;19593:72;19661:2;19650:9;19646:18;19637:6;19593:72;:::i;:::-;19340:332;;;;;:::o;19678:137::-;19732:5;19763:6;19757:13;19748:22;;19779:30;19803:5;19779:30;:::i;:::-;19678:137;;;;:::o;19821:345::-;19888:6;19937:2;19925:9;19916:7;19912:23;19908:32;19905:119;;;19943:79;;:::i;:::-;19905:119;20063:1;20088:61;20141:7;20132:6;20121:9;20117:22;20088:61;:::i;:::-;20078:71;;20034:125;19821:345;;;;:::o;20172:228::-;20312:34;20308:1;20300:6;20296:14;20289:58;20381:11;20376:2;20368:6;20364:15;20357:36;20172:228;:::o;20406:366::-;20548:3;20569:67;20633:2;20628:3;20569:67;:::i;:::-;20562:74;;20645:93;20734:3;20645:93;:::i;:::-;20763:2;20758:3;20754:12;20747:19;;20406:366;;;:::o;20778:419::-;20944:4;20982:2;20971:9;20967:18;20959:26;;21031:9;21025:4;21021:20;21017:1;21006:9;21002:17;20995:47;21059:131;21185:4;21059:131;:::i;:::-;21051:139;;20778:419;;;:::o;21203:176::-;21343:28;21339:1;21331:6;21327:14;21320:52;21203:176;:::o;21385:366::-;21527:3;21548:67;21612:2;21607:3;21548:67;:::i;:::-;21541:74;;21624:93;21713:3;21624:93;:::i;:::-;21742:2;21737:3;21733:12;21726:19;;21385:366;;;:::o;21757:419::-;21923:4;21961:2;21950:9;21946:18;21938:26;;22010:9;22004:4;22000:20;21996:1;21985:9;21981:17;21974:47;22038:131;22164:4;22038:131;:::i;:::-;22030:139;;21757:419;;;:::o;22182:170::-;22322:22;22318:1;22310:6;22306:14;22299:46;22182:170;:::o;22358:366::-;22500:3;22521:67;22585:2;22580:3;22521:67;:::i;:::-;22514:74;;22597:93;22686:3;22597:93;:::i;:::-;22715:2;22710:3;22706:12;22699:19;;22358:366;;;:::o;22730:419::-;22896:4;22934:2;22923:9;22919:18;22911:26;;22983:9;22977:4;22973:20;22969:1;22958:9;22954:17;22947:47;23011:131;23137:4;23011:131;:::i;:::-;23003:139;;22730:419;;;:::o;23155:174::-;23295:26;23291:1;23283:6;23279:14;23272:50;23155:174;:::o;23335:366::-;23477:3;23498:67;23562:2;23557:3;23498:67;:::i;:::-;23491:74;;23574:93;23663:3;23574:93;:::i;:::-;23692:2;23687:3;23683:12;23676:19;;23335:366;;;:::o;23707:419::-;23873:4;23911:2;23900:9;23896:18;23888:26;;23960:9;23954:4;23950:20;23946:1;23935:9;23931:17;23924:47;23988:131;24114:4;23988:131;:::i;:::-;23980:139;;23707:419;;;:::o;24132:171::-;24272:23;24268:1;24260:6;24256:14;24249:47;24132:171;:::o;24309:366::-;24451:3;24472:67;24536:2;24531:3;24472:67;:::i;:::-;24465:74;;24548:93;24637:3;24548:93;:::i;:::-;24666:2;24661:3;24657:12;24650:19;;24309:366;;;:::o;24681:419::-;24847:4;24885:2;24874:9;24870:18;24862:26;;24934:9;24928:4;24924:20;24920:1;24909:9;24905:17;24898:47;24962:131;25088:4;24962:131;:::i;:::-;24954:139;;24681:419;;;:::o;25106:180::-;25154:77;25151:1;25144:88;25251:4;25248:1;25241:15;25275:4;25272:1;25265:15;25292:85;25337:7;25366:5;25355:16;;25292:85;;;:::o;25383:158::-;25441:9;25474:61;25492:42;25501:32;25527:5;25501:32;:::i;:::-;25492:42;:::i;:::-;25474:61;:::i;:::-;25461:74;;25383:158;;;:::o;25547:147::-;25642:45;25681:5;25642:45;:::i;:::-;25637:3;25630:58;25547:147;;:::o;25700:114::-;25767:6;25801:5;25795:12;25785:22;;25700:114;;;:::o;25820:184::-;25919:11;25953:6;25948:3;25941:19;25993:4;25988:3;25984:14;25969:29;;25820:184;;;;:::o;26010:132::-;26077:4;26100:3;26092:11;;26130:4;26125:3;26121:14;26113:22;;26010:132;;;:::o;26148:108::-;26225:24;26243:5;26225:24;:::i;:::-;26220:3;26213:37;26148:108;;:::o;26262:179::-;26331:10;26352:46;26394:3;26386:6;26352:46;:::i;:::-;26430:4;26425:3;26421:14;26407:28;;26262:179;;;;:::o;26447:113::-;26517:4;26549;26544:3;26540:14;26532:22;;26447:113;;;:::o;26596:732::-;26715:3;26744:54;26792:5;26744:54;:::i;:::-;26814:86;26893:6;26888:3;26814:86;:::i;:::-;26807:93;;26924:56;26974:5;26924:56;:::i;:::-;27003:7;27034:1;27019:284;27044:6;27041:1;27038:13;27019:284;;;27120:6;27114:13;27147:63;27206:3;27191:13;27147:63;:::i;:::-;27140:70;;27233:60;27286:6;27233:60;:::i;:::-;27223:70;;27079:224;27066:1;27063;27059:9;27054:14;;27019:284;;;27023:14;27319:3;27312:10;;26720:608;;;26596:732;;;;:::o;27334:831::-;27597:4;27635:3;27624:9;27620:19;27612:27;;27649:71;27717:1;27706:9;27702:17;27693:6;27649:71;:::i;:::-;27730:80;27806:2;27795:9;27791:18;27782:6;27730:80;:::i;:::-;27857:9;27851:4;27847:20;27842:2;27831:9;27827:18;27820:48;27885:108;27988:4;27979:6;27885:108;:::i;:::-;27877:116;;28003:72;28071:2;28060:9;28056:18;28047:6;28003:72;:::i;:::-;28085:73;28153:3;28142:9;28138:19;28129:6;28085:73;:::i;:::-;27334:831;;;;;;;;:::o;28171:147::-;28272:11;28309:3;28294:18;;28171:147;;;;:::o;28324:114::-;;:::o;28444:398::-;28603:3;28624:83;28705:1;28700:3;28624:83;:::i;:::-;28617:90;;28716:93;28805:3;28716:93;:::i;:::-;28834:1;28829:3;28825:11;28818:18;;28444:398;;;:::o;28848:379::-;29032:3;29054:147;29197:3;29054:147;:::i;:::-;29047:154;;29218:3;29211:10;;28848:379;;;:::o;29233:177::-;29373:29;29369:1;29361:6;29357:14;29350:53;29233:177;:::o;29416:366::-;29558:3;29579:67;29643:2;29638:3;29579:67;:::i;:::-;29572:74;;29655:93;29744:3;29655:93;:::i;:::-;29773:2;29768:3;29764:12;29757:19;;29416:366;;;:::o;29788:419::-;29954:4;29992:2;29981:9;29977:18;29969:26;;30041:9;30035:4;30031:20;30027:1;30016:9;30012:17;30005:47;30069:131;30195:4;30069:131;:::i;:::-;30061:139;;29788:419;;;:::o;30213:220::-;30353:34;30349:1;30341:6;30337:14;30330:58;30422:3;30417:2;30409:6;30405:15;30398:28;30213:220;:::o;30439:366::-;30581:3;30602:67;30666:2;30661:3;30602:67;:::i;:::-;30595:74;;30678:93;30767:3;30678:93;:::i;:::-;30796:2;30791:3;30787:12;30780:19;;30439:366;;;:::o;30811:419::-;30977:4;31015:2;31004:9;31000:18;30992:26;;31064:9;31058:4;31054:20;31050:1;31039:9;31035:17;31028:47;31092:131;31218:4;31092:131;:::i;:::-;31084:139;;30811:419;;;:::o
Swarm Source
ipfs://3bfb3c25261f2f8f95d86b473d2d84c9445e18164726cf8d669b000a5007029d
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.