ERC-20
Overview
Max Total Supply
1,000,000,000 AH
Holders
255
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,884,480.755463299 AHValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AresHistory
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-14 */ //website : https://AresHistory.com //twitter : https://twitter.com/AresHistory //tg : https://t.me/AresEntry // 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 AresHistory is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Ares History"; string private constant _symbol = "AH"; 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 = 20; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 99; //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(0xb95C4Cd58919578acB9bfFc51559733A880E4D4B); address payable private _marketingAddress = payable(0xb696Ae88BA420fCdb746FD10A6C6AeE8AADcb775); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000000 * 10**9; uint256 public _maxWalletSize = 20000000 * 10**9; uint256 public _swapTokensAtAmount = 10000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!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/2); _developmentAddress.transfer(amount/2); } function enableTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } 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; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction 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":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"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":"bool","name":"_tradingOpen","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","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
6080604052670de0b6b3a76400006000196200001c91906200070f565b6000196200002b919062000776565b600655600060085560146009556000600a556063600b55600a54600c55600b54600d55600c54600e55600d54600f5573b95c4cd58919578acb9bffc51559733a880e4d4b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b696ae88ba420fcdb746fd10a6c6aee8aadcb775601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060165566470de4df820000601755662386f26fc100006018553480156200016757600080fd5b5060006200017a620006a560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033991906200081b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c791906200081b565b6040518363ffffffff1660e01b8152600401620003e69291906200085e565b6020604051808303816000875af115801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c91906200081b565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000482620006ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200069691906200089c565b60405180910390a350620008b9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200071c82620006d6565b91506200072983620006d6565b9250826200073c576200073b620006e0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078382620006d6565b91506200079083620006d6565b9250828203905081811115620007ab57620007aa62000747565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e382620007b6565b9050919050565b620007f581620007d6565b81146200080157600080fd5b50565b6000815190506200081581620007ea565b92915050565b600060208284031215620008345762000833620007b1565b5b6000620008448482850162000804565b91505092915050565b6200085881620007d6565b82525050565b60006040820190506200087560008301856200084d565b6200088460208301846200084d565b9392505050565b6200089681620006d6565b82525050565b6000602082019050620008b360008301846200088b565b92915050565b6141a280620008c96000396000f3fe6080604052600436106101d15760003560e01c80637f2feddc116100f7578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e1461065d578063ea1644d51461069a578063f275f64b146106c3578063f2fde38b146106ec576101d8565b8063a9059cbb146105a3578063bfd79284146105e0578063c3c8cd801461061d578063c492f04614610634576101d8565b806395d89b41116100d157806395d89b41146104fd57806398a5c31514610528578063a0916b8214610551578063a2a957bb1461057a576101d8565b80637f2feddc1461046a5780638da5cb5b146104a75780638f9a55c0146104d2576101d8565b806349bd5a5e1161016f57806370a082311161013e57806370a08231146103c2578063715018a6146103ff57806374010ece146104165780637d1db4a51461043f576101d8565b806349bd5a5e1461032e5780635fecd926146103595780636d8aa8f8146103825780636fc3eaec146103ab576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610715565b6040516101ff9190612ddc565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612ea6565b610752565b60405161023c9190612f01565b60405180910390f35b34801561025157600080fd5b5061025a610770565b6040516102679190612f7b565b60405180910390f35b34801561027c57600080fd5b50610285610796565b6040516102929190612fa5565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612fc0565b6107a6565b6040516102cf9190612f01565b60405180910390f35b3480156102e457600080fd5b506102ed61087f565b6040516102fa9190612fa5565b60405180910390f35b34801561030f57600080fd5b50610318610885565b604051610325919061302f565b60405180910390f35b34801561033a57600080fd5b5061034361088e565b6040516103509190613059565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190613074565b6108b4565b005b34801561038e57600080fd5b506103a960048036038101906103a491906130cd565b6109a4565b005b3480156103b757600080fd5b506103c0610a56565b005b3480156103ce57600080fd5b506103e960048036038101906103e49190613074565b610b27565b6040516103f69190612fa5565b60405180910390f35b34801561040b57600080fd5b50610414610b78565b005b34801561042257600080fd5b5061043d600480360381019061043891906130fa565b610ccb565b005b34801561044b57600080fd5b50610454610d6a565b6040516104619190612fa5565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190613074565b610d70565b60405161049e9190612fa5565b60405180910390f35b3480156104b357600080fd5b506104bc610d88565b6040516104c99190613059565b60405180910390f35b3480156104de57600080fd5b506104e7610db1565b6040516104f49190612fa5565b60405180910390f35b34801561050957600080fd5b50610512610db7565b60405161051f9190612ddc565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906130fa565b610df4565b005b34801561055d57600080fd5b506105786004803603810190610573919061326f565b610e93565b005b34801561058657600080fd5b506105a1600480360381019061059c91906132cb565b610fbd565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190612ea6565b6111b8565b6040516105d79190612f01565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190613074565b6111d6565b6040516106149190612f01565b60405180910390f35b34801561062957600080fd5b506106326111f6565b005b34801561064057600080fd5b5061065b6004803603810190610656919061338d565b6112cf565b005b34801561066957600080fd5b50610684600480360381019061067f91906133ed565b611409565b6040516106919190612fa5565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc91906130fa565b611490565b005b3480156106cf57600080fd5b506106ea60048036038101906106e591906130cd565b61152f565b005b3480156106f857600080fd5b50610713600480360381019061070e9190613074565b6115e1565b005b60606040518060400160405280600c81526020017f4172657320486973746f72790000000000000000000000000000000000000000815250905090565b600061076661075f6117a2565b84846117aa565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006107b3848484611973565b610874846107bf6117a2565b61086f8560405180606001604052806028815260200161414560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108256117a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121f69092919063ffffffff16565b6117aa565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108bc6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090613479565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6109ac6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090613479565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a976117a2565b73ffffffffffffffffffffffffffffffffffffffff161480610b0d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af56117a2565b73ffffffffffffffffffffffffffffffffffffffff16145b610b1657600080fd5b6000479050610b248161225a565b50565b6000610b71600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612347565b9050919050565b610b806117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490613479565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd36117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613479565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600281526020017f4148000000000000000000000000000000000000000000000000000000000000815250905090565b610dfc6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090613479565b60405180910390fd5b8060188190555050565b610e9b6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f90613479565b60405180910390fd5b60005b8251811015610fb8578160106000858481518110610f4c57610f4b613499565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fb0906134f7565b915050610f2b565b505050565b610fc56117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990613479565b60405180910390fd5b60008410158015611064575060048411155b6110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a906135b1565b60405180910390fd5b600082101580156110b5575060628211155b6110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90613643565b60405180910390fd5b60008310158015611106575060048311155b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906136d5565b60405180910390fd5b60008110158015611157575060628111155b611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90613767565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006111cc6111c56117a2565b8484611973565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112376117a2565b73ffffffffffffffffffffffffffffffffffffffff1614806112ad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112956117a2565b73ffffffffffffffffffffffffffffffffffffffff16145b6112b657600080fd5b60006112c130610b27565b90506112cc816123b5565b50565b6112d76117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90613479565b60405180910390fd5b60005b8383905081101561140357816005600086868581811061138a57611389613499565b5b905060200201602081019061139f9190613074565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113fb906134f7565b915050611367565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114986117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90613479565b60405180910390fd5b8060178190555050565b6115376117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90613479565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b6115e96117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90613479565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dc906137f9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118109061388b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f9061391d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119669190612fa5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d9906139af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613a41565b60405180910390fd5b60008111611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613ad3565b60405180910390fd5b611a9c610d88565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b0a5750611ada610d88565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ef557601560149054906101000a900460ff16611b9957611b2b610d88565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f90613b65565b60405180910390fd5b5b601654811115611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590613bd1565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c825750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890613c63565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d6e5760175481611d2384610b27565b611d2d9190613c83565b10611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490613d29565b60405180910390fd5b5b6000611d7930610b27565b9050600060185482101590506018548210611d945760185491505b808015611dac575060158054906101000a900460ff16155b8015611e065750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e1e5750601560169054906101000a900460ff165b8015611e745750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611eca5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef257611ed8826123b5565b60004790506000811115611ef057611eef4761225a565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f9c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061204f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561204e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561205d57600090506121e4565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121085750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561212057600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121cb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121e357600a54600c81905550600b54600d819055505b5b6121f08484848461262c565b50505050565b600083831115829061223e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122359190612ddc565b60405180910390fd5b506000838561224d9190613d49565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836122a39190613dac565b9081150290604051600060405180830381858888f193505050501580156122ce573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836123189190613dac565b9081150290604051600060405180830381858888f19350505050158015612343573d6000803e3d6000fd5b5050565b600060065482111561238e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238590613e4f565b60405180910390fd5b6000612398612659565b90506123ad818461268490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123ec576123eb61312c565b5b60405190808252806020026020018201604052801561241a5781602001602082028036833780820191505090505b509050308160008151811061243257612431613499565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fd9190613e84565b8160018151811061251157612510613499565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117aa565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125dc959493929190613faa565b600060405180830381600087803b1580156125f657600080fd5b505af115801561260a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061263a576126396126ce565b5b61264584848461270b565b80612653576126526128d6565b5b50505050565b60008060006126666128ea565b9150915061267d818361268490919063ffffffff16565b9250505090565b60006126c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612949565b905092915050565b6000600c541480156126e257506000600d54145b61270957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061271d876129ac565b95509550955095509550955061277b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061281085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285c81612abc565b6128668483612b79565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128c39190612fa5565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061291e670de0b6b3a764000060065461268490919063ffffffff16565b82101561293c57600654670de0b6b3a7640000935093505050612945565b81819350935050505b9091565b60008083118290612990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129879190612ddc565b60405180910390fd5b506000838561299f9190613dac565b9050809150509392505050565b60008060008060008060008060006129c98a600c54600d54612bb3565b92509250925060006129d9612659565b905060008060006129ec8e878787612c49565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121f6565b905092915050565b6000808284612a6d9190613c83565b905083811015612ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa990614050565b60405180910390fd5b8091505092915050565b6000612ac6612659565b90506000612add8284612cd290919063ffffffff16565b9050612b3181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b8e82600654612a1490919063ffffffff16565b600681905550612ba981600754612a5e90919063ffffffff16565b6007819055505050565b600080600080612bdf6064612bd1888a612cd290919063ffffffff16565b61268490919063ffffffff16565b90506000612c096064612bfb888b612cd290919063ffffffff16565b61268490919063ffffffff16565b90506000612c3282612c24858c612a1490919063ffffffff16565b612a1490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c628589612cd290919063ffffffff16565b90506000612c798689612cd290919063ffffffff16565b90506000612c908789612cd290919063ffffffff16565b90506000612cb982612cab8587612a1490919063ffffffff16565b612a1490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612ce45760009050612d46565b60008284612cf29190614070565b9050828482612d019190613dac565b14612d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3890614124565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d86578082015181840152602081019050612d6b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612dae82612d4c565b612db88185612d57565b9350612dc8818560208601612d68565b612dd181612d92565b840191505092915050565b60006020820190508181036000830152612df68184612da3565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e3d82612e12565b9050919050565b612e4d81612e32565b8114612e5857600080fd5b50565b600081359050612e6a81612e44565b92915050565b6000819050919050565b612e8381612e70565b8114612e8e57600080fd5b50565b600081359050612ea081612e7a565b92915050565b60008060408385031215612ebd57612ebc612e08565b5b6000612ecb85828601612e5b565b9250506020612edc85828601612e91565b9150509250929050565b60008115159050919050565b612efb81612ee6565b82525050565b6000602082019050612f166000830184612ef2565b92915050565b6000819050919050565b6000612f41612f3c612f3784612e12565b612f1c565b612e12565b9050919050565b6000612f5382612f26565b9050919050565b6000612f6582612f48565b9050919050565b612f7581612f5a565b82525050565b6000602082019050612f906000830184612f6c565b92915050565b612f9f81612e70565b82525050565b6000602082019050612fba6000830184612f96565b92915050565b600080600060608486031215612fd957612fd8612e08565b5b6000612fe786828701612e5b565b9350506020612ff886828701612e5b565b925050604061300986828701612e91565b9150509250925092565b600060ff82169050919050565b61302981613013565b82525050565b60006020820190506130446000830184613020565b92915050565b61305381612e32565b82525050565b600060208201905061306e600083018461304a565b92915050565b60006020828403121561308a57613089612e08565b5b600061309884828501612e5b565b91505092915050565b6130aa81612ee6565b81146130b557600080fd5b50565b6000813590506130c7816130a1565b92915050565b6000602082840312156130e3576130e2612e08565b5b60006130f1848285016130b8565b91505092915050565b6000602082840312156131105761310f612e08565b5b600061311e84828501612e91565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61316482612d92565b810181811067ffffffffffffffff821117156131835761318261312c565b5b80604052505050565b6000613196612dfe565b90506131a2828261315b565b919050565b600067ffffffffffffffff8211156131c2576131c161312c565b5b602082029050602081019050919050565b600080fd5b60006131eb6131e6846131a7565b61318c565b9050808382526020820190506020840283018581111561320e5761320d6131d3565b5b835b8181101561323757806132238882612e5b565b845260208401935050602081019050613210565b5050509392505050565b600082601f83011261325657613255613127565b5b81356132668482602086016131d8565b91505092915050565b6000806040838503121561328657613285612e08565b5b600083013567ffffffffffffffff8111156132a4576132a3612e0d565b5b6132b085828601613241565b92505060206132c1858286016130b8565b9150509250929050565b600080600080608085870312156132e5576132e4612e08565b5b60006132f387828801612e91565b945050602061330487828801612e91565b935050604061331587828801612e91565b925050606061332687828801612e91565b91505092959194509250565b600080fd5b60008083601f84011261334d5761334c613127565b5b8235905067ffffffffffffffff81111561336a57613369613332565b5b602083019150836020820283011115613386576133856131d3565b5b9250929050565b6000806000604084860312156133a6576133a5612e08565b5b600084013567ffffffffffffffff8111156133c4576133c3612e0d565b5b6133d086828701613337565b935093505060206133e3868287016130b8565b9150509250925092565b6000806040838503121561340457613403612e08565b5b600061341285828601612e5b565b925050602061342385828601612e5b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613463602083612d57565b915061346e8261342d565b602082019050919050565b6000602082019050818103600083015261349281613456565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061350282612e70565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613534576135336134c8565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b600061359b602583612d57565b91506135a68261353f565b604082019050919050565b600060208201905081810360008301526135ca8161358e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b600061362d602283612d57565b9150613638826135d1565b604082019050919050565b6000602082019050818103600083015261365c81613620565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b60006136bf602683612d57565b91506136ca82613663565b604082019050919050565b600060208201905081810360008301526136ee816136b2565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b6000613751602383612d57565b915061375c826136f5565b604082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137e3602683612d57565b91506137ee82613787565b604082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613875602483612d57565b915061388082613819565b604082019050919050565b600060208201905081810360008301526138a481613868565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613907602283612d57565b9150613912826138ab565b604082019050919050565b60006020820190508181036000830152613936816138fa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613999602583612d57565b91506139a48261393d565b604082019050919050565b600060208201905081810360008301526139c88161398c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a2b602383612d57565b9150613a36826139cf565b604082019050919050565b60006020820190508181036000830152613a5a81613a1e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613abd602983612d57565b9150613ac882613a61565b604082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613b4f603f83612d57565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613bbb601c83612d57565b9150613bc682613b85565b602082019050919050565b60006020820190508181036000830152613bea81613bae565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613c4d602383612d57565b9150613c5882613bf1565b604082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b6000613c8e82612e70565b9150613c9983612e70565b9250828201905080821115613cb157613cb06134c8565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d13602383612d57565b9150613d1e82613cb7565b604082019050919050565b60006020820190508181036000830152613d4281613d06565b9050919050565b6000613d5482612e70565b9150613d5f83612e70565b9250828203905081811115613d7757613d766134c8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613db782612e70565b9150613dc283612e70565b925082613dd257613dd1613d7d565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e39602a83612d57565b9150613e4482613ddd565b604082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b600081519050613e7e81612e44565b92915050565b600060208284031215613e9a57613e99612e08565b5b6000613ea884828501613e6f565b91505092915050565b6000819050919050565b6000613ed6613ed1613ecc84613eb1565b612f1c565b612e70565b9050919050565b613ee681613ebb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f2181612e32565b82525050565b6000613f338383613f18565b60208301905092915050565b6000602082019050919050565b6000613f5782613eec565b613f618185613ef7565b9350613f6c83613f08565b8060005b83811015613f9d578151613f848882613f27565b9750613f8f83613f3f565b925050600181019050613f70565b5085935050505092915050565b600060a082019050613fbf6000830188612f96565b613fcc6020830187613edd565b8181036040830152613fde8186613f4c565b9050613fed606083018561304a565b613ffa6080830184612f96565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061403a601b83612d57565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b600061407b82612e70565b915061408683612e70565b925082820261409481612e70565b915082820484148315176140ab576140aa6134c8565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061410e602183612d57565b9150614119826140b2565b604082019050919050565b6000602082019050818103600083015261413d81614101565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202d73d00d19ed10f562a68390019e36c707e2b6bde9d47be8de059b4c7ada6c0d64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c80637f2feddc116100f7578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e1461065d578063ea1644d51461069a578063f275f64b146106c3578063f2fde38b146106ec576101d8565b8063a9059cbb146105a3578063bfd79284146105e0578063c3c8cd801461061d578063c492f04614610634576101d8565b806395d89b41116100d157806395d89b41146104fd57806398a5c31514610528578063a0916b8214610551578063a2a957bb1461057a576101d8565b80637f2feddc1461046a5780638da5cb5b146104a75780638f9a55c0146104d2576101d8565b806349bd5a5e1161016f57806370a082311161013e57806370a08231146103c2578063715018a6146103ff57806374010ece146104165780637d1db4a51461043f576101d8565b806349bd5a5e1461032e5780635fecd926146103595780636d8aa8f8146103825780636fc3eaec146103ab576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610715565b6040516101ff9190612ddc565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612ea6565b610752565b60405161023c9190612f01565b60405180910390f35b34801561025157600080fd5b5061025a610770565b6040516102679190612f7b565b60405180910390f35b34801561027c57600080fd5b50610285610796565b6040516102929190612fa5565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612fc0565b6107a6565b6040516102cf9190612f01565b60405180910390f35b3480156102e457600080fd5b506102ed61087f565b6040516102fa9190612fa5565b60405180910390f35b34801561030f57600080fd5b50610318610885565b604051610325919061302f565b60405180910390f35b34801561033a57600080fd5b5061034361088e565b6040516103509190613059565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190613074565b6108b4565b005b34801561038e57600080fd5b506103a960048036038101906103a491906130cd565b6109a4565b005b3480156103b757600080fd5b506103c0610a56565b005b3480156103ce57600080fd5b506103e960048036038101906103e49190613074565b610b27565b6040516103f69190612fa5565b60405180910390f35b34801561040b57600080fd5b50610414610b78565b005b34801561042257600080fd5b5061043d600480360381019061043891906130fa565b610ccb565b005b34801561044b57600080fd5b50610454610d6a565b6040516104619190612fa5565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190613074565b610d70565b60405161049e9190612fa5565b60405180910390f35b3480156104b357600080fd5b506104bc610d88565b6040516104c99190613059565b60405180910390f35b3480156104de57600080fd5b506104e7610db1565b6040516104f49190612fa5565b60405180910390f35b34801561050957600080fd5b50610512610db7565b60405161051f9190612ddc565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906130fa565b610df4565b005b34801561055d57600080fd5b506105786004803603810190610573919061326f565b610e93565b005b34801561058657600080fd5b506105a1600480360381019061059c91906132cb565b610fbd565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190612ea6565b6111b8565b6040516105d79190612f01565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190613074565b6111d6565b6040516106149190612f01565b60405180910390f35b34801561062957600080fd5b506106326111f6565b005b34801561064057600080fd5b5061065b6004803603810190610656919061338d565b6112cf565b005b34801561066957600080fd5b50610684600480360381019061067f91906133ed565b611409565b6040516106919190612fa5565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc91906130fa565b611490565b005b3480156106cf57600080fd5b506106ea60048036038101906106e591906130cd565b61152f565b005b3480156106f857600080fd5b50610713600480360381019061070e9190613074565b6115e1565b005b60606040518060400160405280600c81526020017f4172657320486973746f72790000000000000000000000000000000000000000815250905090565b600061076661075f6117a2565b84846117aa565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006107b3848484611973565b610874846107bf6117a2565b61086f8560405180606001604052806028815260200161414560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108256117a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121f69092919063ffffffff16565b6117aa565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108bc6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090613479565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6109ac6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090613479565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a976117a2565b73ffffffffffffffffffffffffffffffffffffffff161480610b0d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af56117a2565b73ffffffffffffffffffffffffffffffffffffffff16145b610b1657600080fd5b6000479050610b248161225a565b50565b6000610b71600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612347565b9050919050565b610b806117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490613479565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd36117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613479565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600281526020017f4148000000000000000000000000000000000000000000000000000000000000815250905090565b610dfc6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090613479565b60405180910390fd5b8060188190555050565b610e9b6117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f90613479565b60405180910390fd5b60005b8251811015610fb8578160106000858481518110610f4c57610f4b613499565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fb0906134f7565b915050610f2b565b505050565b610fc56117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990613479565b60405180910390fd5b60008410158015611064575060048411155b6110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a906135b1565b60405180910390fd5b600082101580156110b5575060628211155b6110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90613643565b60405180910390fd5b60008310158015611106575060048311155b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906136d5565b60405180910390fd5b60008110158015611157575060628111155b611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90613767565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006111cc6111c56117a2565b8484611973565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112376117a2565b73ffffffffffffffffffffffffffffffffffffffff1614806112ad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112956117a2565b73ffffffffffffffffffffffffffffffffffffffff16145b6112b657600080fd5b60006112c130610b27565b90506112cc816123b5565b50565b6112d76117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90613479565b60405180910390fd5b60005b8383905081101561140357816005600086868581811061138a57611389613499565b5b905060200201602081019061139f9190613074565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113fb906134f7565b915050611367565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114986117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90613479565b60405180910390fd5b8060178190555050565b6115376117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90613479565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b6115e96117a2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90613479565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dc906137f9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118109061388b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f9061391d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119669190612fa5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d9906139af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613a41565b60405180910390fd5b60008111611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613ad3565b60405180910390fd5b611a9c610d88565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b0a5750611ada610d88565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ef557601560149054906101000a900460ff16611b9957611b2b610d88565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f90613b65565b60405180910390fd5b5b601654811115611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590613bd1565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c825750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890613c63565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d6e5760175481611d2384610b27565b611d2d9190613c83565b10611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490613d29565b60405180910390fd5b5b6000611d7930610b27565b9050600060185482101590506018548210611d945760185491505b808015611dac575060158054906101000a900460ff16155b8015611e065750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e1e5750601560169054906101000a900460ff165b8015611e745750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611eca5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef257611ed8826123b5565b60004790506000811115611ef057611eef4761225a565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f9c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061204f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561204e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561205d57600090506121e4565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121085750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561212057600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121cb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121e357600a54600c81905550600b54600d819055505b5b6121f08484848461262c565b50505050565b600083831115829061223e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122359190612ddc565b60405180910390fd5b506000838561224d9190613d49565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836122a39190613dac565b9081150290604051600060405180830381858888f193505050501580156122ce573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836123189190613dac565b9081150290604051600060405180830381858888f19350505050158015612343573d6000803e3d6000fd5b5050565b600060065482111561238e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238590613e4f565b60405180910390fd5b6000612398612659565b90506123ad818461268490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123ec576123eb61312c565b5b60405190808252806020026020018201604052801561241a5781602001602082028036833780820191505090505b509050308160008151811061243257612431613499565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fd9190613e84565b8160018151811061251157612510613499565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117aa565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125dc959493929190613faa565b600060405180830381600087803b1580156125f657600080fd5b505af115801561260a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061263a576126396126ce565b5b61264584848461270b565b80612653576126526128d6565b5b50505050565b60008060006126666128ea565b9150915061267d818361268490919063ffffffff16565b9250505090565b60006126c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612949565b905092915050565b6000600c541480156126e257506000600d54145b61270957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061271d876129ac565b95509550955095509550955061277b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061281085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285c81612abc565b6128668483612b79565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128c39190612fa5565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061291e670de0b6b3a764000060065461268490919063ffffffff16565b82101561293c57600654670de0b6b3a7640000935093505050612945565b81819350935050505b9091565b60008083118290612990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129879190612ddc565b60405180910390fd5b506000838561299f9190613dac565b9050809150509392505050565b60008060008060008060008060006129c98a600c54600d54612bb3565b92509250925060006129d9612659565b905060008060006129ec8e878787612c49565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121f6565b905092915050565b6000808284612a6d9190613c83565b905083811015612ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa990614050565b60405180910390fd5b8091505092915050565b6000612ac6612659565b90506000612add8284612cd290919063ffffffff16565b9050612b3181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b8e82600654612a1490919063ffffffff16565b600681905550612ba981600754612a5e90919063ffffffff16565b6007819055505050565b600080600080612bdf6064612bd1888a612cd290919063ffffffff16565b61268490919063ffffffff16565b90506000612c096064612bfb888b612cd290919063ffffffff16565b61268490919063ffffffff16565b90506000612c3282612c24858c612a1490919063ffffffff16565b612a1490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c628589612cd290919063ffffffff16565b90506000612c798689612cd290919063ffffffff16565b90506000612c908789612cd290919063ffffffff16565b90506000612cb982612cab8587612a1490919063ffffffff16565b612a1490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612ce45760009050612d46565b60008284612cf29190614070565b9050828482612d019190613dac565b14612d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3890614124565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d86578082015181840152602081019050612d6b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612dae82612d4c565b612db88185612d57565b9350612dc8818560208601612d68565b612dd181612d92565b840191505092915050565b60006020820190508181036000830152612df68184612da3565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e3d82612e12565b9050919050565b612e4d81612e32565b8114612e5857600080fd5b50565b600081359050612e6a81612e44565b92915050565b6000819050919050565b612e8381612e70565b8114612e8e57600080fd5b50565b600081359050612ea081612e7a565b92915050565b60008060408385031215612ebd57612ebc612e08565b5b6000612ecb85828601612e5b565b9250506020612edc85828601612e91565b9150509250929050565b60008115159050919050565b612efb81612ee6565b82525050565b6000602082019050612f166000830184612ef2565b92915050565b6000819050919050565b6000612f41612f3c612f3784612e12565b612f1c565b612e12565b9050919050565b6000612f5382612f26565b9050919050565b6000612f6582612f48565b9050919050565b612f7581612f5a565b82525050565b6000602082019050612f906000830184612f6c565b92915050565b612f9f81612e70565b82525050565b6000602082019050612fba6000830184612f96565b92915050565b600080600060608486031215612fd957612fd8612e08565b5b6000612fe786828701612e5b565b9350506020612ff886828701612e5b565b925050604061300986828701612e91565b9150509250925092565b600060ff82169050919050565b61302981613013565b82525050565b60006020820190506130446000830184613020565b92915050565b61305381612e32565b82525050565b600060208201905061306e600083018461304a565b92915050565b60006020828403121561308a57613089612e08565b5b600061309884828501612e5b565b91505092915050565b6130aa81612ee6565b81146130b557600080fd5b50565b6000813590506130c7816130a1565b92915050565b6000602082840312156130e3576130e2612e08565b5b60006130f1848285016130b8565b91505092915050565b6000602082840312156131105761310f612e08565b5b600061311e84828501612e91565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61316482612d92565b810181811067ffffffffffffffff821117156131835761318261312c565b5b80604052505050565b6000613196612dfe565b90506131a2828261315b565b919050565b600067ffffffffffffffff8211156131c2576131c161312c565b5b602082029050602081019050919050565b600080fd5b60006131eb6131e6846131a7565b61318c565b9050808382526020820190506020840283018581111561320e5761320d6131d3565b5b835b8181101561323757806132238882612e5b565b845260208401935050602081019050613210565b5050509392505050565b600082601f83011261325657613255613127565b5b81356132668482602086016131d8565b91505092915050565b6000806040838503121561328657613285612e08565b5b600083013567ffffffffffffffff8111156132a4576132a3612e0d565b5b6132b085828601613241565b92505060206132c1858286016130b8565b9150509250929050565b600080600080608085870312156132e5576132e4612e08565b5b60006132f387828801612e91565b945050602061330487828801612e91565b935050604061331587828801612e91565b925050606061332687828801612e91565b91505092959194509250565b600080fd5b60008083601f84011261334d5761334c613127565b5b8235905067ffffffffffffffff81111561336a57613369613332565b5b602083019150836020820283011115613386576133856131d3565b5b9250929050565b6000806000604084860312156133a6576133a5612e08565b5b600084013567ffffffffffffffff8111156133c4576133c3612e0d565b5b6133d086828701613337565b935093505060206133e3868287016130b8565b9150509250925092565b6000806040838503121561340457613403612e08565b5b600061341285828601612e5b565b925050602061342385828601612e5b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613463602083612d57565b915061346e8261342d565b602082019050919050565b6000602082019050818103600083015261349281613456565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061350282612e70565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613534576135336134c8565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b600061359b602583612d57565b91506135a68261353f565b604082019050919050565b600060208201905081810360008301526135ca8161358e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b600061362d602283612d57565b9150613638826135d1565b604082019050919050565b6000602082019050818103600083015261365c81613620565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b60006136bf602683612d57565b91506136ca82613663565b604082019050919050565b600060208201905081810360008301526136ee816136b2565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b6000613751602383612d57565b915061375c826136f5565b604082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137e3602683612d57565b91506137ee82613787565b604082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613875602483612d57565b915061388082613819565b604082019050919050565b600060208201905081810360008301526138a481613868565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613907602283612d57565b9150613912826138ab565b604082019050919050565b60006020820190508181036000830152613936816138fa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613999602583612d57565b91506139a48261393d565b604082019050919050565b600060208201905081810360008301526139c88161398c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a2b602383612d57565b9150613a36826139cf565b604082019050919050565b60006020820190508181036000830152613a5a81613a1e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613abd602983612d57565b9150613ac882613a61565b604082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613b4f603f83612d57565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613bbb601c83612d57565b9150613bc682613b85565b602082019050919050565b60006020820190508181036000830152613bea81613bae565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613c4d602383612d57565b9150613c5882613bf1565b604082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b6000613c8e82612e70565b9150613c9983612e70565b9250828201905080821115613cb157613cb06134c8565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d13602383612d57565b9150613d1e82613cb7565b604082019050919050565b60006020820190508181036000830152613d4281613d06565b9050919050565b6000613d5482612e70565b9150613d5f83612e70565b9250828203905081811115613d7757613d766134c8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613db782612e70565b9150613dc283612e70565b925082613dd257613dd1613d7d565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e39602a83612d57565b9150613e4482613ddd565b604082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b600081519050613e7e81612e44565b92915050565b600060208284031215613e9a57613e99612e08565b5b6000613ea884828501613e6f565b91505092915050565b6000819050919050565b6000613ed6613ed1613ecc84613eb1565b612f1c565b612e70565b9050919050565b613ee681613ebb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f2181612e32565b82525050565b6000613f338383613f18565b60208301905092915050565b6000602082019050919050565b6000613f5782613eec565b613f618185613ef7565b9350613f6c83613f08565b8060005b83811015613f9d578151613f848882613f27565b9750613f8f83613f3f565b925050600181019050613f70565b5085935050505092915050565b600060a082019050613fbf6000830188612f96565b613fcc6020830187613edd565b8181036040830152613fde8186613f4c565b9050613fed606083018561304a565b613ffa6080830184612f96565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061403a601b83612d57565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b600061407b82612e70565b915061408683612e70565b925082820261409481612e70565b915082820484148315176140ab576140aa6134c8565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061410e602183612d57565b9150614119826140b2565b604082019050919050565b6000602082019050818103600083015261413d81614101565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202d73d00d19ed10f562a68390019e36c707e2b6bde9d47be8de059b4c7ada6c0d64736f6c63430008120033
Deployed Bytecode Sourcemap
4134:14060:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6650:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7582:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5488:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6930:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7784:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5790:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6838:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5536:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13116:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17562:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12680:235;;;;;;;;;;;;;:::i;:::-;;7034:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1646:148;;;;;;;;;;;;;:::i;:::-;;17703:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5680:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5227:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5734:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6742:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17370:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12924:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16624:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7181:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5189:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12435:236;;;;;;;;;;;;;:::i;:::-;;17957:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7389:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17833:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12322:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1803:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6650:83;6687:13;6720:5;;;;;;;;;;;;;;;;;6713:12;;6650:83;:::o;7582:193::-;7684:4;7706:39;7715:12;:10;:12::i;:::-;7729:7;7738:6;7706:8;:39::i;:::-;7763:4;7756:11;;7582:193;;;;:::o;5488:41::-;;;;;;;;;;;;;:::o;6930:95::-;6983:7;4680:18;7003:14;;6930:95;:::o;7784:446::-;7916:4;7933:36;7943:6;7951:9;7962:6;7933:9;:36::i;:::-;7980:220;8003:6;8024:12;:10;:12::i;:::-;8051:138;8107:6;8051:138;;;;;;;;;;;;;;;;;:11;:19;8063:6;8051:19;;;;;;;;;;;;;;;:33;8071:12;:10;:12::i;:::-;8051:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7980:8;:220::i;:::-;8218:4;8211:11;;7784:446;;;;;:::o;5790:53::-;;;;:::o;6838:83::-;6879:5;4356:1;6897:16;;6838:83;:::o;5536:28::-;;;;;;;;;;;;;:::o;13116:91::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13194:5:::1;13179:4;:12;13184:6;13179:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13116:91:::0;:::o;17562:101::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17643:12:::1;17629:11;;:26;;;;;;;;;;;;;;;;;;17562:101:::0;:::o;12680:235::-;12746:19;;;;;;;;;;;12730:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12785:17;;;;;;;;;;;12769:33;;:12;:10;:12::i;:::-;:33;;;12730:72;12722:81;;;;;;12814:26;12843:21;12814:50;;12875:32;12888:18;12875:12;:32::i;:::-;12711:204;12680:235::o;7034:138::-;7100:7;7127:37;7147:7;:16;7155:7;7147:16;;;;;;;;;;;;;;;;7127:19;:37::i;:::-;7120:44;;7034:138;;;:::o;1646:148::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1753:1:::1;1716:40;;1737:6;::::0;::::1;;;;;;;;1716:40;;;;;;;;;;;;1784:1;1767:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1646:148::o:0;17703:121::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17795:11:::1;17780:12;:26;;;;17703:121:::0;:::o;5680:46::-;;;;:::o;5227:43::-;;;;;;;;;;;;;;;;;:::o;1436:79::-;1474:7;1501:6;;;;;;;;;;;1494:13;;1436:79;:::o;5734:48::-;;;;:::o;6742:87::-;6781:13;6814:7;;;;;;;;;;;;;;;;;6807:14;;6742:87;:::o;17370:139::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17483:18:::1;17461:19;:40;;;;17370:139:::0;:::o;12924:183::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13011:9:::1;13006:94;13030:5;:12;13026:1;:16;13006:94;;;13081:7;13064:4;:14;13069:5;13075:1;13069:8;;;;;;;;:::i;:::-;;;;;;;;13064:14;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13044:3;;;;;:::i;:::-;;;;13006:94;;;;12924:183:::0;;:::o;16624:693::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16783:1:::1;16766:13;:18;;:40;;;;;16805:1;16788:13;:18;;16766:40;16758:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16882:1;16867:11;:16;;:37;;;;;16902:2;16887:11;:17;;16867:37;16859:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;16980:1;16962:14;:19;;:42;;;;;17003:1;16985:14;:19;;16962:42;16954:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17082:1;17066:12;:17;;:39;;;;;17103:2;17087:12;:18;;17066:39;17058:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17175:13;17158:14;:30;;;;17217:14;17199:15;:32;;;;17257:11;17242:12;:26;;;;17295:12;17279:13;:28;;;;16624:693:::0;;;;:::o;7181:199::-;7286:4;7308:42;7318:12;:10;:12::i;:::-;7332:9;7343:6;7308:9;:42::i;:::-;7368:4;7361:11;;7181:199;;;;:::o;5189:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12435:236::-;12501:19;;;;;;;;;;;12485:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12540:17;;;;;;;;;;;12524:33;;:12;:10;:12::i;:::-;:33;;;12485:72;12477:81;;;;;;12569:23;12595:24;12613:4;12595:9;:24::i;:::-;12569:50;;12630:33;12647:15;12630:16;:33::i;:::-;12466:205;12435:236::o;17957:234::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18074:9:::1;18070:114;18093:8;;:15;;18089:1;:19;18070:114;;;18164:8;18130:18;:31;18149:8;;18158:1;18149:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18130:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18110:3;;;;;:::i;:::-;;;;18070:114;;;;17957:234:::0;;;:::o;7389:184::-;7506:7;7538:11;:18;7550:5;7538:18;;;;;;;;;;;;;;;:27;7557:7;7538:27;;;;;;;;;;;;;;;;7531:34;;7389:184;;;;:::o;17833:115::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17927:13:::1;17910:14;:30;;;;17833:115:::0;:::o;12322:104::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12406:12:::1;12392:11;;:26;;;;;;;;;;;;;;;;;;12322:104:::0;:::o;1803:244::-;1571:12;:10;:12::i;:::-;1561:22;;:6;;;;;;;;;;:22;;;1553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1912:1:::1;1892:22;;:8;:22;;::::0;1884:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2002:8;1973:38;;1994:6;::::0;::::1;;;;;;;;1973:38;;;;;;;;;;;;2031:8;2022:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1803:244:::0;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;8927:369::-;9071:1;9054:19;;:5;:19;;;9046:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9152:1;9133:21;;:7;:21;;;9125:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9234:6;9204:11;:18;9216:5;9204:18;;;;;;;;;;;;;;;:27;9223:7;9204:27;;;;;;;;;;;;;;;:36;;;;9272:7;9256:32;;9265:5;9256:32;;;9281:6;9256:32;;;;;;:::i;:::-;;;;;;;;8927:369;;;:::o;9305:2357::-;9443:1;9427:18;;:4;:18;;;9419:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9520:1;9506:16;;:2;:16;;;9498:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9590:1;9581:6;:10;9573:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9663:7;:5;:7::i;:::-;9655:15;;:4;:15;;;;:32;;;;;9680:7;:5;:7::i;:::-;9674:13;;:2;:13;;;;9655:32;9651:1279;;;9745:11;;;;;;;;;;;9740:144;;9793:7;:5;:7::i;:::-;9785:15;;:4;:15;;;9777:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9740:144;9919:12;;9909:6;:22;;9901:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9988:4;:10;9993:4;9988:10;;;;;;;;;;;;;;;;;;;;;;;;;9987:11;:24;;;;;10003:4;:8;10008:2;10003:8;;;;;;;;;;;;;;;;;;;;;;;;;10002:9;9987:24;9979:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10078:13;;;;;;;;;;;10072:19;;:2;:19;;;10069:146;;10145:14;;10136:6;10120:13;10130:2;10120:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10112:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10069:146;10232:28;10263:24;10281:4;10263:9;:24::i;:::-;10232:55;;10302:12;10341:19;;10317:20;:43;;10302:58;;10405:19;;10381:20;:43;10378:138;;10481:19;;10458:42;;10378:138;10537:7;:18;;;;;10549:6;;;;;;;;;;10548:7;10537:18;:43;;;;;10567:13;;;;;;;;;;;10559:21;;:4;:21;;;;10537:43;:58;;;;;10584:11;;;;;;;;;;;10537:58;:87;;;;;10600:18;:24;10619:4;10600:24;;;;;;;;;;;;;;;;;;;;;;;;;10599:25;10537:87;:114;;;;;10629:18;:22;10648:2;10629:22;;;;;;;;;;;;;;;;;;;;;;;;;10628:23;10537:114;10533:386;;;10672:38;10689:20;10672:16;:38::i;:::-;10729:26;10758:21;10729:50;;10823:1;10802:18;:22;10798:106;;;10849:35;10862:21;10849:12;:35::i;:::-;10798:106;10653:266;10533:386;9689:1241;;9651:1279;10943:12;10958:4;10943:19;;11008:18;:24;11027:4;11008:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11036:18;:22;11055:2;11036:22;;;;;;;;;;;;;;;;;;;;;;;;;11008:50;11007:102;;;;11072:13;;;;;;;;;;;11064:21;;:4;:21;;;;:44;;;;;11095:13;;;;;;;;;;;11089:19;;:2;:19;;;;11064:44;11007:102;11003:597;;;11136:5;11126:15;;11003:597;;;11220:13;;;;;;;;;;;11212:21;;:4;:21;;;:55;;;;;11251:15;;;;;;;;;;;11237:30;;:2;:30;;;;11212:55;11209:162;;;11300:14;;11288:9;:26;;;;11343:12;;11333:7;:22;;;;11209:162;11431:13;;;;;;;;;;;11425:19;;:2;:19;;;:55;;;;;11464:15;;;;;;;;;;;11448:32;;:4;:32;;;;11425:55;11421:165;;;11513:15;;11501:9;:27;;;;11557:13;;11547:7;:23;;;;11421:165;11003:597;11613:41;11628:4;11634:2;11638:6;11646:7;11613:14;:41::i;:::-;9408:2254;9305:2357;;;:::o;2403:224::-;2523:7;2556:1;2551;:6;;2559:12;2543:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2583:9;2599:1;2595;:5;;;;:::i;:::-;2583:17;;2618:1;2611:8;;;2403:224;;;;;:::o;12163:150::-;12220:17;;;;;;;;;;;:26;;:36;12254:1;12247:6;:8;;;;:::i;:::-;12220:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12267:19;;;;;;;;;;;:28;;:38;12303:1;12296:6;:8;;;;:::i;:::-;12267:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12163:150;:::o;8239:323::-;8334:7;8392;;8381;:18;;8359:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8480:19;8502:10;:8;:10::i;:::-;8480:32;;8530:24;8542:11;8530:7;:11;;:24;;;;:::i;:::-;8523:31;;;8239:323;;;:::o;11671:483::-;5947:4;5938:6;;:13;;;;;;;;;;;;;;;;;;11749:21:::1;11787:1;11773:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11749:40;;11818:4;11800;11805:1;11800:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11844:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11834:4;11839:1;11834:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11877:62;11894:4;11909:15;;;;;;;;;;;11927:11;11877:8;:62::i;:::-;11950:15;;;;;;;;;;;:66;;;12031:11;12057:1;12073:4;12100;12120:15;11950:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11738:416;5983:5:::0;5974:6;;:14;;;;;;;;;;;;;;;;;;11671:483;:::o;13216:282::-;13372:7;13367:28;;13381:14;:12;:14::i;:::-;13367:28;13406:44;13424:6;13432:9;13443:6;13406:17;:44::i;:::-;13466:7;13461:29;;13475:15;:13;:15::i;:::-;13461:29;13216:282;;;;:::o;16185:164::-;16227:7;16248:15;16265;16284:19;:17;:19::i;:::-;16247:56;;;;16321:20;16333:7;16321;:11;;:20;;;;:::i;:::-;16314:27;;;;16185:164;:::o;2885:132::-;2943:7;2970:39;2974:1;2977;2970:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2963:46;;2885:132;;;;:::o;8571:221::-;8631:1;8618:9;;:14;:30;;;;;8647:1;8636:7;;:12;8618:30;8650:7;8614:43;8690:9;;8670:17;:29;;;;8728:7;;8710:15;:25;;;;8761:1;8749:9;:13;;;;8783:1;8773:7;:11;;;;8571:221;:::o;13507:610::-;13654:15;13684:23;13722:12;13749:23;13787:12;13814:13;13841:19;13852:7;13841:10;:19::i;:::-;13639:221;;;;;;;;;;;;13889:28;13909:7;13889;:15;13897:6;13889:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13871:7;:15;13879:6;13871:15;;;;;;;;;;;;;;;:46;;;;13949:39;13972:15;13949:7;:18;13957:9;13949:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13928:7;:18;13936:9;13928:18;;;;;;;;;;;;;;;:60;;;;13999:16;14009:5;13999:9;:16::i;:::-;14026:23;14038:4;14044;14026:11;:23::i;:::-;14082:9;14065:44;;14074:6;14065:44;;;14093:15;14065:44;;;;;;:::i;:::-;;;;;;;;13628:489;;;;;;13507:610;;;:::o;8801:117::-;8857:17;;8845:9;:29;;;;8895:15;;8885:7;:25;;;;8801:117::o;16358:257::-;16409:7;16418;16438:15;16456:7;;16438:25;;16474:15;4680:18;16474:25;;16524:20;4680:18;16524:7;;:11;;:20;;;;:::i;:::-;16514:7;:30;16510:61;;;16554:7;;4680:18;16546:25;;;;;;;;16510:61;16590:7;16599;16582:25;;;;;;16358:257;;;:::o;3023:223::-;3143:7;3175:1;3171;:5;3178:12;3163:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3202:9;3218:1;3214;:5;;;;:::i;:::-;3202:17;;3237:1;3230:8;;;3023:223;;;;;:::o;14540:615::-;14640:7;14662;14684;14706;14728;14750;14786:23;14811:12;14825:13;14855:40;14867:7;14876:9;;14887:7;;14855:11;:40::i;:::-;14785:110;;;;;;14906:19;14928:10;:8;:10::i;:::-;14906:32;;14950:15;14967:23;14992:12;15021:46;15033:7;15042:4;15048:5;15055:11;15021;:46::i;:::-;14949:118;;;;;;15086:7;15095:15;15112:4;15118:15;15135:4;15141:5;15078:69;;;;;;;;;;;;;;;;;;;14540:615;;;;;;;:::o;2261:136::-;2319:7;2346:43;2350:1;2353;2346:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2339:50;;2261:136;;;;:::o;2076:179::-;2134:7;2154:9;2170:1;2166;:5;;;;:::i;:::-;2154:17;;2195:1;2190;:6;;2182:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2246:1;2239:8;;;2076:179;;;;:::o;14126:211::-;14179:19;14201:10;:8;:10::i;:::-;14179:32;;14222:13;14238:22;14248:11;14238:5;:9;;:22;;;;:::i;:::-;14222:38;;14296:33;14323:5;14296:7;:22;14312:4;14296:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14271:7;:22;14287:4;14271:22;;;;;;;;;;;;;;;:58;;;;14168:169;;14126:211;:::o;14346:147::-;14424:17;14436:4;14424:7;;:11;;:17;;;;:::i;:::-;14414:7;:27;;;;14465:20;14480:4;14465:10;;:14;;:20;;;;:::i;:::-;14452:10;:33;;;;14346:147;;:::o;15164:469::-;15333:7;15355;15377;15412:12;15427:30;15453:3;15427:21;15439:8;15427:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15412:45;;15468:13;15484:28;15508:3;15484:19;15496:6;15484:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15468:44;;15523:23;15549:28;15571:5;15549:17;15561:4;15549:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15523:54;;15596:15;15613:4;15619:5;15588:37;;;;;;;;;15164:469;;;;;;;:::o;15642:534::-;15836:7;15858;15880;15915:15;15933:24;15945:11;15933:7;:11;;:24;;;;:::i;:::-;15915:42;;15968:12;15983:21;15992:11;15983:4;:8;;:21;;;;:::i;:::-;15968:36;;16015:13;16031:22;16041:11;16031:5;:9;;:22;;;;:::i;:::-;16015:38;;16064:23;16090:28;16112:5;16090:17;16102:4;16090:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16064:54;;16137:7;16146:15;16163:4;16129:39;;;;;;;;;;15642:534;;;;;;;;:::o;2633:246::-;2691:7;2720:1;2715;:6;2711:47;;2745:1;2738:8;;;;2711:47;2768:9;2784:1;2780;:5;;;;:::i;:::-;2768:17;;2813:1;2808;2804;:5;;;;:::i;:::-;:10;2796:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2870:1;2863:8;;;2633: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:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:323::-;6830:6;6879:2;6867:9;6858:7;6854:23;6850:32;6847:119;;;6885:79;;:::i;:::-;6847:119;7005:1;7030:50;7072:7;7063:6;7052:9;7048:22;7030:50;:::i;:::-;7020:60;;6976:114;6774:323;;;;:::o;7103:329::-;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:180::-;29478:77;29475:1;29468:88;29575:4;29572:1;29565:15;29599:4;29596:1;29589:15;29616:185;29656:1;29673:20;29691:1;29673:20;:::i;:::-;29668:25;;29707:20;29725:1;29707:20;:::i;:::-;29702:25;;29746:1;29736:35;;29751:18;;:::i;:::-;29736:35;29793:1;29790;29786:9;29781:14;;29616:185;;;;:::o;29807:229::-;29947:34;29943:1;29935:6;29931:14;29924:58;30016:12;30011:2;30003:6;29999:15;29992:37;29807:229;:::o;30042:366::-;30184:3;30205:67;30269:2;30264:3;30205:67;:::i;:::-;30198:74;;30281:93;30370:3;30281:93;:::i;:::-;30399:2;30394:3;30390:12;30383:19;;30042:366;;;:::o;30414:419::-;30580:4;30618:2;30607:9;30603:18;30595:26;;30667:9;30661:4;30657:20;30653:1;30642:9;30638:17;30631:47;30695:131;30821:4;30695:131;:::i;:::-;30687:139;;30414:419;;;:::o;30839:143::-;30896:5;30927:6;30921:13;30912:22;;30943:33;30970:5;30943:33;:::i;:::-;30839:143;;;;:::o;30988:351::-;31058:6;31107:2;31095:9;31086:7;31082:23;31078:32;31075:119;;;31113:79;;:::i;:::-;31075:119;31233:1;31258:64;31314:7;31305:6;31294:9;31290:22;31258:64;:::i;:::-;31248:74;;31204:128;30988:351;;;;:::o;31345:85::-;31390:7;31419:5;31408:16;;31345:85;;;:::o;31436:158::-;31494:9;31527:61;31545:42;31554:32;31580:5;31554:32;:::i;:::-;31545:42;:::i;:::-;31527:61;:::i;:::-;31514:74;;31436:158;;;:::o;31600:147::-;31695:45;31734:5;31695:45;:::i;:::-;31690:3;31683:58;31600:147;;:::o;31753:114::-;31820:6;31854:5;31848:12;31838:22;;31753:114;;;:::o;31873:184::-;31972:11;32006:6;32001:3;31994:19;32046:4;32041:3;32037:14;32022:29;;31873:184;;;;:::o;32063:132::-;32130:4;32153:3;32145:11;;32183:4;32178:3;32174:14;32166:22;;32063:132;;;:::o;32201:108::-;32278:24;32296:5;32278:24;:::i;:::-;32273:3;32266:37;32201:108;;:::o;32315:179::-;32384:10;32405:46;32447:3;32439:6;32405:46;:::i;:::-;32483:4;32478:3;32474:14;32460:28;;32315:179;;;;:::o;32500:113::-;32570:4;32602;32597:3;32593:14;32585:22;;32500:113;;;:::o;32649:732::-;32768:3;32797:54;32845:5;32797:54;:::i;:::-;32867:86;32946:6;32941:3;32867:86;:::i;:::-;32860:93;;32977:56;33027:5;32977:56;:::i;:::-;33056:7;33087:1;33072:284;33097:6;33094:1;33091:13;33072:284;;;33173:6;33167:13;33200:63;33259:3;33244:13;33200:63;:::i;:::-;33193:70;;33286:60;33339:6;33286:60;:::i;:::-;33276:70;;33132:224;33119:1;33116;33112:9;33107:14;;33072:284;;;33076:14;33372:3;33365:10;;32773:608;;;32649:732;;;;:::o;33387:831::-;33650:4;33688:3;33677:9;33673:19;33665:27;;33702:71;33770:1;33759:9;33755:17;33746:6;33702:71;:::i;:::-;33783:80;33859:2;33848:9;33844:18;33835:6;33783:80;:::i;:::-;33910:9;33904:4;33900:20;33895:2;33884:9;33880:18;33873:48;33938:108;34041:4;34032:6;33938:108;:::i;:::-;33930:116;;34056:72;34124:2;34113:9;34109:18;34100:6;34056:72;:::i;:::-;34138:73;34206:3;34195:9;34191:19;34182:6;34138:73;:::i;:::-;33387:831;;;;;;;;:::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://2d73d00d19ed10f562a68390019e36c707e2b6bde9d47be8de059b4c7ada6c0d
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.