ERC-20
Overview
Max Total Supply
1,000,000,000,000 COLLAR
Holders
383
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
229,588,459.314407077444052713 COLLARValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
COLLARSWAP
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-03 */ // SPDX-License-Identifier:MIT pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 ); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any _account other than the 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); } } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IShibaSwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IShibaSwapPair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IShibaSwapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); } contract COLLARSWAP is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "COLLARSWAP"; // token name string private _symbol = "COLLAR"; // token ticker uint8 private _decimals = 18; // token decimals address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; address public FundsRescueWallet; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isBot; uint256 private _totalSupply = 1_000_000_000_000 * 10**_decimals; uint256 denominator = 100; uint256 public _maxTxAmount = _totalSupply.mul(1).div(denominator); //1% uint256 public _walletMax = _totalSupply.mul(1).div(denominator); //1% bool public transferFeeEnabled = true; uint256 public initalTransferFee = 99; // 99% max fees limit on inital transfer uint256 public launchedAt; uint256 public snipingTime = 60 seconds; //1 min snipping time bool public trading; bool public EnableTxLimit = true; bool public checkWalletLimit = true; mapping (address => bool) public isCollarWL; modifier onlyGuard() { require(msg.sender == FundsRescueWallet,"Error: Guarded!"); _; } IShibaSwapRouter public shibaRouter; address public shibaPair; constructor() { // //uniswap Swap // IShibaSwapRouter _dexRouter = IShibaSwapRouter( // 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D // ); //Shiba Swap IShibaSwapRouter _dexRouter = IShibaSwapRouter( 0x03f7724180AA6b939894B5Ca4314783B0b36b329 ); shibaPair = IShibaSwapFactory(_dexRouter.factory()).createPair( address(this), _dexRouter.WETH() ); shibaRouter = _dexRouter; _allowances[address(this)][address(shibaRouter)] = ~uint256(0); FundsRescueWallet = msg.sender; isExcludedFromFee[address(this)] = true; isExcludedFromFee[msg.sender] = true; isExcludedFromFee[address(shibaRouter)] = true; isCollarWL[address(msg.sender)] = true; isCollarWL[address(this)] = true; isCollarWL[address(shibaRouter)] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(shibaPair)] = true; isWalletLimitExempt[address(shibaRouter)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[address(shibaRouter)] = true; isMarketPair[address(shibaPair)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, 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); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!isBot[sender], "ERC20: Bot detected"); require(!isBot[msg.sender], "ERC20: Bot detected"); require(!isBot[tx.origin], "ERC20: Bot detected"); if (!isCollarWL[sender] && !isCollarWL[recipient]) { require(trading, "ERC20: trading not enable yet"); if ( block.timestamp < launchedAt + snipingTime && sender != address(shibaRouter) ) { if (shibaPair == sender) { isBot[recipient] = true; } else if (shibaPair == recipient) { isBot[sender] = true; } } } if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) { if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return true; } else { return false; } } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint feeAmount; unchecked { if(transferFeeEnabled) { feeAmount = amount.mul(initalTransferFee).div(denominator); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } } function startTrading() external onlyOwner { require(!trading, "ERC20: Already Enabled"); trading = true; launchedAt = block.timestamp; } //To Rescue Stucked Balance function rescueFunds() external onlyGuard { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os,"Transaction Failed!!"); } //To Rescue Stucked Tokens function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyGuard { adr.transfer(recipient,amount); } function updateSetting(address[] calldata _adr, bool _status) external onlyOwner { for(uint i = 0; i < _adr.length; i++){ isCollarWL[_adr[i]] = _status; } } function addOrRemoveBots(address[] calldata accounts, bool value) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { isBot[accounts[i]] = value; } } function disableTransferFee(bool _status) external onlyOwner { transferFeeEnabled = _status; } function enableTxLimit(bool _status) external onlyOwner { EnableTxLimit = _status; } function enableWalletLimit(bool _status) external onlyOwner { checkWalletLimit = _status; } function excludeFromFee(address _adr,bool _status) external onlyOwner { isExcludedFromFee[_adr] = _status; } function excludeWalletLimit(address _adr,bool _status) external onlyOwner { isWalletLimitExempt[_adr] = _status; } function excludeTxLimit(address _adr,bool _status) external onlyOwner { isTxLimitExempt[_adr] = _status; } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { _walletMax = newLimit; } function setTxLimit(uint256 newLimit) external onlyOwner() { _maxTxAmount = newLimit; } function setMarketPair(address _pair, bool _status) public onlyOwner { isMarketPair[_pair] = _status; } function setManualRouter(address _router) public onlyOwner { shibaRouter = IShibaSwapRouter(_router); } function setManualPair(address _pair) public onlyOwner { shibaPair = _pair; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FundsRescueWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemoveBots","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":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"disableTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initalTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isCollarWL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shibaPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shibaRouter","outputs":[{"internalType":"contract IShibaSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address[]","name":"_adr","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526040518060400160405280600a81526020017f434f4c4c41525357415000000000000000000000000000000000000000000000815250600190816200004a919062001009565b506040518060400160405280600681526020017f434f4c4c415200000000000000000000000000000000000000000000000000008152506002908162000091919062001009565b506012600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250600360009054906101000a900460ff16600a62000135919062001280565b64e8d4a51000620001479190620012d1565b600b556064600c5562000187600c54620001736001600b5462000b8660201b620022031790919060201c565b62000c0960201b6200227d1790919060201c565b600d55620001c2600c54620001ae6001600b5462000b8660201b620022031790919060201c565b62000c0960201b6200227d1790919060201c565b600e556001600f60006101000a81548160ff0219169083151502179055506063601055603c6012556001601360016101000a81548160ff0219169083151502179055506001601360026101000a81548160ff0219169083151502179055503480156200022d57600080fd5b506200024e6200024262000c5b60201b60201c565b62000c6360201b60201c565b60007303f7724180aa6b939894b5ca4314783b0b36b32990508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d9919062001386565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000367919062001386565b6040518363ffffffff1660e01b815260040162000386929190620013c9565b6020604051808303816000875af1158015620003a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cc919062001386565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000b77919062001407565b60405180910390a350620015d6565b600080830362000b9a576000905062000c03565b6000828462000baa9190620012d1565b905082848262000bbb919062001453565b1462000bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bf59062001512565b60405180910390fd5b809150505b92915050565b600062000c5383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000d2760201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000d71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d689190620015b2565b60405180910390fd5b506000838562000d82919062001453565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e1157607f821691505b60208210810362000e275762000e2662000dc9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000e917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e52565b62000e9d868362000e52565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000eea62000ee462000ede8462000eb5565b62000ebf565b62000eb5565b9050919050565b6000819050919050565b62000f068362000ec9565b62000f1e62000f158262000ef1565b84845462000e5f565b825550505050565b600090565b62000f3562000f26565b62000f4281848462000efb565b505050565b5b8181101562000f6a5762000f5e60008262000f2b565b60018101905062000f48565b5050565b601f82111562000fb95762000f838162000e2d565b62000f8e8462000e42565b8101602085101562000f9e578190505b62000fb662000fad8562000e42565b83018262000f47565b50505b505050565b600082821c905092915050565b600062000fde6000198460080262000fbe565b1980831691505092915050565b600062000ff9838362000fcb565b9150826002028217905092915050565b620010148262000d8f565b67ffffffffffffffff81111562001030576200102f62000d9a565b5b6200103c825462000df8565b6200104982828562000f6e565b600060209050601f8311600181146200108157600084156200106c578287015190505b62001078858262000feb565b865550620010e8565b601f198416620010918662000e2d565b60005b82811015620010bb5784890151825560018201915060208501945060208101905062001094565b86831015620010db5784890151620010d7601f89168262000fcb565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200117e57808604811115620011565762001155620010f0565b5b6001851615620011665780820291505b808102905062001176856200111f565b945062001136565b94509492505050565b6000826200119957600190506200126c565b81620011a957600090506200126c565b8160018114620011c25760028114620011cd5762001203565b60019150506200126c565b60ff841115620011e257620011e1620010f0565b5b8360020a915084821115620011fc57620011fb620010f0565b5b506200126c565b5060208310610133831016604e8410600b84101617156200123d5782820a905083811115620012375762001236620010f0565b5b6200126c565b6200124c84848460016200112c565b92509050818404811115620012665762001265620010f0565b5b81810290505b9392505050565b600060ff82169050919050565b60006200128d8262000eb5565b91506200129a8362001273565b9250620012c97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001187565b905092915050565b6000620012de8262000eb5565b9150620012eb8362000eb5565b9250828202620012fb8162000eb5565b91508282048414831517620013155762001314620010f0565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200134e8262001321565b9050919050565b620013608162001341565b81146200136c57600080fd5b50565b600081519050620013808162001355565b92915050565b6000602082840312156200139f576200139e6200131c565b5b6000620013af848285016200136f565b91505092915050565b620013c38162001341565b82525050565b6000604082019050620013e06000830185620013b8565b620013ef6020830184620013b8565b9392505050565b620014018162000eb5565b82525050565b60006020820190506200141e6000830184620013f6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014608262000eb5565b91506200146d8362000eb5565b92508262001480576200147f62001424565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620014fa6021836200148b565b915062001507826200149c565b604082019050919050565b600060208201905081810360008301526200152d81620014eb565b9050919050565b60005b838110156200155457808201518184015260208101905062001537565b60008484015250505050565b6000601f19601f8301169050919050565b60006200157e8262000d8f565b6200158a81856200148b565b93506200159c81856020860162001534565b620015a78162001560565b840191505092915050565b60006020820190508181036000830152620015ce818462001571565b905092915050565b60805160a0516143d16200160a60003960008181610ccf0152611032015260008181610f16015261105e01526143d16000f3fe6080604052600436106102e85760003560e01c8063807c2d9c11610190578063cea9d26f116100dc578063e7d8320e11610095578063ee828db31161006f578063ee828db314610b6f578063f2fde38b14610b98578063f71b9bbf14610bc1578063f872858a14610bea576102ef565b8063e7d8320e14610aee578063e7f1bfcb14610b19578063ec44acf214610b44576102ef565b8063cea9d26f146109f4578063d27e0e6a14610a1d578063dd62ed3e14610a46578063de92edfa14610a83578063df8408fe14610aae578063e6b2603b14610ad7576102ef565b806396e58dd311610149578063ae85ade611610123578063ae85ade61461093a578063bf56b37114610963578063c16dd4a41461098e578063c867d60b146109b7576102ef565b806396e58dd314610895578063a457c2d7146108c0578063a9059cbb146108fd576102ef565b8063807c2d9c1461077157806386f03ead1461079c5780638b42507f146107d95780638da5cb5b1461081657806395d89b411461084157806395fc8fdf1461086c576102ef565b80633bbac5791161024f5780635e42358c11610208578063715018a6116101e2578063715018a6146106db578063728d41c9146106f25780637d1db4a51461071b5780637d99c66d14610746576102ef565b80635e42358c1461064a578063651a89871461067557806370a082311461069e576102ef565b80633bbac579146105185780633ecad271146105555780634974d88f146105925780635342acb4146105bb57806359fac517146105f85780635c85974f14610621576102ef565b806323b872dd116102a157806323b872dd1461040657806327c8f83514610443578063293230b81461046e5780632b112e4914610485578063313ce567146104b057806339509351146104db576102ef565b80630657930c146102f457806306fdde031461031f5780630930907b1461034a578063095ea7b31461037557806310a60f02146103b257806318160ddd146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c15565b6040516103169190613337565b60405180910390f35b34801561032b57600080fd5b50610334610c3b565b60405161034191906133e2565b60405180910390f35b34801561035657600080fd5b5061035f610ccd565b60405161036c9190613337565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190613470565b610cf1565b6040516103a991906134cb565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190613577565b610d0f565b005b3480156103e757600080fd5b506103f0610e30565b6040516103fd91906135e6565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190613601565b610e3a565b60405161043a91906134cb565b60405180910390f35b34801561044f57600080fd5b50610458610f14565b6040516104659190613337565b60405180910390f35b34801561047a57600080fd5b50610483610f38565b005b34801561049157600080fd5b5061049a611028565b6040516104a791906135e6565b60405180910390f35b3480156104bc57600080fd5b506104c56110a6565b6040516104d29190613670565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190613470565b6110bd565b60405161050f91906134cb565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a919061368b565b611170565b60405161054c91906134cb565b60405180910390f35b34801561056157600080fd5b5061057c6004803603810190610577919061368b565b611190565b60405161058991906134cb565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b491906136b8565b6111b0565b005b3480156105c757600080fd5b506105e260048036038101906105dd919061368b565b611249565b6040516105ef91906134cb565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a919061368b565b611269565b005b34801561062d57600080fd5b50610648600480360381019061064391906136e5565b611329565b005b34801561065657600080fd5b5061065f6113af565b60405161066c91906134cb565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190613712565b6113c2565b005b3480156106aa57600080fd5b506106c560048036038101906106c0919061368b565b611499565b6040516106d291906135e6565b60405180910390f35b3480156106e757600080fd5b506106f06114e2565b005b3480156106fe57600080fd5b50610719600480360381019061071491906136e5565b61156a565b005b34801561072757600080fd5b506107306115f0565b60405161073d91906135e6565b60405180910390f35b34801561075257600080fd5b5061075b6115f6565b60405161076891906135e6565b60405180910390f35b34801561077d57600080fd5b506107866115fc565b60405161079391906135e6565b60405180910390f35b3480156107a857600080fd5b506107c360048036038101906107be919061368b565b611602565b6040516107d091906134cb565b60405180910390f35b3480156107e557600080fd5b5061080060048036038101906107fb919061368b565b611622565b60405161080d91906134cb565b60405180910390f35b34801561082257600080fd5b5061082b611642565b6040516108389190613337565b60405180910390f35b34801561084d57600080fd5b5061085661166b565b60405161086391906133e2565b60405180910390f35b34801561087857600080fd5b50610893600480360381019061088e9190613577565b6116fd565b005b3480156108a157600080fd5b506108aa61181e565b6040516108b79190613337565b60405180910390f35b3480156108cc57600080fd5b506108e760048036038101906108e29190613470565b611844565b6040516108f491906134cb565b60405180910390f35b34801561090957600080fd5b50610924600480360381019061091f9190613470565b611911565b60405161093191906134cb565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c9190613712565b611930565b005b34801561096f57600080fd5b50610978611a07565b60405161098591906135e6565b60405180910390f35b34801561099a57600080fd5b506109b560048036038101906109b09190613712565b611a0d565b005b3480156109c357600080fd5b506109de60048036038101906109d9919061368b565b611ae4565b6040516109eb91906134cb565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613790565b611b04565b005b348015610a2957600080fd5b50610a446004803603810190610a3f91906136b8565b611c18565b005b348015610a5257600080fd5b50610a6d6004803603810190610a6891906137e3565b611cb1565b604051610a7a91906135e6565b60405180910390f35b348015610a8f57600080fd5b50610a98611d38565b604051610aa59190613882565b60405180910390f35b348015610aba57600080fd5b50610ad56004803603810190610ad09190613712565b611d5e565b005b348015610ae357600080fd5b50610aec611e35565b005b348015610afa57600080fd5b50610b03611f74565b604051610b1091906135e6565b60405180910390f35b348015610b2557600080fd5b50610b2e611f7a565b604051610b3b91906134cb565b60405180910390f35b348015610b5057600080fd5b50610b59611f8d565b604051610b6691906134cb565b60405180910390f35b348015610b7b57600080fd5b50610b966004803603810190610b9191906136b8565b611fa0565b005b348015610ba457600080fd5b50610bbf6004803603810190610bba919061368b565b612039565b005b348015610bcd57600080fd5b50610be86004803603810190610be3919061368b565b612130565b005b348015610bf657600080fd5b50610bff6121f0565b604051610c0c91906134cb565b60405180910390f35b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054610c4a906138cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c76906138cc565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610d05610cfe6122c7565b84846122cf565b6001905092915050565b610d176122c7565b73ffffffffffffffffffffffffffffffffffffffff16610d35611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290613949565b60405180910390fd5b60005b83839050811015610e2a5781600a6000868685818110610db157610db0613969565b5b9050602002016020810190610dc6919061368b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e22906139c7565b915050610d8e565b50505050565b6000600b54905090565b6000610e47848484612498565b50610f0984610e546122c7565b610f048560405180606001604052806028815260200161434f60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610eba6122c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df49092919063ffffffff16565b6122cf565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f406122c7565b73ffffffffffffffffffffffffffffffffffffffff16610f5e611642565b73ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab90613949565b60405180910390fd5b601360009054906101000a900460ff1615611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90613a5b565b60405180910390fd5b6001601360006101000a81548160ff02191690831515021790555042601181905550565b60006110a16110567f0000000000000000000000000000000000000000000000000000000000000000611499565b6110936110827f0000000000000000000000000000000000000000000000000000000000000000611499565b600b54612e5890919063ffffffff16565b612e5890919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006111666110ca6122c7565b8461116185600560006110db6122c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea290919063ffffffff16565b6122cf565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b6111b86122c7565b73ffffffffffffffffffffffffffffffffffffffff166111d6611642565b73ffffffffffffffffffffffffffffffffffffffff161461122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390613949565b60405180910390fd5b80601360026101000a81548160ff02191690831515021790555050565b60066020528060005260406000206000915054906101000a900460ff1681565b6112716122c7565b73ffffffffffffffffffffffffffffffffffffffff1661128f611642565b73ffffffffffffffffffffffffffffffffffffffff16146112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc90613949565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113316122c7565b73ffffffffffffffffffffffffffffffffffffffff1661134f611642565b73ffffffffffffffffffffffffffffffffffffffff16146113a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139c90613949565b60405180910390fd5b80600d8190555050565b601360019054906101000a900460ff1681565b6113ca6122c7565b73ffffffffffffffffffffffffffffffffffffffff166113e8611642565b73ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143590613949565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114ea6122c7565b73ffffffffffffffffffffffffffffffffffffffff16611508611642565b73ffffffffffffffffffffffffffffffffffffffff161461155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590613949565b60405180910390fd5b6115686000612f00565b565b6115726122c7565b73ffffffffffffffffffffffffffffffffffffffff16611590611642565b73ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd90613949565b60405180910390fd5b80600e8190555050565b600d5481565b60125481565b600e5481565b60146020528060005260406000206000915054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461167a906138cc565b80601f01602080910402602001604051908101604052809291908181526020018280546116a6906138cc565b80156116f35780601f106116c8576101008083540402835291602001916116f3565b820191906000526020600020905b8154815290600101906020018083116116d657829003601f168201915b5050505050905090565b6117056122c7565b73ffffffffffffffffffffffffffffffffffffffff16611723611642565b73ffffffffffffffffffffffffffffffffffffffff1614611779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177090613949565b60405180910390fd5b60005b8383905081101561181857816014600086868581811061179f5761179e613969565b5b90506020020160208101906117b4919061368b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611810906139c7565b91505061177c565b50505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119076118516122c7565b8461190285604051806060016040528060258152602001614377602591396005600061187b6122c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df49092919063ffffffff16565b6122cf565b6001905092915050565b600061192561191e6122c7565b8484612498565b506001905092915050565b6119386122c7565b73ffffffffffffffffffffffffffffffffffffffff16611956611642565b73ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a390613949565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b611a156122c7565b73ffffffffffffffffffffffffffffffffffffffff16611a33611642565b73ffffffffffffffffffffffffffffffffffffffff1614611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613949565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8b90613ac7565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611bcf929190613ae7565b6020604051808303816000875af1158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190613b25565b50505050565b611c206122c7565b73ffffffffffffffffffffffffffffffffffffffff16611c3e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b90613949565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d666122c7565b73ffffffffffffffffffffffffffffffffffffffff16611d84611642565b73ffffffffffffffffffffffffffffffffffffffff1614611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190613949565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebc90613ac7565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611eeb90613b83565b60006040518083038185875af1925050503d8060008114611f28576040519150601f19603f3d011682016040523d82523d6000602084013e611f2d565b606091505b5050905080611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6890613be4565b60405180910390fd5b50565b60105481565b600f60009054906101000a900460ff1681565b601360009054906101000a900460ff1681565b611fa86122c7565b73ffffffffffffffffffffffffffffffffffffffff16611fc6611642565b73ffffffffffffffffffffffffffffffffffffffff161461201c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201390613949565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b6120416122c7565b73ffffffffffffffffffffffffffffffffffffffff1661205f611642565b73ffffffffffffffffffffffffffffffffffffffff16146120b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ac90613949565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90613c76565b60405180910390fd5b61212d81612f00565b50565b6121386122c7565b73ffffffffffffffffffffffffffffffffffffffff16612156611642565b73ffffffffffffffffffffffffffffffffffffffff16146121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a390613949565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360029054906101000a900460ff1681565b60008083036122155760009050612277565b600082846122239190613c96565b90508284826122329190613d07565b14612272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226990613daa565b60405180910390fd5b809150505b92915050565b60006122bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fc4565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233590613e3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490613ece565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161248b91906135e6565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90613f60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256e90613ff2565b60405180910390fd5b600082116125ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b190614084565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263e906140f0565b60405180910390fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cb906140f0565b60405180910390fd5b600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612758906140f0565b60405180910390fd5b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128055750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2d57601360009054906101000a900460ff16612859576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128509061415c565b60405180910390fd5b601254601154612869919061417c565b421080156128c55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a2c578373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361297c576001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612a2b565b8273ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612a2a576001600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ad15750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ae95750601360019054906101000a900460ff165b15612b3457600d54821115612b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2a90614222565b60405180910390fd5b5b612bbd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df49092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612c0c8585613027565b612c1f57612c1a8584613192565b612c21565b825b9050601360029054906101000a900460ff168015612c895750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cee57600e54612cac82612c9e87611499565b612ea290919063ffffffff16565b1115612ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce49061428e565b60405180910390fd5b5b612d4081600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea290919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612de091906135e6565b60405180910390a360019150509392505050565b6000838311158290612e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3391906133e2565b60405180910390fd5b5060008385612e4b91906142ae565b9050809150509392505050565b6000612e9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df4565b905092915050565b6000808284612eb1919061417c565b905083811015612ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eed9061432e565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829061300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300291906133e2565b60405180910390fd5b506000838561301a9190613d07565b9050809150509392505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130ca5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130d8576001905061318c565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131795750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613187576001905061318c565b600090505b92915050565b600080600f60009054906101000a900460ff16156131d6576131d3600c546131c56010548661220390919063ffffffff16565b61227d90919063ffffffff16565b90505b60008111156132da5761323181600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea290919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132d191906135e6565b60405180910390a35b6132ed8184612e5890919063ffffffff16565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613321826132f6565b9050919050565b61333181613316565b82525050565b600060208201905061334c6000830184613328565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561338c578082015181840152602081019050613371565b60008484015250505050565b6000601f19601f8301169050919050565b60006133b482613352565b6133be818561335d565b93506133ce81856020860161336e565b6133d781613398565b840191505092915050565b600060208201905081810360008301526133fc81846133a9565b905092915050565b600080fd5b600080fd5b61341781613316565b811461342257600080fd5b50565b6000813590506134348161340e565b92915050565b6000819050919050565b61344d8161343a565b811461345857600080fd5b50565b60008135905061346a81613444565b92915050565b6000806040838503121561348757613486613404565b5b600061349585828601613425565b92505060206134a68582860161345b565b9150509250929050565b60008115159050919050565b6134c5816134b0565b82525050565b60006020820190506134e060008301846134bc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261350b5761350a6134e6565b5b8235905067ffffffffffffffff811115613528576135276134eb565b5b602083019150836020820283011115613544576135436134f0565b5b9250929050565b613554816134b0565b811461355f57600080fd5b50565b6000813590506135718161354b565b92915050565b6000806000604084860312156135905761358f613404565b5b600084013567ffffffffffffffff8111156135ae576135ad613409565b5b6135ba868287016134f5565b935093505060206135cd86828701613562565b9150509250925092565b6135e08161343a565b82525050565b60006020820190506135fb60008301846135d7565b92915050565b60008060006060848603121561361a57613619613404565b5b600061362886828701613425565b935050602061363986828701613425565b925050604061364a8682870161345b565b9150509250925092565b600060ff82169050919050565b61366a81613654565b82525050565b60006020820190506136856000830184613661565b92915050565b6000602082840312156136a1576136a0613404565b5b60006136af84828501613425565b91505092915050565b6000602082840312156136ce576136cd613404565b5b60006136dc84828501613562565b91505092915050565b6000602082840312156136fb576136fa613404565b5b60006137098482850161345b565b91505092915050565b6000806040838503121561372957613728613404565b5b600061373785828601613425565b925050602061374885828601613562565b9150509250929050565b600061375d82613316565b9050919050565b61376d81613752565b811461377857600080fd5b50565b60008135905061378a81613764565b92915050565b6000806000606084860312156137a9576137a8613404565b5b60006137b78682870161377b565b93505060206137c886828701613425565b92505060406137d98682870161345b565b9150509250925092565b600080604083850312156137fa576137f9613404565b5b600061380885828601613425565b925050602061381985828601613425565b9150509250929050565b6000819050919050565b600061384861384361383e846132f6565b613823565b6132f6565b9050919050565b600061385a8261382d565b9050919050565b600061386c8261384f565b9050919050565b61387c81613861565b82525050565b60006020820190506138976000830184613873565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138e457607f821691505b6020821081036138f7576138f661389d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061393360208361335d565b915061393e826138fd565b602082019050919050565b6000602082019050818103600083015261396281613926565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139d28261343a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a0457613a03613998565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b6000613a4560168361335d565b9150613a5082613a0f565b602082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4572726f723a2047756172646564210000000000000000000000000000000000600082015250565b6000613ab1600f8361335d565b9150613abc82613a7b565b602082019050919050565b60006020820190508181036000830152613ae081613aa4565b9050919050565b6000604082019050613afc6000830185613328565b613b0960208301846135d7565b9392505050565b600081519050613b1f8161354b565b92915050565b600060208284031215613b3b57613b3a613404565b5b6000613b4984828501613b10565b91505092915050565b600081905092915050565b50565b6000613b6d600083613b52565b9150613b7882613b5d565b600082019050919050565b6000613b8e82613b60565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613bce60148361335d565b9150613bd982613b98565b602082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c6060268361335d565b9150613c6b82613c04565b604082019050919050565b60006020820190508181036000830152613c8f81613c53565b9050919050565b6000613ca18261343a565b9150613cac8361343a565b9250828202613cba8161343a565b91508282048414831517613cd157613cd0613998565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d128261343a565b9150613d1d8361343a565b925082613d2d57613d2c613cd8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9460218361335d565b9150613d9f82613d38565b604082019050919050565b60006020820190508181036000830152613dc381613d87565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e2660248361335d565b9150613e3182613dca565b604082019050919050565b60006020820190508181036000830152613e5581613e19565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eb860228361335d565b9150613ec382613e5c565b604082019050919050565b60006020820190508181036000830152613ee781613eab565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f4a60258361335d565b9150613f5582613eee565b604082019050919050565b60006020820190508181036000830152613f7981613f3d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613fdc60238361335d565b9150613fe782613f80565b604082019050919050565b6000602082019050818103600083015261400b81613fcf565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061406e60298361335d565b915061407982614012565b604082019050919050565b6000602082019050818103600083015261409d81614061565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b60006140da60138361335d565b91506140e5826140a4565b602082019050919050565b60006020820190508181036000830152614109816140cd565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000614146601d8361335d565b915061415182614110565b602082019050919050565b6000602082019050818103600083015261417581614139565b9050919050565b60006141878261343a565b91506141928361343a565b92508282019050808211156141aa576141a9613998565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061420c60288361335d565b9150614217826141b0565b604082019050919050565b6000602082019050818103600083015261423b816141ff565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614278601b8361335d565b915061428382614242565b602082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b60006142b98261343a565b91506142c48361343a565b92508282039050818111156142dc576142db613998565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614318601b8361335d565b9150614323826142e2565b602082019050919050565b600060208201905081810360008301526143478161430b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a2d3bc6bdcfa3f31945ade11ea182c1932883f8f1f32d0e7c2d72e0ebf84338064736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102e85760003560e01c8063807c2d9c11610190578063cea9d26f116100dc578063e7d8320e11610095578063ee828db31161006f578063ee828db314610b6f578063f2fde38b14610b98578063f71b9bbf14610bc1578063f872858a14610bea576102ef565b8063e7d8320e14610aee578063e7f1bfcb14610b19578063ec44acf214610b44576102ef565b8063cea9d26f146109f4578063d27e0e6a14610a1d578063dd62ed3e14610a46578063de92edfa14610a83578063df8408fe14610aae578063e6b2603b14610ad7576102ef565b806396e58dd311610149578063ae85ade611610123578063ae85ade61461093a578063bf56b37114610963578063c16dd4a41461098e578063c867d60b146109b7576102ef565b806396e58dd314610895578063a457c2d7146108c0578063a9059cbb146108fd576102ef565b8063807c2d9c1461077157806386f03ead1461079c5780638b42507f146107d95780638da5cb5b1461081657806395d89b411461084157806395fc8fdf1461086c576102ef565b80633bbac5791161024f5780635e42358c11610208578063715018a6116101e2578063715018a6146106db578063728d41c9146106f25780637d1db4a51461071b5780637d99c66d14610746576102ef565b80635e42358c1461064a578063651a89871461067557806370a082311461069e576102ef565b80633bbac579146105185780633ecad271146105555780634974d88f146105925780635342acb4146105bb57806359fac517146105f85780635c85974f14610621576102ef565b806323b872dd116102a157806323b872dd1461040657806327c8f83514610443578063293230b81461046e5780632b112e4914610485578063313ce567146104b057806339509351146104db576102ef565b80630657930c146102f457806306fdde031461031f5780630930907b1461034a578063095ea7b31461037557806310a60f02146103b257806318160ddd146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c15565b6040516103169190613337565b60405180910390f35b34801561032b57600080fd5b50610334610c3b565b60405161034191906133e2565b60405180910390f35b34801561035657600080fd5b5061035f610ccd565b60405161036c9190613337565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190613470565b610cf1565b6040516103a991906134cb565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190613577565b610d0f565b005b3480156103e757600080fd5b506103f0610e30565b6040516103fd91906135e6565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190613601565b610e3a565b60405161043a91906134cb565b60405180910390f35b34801561044f57600080fd5b50610458610f14565b6040516104659190613337565b60405180910390f35b34801561047a57600080fd5b50610483610f38565b005b34801561049157600080fd5b5061049a611028565b6040516104a791906135e6565b60405180910390f35b3480156104bc57600080fd5b506104c56110a6565b6040516104d29190613670565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190613470565b6110bd565b60405161050f91906134cb565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a919061368b565b611170565b60405161054c91906134cb565b60405180910390f35b34801561056157600080fd5b5061057c6004803603810190610577919061368b565b611190565b60405161058991906134cb565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b491906136b8565b6111b0565b005b3480156105c757600080fd5b506105e260048036038101906105dd919061368b565b611249565b6040516105ef91906134cb565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a919061368b565b611269565b005b34801561062d57600080fd5b50610648600480360381019061064391906136e5565b611329565b005b34801561065657600080fd5b5061065f6113af565b60405161066c91906134cb565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190613712565b6113c2565b005b3480156106aa57600080fd5b506106c560048036038101906106c0919061368b565b611499565b6040516106d291906135e6565b60405180910390f35b3480156106e757600080fd5b506106f06114e2565b005b3480156106fe57600080fd5b50610719600480360381019061071491906136e5565b61156a565b005b34801561072757600080fd5b506107306115f0565b60405161073d91906135e6565b60405180910390f35b34801561075257600080fd5b5061075b6115f6565b60405161076891906135e6565b60405180910390f35b34801561077d57600080fd5b506107866115fc565b60405161079391906135e6565b60405180910390f35b3480156107a857600080fd5b506107c360048036038101906107be919061368b565b611602565b6040516107d091906134cb565b60405180910390f35b3480156107e557600080fd5b5061080060048036038101906107fb919061368b565b611622565b60405161080d91906134cb565b60405180910390f35b34801561082257600080fd5b5061082b611642565b6040516108389190613337565b60405180910390f35b34801561084d57600080fd5b5061085661166b565b60405161086391906133e2565b60405180910390f35b34801561087857600080fd5b50610893600480360381019061088e9190613577565b6116fd565b005b3480156108a157600080fd5b506108aa61181e565b6040516108b79190613337565b60405180910390f35b3480156108cc57600080fd5b506108e760048036038101906108e29190613470565b611844565b6040516108f491906134cb565b60405180910390f35b34801561090957600080fd5b50610924600480360381019061091f9190613470565b611911565b60405161093191906134cb565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c9190613712565b611930565b005b34801561096f57600080fd5b50610978611a07565b60405161098591906135e6565b60405180910390f35b34801561099a57600080fd5b506109b560048036038101906109b09190613712565b611a0d565b005b3480156109c357600080fd5b506109de60048036038101906109d9919061368b565b611ae4565b6040516109eb91906134cb565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613790565b611b04565b005b348015610a2957600080fd5b50610a446004803603810190610a3f91906136b8565b611c18565b005b348015610a5257600080fd5b50610a6d6004803603810190610a6891906137e3565b611cb1565b604051610a7a91906135e6565b60405180910390f35b348015610a8f57600080fd5b50610a98611d38565b604051610aa59190613882565b60405180910390f35b348015610aba57600080fd5b50610ad56004803603810190610ad09190613712565b611d5e565b005b348015610ae357600080fd5b50610aec611e35565b005b348015610afa57600080fd5b50610b03611f74565b604051610b1091906135e6565b60405180910390f35b348015610b2557600080fd5b50610b2e611f7a565b604051610b3b91906134cb565b60405180910390f35b348015610b5057600080fd5b50610b59611f8d565b604051610b6691906134cb565b60405180910390f35b348015610b7b57600080fd5b50610b966004803603810190610b9191906136b8565b611fa0565b005b348015610ba457600080fd5b50610bbf6004803603810190610bba919061368b565b612039565b005b348015610bcd57600080fd5b50610be86004803603810190610be3919061368b565b612130565b005b348015610bf657600080fd5b50610bff6121f0565b604051610c0c91906134cb565b60405180910390f35b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054610c4a906138cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c76906138cc565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610d05610cfe6122c7565b84846122cf565b6001905092915050565b610d176122c7565b73ffffffffffffffffffffffffffffffffffffffff16610d35611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290613949565b60405180910390fd5b60005b83839050811015610e2a5781600a6000868685818110610db157610db0613969565b5b9050602002016020810190610dc6919061368b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e22906139c7565b915050610d8e565b50505050565b6000600b54905090565b6000610e47848484612498565b50610f0984610e546122c7565b610f048560405180606001604052806028815260200161434f60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610eba6122c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df49092919063ffffffff16565b6122cf565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610f406122c7565b73ffffffffffffffffffffffffffffffffffffffff16610f5e611642565b73ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab90613949565b60405180910390fd5b601360009054906101000a900460ff1615611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90613a5b565b60405180910390fd5b6001601360006101000a81548160ff02191690831515021790555042601181905550565b60006110a16110567f0000000000000000000000000000000000000000000000000000000000000000611499565b6110936110827f000000000000000000000000000000000000000000000000000000000000dead611499565b600b54612e5890919063ffffffff16565b612e5890919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006111666110ca6122c7565b8461116185600560006110db6122c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea290919063ffffffff16565b6122cf565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b6111b86122c7565b73ffffffffffffffffffffffffffffffffffffffff166111d6611642565b73ffffffffffffffffffffffffffffffffffffffff161461122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390613949565b60405180910390fd5b80601360026101000a81548160ff02191690831515021790555050565b60066020528060005260406000206000915054906101000a900460ff1681565b6112716122c7565b73ffffffffffffffffffffffffffffffffffffffff1661128f611642565b73ffffffffffffffffffffffffffffffffffffffff16146112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc90613949565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113316122c7565b73ffffffffffffffffffffffffffffffffffffffff1661134f611642565b73ffffffffffffffffffffffffffffffffffffffff16146113a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139c90613949565b60405180910390fd5b80600d8190555050565b601360019054906101000a900460ff1681565b6113ca6122c7565b73ffffffffffffffffffffffffffffffffffffffff166113e8611642565b73ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143590613949565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114ea6122c7565b73ffffffffffffffffffffffffffffffffffffffff16611508611642565b73ffffffffffffffffffffffffffffffffffffffff161461155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590613949565b60405180910390fd5b6115686000612f00565b565b6115726122c7565b73ffffffffffffffffffffffffffffffffffffffff16611590611642565b73ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd90613949565b60405180910390fd5b80600e8190555050565b600d5481565b60125481565b600e5481565b60146020528060005260406000206000915054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461167a906138cc565b80601f01602080910402602001604051908101604052809291908181526020018280546116a6906138cc565b80156116f35780601f106116c8576101008083540402835291602001916116f3565b820191906000526020600020905b8154815290600101906020018083116116d657829003601f168201915b5050505050905090565b6117056122c7565b73ffffffffffffffffffffffffffffffffffffffff16611723611642565b73ffffffffffffffffffffffffffffffffffffffff1614611779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177090613949565b60405180910390fd5b60005b8383905081101561181857816014600086868581811061179f5761179e613969565b5b90506020020160208101906117b4919061368b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611810906139c7565b91505061177c565b50505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119076118516122c7565b8461190285604051806060016040528060258152602001614377602591396005600061187b6122c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df49092919063ffffffff16565b6122cf565b6001905092915050565b600061192561191e6122c7565b8484612498565b506001905092915050565b6119386122c7565b73ffffffffffffffffffffffffffffffffffffffff16611956611642565b73ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a390613949565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b611a156122c7565b73ffffffffffffffffffffffffffffffffffffffff16611a33611642565b73ffffffffffffffffffffffffffffffffffffffff1614611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613949565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8b90613ac7565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611bcf929190613ae7565b6020604051808303816000875af1158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190613b25565b50505050565b611c206122c7565b73ffffffffffffffffffffffffffffffffffffffff16611c3e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b90613949565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d666122c7565b73ffffffffffffffffffffffffffffffffffffffff16611d84611642565b73ffffffffffffffffffffffffffffffffffffffff1614611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190613949565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebc90613ac7565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611eeb90613b83565b60006040518083038185875af1925050503d8060008114611f28576040519150601f19603f3d011682016040523d82523d6000602084013e611f2d565b606091505b5050905080611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6890613be4565b60405180910390fd5b50565b60105481565b600f60009054906101000a900460ff1681565b601360009054906101000a900460ff1681565b611fa86122c7565b73ffffffffffffffffffffffffffffffffffffffff16611fc6611642565b73ffffffffffffffffffffffffffffffffffffffff161461201c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201390613949565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b6120416122c7565b73ffffffffffffffffffffffffffffffffffffffff1661205f611642565b73ffffffffffffffffffffffffffffffffffffffff16146120b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ac90613949565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90613c76565b60405180910390fd5b61212d81612f00565b50565b6121386122c7565b73ffffffffffffffffffffffffffffffffffffffff16612156611642565b73ffffffffffffffffffffffffffffffffffffffff16146121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a390613949565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360029054906101000a900460ff1681565b60008083036122155760009050612277565b600082846122239190613c96565b90508284826122329190613d07565b14612272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226990613daa565b60405180910390fd5b809150505b92915050565b60006122bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fc4565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233590613e3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490613ece565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161248b91906135e6565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90613f60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256e90613ff2565b60405180910390fd5b600082116125ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b190614084565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263e906140f0565b60405180910390fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cb906140f0565b60405180910390fd5b600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612758906140f0565b60405180910390fd5b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128055750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2d57601360009054906101000a900460ff16612859576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128509061415c565b60405180910390fd5b601254601154612869919061417c565b421080156128c55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a2c578373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361297c576001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612a2b565b8273ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612a2a576001600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ad15750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ae95750601360019054906101000a900460ff165b15612b3457600d54821115612b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2a90614222565b60405180910390fd5b5b612bbd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df49092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612c0c8585613027565b612c1f57612c1a8584613192565b612c21565b825b9050601360029054906101000a900460ff168015612c895750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cee57600e54612cac82612c9e87611499565b612ea290919063ffffffff16565b1115612ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce49061428e565b60405180910390fd5b5b612d4081600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea290919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612de091906135e6565b60405180910390a360019150509392505050565b6000838311158290612e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3391906133e2565b60405180910390fd5b5060008385612e4b91906142ae565b9050809150509392505050565b6000612e9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df4565b905092915050565b6000808284612eb1919061417c565b905083811015612ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eed9061432e565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829061300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300291906133e2565b60405180910390fd5b506000838561301a9190613d07565b9050809150509392505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130ca5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130d8576001905061318c565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131795750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613187576001905061318c565b600090505b92915050565b600080600f60009054906101000a900460ff16156131d6576131d3600c546131c56010548661220390919063ffffffff16565b61227d90919063ffffffff16565b90505b60008111156132da5761323181600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea290919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132d191906135e6565b60405180910390a35b6132ed8184612e5890919063ffffffff16565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613321826132f6565b9050919050565b61333181613316565b82525050565b600060208201905061334c6000830184613328565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561338c578082015181840152602081019050613371565b60008484015250505050565b6000601f19601f8301169050919050565b60006133b482613352565b6133be818561335d565b93506133ce81856020860161336e565b6133d781613398565b840191505092915050565b600060208201905081810360008301526133fc81846133a9565b905092915050565b600080fd5b600080fd5b61341781613316565b811461342257600080fd5b50565b6000813590506134348161340e565b92915050565b6000819050919050565b61344d8161343a565b811461345857600080fd5b50565b60008135905061346a81613444565b92915050565b6000806040838503121561348757613486613404565b5b600061349585828601613425565b92505060206134a68582860161345b565b9150509250929050565b60008115159050919050565b6134c5816134b0565b82525050565b60006020820190506134e060008301846134bc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261350b5761350a6134e6565b5b8235905067ffffffffffffffff811115613528576135276134eb565b5b602083019150836020820283011115613544576135436134f0565b5b9250929050565b613554816134b0565b811461355f57600080fd5b50565b6000813590506135718161354b565b92915050565b6000806000604084860312156135905761358f613404565b5b600084013567ffffffffffffffff8111156135ae576135ad613409565b5b6135ba868287016134f5565b935093505060206135cd86828701613562565b9150509250925092565b6135e08161343a565b82525050565b60006020820190506135fb60008301846135d7565b92915050565b60008060006060848603121561361a57613619613404565b5b600061362886828701613425565b935050602061363986828701613425565b925050604061364a8682870161345b565b9150509250925092565b600060ff82169050919050565b61366a81613654565b82525050565b60006020820190506136856000830184613661565b92915050565b6000602082840312156136a1576136a0613404565b5b60006136af84828501613425565b91505092915050565b6000602082840312156136ce576136cd613404565b5b60006136dc84828501613562565b91505092915050565b6000602082840312156136fb576136fa613404565b5b60006137098482850161345b565b91505092915050565b6000806040838503121561372957613728613404565b5b600061373785828601613425565b925050602061374885828601613562565b9150509250929050565b600061375d82613316565b9050919050565b61376d81613752565b811461377857600080fd5b50565b60008135905061378a81613764565b92915050565b6000806000606084860312156137a9576137a8613404565b5b60006137b78682870161377b565b93505060206137c886828701613425565b92505060406137d98682870161345b565b9150509250925092565b600080604083850312156137fa576137f9613404565b5b600061380885828601613425565b925050602061381985828601613425565b9150509250929050565b6000819050919050565b600061384861384361383e846132f6565b613823565b6132f6565b9050919050565b600061385a8261382d565b9050919050565b600061386c8261384f565b9050919050565b61387c81613861565b82525050565b60006020820190506138976000830184613873565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138e457607f821691505b6020821081036138f7576138f661389d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061393360208361335d565b915061393e826138fd565b602082019050919050565b6000602082019050818103600083015261396281613926565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139d28261343a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a0457613a03613998565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b6000613a4560168361335d565b9150613a5082613a0f565b602082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4572726f723a2047756172646564210000000000000000000000000000000000600082015250565b6000613ab1600f8361335d565b9150613abc82613a7b565b602082019050919050565b60006020820190508181036000830152613ae081613aa4565b9050919050565b6000604082019050613afc6000830185613328565b613b0960208301846135d7565b9392505050565b600081519050613b1f8161354b565b92915050565b600060208284031215613b3b57613b3a613404565b5b6000613b4984828501613b10565b91505092915050565b600081905092915050565b50565b6000613b6d600083613b52565b9150613b7882613b5d565b600082019050919050565b6000613b8e82613b60565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613bce60148361335d565b9150613bd982613b98565b602082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c6060268361335d565b9150613c6b82613c04565b604082019050919050565b60006020820190508181036000830152613c8f81613c53565b9050919050565b6000613ca18261343a565b9150613cac8361343a565b9250828202613cba8161343a565b91508282048414831517613cd157613cd0613998565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d128261343a565b9150613d1d8361343a565b925082613d2d57613d2c613cd8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9460218361335d565b9150613d9f82613d38565b604082019050919050565b60006020820190508181036000830152613dc381613d87565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e2660248361335d565b9150613e3182613dca565b604082019050919050565b60006020820190508181036000830152613e5581613e19565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eb860228361335d565b9150613ec382613e5c565b604082019050919050565b60006020820190508181036000830152613ee781613eab565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f4a60258361335d565b9150613f5582613eee565b604082019050919050565b60006020820190508181036000830152613f7981613f3d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613fdc60238361335d565b9150613fe782613f80565b604082019050919050565b6000602082019050818103600083015261400b81613fcf565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061406e60298361335d565b915061407982614012565b604082019050919050565b6000602082019050818103600083015261409d81614061565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b60006140da60138361335d565b91506140e5826140a4565b602082019050919050565b60006020820190508181036000830152614109816140cd565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000614146601d8361335d565b915061415182614110565b602082019050919050565b6000602082019050818103600083015261417581614139565b9050919050565b60006141878261343a565b91506141928361343a565b92508282019050808211156141aa576141a9613998565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061420c60288361335d565b9150614217826141b0565b604082019050919050565b6000602082019050818103600083015261423b816141ff565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614278601b8361335d565b915061428382614242565b602082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b60006142b98261343a565b91506142c48361343a565b92508282039050818111156142dc576142db613998565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614318601b8361335d565b9150614323826142e2565b602082019050919050565b600060208201905081810360008301526143478161430b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a2d3bc6bdcfa3f31945ade11ea182c1932883f8f1f32d0e7c2d72e0ebf84338064736f6c63430008110033
Deployed Bytecode Sourcemap
6591:10669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7028:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9805:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6938:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11143:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15727:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10082:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11926:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6850:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14959:169;;;;;;;;;;;;;:::i;:::-;;10476:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9991:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10640:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7419:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7253:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16182:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7196:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17037:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16803:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7996:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16425:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10190:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1835:94;;;;;;;;;;;;;:::i;:::-;;16689:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7573:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7899:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8079:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7364:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1526:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9896;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15527:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8289:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10866:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11751:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16561:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7866:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16912:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7305:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15387:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15960:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10321:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8247:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16295:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15169:178;;;;;;;;;;;;;:::i;:::-;;7781:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7737;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7967:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16076:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1937:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17162:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8035:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7028:32;;;;;;;;;;;;;:::o;9805:83::-;9842:13;9875:5;9868:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9805:83;:::o;6938:81::-;;;:::o;11143:161::-;11218:4;11235:39;11244:12;:10;:12::i;:::-;11258:7;11267:6;11235:8;:39::i;:::-;11292:4;11285:11;;11143:161;;;;:::o;15727:225::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15851:9:::1;15846:99;15870:8;;:15;;15866:1;:19;15846:99;;;15928:5;15907;:18;15913:8;;15922:1;15913:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15907:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;15887:3;;;;;:::i;:::-;;;;15846:99;;;;15727:225:::0;;;:::o;10082:100::-;10135:7;10162:12;;10155:19;;10082:100;:::o;11926:313::-;12024:4;12041:36;12051:6;12059:9;12070:6;12041:9;:36::i;:::-;;12088:121;12097:6;12105:12;:10;:12::i;:::-;12119:89;12157:6;12119:89;;;;;;;;;;;;;;;;;:11;:19;12131:6;12119:19;;;;;;;;;;;;;;;:33;12139:12;:10;:12::i;:::-;12119:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12088:8;:121::i;:::-;12227:4;12220:11;;11926:313;;;;;:::o;6850:81::-;;;:::o;14959:169::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15022:7:::1;;;;;;;;;;;15021:8;15013:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;15077:4;15067:7;;:14;;;;;;;;;;;;;;;;;;15105:15;15092:10;:28;;;;14959:169::o:0;10476:156::-;10529:7;10556:68;10601:22;10611:11;10601:9;:22::i;:::-;10556:40;10573:22;10583:11;10573:9;:22::i;:::-;10556:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;10549:75;;10476:156;:::o;9991:83::-;10032:5;10057:9;;;;;;;;;;;10050:16;;9991:83;:::o;10640:218::-;10728:4;10745:83;10754:12;:10;:12::i;:::-;10768:7;10777:50;10816:10;10777:11;:25;10789:12;:10;:12::i;:::-;10777:25;;;;;;;;;;;;;;;:34;10803:7;10777:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;10745:8;:83::i;:::-;10846:4;10839:11;;10640:218;;;;:::o;7419:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;7253:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;16182:105::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16272:7:::1;16253:16;;:26;;;;;;;;;;;;;;;;;;16182:105:::0;:::o;7196:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;17037:117::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17138:7:::1;17107:11;;:39;;;;;;;;;;;;;;;;;;17037:117:::0;:::o;16803:101::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16888:8:::1;16873:12;:23;;;;16803:101:::0;:::o;7996:32::-;;;;;;;;;;;;;:::o;16425:128::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16538:7:::1;16510:19;:25;16530:4;16510:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16425:128:::0;;:::o;10190:123::-;10256:7;10282:9;:18;10292:7;10282:18;;;;;;;;;;;;;;;;10275:25;;10190:123;;;:::o;1835:94::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1900:21:::1;1918:1;1900:9;:21::i;:::-;1835:94::o:0;16689:106::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16779:8:::1;16766:10;:21;;;;16689:106:::0;:::o;7573:67::-;;;;:::o;7899:39::-;;;;:::o;7656:64::-;;;;:::o;8079:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;7364:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1526:87::-;1572:7;1599:6;;;;;;;;;;;1592:13;;1526:87;:::o;9896:::-;9935:13;9968:7;9961:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9896:87;:::o;15527:192::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15623:6:::1;15619:93;15639:4;;:11;;15635:1;:15;15619:93;;;15693:7;15671:10;:19;15682:4;;15687:1;15682:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15671:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15652:3;;;;;:::i;:::-;;;;15619:93;;;;15527:192:::0;;;:::o;8289:24::-;;;;;;;;;;;;;:::o;10866:269::-;10959:4;10976:129;10985:12;:10;:12::i;:::-;10999:7;11008:96;11047:15;11008:96;;;;;;;;;;;;;;;;;:11;:25;11020:12;:10;:12::i;:::-;11008:25;;;;;;;;;;;;;;;:34;11034:7;11008:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;10976:8;:129::i;:::-;11123:4;11116:11;;10866:269;;;;:::o;11751:167::-;11829:4;11846:42;11856:12;:10;:12::i;:::-;11870:9;11881:6;11846:9;:42::i;:::-;;11906:4;11899:11;;11751:167;;;;:::o;16561:120::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16666:7:::1;16642:15;:21;16658:4;16642:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;16561:120:::0;;:::o;7866:25::-;;;;:::o;16912:117::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17014:7:::1;16992:12;:19;17005:5;16992:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16912:117:::0;;:::o;7305:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;15387:132::-;8183:17;;;;;;;;;;;8169:31;;:10;:31;;;8161:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15481:3:::1;:12;;;15494:9;15504:6;15481:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15387:132:::0;;;:::o;15960:108::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16053:7:::1;16032:18;;:28;;;;;;;;;;;;;;;;;;15960:108:::0;:::o;10321:143::-;10402:7;10429:11;:18;10441:5;10429:18;;;;;;;;;;;;;;;:27;10448:7;10429:27;;;;;;;;;;;;;;;;10422:34;;10321:143;;;;:::o;8247:35::-;;;;;;;;;;;;;:::o;16295:122::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16402:7:::1;16376:17;:23;16394:4;16376:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16295:122:::0;;:::o;15169:178::-;8183:17;;;;;;;;;;;8169:31;;:10;:31;;;8161:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15224:7:::1;15244:10;15236:24;;15268:21;15236:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15223:71;;;15313:2;15305:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;15211:136;15169:178::o:0;7781:37::-;;;;:::o;7737:::-;;;;;;;;;;;;;:::o;7967:19::-;;;;;;;;;;;;;:::o;16076:98::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16159:7:::1;16143:13;;:23;;;;;;;;;;;;;;;;;;16076:98:::0;:::o;1937:229::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2060:1:::1;2040:22;;:8;:22;;::::0;2018:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2139:19;2149:8;2139:9;:19::i;:::-;1937:229:::0;:::o;17162:91::-;1758:12;:10;:12::i;:::-;1747:23;;:7;:5;:7::i;:::-;:23;;;1739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17240:5:::1;17228:9;;:17;;;;;;;;;;;;;;;;;;17162:91:::0;:::o;8035:35::-;;;;;;;;;;;;;:::o;2913:250::-;2971:7;3000:1;2995;:6;2991:47;;3025:1;3018:8;;;;2991:47;3050:9;3066:1;3062;:5;;;;:::i;:::-;3050:17;;3095:1;3090;3086;:5;;;;:::i;:::-;:10;3078:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3154:1;3147:8;;;2913:250;;;;;:::o;3171:132::-;3229:7;3256:39;3260:1;3263;3256:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3249:46;;3171:132;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;11312:337::-;11422:1;11405:19;;:5;:19;;;11397:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11503:1;11484:21;;:7;:21;;;11476:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11587:6;11557:11;:18;11569:5;11557:18;;;;;;;;;;;;;;;:27;11576:7;11557:27;;;;;;;;;;;;;;;:36;;;;11625:7;11609:32;;11618:5;11609:32;;;11634:6;11609:32;;;;;;:::i;:::-;;;;;;;;11312:337;;;:::o;12247:1775::-;12334:4;12379:1;12361:20;;:6;:20;;;12353:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12463:1;12442:23;;:9;:23;;;12434:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12533:1;12524:6;:10;12516:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12610:5;:13;12616:6;12610:13;;;;;;;;;;;;;;;;;;;;;;;;;12609:14;12601:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12667:5;:17;12673:10;12667:17;;;;;;;;;;;;;;;;;;;;;;;;;12666:18;12658:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12728:5;:16;12734:9;12728:16;;;;;;;;;;;;;;;;;;;;;;;;;12727:17;12719:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12786:10;:18;12797:6;12786:18;;;;;;;;;;;;;;;;;;;;;;;;;12785:19;:45;;;;;12809:10;:21;12820:9;12809:21;;;;;;;;;;;;;;;;;;;;;;;;;12808:22;12785:45;12781:496;;;12855:7;;;;;;;;;;;12847:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12966:11;;12953:10;;:24;;;;:::i;:::-;12935:15;:42;:93;;;;;13016:11;;;;;;;;;;;12998:30;;:6;:30;;;;12935:93;12913:353;;;13080:6;13067:19;;:9;;;;;;;;;;;:19;;;13063:188;;13130:4;13111:5;:16;13117:9;13111:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13063:188;;;13177:9;13164:22;;:9;;;;;;;;;;;:22;;;13160:91;;13227:4;13211:5;:13;13217:6;13211:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13160:91;13063:188;12913:353;12781:496;13301:15;:23;13317:6;13301:23;;;;;;;;;;;;;;;;;;;;;;;;;13300:24;:55;;;;;13329:15;:26;13345:9;13329:26;;;;;;;;;;;;;;;;;;;;;;;;;13328:27;13300:55;:72;;;;;13359:13;;;;;;;;;;;13300:72;13297:179;;;13407:12;;13397:6;:22;;13389:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13297:179;13517:53;13539:6;13517:53;;;;;;;;;;;;;;;;;:9;:17;13527:6;13517:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13497:9;:17;13507:6;13497:17;;;;;;;;;;;;;;;:73;;;;13583:19;13605:34;13622:6;13629:9;13605:16;:34::i;:::-;:69;;13651:23;13659:6;13667;13651:7;:23::i;:::-;13605:69;;;13642:6;13605:69;13583:91;;13690:16;;;;;;;;;;;:51;;;;;13711:19;:30;13731:9;13711:30;;;;;;;;;;;;;;;;;;;;;;;;;13710:31;13690:51;13687:173;;;13807:10;;13766:37;13791:11;13766:20;13776:9;13766;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;13758:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;13687:173;13895:37;13920:11;13895:9;:20;13905:9;13895:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;13872:9;:20;13882:9;13872:20;;;;;;;;;;;;;;;:60;;;;13967:9;13950:40;;13959:6;13950:40;;;13978:11;13950:40;;;;;;:::i;:::-;;;;;;;;14008:4;14001:11;;;12247:1775;;;;;:::o;2713:192::-;2799:7;2832:1;2827;:6;;2835:12;2819:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2859:9;2875:1;2871;:5;;;;:::i;:::-;2859:17;;2896:1;2889:8;;;2713:192;;;;;:::o;2569:136::-;2627:7;2654:43;2658:1;2661;2654:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2647:50;;2569:136;;;;:::o;2380:181::-;2438:7;2458:9;2474:1;2470;:5;;;;:::i;:::-;2458:17;;2499:1;2494;:6;;2486:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2552:1;2545:8;;;2380:181;;;;:::o;2174:173::-;2230:16;2249:6;;;;;;;;;;;2230:25;;2275:8;2266:6;;:17;;;;;;;;;;;;;;;;;;2330:8;2299:40;;2320:8;2299:40;;;;;;;;;;;;2219:128;2174:173;:::o;3311:278::-;3397:7;3429:1;3425;:5;3432:12;3417:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3456:9;3472:1;3468;:5;;;;:::i;:::-;3456:17;;3580:1;3573:8;;;3311:278;;;;;:::o;14034:368::-;14118:4;14138:17;:25;14156:6;14138:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14167:17;:28;14185:9;14167:28;;;;;;;;;;;;;;;;;;;;;;;;;14138:57;14135:260;;;14219:4;14212:11;;;;14135:260;14254:12;:20;14267:6;14254:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14278:12;:23;14291:9;14278:23;;;;;;;;;;;;;;;;;;;;;;;;;14254:47;14250:145;;;14325:4;14318:11;;;;14250:145;14378:5;14371:12;;14034:368;;;;;:::o;14410:541::-;14477:7;14507:14;14564:18;;;;;;;;;;;14561:116;;;14615:46;14649:11;;14615:29;14626:17;;14615:6;:10;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;14603:58;;14561:116;14708:1;14696:9;:13;14693:185;;;14757:39;14786:9;14757;:24;14775:4;14757:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14730:9;:24;14748:4;14730:24;;;;;;;;;;;;;;;:66;;;;14845:4;14820:42;;14829:6;14820:42;;;14852:9;14820:42;;;;;;:::i;:::-;;;;;;;;14693:185;14901:21;14912:9;14901:6;:10;;:21;;;;:::i;:::-;14894:28;;;14410:541;;;;:::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:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2139:117;2248:1;2245;2238:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:117;4030:1;4027;4020:12;4044:117;4153:1;4150;4143:12;4184:568;4257:8;4267:6;4317:3;4310:4;4302:6;4298:17;4294:27;4284:122;;4325:79;;:::i;:::-;4284:122;4438:6;4425:20;4415:30;;4468:18;4460:6;4457:30;4454:117;;;4490:79;;:::i;:::-;4454:117;4604:4;4596:6;4592:17;4580:29;;4658:3;4650:4;4642:6;4638:17;4628:8;4624:32;4621:41;4618:128;;;4665:79;;:::i;:::-;4618:128;4184:568;;;;;:::o;4758:116::-;4828:21;4843:5;4828:21;:::i;:::-;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4808:60;4758:116;:::o;4880:133::-;4923:5;4961:6;4948:20;4939:29;;4977:30;5001:5;4977:30;:::i;:::-;4880:133;;;;:::o;5019:698::-;5111:6;5119;5127;5176:2;5164:9;5155:7;5151:23;5147:32;5144:119;;;5182:79;;:::i;:::-;5144:119;5330:1;5319:9;5315:17;5302:31;5360:18;5352:6;5349:30;5346:117;;;5382:79;;:::i;:::-;5346:117;5495:80;5567:7;5558:6;5547:9;5543:22;5495:80;:::i;:::-;5477:98;;;;5273:312;5624:2;5650:50;5692:7;5683:6;5672:9;5668:22;5650:50;:::i;:::-;5640:60;;5595:115;5019:698;;;;;:::o;5723:118::-;5810:24;5828:5;5810:24;:::i;:::-;5805:3;5798:37;5723:118;;:::o;5847:222::-;5940:4;5978:2;5967:9;5963:18;5955:26;;5991:71;6059:1;6048:9;6044:17;6035:6;5991:71;:::i;:::-;5847:222;;;;:::o;6075:619::-;6152:6;6160;6168;6217:2;6205:9;6196:7;6192:23;6188:32;6185:119;;;6223:79;;:::i;:::-;6185:119;6343:1;6368:53;6413:7;6404:6;6393:9;6389:22;6368:53;:::i;:::-;6358:63;;6314:117;6470:2;6496:53;6541:7;6532:6;6521:9;6517:22;6496:53;:::i;:::-;6486:63;;6441:118;6598:2;6624:53;6669:7;6660:6;6649:9;6645:22;6624:53;:::i;:::-;6614:63;;6569:118;6075:619;;;;;:::o;6700:86::-;6735:7;6775:4;6768:5;6764:16;6753:27;;6700:86;;;:::o;6792:112::-;6875:22;6891:5;6875:22;:::i;:::-;6870:3;6863:35;6792:112;;:::o;6910:214::-;6999:4;7037:2;7026:9;7022:18;7014:26;;7050:67;7114:1;7103:9;7099:17;7090:6;7050:67;:::i;:::-;6910:214;;;;:::o;7130:329::-;7189:6;7238:2;7226:9;7217:7;7213:23;7209:32;7206:119;;;7244:79;;:::i;:::-;7206:119;7364:1;7389:53;7434:7;7425:6;7414:9;7410:22;7389:53;:::i;:::-;7379:63;;7335:117;7130:329;;;;:::o;7465:323::-;7521:6;7570:2;7558:9;7549:7;7545:23;7541:32;7538:119;;;7576:79;;:::i;:::-;7538:119;7696:1;7721:50;7763:7;7754:6;7743:9;7739:22;7721:50;:::i;:::-;7711:60;;7667:114;7465:323;;;;:::o;7794:329::-;7853:6;7902:2;7890:9;7881:7;7877:23;7873:32;7870:119;;;7908:79;;:::i;:::-;7870:119;8028:1;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7999:117;7794:329;;;;:::o;8129:468::-;8194:6;8202;8251:2;8239:9;8230:7;8226:23;8222:32;8219:119;;;8257:79;;:::i;:::-;8219:119;8377:1;8402:53;8447:7;8438:6;8427:9;8423:22;8402:53;:::i;:::-;8392:63;;8348:117;8504:2;8530:50;8572:7;8563:6;8552:9;8548:22;8530:50;:::i;:::-;8520:60;;8475:115;8129:468;;;;;:::o;8603:109::-;8653:7;8682:24;8700:5;8682:24;:::i;:::-;8671:35;;8603:109;;;:::o;8718:148::-;8804:37;8835:5;8804:37;:::i;:::-;8797:5;8794:48;8784:76;;8856:1;8853;8846:12;8784:76;8718:148;:::o;8872:165::-;8931:5;8969:6;8956:20;8947:29;;8985:46;9025:5;8985:46;:::i;:::-;8872:165;;;;:::o;9043:645::-;9133:6;9141;9149;9198:2;9186:9;9177:7;9173:23;9169:32;9166:119;;;9204:79;;:::i;:::-;9166:119;9324:1;9349:66;9407:7;9398:6;9387:9;9383:22;9349:66;:::i;:::-;9339:76;;9295:130;9464:2;9490:53;9535:7;9526:6;9515:9;9511:22;9490:53;:::i;:::-;9480:63;;9435:118;9592:2;9618:53;9663:7;9654:6;9643:9;9639:22;9618:53;:::i;:::-;9608:63;;9563:118;9043:645;;;;;:::o;9694:474::-;9762:6;9770;9819:2;9807:9;9798:7;9794:23;9790:32;9787:119;;;9825:79;;:::i;:::-;9787:119;9945:1;9970:53;10015:7;10006:6;9995:9;9991:22;9970:53;:::i;:::-;9960:63;;9916:117;10072:2;10098:53;10143:7;10134:6;10123:9;10119:22;10098:53;:::i;:::-;10088:63;;10043:118;9694:474;;;;;:::o;10174:60::-;10202:3;10223:5;10216:12;;10174:60;;;:::o;10240:142::-;10290:9;10323:53;10341:34;10350:24;10368:5;10350:24;:::i;:::-;10341:34;:::i;:::-;10323:53;:::i;:::-;10310:66;;10240:142;;;:::o;10388:126::-;10438:9;10471:37;10502:5;10471:37;:::i;:::-;10458:50;;10388:126;;;:::o;10520:150::-;10594:9;10627:37;10658:5;10627:37;:::i;:::-;10614:50;;10520:150;;;:::o;10676:179::-;10787:61;10842:5;10787:61;:::i;:::-;10782:3;10775:74;10676:179;;:::o;10861:270::-;10978:4;11016:2;11005:9;11001:18;10993:26;;11029:95;11121:1;11110:9;11106:17;11097:6;11029:95;:::i;:::-;10861:270;;;;:::o;11137:180::-;11185:77;11182:1;11175:88;11282:4;11279:1;11272:15;11306:4;11303:1;11296:15;11323:320;11367:6;11404:1;11398:4;11394:12;11384:22;;11451:1;11445:4;11441:12;11472:18;11462:81;;11528:4;11520:6;11516:17;11506:27;;11462:81;11590:2;11582:6;11579:14;11559:18;11556:38;11553:84;;11609:18;;:::i;:::-;11553:84;11374:269;11323:320;;;:::o;11649:182::-;11789:34;11785:1;11777:6;11773:14;11766:58;11649:182;:::o;11837:366::-;11979:3;12000:67;12064:2;12059:3;12000:67;:::i;:::-;11993:74;;12076:93;12165:3;12076:93;:::i;:::-;12194:2;12189:3;12185:12;12178:19;;11837:366;;;:::o;12209:419::-;12375:4;12413:2;12402:9;12398:18;12390:26;;12462:9;12456:4;12452:20;12448:1;12437:9;12433:17;12426:47;12490:131;12616:4;12490:131;:::i;:::-;12482:139;;12209:419;;;:::o;12634:180::-;12682:77;12679:1;12672:88;12779:4;12776:1;12769:15;12803:4;12800:1;12793:15;12820:180;12868:77;12865:1;12858:88;12965:4;12962:1;12955:15;12989:4;12986:1;12979:15;13006:233;13045:3;13068:24;13086:5;13068:24;:::i;:::-;13059:33;;13114:66;13107:5;13104:77;13101:103;;13184:18;;:::i;:::-;13101:103;13231:1;13224:5;13220:13;13213:20;;13006:233;;;:::o;13245:172::-;13385:24;13381:1;13373:6;13369:14;13362:48;13245:172;:::o;13423:366::-;13565:3;13586:67;13650:2;13645:3;13586:67;:::i;:::-;13579:74;;13662:93;13751:3;13662:93;:::i;:::-;13780:2;13775:3;13771:12;13764:19;;13423:366;;;:::o;13795:419::-;13961:4;13999:2;13988:9;13984:18;13976:26;;14048:9;14042:4;14038:20;14034:1;14023:9;14019:17;14012:47;14076:131;14202:4;14076:131;:::i;:::-;14068:139;;13795:419;;;:::o;14220:165::-;14360:17;14356:1;14348:6;14344:14;14337:41;14220:165;:::o;14391:366::-;14533:3;14554:67;14618:2;14613:3;14554:67;:::i;:::-;14547:74;;14630:93;14719:3;14630:93;:::i;:::-;14748:2;14743:3;14739:12;14732:19;;14391:366;;;:::o;14763:419::-;14929:4;14967:2;14956:9;14952:18;14944:26;;15016:9;15010:4;15006:20;15002:1;14991:9;14987:17;14980:47;15044:131;15170:4;15044:131;:::i;:::-;15036:139;;14763:419;;;:::o;15188:332::-;15309:4;15347:2;15336:9;15332:18;15324:26;;15360:71;15428:1;15417:9;15413:17;15404:6;15360:71;:::i;:::-;15441:72;15509:2;15498:9;15494:18;15485:6;15441:72;:::i;:::-;15188:332;;;;;:::o;15526:137::-;15580:5;15611:6;15605:13;15596:22;;15627:30;15651:5;15627:30;:::i;:::-;15526:137;;;;:::o;15669:345::-;15736:6;15785:2;15773:9;15764:7;15760:23;15756:32;15753:119;;;15791:79;;:::i;:::-;15753:119;15911:1;15936:61;15989:7;15980:6;15969:9;15965:22;15936:61;:::i;:::-;15926:71;;15882:125;15669:345;;;;:::o;16020:147::-;16121:11;16158:3;16143:18;;16020:147;;;;:::o;16173:114::-;;:::o;16293:398::-;16452:3;16473:83;16554:1;16549:3;16473:83;:::i;:::-;16466:90;;16565:93;16654:3;16565:93;:::i;:::-;16683:1;16678:3;16674:11;16667:18;;16293:398;;;:::o;16697:379::-;16881:3;16903:147;17046:3;16903:147;:::i;:::-;16896:154;;17067:3;17060:10;;16697:379;;;:::o;17082:170::-;17222:22;17218:1;17210:6;17206:14;17199:46;17082:170;:::o;17258:366::-;17400:3;17421:67;17485:2;17480:3;17421:67;:::i;:::-;17414:74;;17497:93;17586:3;17497:93;:::i;:::-;17615:2;17610:3;17606:12;17599:19;;17258:366;;;:::o;17630:419::-;17796:4;17834:2;17823:9;17819:18;17811:26;;17883:9;17877:4;17873:20;17869:1;17858:9;17854:17;17847:47;17911:131;18037:4;17911:131;:::i;:::-;17903:139;;17630:419;;;:::o;18055:225::-;18195:34;18191:1;18183:6;18179:14;18172:58;18264:8;18259:2;18251:6;18247:15;18240:33;18055:225;:::o;18286:366::-;18428:3;18449:67;18513:2;18508:3;18449:67;:::i;:::-;18442:74;;18525:93;18614:3;18525:93;:::i;:::-;18643:2;18638:3;18634:12;18627:19;;18286:366;;;:::o;18658:419::-;18824:4;18862:2;18851:9;18847:18;18839:26;;18911:9;18905:4;18901:20;18897:1;18886:9;18882:17;18875:47;18939:131;19065:4;18939:131;:::i;:::-;18931:139;;18658:419;;;:::o;19083:410::-;19123:7;19146:20;19164:1;19146:20;:::i;:::-;19141:25;;19180:20;19198:1;19180:20;:::i;:::-;19175:25;;19235:1;19232;19228:9;19257:30;19275:11;19257:30;:::i;:::-;19246:41;;19436:1;19427:7;19423:15;19420:1;19417:22;19397:1;19390:9;19370:83;19347:139;;19466:18;;:::i;:::-;19347:139;19131:362;19083:410;;;;:::o;19499:180::-;19547:77;19544:1;19537:88;19644:4;19641:1;19634:15;19668:4;19665:1;19658:15;19685:185;19725:1;19742:20;19760:1;19742:20;:::i;:::-;19737:25;;19776:20;19794:1;19776:20;:::i;:::-;19771:25;;19815:1;19805:35;;19820:18;;:::i;:::-;19805:35;19862:1;19859;19855:9;19850:14;;19685:185;;;;:::o;19876:220::-;20016:34;20012:1;20004:6;20000:14;19993:58;20085:3;20080:2;20072:6;20068:15;20061:28;19876:220;:::o;20102:366::-;20244:3;20265:67;20329:2;20324:3;20265:67;:::i;:::-;20258:74;;20341:93;20430:3;20341:93;:::i;:::-;20459:2;20454:3;20450:12;20443:19;;20102:366;;;:::o;20474:419::-;20640:4;20678:2;20667:9;20663:18;20655:26;;20727:9;20721:4;20717:20;20713:1;20702:9;20698:17;20691:47;20755:131;20881:4;20755:131;:::i;:::-;20747:139;;20474:419;;;:::o;20899:223::-;21039:34;21035:1;21027:6;21023:14;21016:58;21108:6;21103:2;21095:6;21091:15;21084:31;20899:223;:::o;21128:366::-;21270:3;21291:67;21355:2;21350:3;21291:67;:::i;:::-;21284:74;;21367:93;21456:3;21367:93;:::i;:::-;21485:2;21480:3;21476:12;21469:19;;21128:366;;;:::o;21500:419::-;21666:4;21704:2;21693:9;21689:18;21681:26;;21753:9;21747:4;21743:20;21739:1;21728:9;21724:17;21717:47;21781:131;21907:4;21781:131;:::i;:::-;21773:139;;21500:419;;;:::o;21925:221::-;22065:34;22061:1;22053:6;22049:14;22042:58;22134:4;22129:2;22121:6;22117:15;22110:29;21925:221;:::o;22152:366::-;22294:3;22315:67;22379:2;22374:3;22315:67;:::i;:::-;22308:74;;22391:93;22480:3;22391:93;:::i;:::-;22509:2;22504:3;22500:12;22493:19;;22152:366;;;:::o;22524:419::-;22690:4;22728:2;22717:9;22713:18;22705:26;;22777:9;22771:4;22767:20;22763:1;22752:9;22748:17;22741:47;22805:131;22931:4;22805:131;:::i;:::-;22797:139;;22524:419;;;:::o;22949:224::-;23089:34;23085:1;23077:6;23073:14;23066:58;23158:7;23153:2;23145:6;23141:15;23134:32;22949:224;:::o;23179:366::-;23321:3;23342:67;23406:2;23401:3;23342:67;:::i;:::-;23335:74;;23418:93;23507:3;23418:93;:::i;:::-;23536:2;23531:3;23527:12;23520:19;;23179:366;;;:::o;23551:419::-;23717:4;23755:2;23744:9;23740:18;23732:26;;23804:9;23798:4;23794:20;23790:1;23779:9;23775:17;23768:47;23832:131;23958:4;23832:131;:::i;:::-;23824:139;;23551:419;;;:::o;23976:222::-;24116:34;24112:1;24104:6;24100:14;24093:58;24185:5;24180:2;24172:6;24168:15;24161:30;23976:222;:::o;24204:366::-;24346:3;24367:67;24431:2;24426:3;24367:67;:::i;:::-;24360:74;;24443:93;24532:3;24443:93;:::i;:::-;24561:2;24556:3;24552:12;24545:19;;24204:366;;;:::o;24576:419::-;24742:4;24780:2;24769:9;24765:18;24757:26;;24829:9;24823:4;24819:20;24815:1;24804:9;24800:17;24793:47;24857:131;24983:4;24857:131;:::i;:::-;24849:139;;24576:419;;;:::o;25001:228::-;25141:34;25137:1;25129:6;25125:14;25118:58;25210:11;25205:2;25197:6;25193:15;25186:36;25001:228;:::o;25235:366::-;25377:3;25398:67;25462:2;25457:3;25398:67;:::i;:::-;25391:74;;25474:93;25563:3;25474:93;:::i;:::-;25592:2;25587:3;25583:12;25576:19;;25235:366;;;:::o;25607:419::-;25773:4;25811:2;25800:9;25796:18;25788:26;;25860:9;25854:4;25850:20;25846:1;25835:9;25831:17;25824:47;25888:131;26014:4;25888:131;:::i;:::-;25880:139;;25607:419;;;:::o;26032:169::-;26172:21;26168:1;26160:6;26156:14;26149:45;26032:169;:::o;26207:366::-;26349:3;26370:67;26434:2;26429:3;26370:67;:::i;:::-;26363:74;;26446:93;26535:3;26446:93;:::i;:::-;26564:2;26559:3;26555:12;26548:19;;26207:366;;;:::o;26579:419::-;26745:4;26783:2;26772:9;26768:18;26760:26;;26832:9;26826:4;26822:20;26818:1;26807:9;26803:17;26796:47;26860:131;26986:4;26860:131;:::i;:::-;26852:139;;26579:419;;;:::o;27004:179::-;27144:31;27140:1;27132:6;27128:14;27121:55;27004:179;:::o;27189:366::-;27331:3;27352:67;27416:2;27411:3;27352:67;:::i;:::-;27345:74;;27428:93;27517:3;27428:93;:::i;:::-;27546:2;27541:3;27537:12;27530:19;;27189:366;;;:::o;27561:419::-;27727:4;27765:2;27754:9;27750:18;27742:26;;27814:9;27808:4;27804:20;27800:1;27789:9;27785:17;27778:47;27842:131;27968:4;27842:131;:::i;:::-;27834:139;;27561:419;;;:::o;27986:191::-;28026:3;28045:20;28063:1;28045:20;:::i;:::-;28040:25;;28079:20;28097:1;28079:20;:::i;:::-;28074:25;;28122:1;28119;28115:9;28108:16;;28143:3;28140:1;28137:10;28134:36;;;28150:18;;:::i;:::-;28134:36;27986:191;;;;:::o;28183:227::-;28323:34;28319:1;28311:6;28307:14;28300:58;28392:10;28387:2;28379:6;28375:15;28368:35;28183:227;:::o;28416:366::-;28558:3;28579:67;28643:2;28638:3;28579:67;:::i;:::-;28572:74;;28655:93;28744:3;28655:93;:::i;:::-;28773:2;28768:3;28764:12;28757:19;;28416:366;;;:::o;28788:419::-;28954:4;28992:2;28981:9;28977:18;28969:26;;29041:9;29035:4;29031:20;29027:1;29016:9;29012:17;29005:47;29069:131;29195:4;29069:131;:::i;:::-;29061:139;;28788:419;;;:::o;29213:177::-;29353:29;29349:1;29341:6;29337:14;29330:53;29213:177;:::o;29396:366::-;29538:3;29559:67;29623:2;29618:3;29559:67;:::i;:::-;29552:74;;29635:93;29724:3;29635:93;:::i;:::-;29753:2;29748:3;29744:12;29737:19;;29396:366;;;:::o;29768:419::-;29934:4;29972:2;29961:9;29957:18;29949:26;;30021:9;30015:4;30011:20;30007:1;29996:9;29992:17;29985:47;30049:131;30175:4;30049:131;:::i;:::-;30041:139;;29768:419;;;:::o;30193:194::-;30233:4;30253:20;30271:1;30253:20;:::i;:::-;30248:25;;30287:20;30305:1;30287:20;:::i;:::-;30282:25;;30331:1;30328;30324:9;30316:17;;30355:1;30349:4;30346:11;30343:37;;;30360:18;;:::i;:::-;30343:37;30193:194;;;;:::o;30393:177::-;30533:29;30529:1;30521:6;30517:14;30510:53;30393:177;:::o;30576:366::-;30718:3;30739:67;30803:2;30798:3;30739:67;:::i;:::-;30732:74;;30815:93;30904:3;30815:93;:::i;:::-;30933:2;30928:3;30924:12;30917:19;;30576:366;;;:::o;30948:419::-;31114:4;31152:2;31141:9;31137:18;31129:26;;31201:9;31195:4;31191:20;31187:1;31176:9;31172:17;31165:47;31229:131;31355:4;31229:131;:::i;:::-;31221:139;;30948:419;;;:::o
Swarm Source
ipfs://a2d3bc6bdcfa3f31945ade11ea182c1932883f8f1f32d0e7c2d72e0ebf843380
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.