ERC-20
Overview
Max Total Supply
1,000,000,000 XT
Holders
281
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,268,278.219833062 XTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
XitterCoin
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ /* Telegram: https://t.me/XitterPortal Twitter: https://twitter.com/Xitter_eth Website: https://xitter.vip */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.18; 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 XitterCoin is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Xitter"; string private constant _symbol = "XT"; 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 = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 10; //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(0x640b42e5558450e5EeB7cA423e3D381eDFF808Ba); address payable private _marketingAddress = payable(0x6d4C27CedF014bFE6690621f4fDEBE2B777a078C); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 10000000 * 10**9; uint256 public _maxWalletSize = 10000000 * 10**9; uint256 public _swapTokensAtAmount = 5000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _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 (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } 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 >= _swapTokensAtAmount) { contractTokenBalance = _swapTokensAtAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(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 sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function Launch(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function _initiateMarketMaker(address _pairaddress,address _router) external onlyOwner { uniswapV2Pair = _pairaddress; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router); uniswapV2Router = _uniswapV2Router; } 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; sendETHToFee(contractETHBalance); } function addBots(address[] memory bots_,bool _status) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = _status; } } function removeBot(address notbot) public onlyOwner { bots[notbot] = false; } 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 { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 98, "Buy tax must be between 0% and 98%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 98, "Sell tax must be between 0% and 98%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
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":"bool","name":"_tradingOpen","type":"bool"}],"name":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pairaddress","type":"address"},{"internalType":"address","name":"_router","type":"address"}],"name":"_initiateMarketMaker","outputs":[],"stateMutability":"nonpayable","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":"bots_","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","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"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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
6080604052670de0b6b3a76400006000196200001c91906200050f565b6000196200002b919062000576565b6006556000600855600a6009556000600a55600a600b55600a54600c55600b54600d55600c54600e55600d54600f5573640b42e5558450e5eeb7ca423e3d381edff808ba601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736d4c27cedf014bfe6690621f4fdebe2b777a078c601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550662386f26fc10000601655662386f26fc100006017556611c37937e080006018553480156200016757600080fd5b5060006200017a620004a560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f620004a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000283620004ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000430620004a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620004979190620005c2565b60405180910390a3620005df565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200051c82620004d6565b91506200052983620004d6565b9250826200053c576200053b620004e0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200058382620004d6565b91506200059083620004d6565b9250828203905081811115620005ab57620005aa62000547565b5b92915050565b620005bc81620004d6565b82525050565b6000602082019050620005d96000830184620005b1565b92915050565b61427680620005ef6000396000f3fe6080604052600436106101dc5760003560e01c80637d1db4a511610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610691578063ea1644d5146106ce578063f129da24146106f7578063f2fde38b14610720576101e3565b8063a9059cbb146105d7578063bfd7928414610614578063c3c8cd8014610651578063c492f04614610668576101e3565b806395d89b41116100d157806395d89b411461053157806398a5c3151461055c578063a0916b8214610585578063a2a957bb146105ae576101e3565b80637d1db4a5146104735780637f2feddc1461049e5780638da5cb5b146104db5780638f9a55c014610506576101e3565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103df57806370a08231146103f6578063715018a61461043357806374010ece1461044a576101e3565b8063313ce5671461033757806349bd5a5e146103625780635fecd9261461038d5780636d8aa8f8146103b6576101e3565b806318160ddd116101b657806318160ddd1461027b5780631a87f61a146102a657806323b872dd146102cf5780632fd689e31461030c576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610749565b60405161020a9190612eb0565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612f7a565b610786565b6040516102479190612fd5565b60405180910390f35b34801561025c57600080fd5b506102656107a4565b604051610272919061304f565b60405180910390f35b34801561028757600080fd5b506102906107ca565b60405161029d9190613079565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906130c0565b6107da565b005b3480156102db57600080fd5b506102f660048036038101906102f191906130ed565b61088c565b6040516103039190612fd5565b60405180910390f35b34801561031857600080fd5b50610321610965565b60405161032e9190613079565b60405180910390f35b34801561034357600080fd5b5061034c61096b565b604051610359919061315c565b60405180910390f35b34801561036e57600080fd5b50610377610974565b6040516103849190613186565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906131a1565b61099a565b005b3480156103c257600080fd5b506103dd60048036038101906103d891906130c0565b610a8a565b005b3480156103eb57600080fd5b506103f4610b3c565b005b34801561040257600080fd5b5061041d600480360381019061041891906131a1565b610c0d565b60405161042a9190613079565b60405180910390f35b34801561043f57600080fd5b50610448610c5e565b005b34801561045657600080fd5b50610471600480360381019061046c91906131ce565b610db1565b005b34801561047f57600080fd5b50610488610e50565b6040516104959190613079565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c091906131a1565b610e56565b6040516104d29190613079565b60405180910390f35b3480156104e757600080fd5b506104f0610e6e565b6040516104fd9190613186565b60405180910390f35b34801561051257600080fd5b5061051b610e97565b6040516105289190613079565b60405180910390f35b34801561053d57600080fd5b50610546610e9d565b6040516105539190612eb0565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e91906131ce565b610eda565b005b34801561059157600080fd5b506105ac60048036038101906105a79190613343565b610f79565b005b3480156105ba57600080fd5b506105d560048036038101906105d0919061339f565b6110a3565b005b3480156105e357600080fd5b506105fe60048036038101906105f99190612f7a565b61129e565b60405161060b9190612fd5565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906131a1565b6112bc565b6040516106489190612fd5565b60405180910390f35b34801561065d57600080fd5b506106666112dc565b005b34801561067457600080fd5b5061068f600480360381019061068a9190613461565b6113b5565b005b34801561069d57600080fd5b506106b860048036038101906106b391906134c1565b6114ef565b6040516106c59190613079565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f091906131ce565b611576565b005b34801561070357600080fd5b5061071e600480360381019061071991906134c1565b611615565b005b34801561072c57600080fd5b50610747600480360381019061074291906131a1565b611736565b005b60606040518060400160405280600681526020017f5869747465720000000000000000000000000000000000000000000000000000815250905090565b600061079a6107936118f7565b84846118ff565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6107e26118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108669061354d565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b6000610899848484611ac8565b61095a846108a56118f7565b6109558560405180606001604052806028815260200161421960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061090b6118f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234b9092919063ffffffff16565b6118ff565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109a26118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a269061354d565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a926118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b169061354d565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7d6118f7565b73ffffffffffffffffffffffffffffffffffffffff161480610bf35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bdb6118f7565b73ffffffffffffffffffffffffffffffffffffffff16145b610bfc57600080fd5b6000479050610c0a816123af565b50565b6000610c57600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241b565b9050919050565b610c666118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061354d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610db96118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d9061354d565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600281526020017f5854000000000000000000000000000000000000000000000000000000000000815250905090565b610ee26118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f669061354d565b60405180910390fd5b8060188190555050565b610f816118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110059061354d565b60405180910390fd5b60005b825181101561109e5781601060008584815181106110325761103161356d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611096906135cb565b915050611011565b505050565b6110ab6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112f9061354d565b60405180910390fd5b6000841015801561114a575060048411155b611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613685565b60405180910390fd5b6000821015801561119b575060628211155b6111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190613717565b60405180910390fd5b600083101580156111ec575060048311155b61122b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611222906137a9565b60405180910390fd5b6000811015801561123d575060628111155b61127c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112739061383b565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112b26112ab6118f7565b8484611ac8565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661131d6118f7565b73ffffffffffffffffffffffffffffffffffffffff1614806113935750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137b6118f7565b73ffffffffffffffffffffffffffffffffffffffff16145b61139c57600080fd5b60006113a730610c0d565b90506113b281612489565b50565b6113bd6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114419061354d565b60405180910390fd5b60005b838390508110156114e95781600560008686858181106114705761146f61356d565b5b905060200201602081019061148591906131a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114e1906135cb565b91505061144d565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61157e6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116029061354d565b60405180910390fd5b8060178190555050565b61161d6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a19061354d565b60405180910390fd5b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600081905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61173e6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29061354d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906138cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361196e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119659061395f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d4906139f1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611abb9190613079565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e90613a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90613b15565b60405180910390fd5b60008111611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613ba7565b60405180910390fd5b611bf1610e6e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c5f5750611c2f610e6e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204a57601560149054906101000a900460ff16611cee57611c80610e6e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce490613c39565b60405180910390fd5b5b601654811115611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613ca5565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dd75750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613d37565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ec35760175481611e7884610c0d565b611e829190613d57565b10611ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb990613dfd565b60405180910390fd5b5b6000611ece30610c0d565b9050600060185482101590506018548210611ee95760185491505b808015611f01575060158054906101000a900460ff16155b8015611f5b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f735750601560169054906101000a900460ff165b8015611fc95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561201f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120475761202d82612489565b6000479050600081111561204557612044476123af565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120f15750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121a45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121a35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121b25760009050612339565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561225d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561227557600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123205750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561233857600a54600c81905550600b54600d819055505b5b61234584848484612700565b50505050565b6000838311158290612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a9190612eb0565b60405180910390fd5b50600083856123a29190613e1d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612417573d6000803e3d6000fd5b5050565b6000600654821115612462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245990613ec3565b60405180910390fd5b600061246c61272d565b9050612481818461275890919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124c0576124bf613200565b5b6040519080825280602002602001820160405280156124ee5781602001602082028036833780820191505090505b50905030816000815181106125065761250561356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d19190613ef8565b816001815181106125e5576125e461356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061264c30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118ff565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126b095949392919061401e565b600060405180830381600087803b1580156126ca57600080fd5b505af11580156126de573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061270e5761270d6127a2565b5b6127198484846127df565b80612727576127266129aa565b5b50505050565b600080600061273a6129be565b91509150612751818361275890919063ffffffff16565b9250505090565b600061279a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1d565b905092915050565b6000600c541480156127b657506000600d54145b6127dd57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127f187612a80565b95509550955095509550955061284f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061293081612b90565b61293a8483612c4d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129979190613079565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506129f2670de0b6b3a764000060065461275890919063ffffffff16565b821015612a1057600654670de0b6b3a7640000935093505050612a19565b81819350935050505b9091565b60008083118290612a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5b9190612eb0565b60405180910390fd5b5060008385612a7391906140a7565b9050809150509392505050565b6000806000806000806000806000612a9d8a600c54600d54612c87565b9250925092506000612aad61272d565b90506000806000612ac08e878787612d1d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061234b565b905092915050565b6000808284612b419190613d57565b905083811015612b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7d90614124565b60405180910390fd5b8091505092915050565b6000612b9a61272d565b90506000612bb18284612da690919063ffffffff16565b9050612c0581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c6282600654612ae890919063ffffffff16565b600681905550612c7d81600754612b3290919063ffffffff16565b6007819055505050565b600080600080612cb36064612ca5888a612da690919063ffffffff16565b61275890919063ffffffff16565b90506000612cdd6064612ccf888b612da690919063ffffffff16565b61275890919063ffffffff16565b90506000612d0682612cf8858c612ae890919063ffffffff16565b612ae890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d368589612da690919063ffffffff16565b90506000612d4d8689612da690919063ffffffff16565b90506000612d648789612da690919063ffffffff16565b90506000612d8d82612d7f8587612ae890919063ffffffff16565b612ae890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612db85760009050612e1a565b60008284612dc69190614144565b9050828482612dd591906140a7565b14612e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0c906141f8565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e5a578082015181840152602081019050612e3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e8282612e20565b612e8c8185612e2b565b9350612e9c818560208601612e3c565b612ea581612e66565b840191505092915050565b60006020820190508181036000830152612eca8184612e77565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f1182612ee6565b9050919050565b612f2181612f06565b8114612f2c57600080fd5b50565b600081359050612f3e81612f18565b92915050565b6000819050919050565b612f5781612f44565b8114612f6257600080fd5b50565b600081359050612f7481612f4e565b92915050565b60008060408385031215612f9157612f90612edc565b5b6000612f9f85828601612f2f565b9250506020612fb085828601612f65565b9150509250929050565b60008115159050919050565b612fcf81612fba565b82525050565b6000602082019050612fea6000830184612fc6565b92915050565b6000819050919050565b600061301561301061300b84612ee6565b612ff0565b612ee6565b9050919050565b600061302782612ffa565b9050919050565b60006130398261301c565b9050919050565b6130498161302e565b82525050565b60006020820190506130646000830184613040565b92915050565b61307381612f44565b82525050565b600060208201905061308e600083018461306a565b92915050565b61309d81612fba565b81146130a857600080fd5b50565b6000813590506130ba81613094565b92915050565b6000602082840312156130d6576130d5612edc565b5b60006130e4848285016130ab565b91505092915050565b60008060006060848603121561310657613105612edc565b5b600061311486828701612f2f565b935050602061312586828701612f2f565b925050604061313686828701612f65565b9150509250925092565b600060ff82169050919050565b61315681613140565b82525050565b6000602082019050613171600083018461314d565b92915050565b61318081612f06565b82525050565b600060208201905061319b6000830184613177565b92915050565b6000602082840312156131b7576131b6612edc565b5b60006131c584828501612f2f565b91505092915050565b6000602082840312156131e4576131e3612edc565b5b60006131f284828501612f65565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61323882612e66565b810181811067ffffffffffffffff8211171561325757613256613200565b5b80604052505050565b600061326a612ed2565b9050613276828261322f565b919050565b600067ffffffffffffffff82111561329657613295613200565b5b602082029050602081019050919050565b600080fd5b60006132bf6132ba8461327b565b613260565b905080838252602082019050602084028301858111156132e2576132e16132a7565b5b835b8181101561330b57806132f78882612f2f565b8452602084019350506020810190506132e4565b5050509392505050565b600082601f83011261332a576133296131fb565b5b813561333a8482602086016132ac565b91505092915050565b6000806040838503121561335a57613359612edc565b5b600083013567ffffffffffffffff81111561337857613377612ee1565b5b61338485828601613315565b9250506020613395858286016130ab565b9150509250929050565b600080600080608085870312156133b9576133b8612edc565b5b60006133c787828801612f65565b94505060206133d887828801612f65565b93505060406133e987828801612f65565b92505060606133fa87828801612f65565b91505092959194509250565b600080fd5b60008083601f840112613421576134206131fb565b5b8235905067ffffffffffffffff81111561343e5761343d613406565b5b60208301915083602082028301111561345a576134596132a7565b5b9250929050565b60008060006040848603121561347a57613479612edc565b5b600084013567ffffffffffffffff81111561349857613497612ee1565b5b6134a48682870161340b565b935093505060206134b7868287016130ab565b9150509250925092565b600080604083850312156134d8576134d7612edc565b5b60006134e685828601612f2f565b92505060206134f785828601612f2f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613537602083612e2b565b915061354282613501565b602082019050919050565b600060208201905081810360008301526135668161352a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135d682612f44565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136085761360761359c565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b600061366f602583612e2b565b915061367a82613613565b604082019050919050565b6000602082019050818103600083015261369e81613662565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b6000613701602283612e2b565b915061370c826136a5565b604082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000613793602683612e2b565b915061379e82613737565b604082019050919050565b600060208201905081810360008301526137c281613786565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b6000613825602383612e2b565b9150613830826137c9565b604082019050919050565b6000602082019050818103600083015261385481613818565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b7602683612e2b565b91506138c28261385b565b604082019050919050565b600060208201905081810360008301526138e6816138aa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613949602483612e2b565b9150613954826138ed565b604082019050919050565b600060208201905081810360008301526139788161393c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139db602283612e2b565b91506139e68261397f565b604082019050919050565b60006020820190508181036000830152613a0a816139ce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a6d602583612e2b565b9150613a7882613a11565b604082019050919050565b60006020820190508181036000830152613a9c81613a60565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613aff602383612e2b565b9150613b0a82613aa3565b604082019050919050565b60006020820190508181036000830152613b2e81613af2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b91602983612e2b565b9150613b9c82613b35565b604082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613c23603f83612e2b565b9150613c2e82613bc7565b604082019050919050565b60006020820190508181036000830152613c5281613c16565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c8f601c83612e2b565b9150613c9a82613c59565b602082019050919050565b60006020820190508181036000830152613cbe81613c82565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d21602383612e2b565b9150613d2c82613cc5565b604082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b6000613d6282612f44565b9150613d6d83612f44565b9250828201905080821115613d8557613d8461359c565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613de7602383612e2b565b9150613df282613d8b565b604082019050919050565b60006020820190508181036000830152613e1681613dda565b9050919050565b6000613e2882612f44565b9150613e3383612f44565b9250828203905081811115613e4b57613e4a61359c565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ead602a83612e2b565b9150613eb882613e51565b604082019050919050565b60006020820190508181036000830152613edc81613ea0565b9050919050565b600081519050613ef281612f18565b92915050565b600060208284031215613f0e57613f0d612edc565b5b6000613f1c84828501613ee3565b91505092915050565b6000819050919050565b6000613f4a613f45613f4084613f25565b612ff0565b612f44565b9050919050565b613f5a81613f2f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9581612f06565b82525050565b6000613fa78383613f8c565b60208301905092915050565b6000602082019050919050565b6000613fcb82613f60565b613fd58185613f6b565b9350613fe083613f7c565b8060005b83811015614011578151613ff88882613f9b565b975061400383613fb3565b925050600181019050613fe4565b5085935050505092915050565b600060a082019050614033600083018861306a565b6140406020830187613f51565b81810360408301526140528186613fc0565b90506140616060830185613177565b61406e608083018461306a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140b282612f44565b91506140bd83612f44565b9250826140cd576140cc614078565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061410e601b83612e2b565b9150614119826140d8565b602082019050919050565b6000602082019050818103600083015261413d81614101565b9050919050565b600061414f82612f44565b915061415a83612f44565b925082820261416881612f44565b9150828204841483151761417f5761417e61359c565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141e2602183612e2b565b91506141ed82614186565b604082019050919050565b60006020820190508181036000830152614211816141d5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1ed5dbf0c4c5c460062ed5c4a4702e460d79dcbb875f17825dcc6744bfa08cb64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c80637d1db4a511610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610691578063ea1644d5146106ce578063f129da24146106f7578063f2fde38b14610720576101e3565b8063a9059cbb146105d7578063bfd7928414610614578063c3c8cd8014610651578063c492f04614610668576101e3565b806395d89b41116100d157806395d89b411461053157806398a5c3151461055c578063a0916b8214610585578063a2a957bb146105ae576101e3565b80637d1db4a5146104735780637f2feddc1461049e5780638da5cb5b146104db5780638f9a55c014610506576101e3565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103df57806370a08231146103f6578063715018a61461043357806374010ece1461044a576101e3565b8063313ce5671461033757806349bd5a5e146103625780635fecd9261461038d5780636d8aa8f8146103b6576101e3565b806318160ddd116101b657806318160ddd1461027b5780631a87f61a146102a657806323b872dd146102cf5780632fd689e31461030c576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610749565b60405161020a9190612eb0565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612f7a565b610786565b6040516102479190612fd5565b60405180910390f35b34801561025c57600080fd5b506102656107a4565b604051610272919061304f565b60405180910390f35b34801561028757600080fd5b506102906107ca565b60405161029d9190613079565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906130c0565b6107da565b005b3480156102db57600080fd5b506102f660048036038101906102f191906130ed565b61088c565b6040516103039190612fd5565b60405180910390f35b34801561031857600080fd5b50610321610965565b60405161032e9190613079565b60405180910390f35b34801561034357600080fd5b5061034c61096b565b604051610359919061315c565b60405180910390f35b34801561036e57600080fd5b50610377610974565b6040516103849190613186565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906131a1565b61099a565b005b3480156103c257600080fd5b506103dd60048036038101906103d891906130c0565b610a8a565b005b3480156103eb57600080fd5b506103f4610b3c565b005b34801561040257600080fd5b5061041d600480360381019061041891906131a1565b610c0d565b60405161042a9190613079565b60405180910390f35b34801561043f57600080fd5b50610448610c5e565b005b34801561045657600080fd5b50610471600480360381019061046c91906131ce565b610db1565b005b34801561047f57600080fd5b50610488610e50565b6040516104959190613079565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c091906131a1565b610e56565b6040516104d29190613079565b60405180910390f35b3480156104e757600080fd5b506104f0610e6e565b6040516104fd9190613186565b60405180910390f35b34801561051257600080fd5b5061051b610e97565b6040516105289190613079565b60405180910390f35b34801561053d57600080fd5b50610546610e9d565b6040516105539190612eb0565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e91906131ce565b610eda565b005b34801561059157600080fd5b506105ac60048036038101906105a79190613343565b610f79565b005b3480156105ba57600080fd5b506105d560048036038101906105d0919061339f565b6110a3565b005b3480156105e357600080fd5b506105fe60048036038101906105f99190612f7a565b61129e565b60405161060b9190612fd5565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906131a1565b6112bc565b6040516106489190612fd5565b60405180910390f35b34801561065d57600080fd5b506106666112dc565b005b34801561067457600080fd5b5061068f600480360381019061068a9190613461565b6113b5565b005b34801561069d57600080fd5b506106b860048036038101906106b391906134c1565b6114ef565b6040516106c59190613079565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f091906131ce565b611576565b005b34801561070357600080fd5b5061071e600480360381019061071991906134c1565b611615565b005b34801561072c57600080fd5b50610747600480360381019061074291906131a1565b611736565b005b60606040518060400160405280600681526020017f5869747465720000000000000000000000000000000000000000000000000000815250905090565b600061079a6107936118f7565b84846118ff565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6107e26118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108669061354d565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b6000610899848484611ac8565b61095a846108a56118f7565b6109558560405180606001604052806028815260200161421960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061090b6118f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234b9092919063ffffffff16565b6118ff565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109a26118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a269061354d565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a926118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b169061354d565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7d6118f7565b73ffffffffffffffffffffffffffffffffffffffff161480610bf35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bdb6118f7565b73ffffffffffffffffffffffffffffffffffffffff16145b610bfc57600080fd5b6000479050610c0a816123af565b50565b6000610c57600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241b565b9050919050565b610c666118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061354d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610db96118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d9061354d565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600281526020017f5854000000000000000000000000000000000000000000000000000000000000815250905090565b610ee26118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f669061354d565b60405180910390fd5b8060188190555050565b610f816118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110059061354d565b60405180910390fd5b60005b825181101561109e5781601060008584815181106110325761103161356d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611096906135cb565b915050611011565b505050565b6110ab6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112f9061354d565b60405180910390fd5b6000841015801561114a575060048411155b611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613685565b60405180910390fd5b6000821015801561119b575060628211155b6111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190613717565b60405180910390fd5b600083101580156111ec575060048311155b61122b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611222906137a9565b60405180910390fd5b6000811015801561123d575060628111155b61127c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112739061383b565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112b26112ab6118f7565b8484611ac8565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661131d6118f7565b73ffffffffffffffffffffffffffffffffffffffff1614806113935750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137b6118f7565b73ffffffffffffffffffffffffffffffffffffffff16145b61139c57600080fd5b60006113a730610c0d565b90506113b281612489565b50565b6113bd6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114419061354d565b60405180910390fd5b60005b838390508110156114e95781600560008686858181106114705761146f61356d565b5b905060200201602081019061148591906131a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114e1906135cb565b91505061144d565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61157e6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116029061354d565b60405180910390fd5b8060178190555050565b61161d6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a19061354d565b60405180910390fd5b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600081905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61173e6118f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29061354d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906138cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361196e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119659061395f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d4906139f1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611abb9190613079565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e90613a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90613b15565b60405180910390fd5b60008111611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613ba7565b60405180910390fd5b611bf1610e6e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c5f5750611c2f610e6e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204a57601560149054906101000a900460ff16611cee57611c80610e6e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce490613c39565b60405180910390fd5b5b601654811115611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613ca5565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dd75750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613d37565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ec35760175481611e7884610c0d565b611e829190613d57565b10611ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb990613dfd565b60405180910390fd5b5b6000611ece30610c0d565b9050600060185482101590506018548210611ee95760185491505b808015611f01575060158054906101000a900460ff16155b8015611f5b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f735750601560169054906101000a900460ff165b8015611fc95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561201f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120475761202d82612489565b6000479050600081111561204557612044476123af565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120f15750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121a45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121a35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121b25760009050612339565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561225d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561227557600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123205750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561233857600a54600c81905550600b54600d819055505b5b61234584848484612700565b50505050565b6000838311158290612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a9190612eb0565b60405180910390fd5b50600083856123a29190613e1d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612417573d6000803e3d6000fd5b5050565b6000600654821115612462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245990613ec3565b60405180910390fd5b600061246c61272d565b9050612481818461275890919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124c0576124bf613200565b5b6040519080825280602002602001820160405280156124ee5781602001602082028036833780820191505090505b50905030816000815181106125065761250561356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d19190613ef8565b816001815181106125e5576125e461356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061264c30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118ff565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126b095949392919061401e565b600060405180830381600087803b1580156126ca57600080fd5b505af11580156126de573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061270e5761270d6127a2565b5b6127198484846127df565b80612727576127266129aa565b5b50505050565b600080600061273a6129be565b91509150612751818361275890919063ffffffff16565b9250505090565b600061279a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1d565b905092915050565b6000600c541480156127b657506000600d54145b6127dd57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127f187612a80565b95509550955095509550955061284f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061293081612b90565b61293a8483612c4d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129979190613079565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506129f2670de0b6b3a764000060065461275890919063ffffffff16565b821015612a1057600654670de0b6b3a7640000935093505050612a19565b81819350935050505b9091565b60008083118290612a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5b9190612eb0565b60405180910390fd5b5060008385612a7391906140a7565b9050809150509392505050565b6000806000806000806000806000612a9d8a600c54600d54612c87565b9250925092506000612aad61272d565b90506000806000612ac08e878787612d1d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061234b565b905092915050565b6000808284612b419190613d57565b905083811015612b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7d90614124565b60405180910390fd5b8091505092915050565b6000612b9a61272d565b90506000612bb18284612da690919063ffffffff16565b9050612c0581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c6282600654612ae890919063ffffffff16565b600681905550612c7d81600754612b3290919063ffffffff16565b6007819055505050565b600080600080612cb36064612ca5888a612da690919063ffffffff16565b61275890919063ffffffff16565b90506000612cdd6064612ccf888b612da690919063ffffffff16565b61275890919063ffffffff16565b90506000612d0682612cf8858c612ae890919063ffffffff16565b612ae890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d368589612da690919063ffffffff16565b90506000612d4d8689612da690919063ffffffff16565b90506000612d648789612da690919063ffffffff16565b90506000612d8d82612d7f8587612ae890919063ffffffff16565b612ae890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612db85760009050612e1a565b60008284612dc69190614144565b9050828482612dd591906140a7565b14612e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0c906141f8565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e5a578082015181840152602081019050612e3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e8282612e20565b612e8c8185612e2b565b9350612e9c818560208601612e3c565b612ea581612e66565b840191505092915050565b60006020820190508181036000830152612eca8184612e77565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f1182612ee6565b9050919050565b612f2181612f06565b8114612f2c57600080fd5b50565b600081359050612f3e81612f18565b92915050565b6000819050919050565b612f5781612f44565b8114612f6257600080fd5b50565b600081359050612f7481612f4e565b92915050565b60008060408385031215612f9157612f90612edc565b5b6000612f9f85828601612f2f565b9250506020612fb085828601612f65565b9150509250929050565b60008115159050919050565b612fcf81612fba565b82525050565b6000602082019050612fea6000830184612fc6565b92915050565b6000819050919050565b600061301561301061300b84612ee6565b612ff0565b612ee6565b9050919050565b600061302782612ffa565b9050919050565b60006130398261301c565b9050919050565b6130498161302e565b82525050565b60006020820190506130646000830184613040565b92915050565b61307381612f44565b82525050565b600060208201905061308e600083018461306a565b92915050565b61309d81612fba565b81146130a857600080fd5b50565b6000813590506130ba81613094565b92915050565b6000602082840312156130d6576130d5612edc565b5b60006130e4848285016130ab565b91505092915050565b60008060006060848603121561310657613105612edc565b5b600061311486828701612f2f565b935050602061312586828701612f2f565b925050604061313686828701612f65565b9150509250925092565b600060ff82169050919050565b61315681613140565b82525050565b6000602082019050613171600083018461314d565b92915050565b61318081612f06565b82525050565b600060208201905061319b6000830184613177565b92915050565b6000602082840312156131b7576131b6612edc565b5b60006131c584828501612f2f565b91505092915050565b6000602082840312156131e4576131e3612edc565b5b60006131f284828501612f65565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61323882612e66565b810181811067ffffffffffffffff8211171561325757613256613200565b5b80604052505050565b600061326a612ed2565b9050613276828261322f565b919050565b600067ffffffffffffffff82111561329657613295613200565b5b602082029050602081019050919050565b600080fd5b60006132bf6132ba8461327b565b613260565b905080838252602082019050602084028301858111156132e2576132e16132a7565b5b835b8181101561330b57806132f78882612f2f565b8452602084019350506020810190506132e4565b5050509392505050565b600082601f83011261332a576133296131fb565b5b813561333a8482602086016132ac565b91505092915050565b6000806040838503121561335a57613359612edc565b5b600083013567ffffffffffffffff81111561337857613377612ee1565b5b61338485828601613315565b9250506020613395858286016130ab565b9150509250929050565b600080600080608085870312156133b9576133b8612edc565b5b60006133c787828801612f65565b94505060206133d887828801612f65565b93505060406133e987828801612f65565b92505060606133fa87828801612f65565b91505092959194509250565b600080fd5b60008083601f840112613421576134206131fb565b5b8235905067ffffffffffffffff81111561343e5761343d613406565b5b60208301915083602082028301111561345a576134596132a7565b5b9250929050565b60008060006040848603121561347a57613479612edc565b5b600084013567ffffffffffffffff81111561349857613497612ee1565b5b6134a48682870161340b565b935093505060206134b7868287016130ab565b9150509250925092565b600080604083850312156134d8576134d7612edc565b5b60006134e685828601612f2f565b92505060206134f785828601612f2f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613537602083612e2b565b915061354282613501565b602082019050919050565b600060208201905081810360008301526135668161352a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135d682612f44565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136085761360761359c565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b600061366f602583612e2b565b915061367a82613613565b604082019050919050565b6000602082019050818103600083015261369e81613662565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b6000613701602283612e2b565b915061370c826136a5565b604082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000613793602683612e2b565b915061379e82613737565b604082019050919050565b600060208201905081810360008301526137c281613786565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b6000613825602383612e2b565b9150613830826137c9565b604082019050919050565b6000602082019050818103600083015261385481613818565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b7602683612e2b565b91506138c28261385b565b604082019050919050565b600060208201905081810360008301526138e6816138aa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613949602483612e2b565b9150613954826138ed565b604082019050919050565b600060208201905081810360008301526139788161393c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139db602283612e2b565b91506139e68261397f565b604082019050919050565b60006020820190508181036000830152613a0a816139ce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a6d602583612e2b565b9150613a7882613a11565b604082019050919050565b60006020820190508181036000830152613a9c81613a60565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613aff602383612e2b565b9150613b0a82613aa3565b604082019050919050565b60006020820190508181036000830152613b2e81613af2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b91602983612e2b565b9150613b9c82613b35565b604082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613c23603f83612e2b565b9150613c2e82613bc7565b604082019050919050565b60006020820190508181036000830152613c5281613c16565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c8f601c83612e2b565b9150613c9a82613c59565b602082019050919050565b60006020820190508181036000830152613cbe81613c82565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d21602383612e2b565b9150613d2c82613cc5565b604082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b6000613d6282612f44565b9150613d6d83612f44565b9250828201905080821115613d8557613d8461359c565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613de7602383612e2b565b9150613df282613d8b565b604082019050919050565b60006020820190508181036000830152613e1681613dda565b9050919050565b6000613e2882612f44565b9150613e3383612f44565b9250828203905081811115613e4b57613e4a61359c565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ead602a83612e2b565b9150613eb882613e51565b604082019050919050565b60006020820190508181036000830152613edc81613ea0565b9050919050565b600081519050613ef281612f18565b92915050565b600060208284031215613f0e57613f0d612edc565b5b6000613f1c84828501613ee3565b91505092915050565b6000819050919050565b6000613f4a613f45613f4084613f25565b612ff0565b612f44565b9050919050565b613f5a81613f2f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9581612f06565b82525050565b6000613fa78383613f8c565b60208301905092915050565b6000602082019050919050565b6000613fcb82613f60565b613fd58185613f6b565b9350613fe083613f7c565b8060005b83811015614011578151613ff88882613f9b565b975061400383613fb3565b925050600181019050613fe4565b5085935050505092915050565b600060a082019050614033600083018861306a565b6140406020830187613f51565b81810360408301526140528186613fc0565b90506140616060830185613177565b61406e608083018461306a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140b282612f44565b91506140bd83612f44565b9250826140cd576140cc614078565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061410e601b83612e2b565b9150614119826140d8565b602082019050919050565b6000602082019050818103600083015261413d81614101565b9050919050565b600061414f82612f44565b915061415a83612f44565b925082820261416881612f44565b9150828204841483151761417f5761417e61359c565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141e2602183612e2b565b91506141ed82614186565b604082019050919050565b60006020820190508181036000830152614211816141d5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1ed5dbf0c4c5c460062ed5c4a4702e460d79dcbb875f17825dcc6744bfa08cb64736f6c63430008120033
Deployed Bytecode Sourcemap
4136:13822:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6343:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7275:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5479:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6623:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11967:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7477:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5781:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6531:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5527:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13013:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17365:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12577:235;;;;;;;;;;;;;:::i;:::-;;6727:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1648:148;;;;;;;;;;;;;:::i;:::-;;17472:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5671:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5218:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1438:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5725:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6435:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17220:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12821:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16521:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6874:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5180:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12332:236;;;;;;;;;;;;;:::i;:::-;;17721:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7082:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17600:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12070:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1805:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6343:83;6380:13;6413:5;;;;;;;;;;;;;;;;;6406:12;;6343:83;:::o;7275:193::-;7377:4;7399:39;7408:12;:10;:12::i;:::-;7422:7;7431:6;7399:8;:39::i;:::-;7456:4;7449:11;;7275:193;;;;:::o;5479:41::-;;;;;;;;;;;;;:::o;6623:95::-;6676:7;4675:18;6696:14;;6623:95;:::o;11967:97::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12044:12:::1;12030:11;;:26;;;;;;;;;;;;;;;;;;11967:97:::0;:::o;7477:446::-;7609:4;7626:36;7636:6;7644:9;7655:6;7626:9;:36::i;:::-;7673:220;7696:6;7717:12;:10;:12::i;:::-;7744:138;7800:6;7744:138;;;;;;;;;;;;;;;;;:11;:19;7756:6;7744:19;;;;;;;;;;;;;;;:33;7764:12;:10;:12::i;:::-;7744:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7673:8;:220::i;:::-;7911:4;7904:11;;7477:446;;;;;:::o;5781:52::-;;;;:::o;6531:83::-;6572:5;4351:1;6590:16;;6531:83;:::o;5527:28::-;;;;;;;;;;;;;:::o;13013:91::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13091:5:::1;13076:4;:12;13081:6;13076:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13013:91:::0;:::o;17365:101::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17446:12:::1;17432:11;;:26;;;;;;;;;;;;;;;;;;17365:101:::0;:::o;12577:235::-;12643:19;;;;;;;;;;;12627:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12682:17;;;;;;;;;;;12666:33;;:12;:10;:12::i;:::-;:33;;;12627:72;12619:81;;;;;;12711:26;12740:21;12711:50;;12772:32;12785:18;12772:12;:32::i;:::-;12608:204;12577:235::o;6727:138::-;6793:7;6820:37;6840:7;:16;6848:7;6840:16;;;;;;;;;;;;;;;;6820:19;:37::i;:::-;6813:44;;6727:138;;;:::o;1648:148::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1755:1:::1;1718:40;;1739:6;::::0;::::1;;;;;;;;1718:40;;;;;;;;;;;;1786:1;1769:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1648:148::o:0;17472:121::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17564:11:::1;17549:12;:26;;;;17472:121:::0;:::o;5671:46::-;;;;:::o;5218:43::-;;;;;;;;;;;;;;;;;:::o;1438:79::-;1476:7;1503:6;;;;;;;;;;;1496:13;;1438:79;:::o;5725:48::-;;;;:::o;6435:87::-;6474:13;6507:7;;;;;;;;;;;;;;;;;6500:14;;6435:87;:::o;17220:139::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17333:18:::1;17311:19;:40;;;;17220:139:::0;:::o;12821:183::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12908:9:::1;12903:94;12927:5;:12;12923:1;:16;12903:94;;;12978:7;12961:4;:14;12966:5;12972:1;12966:8;;;;;;;;:::i;:::-;;;;;;;;12961:14;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12941:3;;;;;:::i;:::-;;;;12903:94;;;;12821:183:::0;;:::o;16521:693::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16680:1:::1;16663:13;:18;;:40;;;;;16702:1;16685:13;:18;;16663:40;16655:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16779:1;16764:11;:16;;:37;;;;;16799:2;16784:11;:17;;16764:37;16756:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;16877:1;16859:14;:19;;:42;;;;;16900:1;16882:14;:19;;16859:42;16851:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;16979:1;16963:12;:17;;:39;;;;;17000:2;16984:12;:18;;16963:39;16955:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17072:13;17055:14;:30;;;;17114:14;17096:15;:32;;;;17154:11;17139:12;:26;;;;17192:12;17176:13;:28;;;;16521:693:::0;;;;:::o;6874:199::-;6979:4;7001:42;7011:12;:10;:12::i;:::-;7025:9;7036:6;7001:9;:42::i;:::-;7061:4;7054:11;;6874:199;;;;:::o;5180:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12332:236::-;12398:19;;;;;;;;;;;12382:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12437:17;;;;;;;;;;;12421:33;;:12;:10;:12::i;:::-;:33;;;12382:72;12374:81;;;;;;12466:23;12492:24;12510:4;12492:9;:24::i;:::-;12466:50;;12527:33;12544:15;12527:16;:33::i;:::-;12363:205;12332:236::o;17721:234::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17838:9:::1;17834:114;17857:8;;:15;;17853:1;:19;17834:114;;;17928:8;17894:18;:31;17913:8;;17922:1;17913:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17894:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17874:3;;;;;:::i;:::-;;;;17834:114;;;;17721:234:::0;;;:::o;7082:184::-;7199:7;7231:11;:18;7243:5;7231:18;;;;;;;;;;;;;;;:27;7250:7;7231:27;;;;;;;;;;;;;;;;7224:34;;7082:184;;;;:::o;17600:115::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17694:13:::1;17677:14;:30;;;;17600:115:::0;:::o;12070:256::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12185:12:::1;12169:13;;:28;;;;;;;;;;;;;;;;;;12208:35;12265:7;12208:65;;12302:16;12284:15;;:34;;;;;;;;;;;;;;;;;;12158:168;12070:256:::0;;:::o;1805:244::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1914:1:::1;1894:22;;:8;:22;;::::0;1886:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2004:8;1975:38;;1996:6;::::0;::::1;;;;;;;;1975:38;;;;;;;;;;;;2033:8;2024:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1805:244:::0;:::o;217:98::-;270:7;297:10;290:17;;217:98;:::o;8620:369::-;8764:1;8747:19;;:5;:19;;;8739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8845:1;8826:21;;:7;:21;;;8818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8927:6;8897:11;:18;8909:5;8897:18;;;;;;;;;;;;;;;:27;8916:7;8897:27;;;;;;;;;;;;;;;:36;;;;8965:7;8949:32;;8958:5;8949:32;;;8974:6;8949:32;;;;;;:::i;:::-;;;;;;;;8620:369;;;:::o;8998:2357::-;9136:1;9120:18;;:4;:18;;;9112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9213:1;9199:16;;:2;:16;;;9191:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9283:1;9274:6;:10;9266:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9356:7;:5;:7::i;:::-;9348:15;;:4;:15;;;;:32;;;;;9373:7;:5;:7::i;:::-;9367:13;;:2;:13;;;;9348:32;9344:1279;;;9438:11;;;;;;;;;;;9433:144;;9486:7;:5;:7::i;:::-;9478:15;;:4;:15;;;9470:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9433:144;9612:12;;9602:6;:22;;9594:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9681:4;:10;9686:4;9681:10;;;;;;;;;;;;;;;;;;;;;;;;;9680:11;:24;;;;;9696:4;:8;9701:2;9696:8;;;;;;;;;;;;;;;;;;;;;;;;;9695:9;9680:24;9672:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9771:13;;;;;;;;;;;9765:19;;:2;:19;;;9762:146;;9838:14;;9829:6;9813:13;9823:2;9813:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9805:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9762:146;9925:28;9956:24;9974:4;9956:9;:24::i;:::-;9925:55;;9995:12;10034:19;;10010:20;:43;;9995:58;;10098:19;;10074:20;:43;10071:138;;10174:19;;10151:42;;10071:138;10230:7;:18;;;;;10242:6;;;;;;;;;;10241:7;10230:18;:43;;;;;10260:13;;;;;;;;;;;10252:21;;:4;:21;;;;10230:43;:58;;;;;10277:11;;;;;;;;;;;10230:58;:87;;;;;10293:18;:24;10312:4;10293:24;;;;;;;;;;;;;;;;;;;;;;;;;10292:25;10230:87;:114;;;;;10322:18;:22;10341:2;10322:22;;;;;;;;;;;;;;;;;;;;;;;;;10321:23;10230:114;10226:386;;;10365:38;10382:20;10365:16;:38::i;:::-;10422:26;10451:21;10422:50;;10516:1;10495:18;:22;10491:106;;;10542:35;10555:21;10542:12;:35::i;:::-;10491:106;10346:266;10226:386;9382:1241;;9344:1279;10636:12;10651:4;10636:19;;10701:18;:24;10720:4;10701:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10729:18;:22;10748:2;10729:22;;;;;;;;;;;;;;;;;;;;;;;;;10701:50;10700:102;;;;10765:13;;;;;;;;;;;10757:21;;:4;:21;;;;:44;;;;;10788:13;;;;;;;;;;;10782:19;;:2;:19;;;;10757:44;10700:102;10696:597;;;10829:5;10819:15;;10696:597;;;10913:13;;;;;;;;;;;10905:21;;:4;:21;;;:55;;;;;10944:15;;;;;;;;;;;10930:30;;:2;:30;;;;10905:55;10902:162;;;10993:14;;10981:9;:26;;;;11036:12;;11026:7;:22;;;;10902:162;11124:13;;;;;;;;;;;11118:19;;:2;:19;;;:55;;;;;11157:15;;;;;;;;;;;11141:32;;:4;:32;;;;11118:55;11114:165;;;11206:15;;11194:9;:27;;;;11250:13;;11240:7;:23;;;;11114:165;10696:597;11306:41;11321:4;11327:2;11331:6;11339:7;11306:14;:41::i;:::-;9101:2254;8998:2357;;;:::o;2405:224::-;2525:7;2558:1;2553;:6;;2561:12;2545:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2585:9;2601:1;2597;:5;;;;:::i;:::-;2585:17;;2620:1;2613:8;;;2405:224;;;;;:::o;11856:99::-;11913:17;;;;;;;;;;;:26;;:34;11940:6;11913:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11856:99;:::o;7932:323::-;8027:7;8085;;8074;:18;;8052:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8173:19;8195:10;:8;:10::i;:::-;8173:32;;8223:24;8235:11;8223:7;:11;;:24;;;;:::i;:::-;8216:31;;;7932:323;;;:::o;11364:483::-;5937:4;5928:6;;:13;;;;;;;;;;;;;;;;;;11442:21:::1;11480:1;11466:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11442:40;;11511:4;11493;11498:1;11493:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11537:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11527:4;11532:1;11527:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11570:62;11587:4;11602:15;;;;;;;;;;;11620:11;11570:8;:62::i;:::-;11643:15;;;;;;;;;;;:66;;;11724:11;11750:1;11766:4;11793;11813:15;11643:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11431:416;5973:5:::0;5964:6;;:14;;;;;;;;;;;;;;;;;;11364:483;:::o;13113:282::-;13269:7;13264:28;;13278:14;:12;:14::i;:::-;13264:28;13303:44;13321:6;13329:9;13340:6;13303:17;:44::i;:::-;13363:7;13358:29;;13372:15;:13;:15::i;:::-;13358:29;13113:282;;;;:::o;16082:164::-;16124:7;16145:15;16162;16181:19;:17;:19::i;:::-;16144:56;;;;16218:20;16230:7;16218;:11;;:20;;;;:::i;:::-;16211:27;;;;16082:164;:::o;2887:132::-;2945:7;2972:39;2976:1;2979;2972:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2965:46;;2887:132;;;;:::o;8264:221::-;8324:1;8311:9;;:14;:30;;;;;8340:1;8329:7;;:12;8311:30;8343:7;8307:43;8383:9;;8363:17;:29;;;;8421:7;;8403:15;:25;;;;8454:1;8442:9;:13;;;;8476:1;8466:7;:11;;;;8264:221;:::o;13404:610::-;13551:15;13581:23;13619:12;13646:23;13684:12;13711:13;13738:19;13749:7;13738:10;:19::i;:::-;13536:221;;;;;;;;;;;;13786:28;13806:7;13786;:15;13794:6;13786:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13768:7;:15;13776:6;13768:15;;;;;;;;;;;;;;;:46;;;;13846:39;13869:15;13846:7;:18;13854:9;13846:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13825:7;:18;13833:9;13825:18;;;;;;;;;;;;;;;:60;;;;13896:16;13906:5;13896:9;:16::i;:::-;13923:23;13935:4;13941;13923:11;:23::i;:::-;13979:9;13962:44;;13971:6;13962:44;;;13990:15;13962:44;;;;;;:::i;:::-;;;;;;;;13525:489;;;;;;13404:610;;;:::o;8494:117::-;8550:17;;8538:9;:29;;;;8588:15;;8578:7;:25;;;;8494:117::o;16255:257::-;16306:7;16315;16335:15;16353:7;;16335:25;;16371:15;4675:18;16371:25;;16421:20;4675:18;16421:7;;:11;;:20;;;;:::i;:::-;16411:7;:30;16407:61;;;16451:7;;4675:18;16443:25;;;;;;;;16407:61;16487:7;16496;16479:25;;;;;;16255:257;;;:::o;3025:223::-;3145:7;3177:1;3173;:5;3180:12;3165:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3204:9;3220:1;3216;:5;;;;:::i;:::-;3204:17;;3239:1;3232:8;;;3025:223;;;;;:::o;14437:615::-;14537:7;14559;14581;14603;14625;14647;14683:23;14708:12;14722:13;14752:40;14764:7;14773:9;;14784:7;;14752:11;:40::i;:::-;14682:110;;;;;;14803:19;14825:10;:8;:10::i;:::-;14803:32;;14847:15;14864:23;14889:12;14918:46;14930:7;14939:4;14945:5;14952:11;14918;:46::i;:::-;14846:118;;;;;;14983:7;14992:15;15009:4;15015:15;15032:4;15038:5;14975:69;;;;;;;;;;;;;;;;;;;14437:615;;;;;;;:::o;2263:136::-;2321:7;2348:43;2352:1;2355;2348:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2341:50;;2263:136;;;;:::o;2078:179::-;2136:7;2156:9;2172:1;2168;:5;;;;:::i;:::-;2156:17;;2197:1;2192;:6;;2184:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2248:1;2241:8;;;2078:179;;;;:::o;14023:211::-;14076:19;14098:10;:8;:10::i;:::-;14076:32;;14119:13;14135:22;14145:11;14135:5;:9;;:22;;;;:::i;:::-;14119:38;;14193:33;14220:5;14193:7;:22;14209:4;14193:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14168:7;:22;14184:4;14168:22;;;;;;;;;;;;;;;:58;;;;14065:169;;14023:211;:::o;14243:147::-;14321:17;14333:4;14321:7;;:11;;:17;;;;:::i;:::-;14311:7;:27;;;;14362:20;14377:4;14362:10;;:14;;:20;;;;:::i;:::-;14349:10;:33;;;;14243:147;;:::o;15061:469::-;15230:7;15252;15274;15309:12;15324:30;15350:3;15324:21;15336:8;15324:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15309:45;;15365:13;15381:28;15405:3;15381:19;15393:6;15381:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15365:44;;15420:23;15446:28;15468:5;15446:17;15458:4;15446:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15420:54;;15493:15;15510:4;15516:5;15485:37;;;;;;;;;15061:469;;;;;;;:::o;15539:534::-;15733:7;15755;15777;15812:15;15830:24;15842:11;15830:7;:11;;:24;;;;:::i;:::-;15812:42;;15865:12;15880:21;15889:11;15880:4;:8;;:21;;;;:::i;:::-;15865:36;;15912:13;15928:22;15938:11;15928:5;:9;;:22;;;;:::i;:::-;15912:38;;15961:23;15987:28;16009:5;15987:17;15999:4;15987:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15961:54;;16034:7;16043:15;16060:4;16026:39;;;;;;;;;;15539:534;;;;;;;;:::o;2635:246::-;2693:7;2722:1;2717;:6;2713:47;;2747:1;2740:8;;;;2713:47;2770:9;2786:1;2782;:5;;;;:::i;:::-;2770:17;;2815:1;2810;2806;:5;;;;:::i;:::-;:10;2798:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2872:1;2865:8;;;2635: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:116::-;4841:21;4856:5;4841:21;:::i;:::-;4834:5;4831:32;4821:60;;4877:1;4874;4867:12;4821:60;4771:116;:::o;4893:133::-;4936:5;4974:6;4961:20;4952:29;;4990:30;5014:5;4990:30;:::i;:::-;4893:133;;;;:::o;5032:323::-;5088:6;5137:2;5125:9;5116:7;5112:23;5108:32;5105:119;;;5143:79;;:::i;:::-;5105:119;5263:1;5288:50;5330:7;5321:6;5310:9;5306:22;5288:50;:::i;:::-;5278:60;;5234:114;5032:323;;;;:::o;5361:619::-;5438:6;5446;5454;5503:2;5491:9;5482:7;5478:23;5474:32;5471:119;;;5509:79;;:::i;:::-;5471:119;5629:1;5654:53;5699:7;5690:6;5679:9;5675:22;5654:53;:::i;:::-;5644:63;;5600:117;5756:2;5782:53;5827:7;5818:6;5807:9;5803:22;5782:53;:::i;:::-;5772:63;;5727:118;5884:2;5910:53;5955:7;5946:6;5935:9;5931:22;5910:53;:::i;:::-;5900:63;;5855:118;5361:619;;;;;:::o;5986:86::-;6021:7;6061:4;6054:5;6050:16;6039:27;;5986:86;;;:::o;6078:112::-;6161:22;6177:5;6161:22;:::i;:::-;6156:3;6149:35;6078:112;;:::o;6196:214::-;6285:4;6323:2;6312:9;6308:18;6300:26;;6336:67;6400:1;6389:9;6385:17;6376:6;6336:67;:::i;:::-;6196:214;;;;:::o;6416:118::-;6503:24;6521:5;6503:24;:::i;:::-;6498:3;6491:37;6416:118;;:::o;6540:222::-;6633:4;6671:2;6660:9;6656:18;6648:26;;6684:71;6752:1;6741:9;6737:17;6728:6;6684:71;:::i;:::-;6540:222;;;;:::o;6768:329::-;6827:6;6876:2;6864:9;6855:7;6851:23;6847:32;6844:119;;;6882:79;;:::i;:::-;6844:119;7002:1;7027:53;7072:7;7063:6;7052:9;7048:22;7027:53;:::i;:::-;7017:63;;6973:117;6768:329;;;;:::o;7103:::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:117::-;7547:1;7544;7537:12;7561:180;7609:77;7606:1;7599:88;7706:4;7703:1;7696:15;7730:4;7727:1;7720:15;7747:281;7830:27;7852:4;7830:27;:::i;:::-;7822:6;7818:40;7960:6;7948:10;7945:22;7924:18;7912:10;7909:34;7906:62;7903:88;;;7971:18;;:::i;:::-;7903:88;8011:10;8007:2;8000:22;7790:238;7747:281;;:::o;8034:129::-;8068:6;8095:20;;:::i;:::-;8085:30;;8124:33;8152:4;8144:6;8124:33;:::i;:::-;8034:129;;;:::o;8169:311::-;8246:4;8336:18;8328:6;8325:30;8322:56;;;8358:18;;:::i;:::-;8322:56;8408:4;8400:6;8396:17;8388:25;;8468:4;8462;8458:15;8450:23;;8169:311;;;:::o;8486:117::-;8595:1;8592;8585:12;8626:710;8722:5;8747:81;8763:64;8820:6;8763:64;:::i;:::-;8747:81;:::i;:::-;8738:90;;8848:5;8877:6;8870:5;8863:21;8911:4;8904:5;8900:16;8893:23;;8964:4;8956:6;8952:17;8944:6;8940:30;8993:3;8985:6;8982:15;8979:122;;;9012:79;;:::i;:::-;8979:122;9127:6;9110:220;9144:6;9139:3;9136:15;9110:220;;;9219:3;9248:37;9281:3;9269:10;9248:37;:::i;:::-;9243:3;9236:50;9315:4;9310:3;9306:14;9299:21;;9186:144;9170:4;9165:3;9161:14;9154:21;;9110:220;;;9114:21;8728:608;;8626:710;;;;;:::o;9359:370::-;9430:5;9479:3;9472:4;9464:6;9460:17;9456:27;9446:122;;9487:79;;:::i;:::-;9446:122;9604:6;9591:20;9629:94;9719:3;9711:6;9704:4;9696:6;9692:17;9629:94;:::i;:::-;9620:103;;9436:293;9359:370;;;;:::o;9735:678::-;9825:6;9833;9882:2;9870:9;9861:7;9857:23;9853:32;9850:119;;;9888:79;;:::i;:::-;9850:119;10036:1;10025:9;10021:17;10008:31;10066:18;10058:6;10055:30;10052:117;;;10088:79;;:::i;:::-;10052:117;10193:78;10263:7;10254:6;10243:9;10239:22;10193:78;:::i;:::-;10183:88;;9979:302;10320:2;10346:50;10388:7;10379:6;10368:9;10364:22;10346:50;:::i;:::-;10336:60;;10291:115;9735:678;;;;;:::o;10419:765::-;10505:6;10513;10521;10529;10578:3;10566:9;10557:7;10553:23;10549:33;10546:120;;;10585:79;;:::i;:::-;10546:120;10705:1;10730:53;10775:7;10766:6;10755:9;10751:22;10730:53;:::i;:::-;10720:63;;10676:117;10832:2;10858:53;10903:7;10894:6;10883:9;10879:22;10858:53;:::i;:::-;10848:63;;10803:118;10960:2;10986:53;11031:7;11022:6;11011:9;11007:22;10986:53;:::i;:::-;10976:63;;10931:118;11088:2;11114:53;11159:7;11150:6;11139:9;11135:22;11114:53;:::i;:::-;11104:63;;11059:118;10419:765;;;;;;;:::o;11190:117::-;11299:1;11296;11289:12;11330:568;11403:8;11413:6;11463:3;11456:4;11448:6;11444:17;11440:27;11430:122;;11471:79;;:::i;:::-;11430:122;11584:6;11571:20;11561:30;;11614:18;11606:6;11603:30;11600:117;;;11636:79;;:::i;:::-;11600:117;11750:4;11742:6;11738:17;11726:29;;11804:3;11796:4;11788:6;11784:17;11774:8;11770:32;11767:41;11764:128;;;11811:79;;:::i;:::-;11764:128;11330:568;;;;;:::o;11904:698::-;11996:6;12004;12012;12061:2;12049:9;12040:7;12036:23;12032:32;12029:119;;;12067:79;;:::i;:::-;12029:119;12215:1;12204:9;12200:17;12187:31;12245:18;12237:6;12234:30;12231:117;;;12267:79;;:::i;:::-;12231:117;12380:80;12452:7;12443:6;12432:9;12428:22;12380:80;:::i;:::-;12362:98;;;;12158:312;12509:2;12535:50;12577:7;12568:6;12557:9;12553:22;12535:50;:::i;:::-;12525:60;;12480:115;11904:698;;;;;:::o;12608:474::-;12676:6;12684;12733:2;12721:9;12712:7;12708:23;12704:32;12701:119;;;12739:79;;:::i;:::-;12701:119;12859:1;12884:53;12929:7;12920:6;12909:9;12905:22;12884:53;:::i;:::-;12874:63;;12830:117;12986:2;13012:53;13057:7;13048:6;13037:9;13033:22;13012:53;:::i;:::-;13002:63;;12957:118;12608:474;;;;;:::o;13088:182::-;13228:34;13224:1;13216:6;13212:14;13205:58;13088:182;:::o;13276:366::-;13418:3;13439:67;13503:2;13498:3;13439:67;:::i;:::-;13432:74;;13515:93;13604:3;13515:93;:::i;:::-;13633:2;13628:3;13624:12;13617:19;;13276:366;;;:::o;13648:419::-;13814:4;13852:2;13841:9;13837:18;13829:26;;13901:9;13895:4;13891:20;13887:1;13876:9;13872:17;13865:47;13929:131;14055:4;13929:131;:::i;:::-;13921:139;;13648:419;;;:::o;14073:180::-;14121:77;14118:1;14111:88;14218:4;14215:1;14208:15;14242:4;14239:1;14232:15;14259:180;14307:77;14304:1;14297:88;14404:4;14401:1;14394:15;14428:4;14425:1;14418:15;14445:233;14484:3;14507:24;14525:5;14507:24;:::i;:::-;14498:33;;14553:66;14546:5;14543:77;14540:103;;14623:18;;:::i;:::-;14540:103;14670:1;14663:5;14659:13;14652:20;;14445:233;;;:::o;14684:224::-;14824:34;14820:1;14812:6;14808:14;14801:58;14893:7;14888:2;14880:6;14876:15;14869:32;14684:224;:::o;14914:366::-;15056:3;15077:67;15141:2;15136:3;15077:67;:::i;:::-;15070:74;;15153:93;15242:3;15153:93;:::i;:::-;15271:2;15266:3;15262:12;15255:19;;14914:366;;;:::o;15286:419::-;15452:4;15490:2;15479:9;15475:18;15467:26;;15539:9;15533:4;15529:20;15525:1;15514:9;15510:17;15503:47;15567:131;15693:4;15567:131;:::i;:::-;15559:139;;15286:419;;;:::o;15711:221::-;15851:34;15847:1;15839:6;15835:14;15828:58;15920:4;15915:2;15907:6;15903:15;15896:29;15711:221;:::o;15938:366::-;16080:3;16101:67;16165:2;16160:3;16101:67;:::i;:::-;16094:74;;16177:93;16266:3;16177:93;:::i;:::-;16295:2;16290:3;16286:12;16279:19;;15938:366;;;:::o;16310:419::-;16476:4;16514:2;16503:9;16499:18;16491:26;;16563:9;16557:4;16553:20;16549:1;16538:9;16534:17;16527:47;16591:131;16717:4;16591:131;:::i;:::-;16583:139;;16310:419;;;:::o;16735:225::-;16875:34;16871:1;16863:6;16859:14;16852:58;16944:8;16939:2;16931:6;16927:15;16920:33;16735:225;:::o;16966:366::-;17108:3;17129:67;17193:2;17188:3;17129:67;:::i;:::-;17122:74;;17205:93;17294:3;17205:93;:::i;:::-;17323:2;17318:3;17314:12;17307:19;;16966:366;;;:::o;17338:419::-;17504:4;17542:2;17531:9;17527:18;17519:26;;17591:9;17585:4;17581:20;17577:1;17566:9;17562:17;17555:47;17619:131;17745:4;17619:131;:::i;:::-;17611:139;;17338:419;;;:::o;17763:222::-;17903:34;17899:1;17891:6;17887:14;17880:58;17972:5;17967:2;17959:6;17955:15;17948:30;17763:222;:::o;17991:366::-;18133:3;18154:67;18218:2;18213:3;18154:67;:::i;:::-;18147:74;;18230:93;18319:3;18230:93;:::i;:::-;18348:2;18343:3;18339:12;18332:19;;17991:366;;;:::o;18363:419::-;18529:4;18567:2;18556:9;18552:18;18544:26;;18616:9;18610:4;18606:20;18602:1;18591:9;18587:17;18580:47;18644:131;18770:4;18644:131;:::i;:::-;18636:139;;18363:419;;;:::o;18788:225::-;18928:34;18924:1;18916:6;18912:14;18905:58;18997:8;18992:2;18984:6;18980:15;18973:33;18788:225;:::o;19019:366::-;19161:3;19182:67;19246:2;19241:3;19182:67;:::i;:::-;19175:74;;19258:93;19347:3;19258:93;:::i;:::-;19376:2;19371:3;19367:12;19360:19;;19019:366;;;:::o;19391:419::-;19557:4;19595:2;19584:9;19580:18;19572:26;;19644:9;19638:4;19634:20;19630:1;19619:9;19615:17;19608:47;19672:131;19798:4;19672:131;:::i;:::-;19664:139;;19391:419;;;:::o;19816:223::-;19956:34;19952:1;19944:6;19940:14;19933:58;20025:6;20020:2;20012:6;20008:15;20001:31;19816:223;:::o;20045:366::-;20187:3;20208:67;20272:2;20267:3;20208:67;:::i;:::-;20201:74;;20284:93;20373:3;20284:93;:::i;:::-;20402:2;20397:3;20393:12;20386:19;;20045:366;;;:::o;20417:419::-;20583:4;20621:2;20610:9;20606:18;20598:26;;20670:9;20664:4;20660:20;20656:1;20645:9;20641:17;20634:47;20698:131;20824:4;20698:131;:::i;:::-;20690:139;;20417:419;;;:::o;20842:221::-;20982:34;20978:1;20970:6;20966:14;20959:58;21051:4;21046:2;21038:6;21034:15;21027:29;20842:221;:::o;21069:366::-;21211:3;21232:67;21296:2;21291:3;21232:67;:::i;:::-;21225:74;;21308:93;21397:3;21308:93;:::i;:::-;21426:2;21421:3;21417:12;21410:19;;21069:366;;;:::o;21441:419::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21694:9;21688:4;21684:20;21680:1;21669:9;21665:17;21658:47;21722:131;21848:4;21722:131;:::i;:::-;21714:139;;21441:419;;;:::o;21866:224::-;22006:34;22002:1;21994:6;21990:14;21983:58;22075:7;22070:2;22062:6;22058:15;22051:32;21866:224;:::o;22096:366::-;22238:3;22259:67;22323:2;22318:3;22259:67;:::i;:::-;22252:74;;22335:93;22424:3;22335:93;:::i;:::-;22453:2;22448:3;22444:12;22437:19;;22096:366;;;:::o;22468:419::-;22634:4;22672:2;22661:9;22657:18;22649:26;;22721:9;22715:4;22711:20;22707:1;22696:9;22692:17;22685:47;22749:131;22875:4;22749:131;:::i;:::-;22741:139;;22468:419;;;:::o;22893:222::-;23033:34;23029:1;23021:6;23017:14;23010:58;23102:5;23097:2;23089:6;23085:15;23078:30;22893:222;:::o;23121:366::-;23263:3;23284:67;23348:2;23343:3;23284:67;:::i;:::-;23277:74;;23360:93;23449:3;23360:93;:::i;:::-;23478:2;23473:3;23469:12;23462:19;;23121:366;;;:::o;23493:419::-;23659:4;23697:2;23686:9;23682:18;23674:26;;23746:9;23740:4;23736:20;23732:1;23721:9;23717:17;23710:47;23774:131;23900:4;23774:131;:::i;:::-;23766:139;;23493:419;;;:::o;23918:228::-;24058:34;24054:1;24046:6;24042:14;24035:58;24127:11;24122:2;24114:6;24110:15;24103:36;23918:228;:::o;24152:366::-;24294:3;24315:67;24379:2;24374:3;24315:67;:::i;:::-;24308:74;;24391:93;24480:3;24391:93;:::i;:::-;24509:2;24504:3;24500:12;24493:19;;24152:366;;;:::o;24524:419::-;24690:4;24728:2;24717:9;24713:18;24705:26;;24777:9;24771:4;24767:20;24763:1;24752:9;24748:17;24741:47;24805:131;24931:4;24805:131;:::i;:::-;24797:139;;24524:419;;;:::o;24949:250::-;25089:34;25085:1;25077:6;25073:14;25066:58;25158:33;25153:2;25145:6;25141:15;25134:58;24949:250;:::o;25205:366::-;25347:3;25368:67;25432:2;25427:3;25368:67;:::i;:::-;25361:74;;25444:93;25533:3;25444:93;:::i;:::-;25562:2;25557:3;25553:12;25546:19;;25205:366;;;:::o;25577:419::-;25743:4;25781:2;25770:9;25766:18;25758:26;;25830:9;25824:4;25820:20;25816:1;25805:9;25801:17;25794:47;25858:131;25984:4;25858:131;:::i;:::-;25850:139;;25577:419;;;:::o;26002:178::-;26142:30;26138:1;26130:6;26126:14;26119:54;26002:178;:::o;26186:366::-;26328:3;26349:67;26413:2;26408:3;26349:67;:::i;:::-;26342:74;;26425:93;26514:3;26425:93;:::i;:::-;26543:2;26538:3;26534:12;26527:19;;26186:366;;;:::o;26558:419::-;26724:4;26762:2;26751:9;26747:18;26739:26;;26811:9;26805:4;26801:20;26797:1;26786:9;26782:17;26775:47;26839:131;26965:4;26839:131;:::i;:::-;26831:139;;26558:419;;;:::o;26983:222::-;27123:34;27119:1;27111:6;27107:14;27100:58;27192:5;27187:2;27179:6;27175:15;27168:30;26983:222;:::o;27211:366::-;27353:3;27374:67;27438:2;27433:3;27374:67;:::i;:::-;27367:74;;27450:93;27539:3;27450:93;:::i;:::-;27568:2;27563:3;27559:12;27552:19;;27211:366;;;:::o;27583:419::-;27749:4;27787:2;27776:9;27772:18;27764:26;;27836:9;27830:4;27826:20;27822:1;27811:9;27807:17;27800:47;27864:131;27990:4;27864:131;:::i;:::-;27856:139;;27583:419;;;:::o;28008:191::-;28048:3;28067:20;28085:1;28067:20;:::i;:::-;28062:25;;28101:20;28119:1;28101:20;:::i;:::-;28096:25;;28144:1;28141;28137:9;28130:16;;28165:3;28162:1;28159:10;28156:36;;;28172:18;;:::i;:::-;28156:36;28008:191;;;;:::o;28205:222::-;28345:34;28341:1;28333:6;28329:14;28322:58;28414:5;28409:2;28401:6;28397:15;28390:30;28205:222;:::o;28433:366::-;28575:3;28596:67;28660:2;28655:3;28596:67;:::i;:::-;28589:74;;28672:93;28761:3;28672:93;:::i;:::-;28790:2;28785:3;28781:12;28774:19;;28433:366;;;:::o;28805:419::-;28971:4;29009:2;28998:9;28994:18;28986:26;;29058:9;29052:4;29048:20;29044:1;29033:9;29029:17;29022:47;29086:131;29212:4;29086:131;:::i;:::-;29078:139;;28805:419;;;:::o;29230:194::-;29270:4;29290:20;29308:1;29290:20;:::i;:::-;29285:25;;29324:20;29342:1;29324:20;:::i;:::-;29319:25;;29368:1;29365;29361:9;29353:17;;29392:1;29386:4;29383:11;29380:37;;;29397:18;;:::i;:::-;29380:37;29230:194;;;;:::o;29430:229::-;29570:34;29566:1;29558:6;29554:14;29547:58;29639:12;29634:2;29626:6;29622:15;29615:37;29430:229;:::o;29665:366::-;29807:3;29828:67;29892:2;29887:3;29828:67;:::i;:::-;29821:74;;29904:93;29993:3;29904:93;:::i;:::-;30022:2;30017:3;30013:12;30006:19;;29665:366;;;:::o;30037:419::-;30203:4;30241:2;30230:9;30226:18;30218:26;;30290:9;30284:4;30280:20;30276:1;30265:9;30261:17;30254:47;30318:131;30444:4;30318:131;:::i;:::-;30310:139;;30037:419;;;:::o;30462:143::-;30519:5;30550:6;30544:13;30535:22;;30566:33;30593:5;30566:33;:::i;:::-;30462:143;;;;:::o;30611:351::-;30681:6;30730:2;30718:9;30709:7;30705:23;30701:32;30698:119;;;30736:79;;:::i;:::-;30698:119;30856:1;30881:64;30937:7;30928:6;30917:9;30913:22;30881:64;:::i;:::-;30871:74;;30827:128;30611:351;;;;:::o;30968:85::-;31013:7;31042:5;31031:16;;30968:85;;;:::o;31059:158::-;31117:9;31150:61;31168:42;31177:32;31203:5;31177:32;:::i;:::-;31168:42;:::i;:::-;31150:61;:::i;:::-;31137:74;;31059:158;;;:::o;31223:147::-;31318:45;31357:5;31318:45;:::i;:::-;31313:3;31306:58;31223:147;;:::o;31376:114::-;31443:6;31477:5;31471:12;31461:22;;31376:114;;;:::o;31496:184::-;31595:11;31629:6;31624:3;31617:19;31669:4;31664:3;31660:14;31645:29;;31496:184;;;;:::o;31686:132::-;31753:4;31776:3;31768:11;;31806:4;31801:3;31797:14;31789:22;;31686:132;;;:::o;31824:108::-;31901:24;31919:5;31901:24;:::i;:::-;31896:3;31889:37;31824:108;;:::o;31938:179::-;32007:10;32028:46;32070:3;32062:6;32028:46;:::i;:::-;32106:4;32101:3;32097:14;32083:28;;31938:179;;;;:::o;32123:113::-;32193:4;32225;32220:3;32216:14;32208:22;;32123:113;;;:::o;32272:732::-;32391:3;32420:54;32468:5;32420:54;:::i;:::-;32490:86;32569:6;32564:3;32490:86;:::i;:::-;32483:93;;32600:56;32650:5;32600:56;:::i;:::-;32679:7;32710:1;32695:284;32720:6;32717:1;32714:13;32695:284;;;32796:6;32790:13;32823:63;32882:3;32867:13;32823:63;:::i;:::-;32816:70;;32909:60;32962:6;32909:60;:::i;:::-;32899:70;;32755:224;32742:1;32739;32735:9;32730:14;;32695:284;;;32699:14;32995:3;32988:10;;32396:608;;;32272:732;;;;:::o;33010:831::-;33273:4;33311:3;33300:9;33296:19;33288:27;;33325:71;33393:1;33382:9;33378:17;33369:6;33325:71;:::i;:::-;33406:80;33482:2;33471:9;33467:18;33458:6;33406:80;:::i;:::-;33533:9;33527:4;33523:20;33518:2;33507:9;33503:18;33496:48;33561:108;33664:4;33655:6;33561:108;:::i;:::-;33553:116;;33679:72;33747:2;33736:9;33732:18;33723:6;33679:72;:::i;:::-;33761:73;33829:3;33818:9;33814:19;33805:6;33761:73;:::i;:::-;33010:831;;;;;;;;:::o;33847:180::-;33895:77;33892:1;33885:88;33992:4;33989:1;33982:15;34016:4;34013:1;34006:15;34033:185;34073:1;34090:20;34108:1;34090:20;:::i;:::-;34085:25;;34124:20;34142:1;34124:20;:::i;:::-;34119:25;;34163:1;34153:35;;34168:18;;:::i;:::-;34153:35;34210:1;34207;34203:9;34198:14;;34033:185;;;;:::o;34224:177::-;34364:29;34360:1;34352:6;34348:14;34341:53;34224:177;:::o;34407:366::-;34549:3;34570:67;34634:2;34629:3;34570:67;:::i;:::-;34563:74;;34646:93;34735:3;34646:93;:::i;:::-;34764:2;34759:3;34755:12;34748:19;;34407:366;;;:::o;34779:419::-;34945:4;34983:2;34972:9;34968:18;34960:26;;35032:9;35026:4;35022:20;35018:1;35007:9;35003:17;34996:47;35060:131;35186:4;35060:131;:::i;:::-;35052:139;;34779:419;;;:::o;35204:410::-;35244:7;35267:20;35285:1;35267:20;:::i;:::-;35262:25;;35301:20;35319:1;35301:20;:::i;:::-;35296:25;;35356:1;35353;35349:9;35378:30;35396:11;35378:30;:::i;:::-;35367:41;;35557:1;35548:7;35544:15;35541:1;35538:22;35518:1;35511:9;35491:83;35468:139;;35587:18;;:::i;:::-;35468:139;35252:362;35204:410;;;;:::o;35620:220::-;35760:34;35756:1;35748:6;35744:14;35737:58;35829:3;35824:2;35816:6;35812:15;35805:28;35620:220;:::o;35846:366::-;35988:3;36009:67;36073:2;36068:3;36009:67;:::i;:::-;36002:74;;36085:93;36174:3;36085:93;:::i;:::-;36203:2;36198:3;36194:12;36187:19;;35846:366;;;:::o;36218:419::-;36384:4;36422:2;36411:9;36407:18;36399:26;;36471:9;36465:4;36461:20;36457:1;36446:9;36442:17;36435:47;36499:131;36625:4;36499:131;:::i;:::-;36491:139;;36218:419;;;:::o
Swarm Source
ipfs://a1ed5dbf0c4c5c460062ed5c4a4702e460d79dcbb875f17825dcc6744bfa08cb
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.