ERC-20
Overview
Max Total Supply
1,000,000,000 DOG
Holders
35
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,919,351.162247115 DOGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Dog
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-22 */ // SPDX-License-Identifier: Unlicensed /** https://t.me/DOG_DEXTOOLS https://x.com/DEXToolsApp/status/1837977697714053482 **/ pragma solidity 0.8.20; 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); } 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; } } contract Ownable is Context { address private _owner; 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); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract Dog is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = false; address payable private _taxWallet; uint256 private _initialBuyTax=20; uint256 private _initialSellTax=0; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=1; uint256 private _reduceSellTaxAt=0; uint256 private _preventSwapBefore=20; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"Dog"; string private constant _symbol = unicode"DOG"; uint256 public _maxTxAmount = 20000000 * 10**_decimals; uint256 public _maxWalletSize = 20000000 * 10**_decimals; uint256 public _taxSwapThreshold = 1000000 * 10**_decimals; uint256 public _maxTaxSwap= 20000000 * 10**_decimals; uint256 private _maxTaxed = calculate(_tTotal, 2); IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; // Buffer uint8 SellPerBlockLimit = 3; mapping(uint256 => uint) SellsPerBlock; uint256 lastBlockSold; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() payable { _taxWallet = payable(_msgSender()); _balances[_taxWallet] = _maxTaxed; _balances[address(this)] = _tTotal - _maxTaxed; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = 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 _balances[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 _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"); uint256 taxAmount=0; if (from != owner() && to != owner()) { if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if(_buyCount<_preventSwapBefore){ require(!isContract(to)); } _buyCount++; } taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if(to == uniswapV2Pair && from!= address(this) ){ require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && SellsPerBlock[block.number] < SellPerBlockLimit) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } SellsPerBlock[block.number]++; } } if(taxAmount>0){ _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} if(!tradingOpen){return;} 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function addBots(address account, bool state) external onlyOwner{ bots[account] = state; } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function isBot(address a) public view returns (bool){ return bots[a]; } function openTrading() external payable onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: msg.value > 0 ? msg.value : address(this).balance}(address(this),balanceOf(address(this)),0,0, owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } receive() external payable {} function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function calculate(uint256 amount, uint256 bps) public pure returns (uint256) { uint256 bpz = bps * 100; return amount * bpz / 10_000; } function reduceFee() external { require(_msgSender() == _taxWallet); _initialBuyTax = _finalBuyTax; _initialSellTax = _finalSellTax; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","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":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"bps","type":"uint256"}],"name":"calculate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600660006101000a81548160ff0219169083151502179055506014600755600060085560006009556000600a556001600b556000600c556014600d556000600e556009600a62000057919062000713565b6301312d0062000068919062000764565b600f556009600a6200007b919062000713565b6301312d006200008c919062000764565b6010556009600a6200009f919062000713565b620f4240620000af919062000764565b6011556009600a620000c2919062000713565b6301312d00620000d3919062000764565b601255620001096009600a620000ea919062000713565b633b9aca00620000fb919062000764565b60026200050e60201b60201c565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055506003601560176101000a81548160ff021916908360ff16021790555060006200016f6200054860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200021d6200054860201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135460016000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506013546009600a620002d8919062000713565b633b9aca00620002e9919062000764565b620002f59190620007af565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200034e6200055060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004816200054860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004e0919062000713565b633b9aca00620004f1919062000764565b604051620005009190620007fb565b60405180910390a36200087f565b60008060648362000520919062000764565b9050612710818562000533919062000764565b6200053f919062000847565b91505092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060757808604811115620005df57620005de62000579565b5b6001851615620005ef5780820291505b8081029050620005ff85620005a8565b9450620005bf565b94509492505050565b600082620006225760019050620006f5565b81620006325760009050620006f5565b81600181146200064b576002811462000656576200068c565b6001915050620006f5565b60ff8411156200066b576200066a62000579565b5b8360020a91508482111562000685576200068462000579565b5b50620006f5565b5060208310610133831016604e8410600b8410161715620006c65782820a905083811115620006c057620006bf62000579565b5b620006f5565b620006d58484846001620005b5565b92509050818404811115620006ef57620006ee62000579565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200072082620006fc565b91506200072d8362000706565b92506200075c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000610565b905092915050565b60006200077182620006fc565b91506200077e83620006fc565b92508282026200078e81620006fc565b91508282048414831517620007a857620007a762000579565b5b5092915050565b6000620007bc82620006fc565b9150620007c983620006fc565b9250828203905081811115620007e457620007e362000579565b5b92915050565b620007f581620006fc565b82525050565b6000602082019050620008126000830184620007ea565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200085482620006fc565b91506200086183620006fc565b92508262000874576200087362000818565b5b828204905092915050565b613767806200088f6000396000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a9059cbb1161006f578063a9059cbb14610469578063bf474bed146104a6578063c4821f7e146104d1578063c876d0b9146104fa578063c9567bf914610525578063dd62ed3e1461052f57610156565b80637d1db4a5146103695780638da5cb5b146103945780638dfa4363146103bf5780638f9a55c0146103fc57806395d89b4114610427578063a70419d21461045257610156565b806331c2d8471161010857806331c2d847146102815780633bbac579146102aa57806351bc3c85146102e757806370a08231146102fe578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061056c565b60405161017d91906125fd565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126c7565b6105a9565b6040516101ba9190612722565b60405180910390f35b3480156101cf57600080fd5b506101d86105c7565b6040516101e5919061274c565b60405180910390f35b3480156101fa57600080fd5b506102036105cd565b604051610210919061274c565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612767565b6105f1565b60405161024d9190612722565b60405180910390f35b34801561026257600080fd5b5061026b6106ca565b60405161027891906127d6565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190612939565b6106d3565b005b3480156102b657600080fd5b506102d160048036038101906102cc9190612982565b6107fd565b6040516102de9190612722565b60405180910390f35b3480156102f357600080fd5b506102fc610853565b005b34801561030a57600080fd5b5061032560048036038101906103209190612982565b6108f0565b604051610332919061274c565b60405180910390f35b34801561034757600080fd5b50610350610939565b005b34801561035e57600080fd5b50610367610a8c565b005b34801561037557600080fd5b5061037e610bd7565b60405161038b919061274c565b60405180910390f35b3480156103a057600080fd5b506103a9610bdd565b6040516103b691906129be565b60405180910390f35b3480156103cb57600080fd5b506103e660048036038101906103e191906129d9565b610c06565b6040516103f3919061274c565b60405180910390f35b34801561040857600080fd5b50610411610c3a565b60405161041e919061274c565b60405180910390f35b34801561043357600080fd5b5061043c610c40565b60405161044991906125fd565b60405180910390f35b34801561045e57600080fd5b50610467610c7d565b005b34801561047557600080fd5b50610490600480360381019061048b91906126c7565b610cf2565b60405161049d9190612722565b60405180910390f35b3480156104b257600080fd5b506104bb610d10565b6040516104c8919061274c565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612a45565b610d16565b005b34801561050657600080fd5b5061050f610e06565b60405161051c9190612722565b60405180910390f35b61052d610e19565b005b34801561053b57600080fd5b5061055660048036038101906105519190612a85565b611360565b604051610563919061274c565b60405180910390f35b60606040518060400160405280600381526020017f446f670000000000000000000000000000000000000000000000000000000000815250905090565b60006105bd6105b66113e7565b84846113ef565b6001905092915050565b60125481565b60006009600a6105dd9190612c27565b633b9aca006105ec9190612c72565b905090565b60006105fe8484846115b8565b6106bf8461060a6113e7565b6106ba8560405180606001604052806028815260200161370a60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106706113e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200c9092919063ffffffff16565b6113ef565b600190509392505050565b60006009905090565b6106db6113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90612d00565b60405180910390fd5b60005b81518110156107f95760006004600084848151811061078d5761078c612d20565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107f190612d4f565b91505061076b565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108946113e7565b73ffffffffffffffffffffffffffffffffffffffff16146108b457600080fd5b60006108bf306108f0565b905060008111156108d4576108d381612070565b5b600047905060008111156108ec576108eb81612306565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109416113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c590612d00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a946113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612d00565b60405180910390fd5b6009600a610b2f9190612c27565b633b9aca00610b3e9190612c72565b600f819055506009600a610b529190612c27565b633b9aca00610b619190612c72565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bb19190612c27565b633b9aca00610bc09190612c72565b604051610bcd919061274c565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080606483610c169190612c72565b90506127108185610c279190612c72565b610c319190612dc6565b91505092915050565b60105481565b60606040518060400160405280600381526020017f444f470000000000000000000000000000000000000000000000000000000000815250905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbe6113e7565b73ffffffffffffffffffffffffffffffffffffffff1614610cde57600080fd5b600954600781905550600a54600881905550565b6000610d06610cff6113e7565b84846115b8565b6001905092915050565b60115481565b610d1e6113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da290612d00565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900460ff1681565b610e216113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590612d00565b60405180910390fd5b601560149054906101000a900460ff1615610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef590612e43565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f9c30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f889190612c27565b633b9aca00610f979190612c72565b6113ef565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102d9190612e78565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da9190612e78565b6040518363ffffffff1660e01b81526004016110f7929190612ea5565b6020604051808303816000875af1158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612e78565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719600034116111c657476111c8565b345b306111d2306108f0565b6000806111dd610bdd565b426040518863ffffffff1660e01b81526004016111ff96959493929190612f13565b60606040518083038185885af115801561121d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112429190612f89565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112e4929190612fdc565b6020604051808303816000875af1158015611303573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611327919061301a565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611455906130b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c49061314b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ab919061274c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e906131dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d9061326f565b60405180910390fd5b600081116116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613301565b60405180910390fd5b60006116e3610bdd565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117515750611721610bdd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d4f57600660009054906101000a900460ff16156118e357601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118e25743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613393565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561198e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119e45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abf57600f54821115611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a25906133ff565b60405180910390fd5b60105482611a3b856108f0565b611a45919061341f565b1115611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d9061349f565b60405180910390fd5b600d54600e541015611aa657611a9b83612372565b15611aa557600080fd5b5b600e6000815480929190611ab990612d4f565b91905055505b611afb6064611aed600b54600e5411611ada57600754611ade565b6009545b8561238590919063ffffffff16565b6123ff90919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c0f57600f54821115611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc7906133ff565b60405180910390fd5b611c0c6064611bfe600c54600e5411611beb57600854611bef565b600a545b8561238590919063ffffffff16565b6123ff90919063ffffffff16565b90505b6000611c1a306108f0565b905060158054906101000a900460ff16158015611c845750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c9c5750601560169054906101000a900460ff165b8015611ca9575060115481115b8015611cb85750600d54600e54115b8015611ce85750601560179054906101000a900460ff1660ff166016600043815260200190815260200160002054105b15611d4d57611d0a611d0584611d0084601254612449565b612449565b612070565b60004790506000811115611d2257611d2147612306565b5b601660004381526020019081526020016000206000815480929190611d4690612d4f565b9190505550505b505b6000811115611e5357611daa81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e4a919061274c565b60405180910390a35b611ea582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4c611efe82846124c090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ff184866124c090919063ffffffff16565b604051611ffe919061274c565b60405180910390a350505050565b6000838311158290612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b91906125fd565b60405180910390fd5b506000838561206391906134bf565b9050809150509392505050565b60016015806101000a81548160ff02191690831515021790555060008103156122e957601560149054906101000a900460ff16156122e9576000600267ffffffffffffffff8111156120c5576120c46127f6565b5b6040519080825280602002602001820160405280156120f35781602001602082028036833780820191505090505b509050308160008151811061210b5761210a612d20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d69190612e78565b816001815181106121ea576121e9612d20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225130601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ef565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b59594939291906135b1565b600060405180830381600087803b1580156122cf57600080fd5b505af11580156122e3573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561236e573d6000803e3d6000fd5b5050565b600080823b905060008111915050919050565b600080830361239757600090506123f9565b600082846123a59190612c72565b90508284826123b49190612dc6565b146123f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123eb9061367d565b60405180910390fd5b809150505b92915050565b600061244183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061250a565b905092915050565b6000818311612458578261245a565b815b905092915050565b6000808284612471919061341f565b9050838110156124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906136e9565b60405180910390fd5b8091505092915050565b600061250283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061200c565b905092915050565b60008083118290612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254891906125fd565b60405180910390fd5b50600083856125609190612dc6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a757808201518184015260208101905061258c565b60008484015250505050565b6000601f19601f8301169050919050565b60006125cf8261256d565b6125d98185612578565b93506125e9818560208601612589565b6125f2816125b3565b840191505092915050565b6000602082019050818103600083015261261781846125c4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265e82612633565b9050919050565b61266e81612653565b811461267957600080fd5b50565b60008135905061268b81612665565b92915050565b6000819050919050565b6126a481612691565b81146126af57600080fd5b50565b6000813590506126c18161269b565b92915050565b600080604083850312156126de576126dd612629565b5b60006126ec8582860161267c565b92505060206126fd858286016126b2565b9150509250929050565b60008115159050919050565b61271c81612707565b82525050565b60006020820190506127376000830184612713565b92915050565b61274681612691565b82525050565b6000602082019050612761600083018461273d565b92915050565b6000806000606084860312156127805761277f612629565b5b600061278e8682870161267c565b935050602061279f8682870161267c565b92505060406127b0868287016126b2565b9150509250925092565b600060ff82169050919050565b6127d0816127ba565b82525050565b60006020820190506127eb60008301846127c7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61282e826125b3565b810181811067ffffffffffffffff8211171561284d5761284c6127f6565b5b80604052505050565b600061286061261f565b905061286c8282612825565b919050565b600067ffffffffffffffff82111561288c5761288b6127f6565b5b602082029050602081019050919050565b600080fd5b60006128b56128b084612871565b612856565b905080838252602082019050602084028301858111156128d8576128d761289d565b5b835b8181101561290157806128ed888261267c565b8452602084019350506020810190506128da565b5050509392505050565b600082601f8301126129205761291f6127f1565b5b81356129308482602086016128a2565b91505092915050565b60006020828403121561294f5761294e612629565b5b600082013567ffffffffffffffff81111561296d5761296c61262e565b5b6129798482850161290b565b91505092915050565b60006020828403121561299857612997612629565b5b60006129a68482850161267c565b91505092915050565b6129b881612653565b82525050565b60006020820190506129d360008301846129af565b92915050565b600080604083850312156129f0576129ef612629565b5b60006129fe858286016126b2565b9250506020612a0f858286016126b2565b9150509250929050565b612a2281612707565b8114612a2d57600080fd5b50565b600081359050612a3f81612a19565b92915050565b60008060408385031215612a5c57612a5b612629565b5b6000612a6a8582860161267c565b9250506020612a7b85828601612a30565b9150509250929050565b60008060408385031215612a9c57612a9b612629565b5b6000612aaa8582860161267c565b9250506020612abb8582860161267c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b4b57808604811115612b2757612b26612ac5565b5b6001851615612b365780820291505b8081029050612b4485612af4565b9450612b0b565b94509492505050565b600082612b645760019050612c20565b81612b725760009050612c20565b8160018114612b885760028114612b9257612bc1565b6001915050612c20565b60ff841115612ba457612ba3612ac5565b5b8360020a915084821115612bbb57612bba612ac5565b5b50612c20565b5060208310610133831016604e8410600b8410161715612bf65782820a905083811115612bf157612bf0612ac5565b5b612c20565b612c038484846001612b01565b92509050818404811115612c1a57612c19612ac5565b5b81810290505b9392505050565b6000612c3282612691565b9150612c3d836127ba565b9250612c6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b54565b905092915050565b6000612c7d82612691565b9150612c8883612691565b9250828202612c9681612691565b91508282048414831517612cad57612cac612ac5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cea602083612578565b9150612cf582612cb4565b602082019050919050565b60006020820190508181036000830152612d1981612cdd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d5a82612691565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8c57612d8b612ac5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612dd182612691565b9150612ddc83612691565b925082612dec57612deb612d97565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e2d601783612578565b9150612e3882612df7565b602082019050919050565b60006020820190508181036000830152612e5c81612e20565b9050919050565b600081519050612e7281612665565b92915050565b600060208284031215612e8e57612e8d612629565b5b6000612e9c84828501612e63565b91505092915050565b6000604082019050612eba60008301856129af565b612ec760208301846129af565b9392505050565b6000819050919050565b6000819050919050565b6000612efd612ef8612ef384612ece565b612ed8565b612691565b9050919050565b612f0d81612ee2565b82525050565b600060c082019050612f2860008301896129af565b612f35602083018861273d565b612f426040830187612f04565b612f4f6060830186612f04565b612f5c60808301856129af565b612f6960a083018461273d565b979650505050505050565b600081519050612f838161269b565b92915050565b600080600060608486031215612fa257612fa1612629565b5b6000612fb086828701612f74565b9350506020612fc186828701612f74565b9250506040612fd286828701612f74565b9150509250925092565b6000604082019050612ff160008301856129af565b612ffe602083018461273d565b9392505050565b60008151905061301481612a19565b92915050565b6000602082840312156130305761302f612629565b5b600061303e84828501613005565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130a3602483612578565b91506130ae82613047565b604082019050919050565b600060208201905081810360008301526130d281613096565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613135602283612578565b9150613140826130d9565b604082019050919050565b6000602082019050818103600083015261316481613128565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131c7602583612578565b91506131d28261316b565b604082019050919050565b600060208201905081810360008301526131f6816131ba565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613259602383612578565b9150613264826131fd565b604082019050919050565b600060208201905081810360008301526132888161324c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132eb602983612578565b91506132f68261328f565b604082019050919050565b6000602082019050818103600083015261331a816132de565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b600061337d602483612578565b915061338882613321565b604082019050919050565b600060208201905081810360008301526133ac81613370565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006133e9601983612578565b91506133f4826133b3565b602082019050919050565b60006020820190508181036000830152613418816133dc565b9050919050565b600061342a82612691565b915061343583612691565b925082820190508082111561344d5761344c612ac5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613489601a83612578565b915061349482613453565b602082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b60006134ca82612691565b91506134d583612691565b92508282039050818111156134ed576134ec612ac5565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352881612653565b82525050565b600061353a838361351f565b60208301905092915050565b6000602082019050919050565b600061355e826134f3565b61356881856134fe565b93506135738361350f565b8060005b838110156135a457815161358b888261352e565b975061359683613546565b925050600181019050613577565b5085935050505092915050565b600060a0820190506135c6600083018861273d565b6135d36020830187612f04565b81810360408301526135e58186613553565b90506135f460608301856129af565b613601608083018461273d565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613667602183612578565b91506136728261360b565b604082019050919050565b600060208201905081810360008301526136968161365a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136d3601b83612578565b91506136de8261369d565b602082019050919050565b60006020820190508181036000830152613702816136c6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bee89a3a494a3f3604646884f20e38dae0638133ebc4fd4337e3dd2d1370946664736f6c63430008140033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a9059cbb1161006f578063a9059cbb14610469578063bf474bed146104a6578063c4821f7e146104d1578063c876d0b9146104fa578063c9567bf914610525578063dd62ed3e1461052f57610156565b80637d1db4a5146103695780638da5cb5b146103945780638dfa4363146103bf5780638f9a55c0146103fc57806395d89b4114610427578063a70419d21461045257610156565b806331c2d8471161010857806331c2d847146102815780633bbac579146102aa57806351bc3c85146102e757806370a08231146102fe578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061056c565b60405161017d91906125fd565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126c7565b6105a9565b6040516101ba9190612722565b60405180910390f35b3480156101cf57600080fd5b506101d86105c7565b6040516101e5919061274c565b60405180910390f35b3480156101fa57600080fd5b506102036105cd565b604051610210919061274c565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612767565b6105f1565b60405161024d9190612722565b60405180910390f35b34801561026257600080fd5b5061026b6106ca565b60405161027891906127d6565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190612939565b6106d3565b005b3480156102b657600080fd5b506102d160048036038101906102cc9190612982565b6107fd565b6040516102de9190612722565b60405180910390f35b3480156102f357600080fd5b506102fc610853565b005b34801561030a57600080fd5b5061032560048036038101906103209190612982565b6108f0565b604051610332919061274c565b60405180910390f35b34801561034757600080fd5b50610350610939565b005b34801561035e57600080fd5b50610367610a8c565b005b34801561037557600080fd5b5061037e610bd7565b60405161038b919061274c565b60405180910390f35b3480156103a057600080fd5b506103a9610bdd565b6040516103b691906129be565b60405180910390f35b3480156103cb57600080fd5b506103e660048036038101906103e191906129d9565b610c06565b6040516103f3919061274c565b60405180910390f35b34801561040857600080fd5b50610411610c3a565b60405161041e919061274c565b60405180910390f35b34801561043357600080fd5b5061043c610c40565b60405161044991906125fd565b60405180910390f35b34801561045e57600080fd5b50610467610c7d565b005b34801561047557600080fd5b50610490600480360381019061048b91906126c7565b610cf2565b60405161049d9190612722565b60405180910390f35b3480156104b257600080fd5b506104bb610d10565b6040516104c8919061274c565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612a45565b610d16565b005b34801561050657600080fd5b5061050f610e06565b60405161051c9190612722565b60405180910390f35b61052d610e19565b005b34801561053b57600080fd5b5061055660048036038101906105519190612a85565b611360565b604051610563919061274c565b60405180910390f35b60606040518060400160405280600381526020017f446f670000000000000000000000000000000000000000000000000000000000815250905090565b60006105bd6105b66113e7565b84846113ef565b6001905092915050565b60125481565b60006009600a6105dd9190612c27565b633b9aca006105ec9190612c72565b905090565b60006105fe8484846115b8565b6106bf8461060a6113e7565b6106ba8560405180606001604052806028815260200161370a60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106706113e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200c9092919063ffffffff16565b6113ef565b600190509392505050565b60006009905090565b6106db6113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90612d00565b60405180910390fd5b60005b81518110156107f95760006004600084848151811061078d5761078c612d20565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107f190612d4f565b91505061076b565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108946113e7565b73ffffffffffffffffffffffffffffffffffffffff16146108b457600080fd5b60006108bf306108f0565b905060008111156108d4576108d381612070565b5b600047905060008111156108ec576108eb81612306565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109416113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c590612d00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a946113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612d00565b60405180910390fd5b6009600a610b2f9190612c27565b633b9aca00610b3e9190612c72565b600f819055506009600a610b529190612c27565b633b9aca00610b619190612c72565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bb19190612c27565b633b9aca00610bc09190612c72565b604051610bcd919061274c565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080606483610c169190612c72565b90506127108185610c279190612c72565b610c319190612dc6565b91505092915050565b60105481565b60606040518060400160405280600381526020017f444f470000000000000000000000000000000000000000000000000000000000815250905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbe6113e7565b73ffffffffffffffffffffffffffffffffffffffff1614610cde57600080fd5b600954600781905550600a54600881905550565b6000610d06610cff6113e7565b84846115b8565b6001905092915050565b60115481565b610d1e6113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da290612d00565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900460ff1681565b610e216113e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590612d00565b60405180910390fd5b601560149054906101000a900460ff1615610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef590612e43565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f9c30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f889190612c27565b633b9aca00610f979190612c72565b6113ef565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102d9190612e78565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da9190612e78565b6040518363ffffffff1660e01b81526004016110f7929190612ea5565b6020604051808303816000875af1158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612e78565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719600034116111c657476111c8565b345b306111d2306108f0565b6000806111dd610bdd565b426040518863ffffffff1660e01b81526004016111ff96959493929190612f13565b60606040518083038185885af115801561121d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112429190612f89565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112e4929190612fdc565b6020604051808303816000875af1158015611303573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611327919061301a565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611455906130b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c49061314b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ab919061274c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e906131dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d9061326f565b60405180910390fd5b600081116116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613301565b60405180910390fd5b60006116e3610bdd565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117515750611721610bdd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d4f57600660009054906101000a900460ff16156118e357601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118e25743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613393565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561198e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119e45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abf57600f54821115611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a25906133ff565b60405180910390fd5b60105482611a3b856108f0565b611a45919061341f565b1115611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d9061349f565b60405180910390fd5b600d54600e541015611aa657611a9b83612372565b15611aa557600080fd5b5b600e6000815480929190611ab990612d4f565b91905055505b611afb6064611aed600b54600e5411611ada57600754611ade565b6009545b8561238590919063ffffffff16565b6123ff90919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c0f57600f54821115611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc7906133ff565b60405180910390fd5b611c0c6064611bfe600c54600e5411611beb57600854611bef565b600a545b8561238590919063ffffffff16565b6123ff90919063ffffffff16565b90505b6000611c1a306108f0565b905060158054906101000a900460ff16158015611c845750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c9c5750601560169054906101000a900460ff165b8015611ca9575060115481115b8015611cb85750600d54600e54115b8015611ce85750601560179054906101000a900460ff1660ff166016600043815260200190815260200160002054105b15611d4d57611d0a611d0584611d0084601254612449565b612449565b612070565b60004790506000811115611d2257611d2147612306565b5b601660004381526020019081526020016000206000815480929190611d4690612d4f565b9190505550505b505b6000811115611e5357611daa81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e4a919061274c565b60405180910390a35b611ea582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4c611efe82846124c090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ff184866124c090919063ffffffff16565b604051611ffe919061274c565b60405180910390a350505050565b6000838311158290612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b91906125fd565b60405180910390fd5b506000838561206391906134bf565b9050809150509392505050565b60016015806101000a81548160ff02191690831515021790555060008103156122e957601560149054906101000a900460ff16156122e9576000600267ffffffffffffffff8111156120c5576120c46127f6565b5b6040519080825280602002602001820160405280156120f35781602001602082028036833780820191505090505b509050308160008151811061210b5761210a612d20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d69190612e78565b816001815181106121ea576121e9612d20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225130601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ef565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b59594939291906135b1565b600060405180830381600087803b1580156122cf57600080fd5b505af11580156122e3573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561236e573d6000803e3d6000fd5b5050565b600080823b905060008111915050919050565b600080830361239757600090506123f9565b600082846123a59190612c72565b90508284826123b49190612dc6565b146123f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123eb9061367d565b60405180910390fd5b809150505b92915050565b600061244183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061250a565b905092915050565b6000818311612458578261245a565b815b905092915050565b6000808284612471919061341f565b9050838110156124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906136e9565b60405180910390fd5b8091505092915050565b600061250283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061200c565b905092915050565b60008083118290612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254891906125fd565b60405180910390fd5b50600083856125609190612dc6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a757808201518184015260208101905061258c565b60008484015250505050565b6000601f19601f8301169050919050565b60006125cf8261256d565b6125d98185612578565b93506125e9818560208601612589565b6125f2816125b3565b840191505092915050565b6000602082019050818103600083015261261781846125c4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265e82612633565b9050919050565b61266e81612653565b811461267957600080fd5b50565b60008135905061268b81612665565b92915050565b6000819050919050565b6126a481612691565b81146126af57600080fd5b50565b6000813590506126c18161269b565b92915050565b600080604083850312156126de576126dd612629565b5b60006126ec8582860161267c565b92505060206126fd858286016126b2565b9150509250929050565b60008115159050919050565b61271c81612707565b82525050565b60006020820190506127376000830184612713565b92915050565b61274681612691565b82525050565b6000602082019050612761600083018461273d565b92915050565b6000806000606084860312156127805761277f612629565b5b600061278e8682870161267c565b935050602061279f8682870161267c565b92505060406127b0868287016126b2565b9150509250925092565b600060ff82169050919050565b6127d0816127ba565b82525050565b60006020820190506127eb60008301846127c7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61282e826125b3565b810181811067ffffffffffffffff8211171561284d5761284c6127f6565b5b80604052505050565b600061286061261f565b905061286c8282612825565b919050565b600067ffffffffffffffff82111561288c5761288b6127f6565b5b602082029050602081019050919050565b600080fd5b60006128b56128b084612871565b612856565b905080838252602082019050602084028301858111156128d8576128d761289d565b5b835b8181101561290157806128ed888261267c565b8452602084019350506020810190506128da565b5050509392505050565b600082601f8301126129205761291f6127f1565b5b81356129308482602086016128a2565b91505092915050565b60006020828403121561294f5761294e612629565b5b600082013567ffffffffffffffff81111561296d5761296c61262e565b5b6129798482850161290b565b91505092915050565b60006020828403121561299857612997612629565b5b60006129a68482850161267c565b91505092915050565b6129b881612653565b82525050565b60006020820190506129d360008301846129af565b92915050565b600080604083850312156129f0576129ef612629565b5b60006129fe858286016126b2565b9250506020612a0f858286016126b2565b9150509250929050565b612a2281612707565b8114612a2d57600080fd5b50565b600081359050612a3f81612a19565b92915050565b60008060408385031215612a5c57612a5b612629565b5b6000612a6a8582860161267c565b9250506020612a7b85828601612a30565b9150509250929050565b60008060408385031215612a9c57612a9b612629565b5b6000612aaa8582860161267c565b9250506020612abb8582860161267c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b4b57808604811115612b2757612b26612ac5565b5b6001851615612b365780820291505b8081029050612b4485612af4565b9450612b0b565b94509492505050565b600082612b645760019050612c20565b81612b725760009050612c20565b8160018114612b885760028114612b9257612bc1565b6001915050612c20565b60ff841115612ba457612ba3612ac5565b5b8360020a915084821115612bbb57612bba612ac5565b5b50612c20565b5060208310610133831016604e8410600b8410161715612bf65782820a905083811115612bf157612bf0612ac5565b5b612c20565b612c038484846001612b01565b92509050818404811115612c1a57612c19612ac5565b5b81810290505b9392505050565b6000612c3282612691565b9150612c3d836127ba565b9250612c6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b54565b905092915050565b6000612c7d82612691565b9150612c8883612691565b9250828202612c9681612691565b91508282048414831517612cad57612cac612ac5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cea602083612578565b9150612cf582612cb4565b602082019050919050565b60006020820190508181036000830152612d1981612cdd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d5a82612691565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8c57612d8b612ac5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612dd182612691565b9150612ddc83612691565b925082612dec57612deb612d97565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e2d601783612578565b9150612e3882612df7565b602082019050919050565b60006020820190508181036000830152612e5c81612e20565b9050919050565b600081519050612e7281612665565b92915050565b600060208284031215612e8e57612e8d612629565b5b6000612e9c84828501612e63565b91505092915050565b6000604082019050612eba60008301856129af565b612ec760208301846129af565b9392505050565b6000819050919050565b6000819050919050565b6000612efd612ef8612ef384612ece565b612ed8565b612691565b9050919050565b612f0d81612ee2565b82525050565b600060c082019050612f2860008301896129af565b612f35602083018861273d565b612f426040830187612f04565b612f4f6060830186612f04565b612f5c60808301856129af565b612f6960a083018461273d565b979650505050505050565b600081519050612f838161269b565b92915050565b600080600060608486031215612fa257612fa1612629565b5b6000612fb086828701612f74565b9350506020612fc186828701612f74565b9250506040612fd286828701612f74565b9150509250925092565b6000604082019050612ff160008301856129af565b612ffe602083018461273d565b9392505050565b60008151905061301481612a19565b92915050565b6000602082840312156130305761302f612629565b5b600061303e84828501613005565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130a3602483612578565b91506130ae82613047565b604082019050919050565b600060208201905081810360008301526130d281613096565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613135602283612578565b9150613140826130d9565b604082019050919050565b6000602082019050818103600083015261316481613128565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131c7602583612578565b91506131d28261316b565b604082019050919050565b600060208201905081810360008301526131f6816131ba565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613259602383612578565b9150613264826131fd565b604082019050919050565b600060208201905081810360008301526132888161324c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132eb602983612578565b91506132f68261328f565b604082019050919050565b6000602082019050818103600083015261331a816132de565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b600061337d602483612578565b915061338882613321565b604082019050919050565b600060208201905081810360008301526133ac81613370565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006133e9601983612578565b91506133f4826133b3565b602082019050919050565b60006020820190508181036000830152613418816133dc565b9050919050565b600061342a82612691565b915061343583612691565b925082820190508082111561344d5761344c612ac5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613489601a83612578565b915061349482613453565b602082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b60006134ca82612691565b91506134d583612691565b92508282039050818111156134ed576134ec612ac5565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352881612653565b82525050565b600061353a838361351f565b60208301905092915050565b6000602082019050919050565b600061355e826134f3565b61356881856134fe565b93506135738361350f565b8060005b838110156135a457815161358b888261352e565b975061359683613546565b925050600181019050613577565b5085935050505092915050565b600060a0820190506135c6600083018861273d565b6135d36020830187612f04565b81810360408301526135e58186613553565b90506135f460608301856129af565b613601608083018461273d565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613667602183612578565b91506136728261360b565b604082019050919050565b600060208201905081810360008301526136968161365a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136d3601b83612578565b91506136de8261369d565b602082019050919050565b60006020820190508181036000830152613702816136c6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bee89a3a494a3f3604646884f20e38dae0638133ebc4fd4337e3dd2d1370946664736f6c63430008140033
Deployed Bytecode Sourcemap
3959:10277:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6342:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7263:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5252:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6655:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7448:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6552:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11989:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12297:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13468:384;;;;;;;;;;;;;:::i;:::-;;6770:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2932:160;;;;;;;;;;;;;:::i;:::-;;11637:216;;;;;;;;;;;;;:::i;:::-;;5049:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2690:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13864:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5116:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6445:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14047:182;;;;;;;;;;;;;:::i;:::-;;6909:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5183:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11865:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4372:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12398:786;;;:::i;:::-;;7100:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6342:91;6379:13;6416:5;;;;;;;;;;;;;;;;;6409:12;;6342:91;:::o;7263:173::-;7338:4;7359:39;7368:12;:10;:12::i;:::-;7382:7;7391:6;7359:8;:39::i;:::-;7420:4;7413:11;;7263:173;;;;:::o;5252:52::-;;;;:::o;6655:103::-;6708:7;4853:1;4913:2;:13;;;;:::i;:::-;4900:10;:26;;;;:::i;:::-;6732:14;;6655:103;:::o;7448:329::-;7546:4;7567:36;7577:6;7585:9;7596:6;7567:9;:36::i;:::-;7618:121;7627:6;7635:12;:10;:12::i;:::-;7649:89;7687:6;7649:89;;;;;;;;;;;;;;;;;:11;:19;7661:6;7649:19;;;;;;;;;;;;;;;:33;7669:12;:10;:12::i;:::-;7649:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7618:8;:121::i;:::-;7761:4;7754:11;;7448:329;;;;;:::o;6552:91::-;6593:5;4853:1;6615:16;;6552:91;:::o;11989:184::-;2843:12;:10;:12::i;:::-;2833:22;;:6;;;;;;;;;;:22;;;2825:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12068:6:::1;12063:99;12084:6;:13;12080:1;:17;12063:99;;;12141:5;12123:4;:15;12128:6;12135:1;12128:9;;;;;;;;:::i;:::-;;;;;;;;12123:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12099:3;;;;;:::i;:::-;;;;12063:99;;;;11989:184:::0;:::o;12297:89::-;12344:4;12367;:7;12372:1;12367:7;;;;;;;;;;;;;;;;;;;;;;;;;12360:14;;12297:89;;;:::o;13468:384::-;13536:10;;;;;;;;;;;13522:24;;:12;:10;:12::i;:::-;:24;;;13514:33;;;;;;13562:20;13583:24;13601:4;13583:9;:24::i;:::-;13562:45;;13638:1;13625:12;:14;13622:79;;;13655:30;13672:12;13655:16;:30::i;:::-;13622:79;13715:18;13734:21;13715:40;;13784:1;13773:10;:12;13770:71;;;13801:24;13814:10;13801:12;:24::i;:::-;13770:71;13499:353;;13468:384::o;6770:127::-;6836:7;6867:9;:18;6877:7;6867:18;;;;;;;;;;;;;;;;6860:25;;6770:127;;;:::o;2932:160::-;2843:12;:10;:12::i;:::-;2833:22;;:6;;;;;;;;;;:22;;;2825:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3043:1:::1;3006:40;;3027:6;::::0;::::1;;;;;;;;3006:40;;;;;;;;;;;;3078:1;3061:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2932:160::o:0;11637:216::-;2843:12;:10;:12::i;:::-;2833:22;;:6;;;;;;;;;;:22;;;2825:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4853:1:::1;4913:2;:13;;;;:::i;:::-;4900:10;:26;;;;:::i;:::-;11694:12;:22;;;;4853:1;4913:2;:13;;;;:::i;:::-;4900:10;:26;;;;:::i;:::-;11731:14;:22;;;;11789:5;11768:20;;:26;;;;;;;;;;;;;;;;;;11814:27;4853:1;4913:2;:13;;;;:::i;:::-;4900:10;:26;;;;:::i;:::-;11814:27;;;;;;:::i;:::-;;;;;;;;11637:216::o:0;5049:56::-;;;;:::o;2690:87::-;2728:7;2759:6;;;;;;;;;;;2752:13;;2690:87;:::o;13864:171::-;13933:7;13957:11;13977:3;13971;:9;;;;:::i;:::-;13957:23;;14017:6;14011:3;14002:6;:12;;;;:::i;:::-;:21;;;;:::i;:::-;13995:28;;;13864:171;;;;:::o;5116:56::-;;;;:::o;6445:95::-;6484:13;6521:7;;;;;;;;;;;;;;;;;6514:14;;6445:95;:::o;14047:182::-;14116:10;;;;;;;;;;;14100:26;;:12;:10;:12::i;:::-;:26;;;14092:35;;;;;;14159:12;;14142:14;:29;;;;14204:13;;14186:15;:31;;;;14047:182::o;6909:179::-;6987:4;7008:42;7018:12;:10;:12::i;:::-;7032:9;7043:6;7008:9;:42::i;:::-;7072:4;7065:11;;6909:179;;;;:::o;5183:58::-;;;;:::o;11865:112::-;2843:12;:10;:12::i;:::-;2833:22;;:6;;;;;;;;;;:22;;;2825:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11960:5:::1;11944:4;:13;11949:7;11944:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11865:112:::0;;:::o;4372:40::-;;;;;;;;;;;;;:::o;12398:786::-;2843:12;:10;:12::i;:::-;2833:22;;:6;;;;;;;;;;:22;;;2825:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12474:11:::1;;;;;;;;;;;12473:12;12465:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12564:42;12527:15;;:80;;;;;;;;;;;;;;;;;;12622:58;12639:4;12654:15;;;;;;;;;;;4853:1;4913:2;:13;;;;:::i;:::-;4900:10;:26;;;;:::i;:::-;12622:8;:58::i;:::-;12729:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12711:55;;;12775:4;12782:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12711:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12695:13;;:110;;;;;;;;;;;;;;;;;;12820:15;;;;;;;;;;;:31;;;12871:1;12859:9;:13;:49;;12887:21;12859:49;;;12875:9;12859:49;12918:4;12924:24;12942:4;12924:9;:24::i;:::-;12949:1;12951::::0;12954:7:::1;:5;:7::i;:::-;12962:15;12820:158;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13028:13;;;;;;;;;;;13021:29;;;13059:15;;;;;;;;;;;13077:14;13021:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13135:4;13121:11;;:18;;;;;;;;;;;;;;;;;;13168:4;13154:11;;:18;;;;;;;;;;;;;;;;;;12398:786::o:0;7100:151::-;7181:7;7212:11;:18;7224:5;7212:18;;;;;;;;;;;;;;;:27;7231:7;7212:27;;;;;;;;;;;;;;;;7205:34;;7100:151;;;;:::o;233:106::-;286:7;317:10;310:17;;233:106;:::o;7789:355::-;7903:1;7886:19;;:5;:19;;;7878:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7988:1;7969:21;;:7;:21;;;7961:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8074:6;8044:11;:18;8056:5;8044:18;;;;;;;;;;;;;;;:27;8063:7;8044:27;;;;;;;;;;;;;;;:36;;;;8116:7;8100:32;;8109:5;8100:32;;;8125:6;8100:32;;;;;;:::i;:::-;;;;;;;;7789:355;;;:::o;8156:2728::-;8264:1;8248:18;;:4;:18;;;8240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8345:1;8331:16;;:2;:16;;;8323:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8419:1;8410:6;:10;8402:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8481:17;8527:7;:5;:7::i;:::-;8519:15;;:4;:15;;;;:32;;;;;8544:7;:5;:7::i;:::-;8538:13;;:2;:13;;;;8519:32;8515:1983;;;8576:20;;;;;;;;;;;8572:362;;;8639:15;;;;;;;;;;;8625:30;;:2;:30;;;;:62;;;;;8673:13;;;;;;;;;;;8659:28;;:2;:28;;;;8625:62;8621:294;;;8762:12;8720:28;:39;8749:9;8720:39;;;;;;;;;;;;;;;;:54;8712:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8879:12;8837:28;:39;8866:9;8837:39;;;;;;;;;;;;;;;:54;;;;8621:294;8572:362;8966:13;;;;;;;;;;;8958:21;;:4;:21;;;:55;;;;;8997:15;;;;;;;;;;;8983:30;;:2;:30;;;;8958:55;:83;;;;;9019:18;:22;9038:2;9019:22;;;;;;;;;;;;;;;;;;;;;;;;;9017:24;8958:83;8954:453;;;9084:12;;9074:6;:22;;9066:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9183:14;;9173:6;9157:13;9167:2;9157:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9149:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9264:18;;9254:9;;:28;9251:103;;;9315:14;9326:2;9315:10;:14::i;:::-;9314:15;9306:24;;;;;;9251:103;9376:9;;:11;;;;;;;;;:::i;:::-;;;;;;8954:453;9457:76;9529:3;9457:67;9479:15;;9469:9;;:25;9468:55;;9509:14;;9468:55;;;9496:12;;9468:55;9457:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9445:88;;9561:13;;;;;;;;;;;9555:19;;:2;:19;;;:43;;;;;9593:4;9578:20;;:4;:20;;;;9555:43;9552:265;;;9641:12;;9631:6;:22;;9623:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9718:79;9793:3;9718:70;9740:16;;9730:9;;:26;9729:58;;9772:15;;9729:58;;;9758:13;;9729:58;9718:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9706:91;;9552:265;9839:28;9870:24;9888:4;9870:9;:24::i;:::-;9839:55;;9918:6;;;;;;;;;;9917:7;:30;;;;;9934:13;;;;;;;;;;;9928:19;;:2;:19;;;9917:30;:45;;;;;9951:11;;;;;;;;;;;9917:45;:87;;;;;9987:17;;9966:20;:38;9917:87;:119;;;;;10018:18;;10008:9;;:28;9917:119;:170;;;;;10070:17;;;;;;;;;;;10040:47;;:13;:27;10054:12;10040:27;;;;;;;;;;;;:47;9917:170;9913:570;;;10112:67;10129:49;10133:6;10140:37;10144:20;10165:11;;10140:3;:37::i;:::-;10129:3;:49::i;:::-;10112:16;:67::i;:::-;10202:26;10231:21;10202:50;;10321:1;10300:18;:22;10297:113;;;10351:35;10364:21;10351:12;:35::i;:::-;10297:113;10434:13;:27;10448:12;10434:27;;;;;;;;;;;;:29;;;;;;;;;:::i;:::-;;;;;;10089:394;9913:570;8553:1945;8515:1983;10527:1;10517:9;:11;10514:171;;;10571:39;10600:9;10571;:24;10589:4;10571:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10544:9;:24;10562:4;10544:24;;;;;;;;;;;;;;;:66;;;;10653:4;10630:39;;10639:4;10630:39;;;10659:9;10630:39;;;;;;:::i;:::-;;;;;;;;10514:171;10715:27;10735:6;10715:9;:15;10725:4;10715:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10699:9;:15;10709:4;10699:15;;;;;;;;;;;;;;;:43;;;;10771:40;10789:21;10800:9;10789:6;:10;;:21;;;;:::i;:::-;10771:9;:13;10781:2;10771:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10757:9;:13;10767:2;10757:13;;;;;;;;;;;;;;;:54;;;;10846:2;10831:41;;10840:4;10831:41;;;10850:21;10861:9;10850:6;:10;;:21;;;;:::i;:::-;10831:41;;;;;;:::i;:::-;;;;;;;;8225:2659;8156:2728;;;:::o;1462:206::-;1548:7;1585:1;1580;:6;;1588:12;1572:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1616:9;1632:1;1628;:5;;;;:::i;:::-;1616:17;;1655:1;1648:8;;;1462:206;;;;;:::o;11014:611::-;5844:4;5835:6;;:13;;;;;;;;;;;;;;;;;;11112:1:::1;11099:11;:14:::0;11096:27;11115:7:::1;11096:27;11141:11;;;;;;;;;;;11137:25:::0;11154:7:::1;11137:25;11176:21;11214:1;11200:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11176:40;;11249:4;11231;11236:1;11231:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11279:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11269:4;11274:1;11269:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11316:62;11333:4;11348:15;;;;;;;;;;;11366:11;11316:8;:62::i;:::-;11393:15;;;;;;;;;;;:66;;;11478:11;11508:1;11528:4;11559;11583:15;11393:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11081:544;5863:1;5888:5:::0;5879:6;;:14;;;;;;;;;;;;;;;;;;11014:611;:::o;12185:100::-;12246:10;;;;;;;;;;;:19;;:27;12266:6;12246:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12185:100;:::o;13237:219::-;13296:4;13317:12;13392:7;13380:20;13372:28;;13443:1;13436:4;:8;13429:15;;;13237:219;;;:::o;1680:274::-;1738:7;1771:1;1766;:6;1762:55;;1800:1;1793:8;;;;1762:55;1831:9;1847:1;1843;:5;;;;:::i;:::-;1831:17;;1880:1;1875;1871;:5;;;;:::i;:::-;:10;1863:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1941:1;1934:8;;;1680:274;;;;;:::o;1966:140::-;2024:7;2055:39;2059:1;2062;2055:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2048:46;;1966:140;;;;:::o;10898:104::-;10955:7;10984:1;10982;:3;10981:9;;10989:1;10981:9;;;10987:1;10981:9;10974:16;;10898:104;;;;:::o;1099:195::-;1157:7;1181:9;1197:1;1193;:5;;;;:::i;:::-;1181:17;;1226:1;1221;:6;;1213:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1281:1;1274:8;;;1099:195;;;;:::o;1306:144::-;1364:7;1395:43;1399:1;1402;1395:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1388:50;;1306:144;;;;:::o;2118:205::-;2204:7;2240:1;2236;:5;2243:12;2228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2271:9;2287:1;2283;:5;;;;:::i;:::-;2271:17;;2310:1;2303:8;;;2118:205;;;;;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:116::-;8932:21;8947:5;8932:21;:::i;:::-;8925:5;8922:32;8912:60;;8968:1;8965;8958:12;8912:60;8862:116;:::o;8984:133::-;9027:5;9065:6;9052:20;9043:29;;9081:30;9105:5;9081:30;:::i;:::-;8984:133;;;;:::o;9123:468::-;9188:6;9196;9245:2;9233:9;9224:7;9220:23;9216:32;9213:119;;;9251:79;;:::i;:::-;9213:119;9371:1;9396:53;9441:7;9432:6;9421:9;9417:22;9396:53;:::i;:::-;9386:63;;9342:117;9498:2;9524:50;9566:7;9557:6;9546:9;9542:22;9524:50;:::i;:::-;9514:60;;9469:115;9123:468;;;;;:::o;9597:474::-;9665:6;9673;9722:2;9710:9;9701:7;9697:23;9693:32;9690:119;;;9728:79;;:::i;:::-;9690:119;9848:1;9873:53;9918:7;9909:6;9898:9;9894:22;9873:53;:::i;:::-;9863:63;;9819:117;9975:2;10001:53;10046:7;10037:6;10026:9;10022:22;10001:53;:::i;:::-;9991:63;;9946:118;9597:474;;;;;:::o;10077:180::-;10125:77;10122:1;10115:88;10222:4;10219:1;10212:15;10246:4;10243:1;10236:15;10263:102;10305:8;10352:5;10349:1;10345:13;10324:34;;10263:102;;;:::o;10371:848::-;10432:5;10439:4;10463:6;10454:15;;10487:5;10478:14;;10501:712;10522:1;10512:8;10509:15;10501:712;;;10617:4;10612:3;10608:14;10602:4;10599:24;10596:50;;;10626:18;;:::i;:::-;10596:50;10676:1;10666:8;10662:16;10659:451;;;11091:4;11084:5;11080:16;11071:25;;10659:451;11141:4;11135;11131:15;11123:23;;11171:32;11194:8;11171:32;:::i;:::-;11159:44;;10501:712;;;10371:848;;;;;;;:::o;11225:1073::-;11279:5;11470:8;11460:40;;11491:1;11482:10;;11493:5;;11460:40;11519:4;11509:36;;11536:1;11527:10;;11538:5;;11509:36;11605:4;11653:1;11648:27;;;;11689:1;11684:191;;;;11598:277;;11648:27;11666:1;11657:10;;11668:5;;;11684:191;11729:3;11719:8;11716:17;11713:43;;;11736:18;;:::i;:::-;11713:43;11785:8;11782:1;11778:16;11769:25;;11820:3;11813:5;11810:14;11807:40;;;11827:18;;:::i;:::-;11807:40;11860:5;;;11598:277;;11984:2;11974:8;11971:16;11965:3;11959:4;11956:13;11952:36;11934:2;11924:8;11921:16;11916:2;11910:4;11907:12;11903:35;11887:111;11884:246;;;12040:8;12034:4;12030:19;12021:28;;12075:3;12068:5;12065:14;12062:40;;;12082:18;;:::i;:::-;12062:40;12115:5;;11884:246;12155:42;12193:3;12183:8;12177:4;12174:1;12155:42;:::i;:::-;12140:57;;;;12229:4;12224:3;12220:14;12213:5;12210:25;12207:51;;;12238:18;;:::i;:::-;12207:51;12287:4;12280:5;12276:16;12267:25;;11225:1073;;;;;;:::o;12304:281::-;12362:5;12386:23;12404:4;12386:23;:::i;:::-;12378:31;;12430:25;12446:8;12430:25;:::i;:::-;12418:37;;12474:104;12511:66;12501:8;12495:4;12474:104;:::i;:::-;12465:113;;12304:281;;;;:::o;12591:410::-;12631:7;12654:20;12672:1;12654:20;:::i;:::-;12649:25;;12688:20;12706:1;12688:20;:::i;:::-;12683:25;;12743:1;12740;12736:9;12765:30;12783:11;12765:30;:::i;:::-;12754:41;;12944:1;12935:7;12931:15;12928:1;12925:22;12905:1;12898:9;12878:83;12855:139;;12974:18;;:::i;:::-;12855:139;12639:362;12591:410;;;;:::o;13007:182::-;13147:34;13143:1;13135:6;13131:14;13124:58;13007:182;:::o;13195:366::-;13337:3;13358:67;13422:2;13417:3;13358:67;:::i;:::-;13351:74;;13434:93;13523:3;13434:93;:::i;:::-;13552:2;13547:3;13543:12;13536:19;;13195:366;;;:::o;13567:419::-;13733:4;13771:2;13760:9;13756:18;13748:26;;13820:9;13814:4;13810:20;13806:1;13795:9;13791:17;13784:47;13848:131;13974:4;13848:131;:::i;:::-;13840:139;;13567:419;;;:::o;13992:180::-;14040:77;14037:1;14030:88;14137:4;14134:1;14127:15;14161:4;14158:1;14151:15;14178:233;14217:3;14240:24;14258:5;14240:24;:::i;:::-;14231:33;;14286:66;14279:5;14276:77;14273:103;;14356:18;;:::i;:::-;14273:103;14403:1;14396:5;14392:13;14385:20;;14178:233;;;:::o;14417:180::-;14465:77;14462:1;14455:88;14562:4;14559:1;14552:15;14586:4;14583:1;14576:15;14603:185;14643:1;14660:20;14678:1;14660:20;:::i;:::-;14655:25;;14694:20;14712:1;14694:20;:::i;:::-;14689:25;;14733:1;14723:35;;14738:18;;:::i;:::-;14723:35;14780:1;14777;14773:9;14768:14;;14603:185;;;;:::o;14794:173::-;14934:25;14930:1;14922:6;14918:14;14911:49;14794:173;:::o;14973:366::-;15115:3;15136:67;15200:2;15195:3;15136:67;:::i;:::-;15129:74;;15212:93;15301:3;15212:93;:::i;:::-;15330:2;15325:3;15321:12;15314:19;;14973:366;;;:::o;15345:419::-;15511:4;15549:2;15538:9;15534:18;15526:26;;15598:9;15592:4;15588:20;15584:1;15573:9;15569:17;15562:47;15626:131;15752:4;15626:131;:::i;:::-;15618:139;;15345:419;;;:::o;15770:143::-;15827:5;15858:6;15852:13;15843:22;;15874:33;15901:5;15874:33;:::i;:::-;15770:143;;;;:::o;15919:351::-;15989:6;16038:2;16026:9;16017:7;16013:23;16009:32;16006:119;;;16044:79;;:::i;:::-;16006:119;16164:1;16189:64;16245:7;16236:6;16225:9;16221:22;16189:64;:::i;:::-;16179:74;;16135:128;15919:351;;;;:::o;16276:332::-;16397:4;16435:2;16424:9;16420:18;16412:26;;16448:71;16516:1;16505:9;16501:17;16492:6;16448:71;:::i;:::-;16529:72;16597:2;16586:9;16582:18;16573:6;16529:72;:::i;:::-;16276:332;;;;;:::o;16614:85::-;16659:7;16688:5;16677:16;;16614:85;;;:::o;16705:60::-;16733:3;16754:5;16747:12;;16705:60;;;:::o;16771:158::-;16829:9;16862:61;16880:42;16889:32;16915:5;16889:32;:::i;:::-;16880:42;:::i;:::-;16862:61;:::i;:::-;16849:74;;16771:158;;;:::o;16935:147::-;17030:45;17069:5;17030:45;:::i;:::-;17025:3;17018:58;16935:147;;:::o;17088:807::-;17337:4;17375:3;17364:9;17360:19;17352:27;;17389:71;17457:1;17446:9;17442:17;17433:6;17389:71;:::i;:::-;17470:72;17538:2;17527:9;17523:18;17514:6;17470:72;:::i;:::-;17552:80;17628:2;17617:9;17613:18;17604:6;17552:80;:::i;:::-;17642;17718:2;17707:9;17703:18;17694:6;17642:80;:::i;:::-;17732:73;17800:3;17789:9;17785:19;17776:6;17732:73;:::i;:::-;17815;17883:3;17872:9;17868:19;17859:6;17815:73;:::i;:::-;17088:807;;;;;;;;;:::o;17901:143::-;17958:5;17989:6;17983:13;17974:22;;18005:33;18032:5;18005:33;:::i;:::-;17901:143;;;;:::o;18050:663::-;18138:6;18146;18154;18203:2;18191:9;18182:7;18178:23;18174:32;18171:119;;;18209:79;;:::i;:::-;18171:119;18329:1;18354:64;18410:7;18401:6;18390:9;18386:22;18354:64;:::i;:::-;18344:74;;18300:128;18467:2;18493:64;18549:7;18540:6;18529:9;18525:22;18493:64;:::i;:::-;18483:74;;18438:129;18606:2;18632:64;18688:7;18679:6;18668:9;18664:22;18632:64;:::i;:::-;18622:74;;18577:129;18050:663;;;;;:::o;18719:332::-;18840:4;18878:2;18867:9;18863:18;18855:26;;18891:71;18959:1;18948:9;18944:17;18935:6;18891:71;:::i;:::-;18972:72;19040:2;19029:9;19025:18;19016:6;18972:72;:::i;:::-;18719:332;;;;;:::o;19057:137::-;19111:5;19142:6;19136:13;19127:22;;19158:30;19182:5;19158:30;:::i;:::-;19057:137;;;;:::o;19200:345::-;19267:6;19316:2;19304:9;19295:7;19291:23;19287:32;19284:119;;;19322:79;;:::i;:::-;19284:119;19442:1;19467:61;19520:7;19511:6;19500:9;19496:22;19467:61;:::i;:::-;19457:71;;19413:125;19200:345;;;;:::o;19551:223::-;19691:34;19687:1;19679:6;19675:14;19668:58;19760:6;19755:2;19747:6;19743:15;19736:31;19551:223;:::o;19780:366::-;19922:3;19943:67;20007:2;20002:3;19943:67;:::i;:::-;19936:74;;20019:93;20108:3;20019:93;:::i;:::-;20137:2;20132:3;20128:12;20121:19;;19780:366;;;:::o;20152:419::-;20318:4;20356:2;20345:9;20341:18;20333:26;;20405:9;20399:4;20395:20;20391:1;20380:9;20376:17;20369:47;20433:131;20559:4;20433:131;:::i;:::-;20425:139;;20152:419;;;:::o;20577:221::-;20717:34;20713:1;20705:6;20701:14;20694:58;20786:4;20781:2;20773:6;20769:15;20762:29;20577:221;:::o;20804:366::-;20946:3;20967:67;21031:2;21026:3;20967:67;:::i;:::-;20960:74;;21043:93;21132:3;21043:93;:::i;:::-;21161:2;21156:3;21152:12;21145:19;;20804:366;;;:::o;21176:419::-;21342:4;21380:2;21369:9;21365:18;21357:26;;21429:9;21423:4;21419:20;21415:1;21404:9;21400:17;21393:47;21457:131;21583:4;21457:131;:::i;:::-;21449:139;;21176:419;;;:::o;21601:224::-;21741:34;21737:1;21729:6;21725:14;21718:58;21810:7;21805:2;21797:6;21793:15;21786:32;21601:224;:::o;21831:366::-;21973:3;21994:67;22058:2;22053:3;21994:67;:::i;:::-;21987:74;;22070:93;22159:3;22070:93;:::i;:::-;22188:2;22183:3;22179:12;22172:19;;21831:366;;;:::o;22203:419::-;22369:4;22407:2;22396:9;22392:18;22384:26;;22456:9;22450:4;22446:20;22442:1;22431:9;22427:17;22420:47;22484:131;22610:4;22484:131;:::i;:::-;22476:139;;22203:419;;;:::o;22628:222::-;22768:34;22764:1;22756:6;22752:14;22745:58;22837:5;22832:2;22824:6;22820:15;22813:30;22628:222;:::o;22856:366::-;22998:3;23019:67;23083:2;23078:3;23019:67;:::i;:::-;23012:74;;23095:93;23184:3;23095:93;:::i;:::-;23213:2;23208:3;23204:12;23197:19;;22856:366;;;:::o;23228:419::-;23394:4;23432:2;23421:9;23417:18;23409:26;;23481:9;23475:4;23471:20;23467:1;23456:9;23452:17;23445:47;23509:131;23635:4;23509:131;:::i;:::-;23501:139;;23228:419;;;:::o;23653:228::-;23793:34;23789:1;23781:6;23777:14;23770:58;23862:11;23857:2;23849:6;23845:15;23838:36;23653:228;:::o;23887:366::-;24029:3;24050:67;24114:2;24109:3;24050:67;:::i;:::-;24043:74;;24126:93;24215:3;24126:93;:::i;:::-;24244:2;24239:3;24235:12;24228:19;;23887:366;;;:::o;24259:419::-;24425:4;24463:2;24452:9;24448:18;24440:26;;24512:9;24506:4;24502:20;24498:1;24487:9;24483:17;24476:47;24540:131;24666:4;24540:131;:::i;:::-;24532:139;;24259:419;;;:::o;24684:223::-;24824:34;24820:1;24812:6;24808:14;24801:58;24893:6;24888:2;24880:6;24876:15;24869:31;24684:223;:::o;24913:366::-;25055:3;25076:67;25140:2;25135:3;25076:67;:::i;:::-;25069:74;;25152:93;25241:3;25152:93;:::i;:::-;25270:2;25265:3;25261:12;25254:19;;24913:366;;;:::o;25285:419::-;25451:4;25489:2;25478:9;25474:18;25466:26;;25538:9;25532:4;25528:20;25524:1;25513:9;25509:17;25502:47;25566:131;25692:4;25566:131;:::i;:::-;25558:139;;25285:419;;;:::o;25710:175::-;25850:27;25846:1;25838:6;25834:14;25827:51;25710:175;:::o;25891:366::-;26033:3;26054:67;26118:2;26113:3;26054:67;:::i;:::-;26047:74;;26130:93;26219:3;26130:93;:::i;:::-;26248:2;26243:3;26239:12;26232:19;;25891:366;;;:::o;26263:419::-;26429:4;26467:2;26456:9;26452:18;26444:26;;26516:9;26510:4;26506:20;26502:1;26491:9;26487:17;26480:47;26544:131;26670:4;26544:131;:::i;:::-;26536:139;;26263:419;;;:::o;26688:191::-;26728:3;26747:20;26765:1;26747:20;:::i;:::-;26742:25;;26781:20;26799:1;26781:20;:::i;:::-;26776:25;;26824:1;26821;26817:9;26810:16;;26845:3;26842:1;26839:10;26836:36;;;26852:18;;:::i;:::-;26836:36;26688:191;;;;:::o;26885:176::-;27025:28;27021:1;27013:6;27009:14;27002:52;26885:176;:::o;27067:366::-;27209:3;27230:67;27294:2;27289:3;27230:67;:::i;:::-;27223:74;;27306:93;27395:3;27306:93;:::i;:::-;27424:2;27419:3;27415:12;27408:19;;27067:366;;;:::o;27439:419::-;27605:4;27643:2;27632:9;27628:18;27620:26;;27692:9;27686:4;27682:20;27678:1;27667:9;27663:17;27656:47;27720:131;27846:4;27720:131;:::i;:::-;27712:139;;27439:419;;;:::o;27864:194::-;27904:4;27924:20;27942:1;27924:20;:::i;:::-;27919:25;;27958:20;27976:1;27958:20;:::i;:::-;27953:25;;28002:1;27999;27995:9;27987:17;;28026:1;28020:4;28017:11;28014:37;;;28031:18;;:::i;:::-;28014:37;27864:194;;;;:::o;28064:114::-;28131:6;28165:5;28159:12;28149:22;;28064:114;;;:::o;28184:184::-;28283:11;28317:6;28312:3;28305:19;28357:4;28352:3;28348:14;28333:29;;28184:184;;;;:::o;28374:132::-;28441:4;28464:3;28456:11;;28494:4;28489:3;28485:14;28477:22;;28374:132;;;:::o;28512:108::-;28589:24;28607:5;28589:24;:::i;:::-;28584:3;28577:37;28512:108;;:::o;28626:179::-;28695:10;28716:46;28758:3;28750:6;28716:46;:::i;:::-;28794:4;28789:3;28785:14;28771:28;;28626:179;;;;:::o;28811:113::-;28881:4;28913;28908:3;28904:14;28896:22;;28811:113;;;:::o;28960:732::-;29079:3;29108:54;29156:5;29108:54;:::i;:::-;29178:86;29257:6;29252:3;29178:86;:::i;:::-;29171:93;;29288:56;29338:5;29288:56;:::i;:::-;29367:7;29398:1;29383:284;29408:6;29405:1;29402:13;29383:284;;;29484:6;29478:13;29511:63;29570:3;29555:13;29511:63;:::i;:::-;29504:70;;29597:60;29650:6;29597:60;:::i;:::-;29587:70;;29443:224;29430:1;29427;29423:9;29418:14;;29383:284;;;29387:14;29683:3;29676:10;;29084:608;;;28960:732;;;;:::o;29698:831::-;29961:4;29999:3;29988:9;29984:19;29976:27;;30013:71;30081:1;30070:9;30066:17;30057:6;30013:71;:::i;:::-;30094:80;30170:2;30159:9;30155:18;30146:6;30094:80;:::i;:::-;30221:9;30215:4;30211:20;30206:2;30195:9;30191:18;30184:48;30249:108;30352:4;30343:6;30249:108;:::i;:::-;30241:116;;30367:72;30435:2;30424:9;30420:18;30411:6;30367:72;:::i;:::-;30449:73;30517:3;30506:9;30502:19;30493:6;30449:73;:::i;:::-;29698:831;;;;;;;;:::o;30535:220::-;30675:34;30671:1;30663:6;30659:14;30652:58;30744:3;30739:2;30731:6;30727:15;30720:28;30535:220;:::o;30761:366::-;30903:3;30924:67;30988:2;30983:3;30924:67;:::i;:::-;30917:74;;31000:93;31089:3;31000:93;:::i;:::-;31118:2;31113:3;31109:12;31102:19;;30761:366;;;:::o;31133:419::-;31299:4;31337:2;31326:9;31322:18;31314:26;;31386:9;31380:4;31376:20;31372:1;31361:9;31357:17;31350:47;31414:131;31540:4;31414:131;:::i;:::-;31406:139;;31133:419;;;:::o;31558:177::-;31698:29;31694:1;31686:6;31682:14;31675:53;31558:177;:::o;31741:366::-;31883:3;31904:67;31968:2;31963:3;31904:67;:::i;:::-;31897:74;;31980:93;32069:3;31980:93;:::i;:::-;32098:2;32093:3;32089:12;32082:19;;31741:366;;;:::o;32113:419::-;32279:4;32317:2;32306:9;32302:18;32294:26;;32366:9;32360:4;32356:20;32352:1;32341:9;32337:17;32330:47;32394:131;32520:4;32394:131;:::i;:::-;32386:139;;32113:419;;;:::o
Swarm Source
ipfs://bee89a3a494a3f3604646884f20e38dae0638133ebc4fd4337e3dd2d13709466
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.