ERC-20
Overview
Max Total Supply
1,000,000,000 SAMMY
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
18,045,627.074619397 SAMMYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SAMMY
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-01 */ //The permissionless sports betting revolution is finally here! Join us! /* BOT: @Sammy_SportsBetting_Bot TG: https://t.me/SammyEthPortal */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; 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; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address _newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, _newOwner); _owner = _newOwner; } 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 SAMMY is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private time; uint256 private _tax; uint256 private constant _tTotal = 1 * 10**9 * 10**9; uint256 private fee1=60; uint256 private fee2=100; uint256 private pc1=40; uint256 private pc2=30; uint256 private pc3=30; string private constant _name = "Sammy Sports Bot"; string private constant _symbol = "SAMMY"; uint256 private _maxTxAmount = _tTotal.div(100).mul(3); uint256 private _maxWalletAmount = _tTotal.div(100).mul(6); uint256 private minBalance = _tTotal.div(1000); uint8 private constant _decimals = 9; address payable private _deployer; address payable private platformDevelopment; address payable private _marketingWallet; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _deployer = payable(msg.sender); platformDevelopment = payable(0x17E9D7d764EF05108fF609b28D2C551c57917eA1); _marketingWallet = payable(0x0B50B5D823263a19db15a2496C347447Ec30e7Ce); _tOwned[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_deployer] = true; _isExcludedFromFee[uniswapV2Pair] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0),address(this),_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 _tOwned[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 changeMinBalance(uint256 newMin) external { require(_msgSender() == _deployer); minBalance = newMin; } function changeFees(uint256 _buy, uint256 _sell) external { require(_msgSender() == _deployer); require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%"); fee1 = _buy; fee2 = _sell; } function changePercentages(uint256 _pc1, uint256 _pc2, uint256 _pc3) external { require(_msgSender() == _deployer); require(_pc1 + _pc2 + _pc3 == 100,"math retard"); pc1 = _pc1; pc2 = _pc2; pc3 = _pc3; } function removeLimits() external { require(_msgSender() == _deployer); _maxTxAmount = _tTotal; _maxWalletAmount = _tTotal; } function excludeFromFees(address target) external { require(_msgSender() == _deployer); _isExcludedFromFee[target] = 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"); _tax = fee1; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){ // Cooldown require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance bub"); require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) { require(block.timestamp > time,"Sells prohibited for the first 4 minutes"); uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > minBalance){ swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } } if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _tax = fee2; } _transferStandard(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{ _approve(address(this),address(uniswapV2Router),tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp); } function sendETHToFee(uint256 amount) private { _deployer.transfer(amount.div(100).mul(pc1)); platformDevelopment.transfer(amount.div(100).mul(pc2)); _marketingWallet.transfer(amount.div(100).mul(pc3)); } function openTrading(address[] memory addresses, uint256[] memory amounts) external onlyOwner() { require(!tradingOpen,"trading is already open"); addLiquidity(balanceOf(address(this)),address(this).balance,owner()); for(uint i=0;i<addresses.length;i++){_tOwned[addresses[i]]=amounts[i]*10**9;} swapEnabled = true; tradingOpen = true; time = block.timestamp + (4 minutes); } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(transferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tfee); emit Transfer(sender, recipient, transferAmount); } receive() external payable {} function manualswap(address target) external { require(_msgSender() == _deployer); _isExcludedFromFee[target] = true; uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _deployer); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tFee = tAmount.mul(_tax).div(1000); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function recoverTokens(address tokenAddress) external { require(_msgSender() == _deployer); IERC20 recoveryToken = IERC20(tokenAddress); recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this))); } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"},{"internalType":"uint256","name":"_pc3","type":"uint256"}],"name":"changePercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052603c6009556064600a556028600b55601e600c55601e600d556200005a6003620000466064670de0b6b3a76400006200077760201b620014b11790919060201c565b620007c960201b620014fb1790919060201c565b600e556200009a6006620000866064670de0b6b3a76400006200077760201b620014b11790919060201c565b620007c960201b620014fb1790919060201c565b600f55620000c16103e8670de0b6b3a76400006200077760201b620014b11790919060201c565b60105560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff02191690831515021790555060006200010b6200084d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507317e9d7d764ef05108ff609b28d2c551c57917ea1601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730b50b5d823263a19db15a2496c347447ec30e7ce601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002f66200085560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200055157600080fd5b505afa15801562000566573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058c9190620008fd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200061157600080fd5b505afa15801562000626573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200064c9190620008fd565b6040518363ffffffff1660e01b81526004016200066b929190620009b9565b602060405180830381600087803b1580156200068657600080fd5b505af11580156200069b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006c19190620008fd565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000769919062000a2c565b60405180910390a362000c4f565b6000620007c183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200087e60201b60201c565b905092915050565b600080831415620007de576000905062000847565b60008284620007ee919062000a9d565b9050828482620007ff919062000a65565b1462000842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008399062000a0a565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008bf9190620009e6565b60405180910390fd5b5060008385620008d9919062000a65565b9050809150509392505050565b600081519050620008f78162000c35565b92915050565b60006020828403121562000916576200091562000bd0565b5b60006200092684828501620008e6565b91505092915050565b6200093a8162000afe565b82525050565b60006200094d8262000a49565b62000959818562000a54565b93506200096b81856020860162000b3c565b620009768162000bd5565b840191505092915050565b60006200099060218362000a54565b91506200099d8262000be6565b604082019050919050565b620009b38162000b32565b82525050565b6000604082019050620009d060008301856200092f565b620009df60208301846200092f565b9392505050565b6000602082019050818103600083015262000a02818462000940565b905092915050565b6000602082019050818103600083015262000a258162000981565b9050919050565b600060208201905062000a436000830184620009a8565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000a728262000b32565b915062000a7f8362000b32565b92508262000a925762000a9162000ba1565b5b828204905092915050565b600062000aaa8262000b32565b915062000ab78362000b32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000af35762000af262000b72565b5b828202905092915050565b600062000b0b8262000b12565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000b5c57808201518184015260208101905062000b3f565b8381111562000b6c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000c408162000afe565b811462000c4c57600080fd5b50565b613a858062000c5f6000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610419578063b515566a14610456578063ccbf6ae21461047f578063dd62ed3e146104a8578063e57f14e1146104e5578063f2fde38b1461050e5761014b565b8063715018a614610343578063751039fc1461035a57806387293a09146103715780638da5cb5b1461039a57806395d89b41146103c5578063a72e41ff146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b5780634ea18fab146102c65780636fc3eaec146102ef57806370a08231146103065761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610537565b604051610172919061305f565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612a52565b610574565b6040516101af9190613044565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612965565b610592565b005b3480156101ed57600080fd5b506101f6610734565b6040516102039190613221565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612bda565b610744565b005b34801561024157600080fd5b5061025c600480360381019061025791906129ff565b610808565b6040516102699190613044565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190612965565b6108e1565b005b3480156102a757600080fd5b506102b06109d1565b6040516102bd9190613296565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190612b80565b6109da565b005b3480156102fb57600080fd5b50610304610a45565b005b34801561031257600080fd5b5061032d60048036038101906103289190612965565b610ab7565b60405161033a9190613221565b60405180910390f35b34801561034f57600080fd5b50610358610b00565b005b34801561036657600080fd5b5061036f610c53565b005b34801561037d57600080fd5b5061039860048036038101906103939190612c1a565b610cd4565b005b3480156103a657600080fd5b506103af610da8565b6040516103bc9190612f9f565b60405180910390f35b3480156103d157600080fd5b506103da610dd1565b6040516103e7919061305f565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190612965565b610e0e565b005b34801561042557600080fd5b50610440600480360381019061043b9190612a52565b610ee1565b60405161044d9190613044565b60405180910390f35b34801561046257600080fd5b5061047d60048036038101906104789190612a92565b610eff565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612adb565b611029565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906129bf565b61121c565b6040516104dc9190613221565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612965565b6112a3565b005b34801561051a57600080fd5b5061053560048036038101906105309190612965565b61135f565b005b60606040518060400160405280601081526020017f53616d6d792053706f72747320426f7400000000000000000000000000000000815250905090565b6000610588610581611576565b848461157e565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d3611576565b73ffffffffffffffffffffffffffffffffffffffff16146105f357600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106709190612f9f565b60206040518083038186803b15801561068857600080fd5b505afa15801561069c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c09190612bad565b6040518363ffffffff1660e01b81526004016106dd929190612fba565b602060405180830381600087803b1580156106f757600080fd5b505af115801561070b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072f9190612b53565b505050565b6000670de0b6b3a7640000905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610785611576565b73ffffffffffffffffffffffffffffffffffffffff16146107a557600080fd5b606482111580156107b7575060648111155b6107f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ed90613181565b60405180910390fd5b8160098190555080600a819055505050565b6000610815848484611749565b6108d684610821611576565b6108d185604051806060016040528060288152602001613a2860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611576565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e679092919063ffffffff16565b61157e565b600190509392505050565b6108e9611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096d90613141565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1b611576565b73ffffffffffffffffffffffffffffffffffffffff1614610a3b57600080fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a86611576565b73ffffffffffffffffffffffffffffffffffffffff1614610aa657600080fd5b6000479050610ab481611ecb565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b08611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90613141565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c94611576565b73ffffffffffffffffffffffffffffffffffffffff1614610cb457600080fd5b670de0b6b3a7640000600e81905550670de0b6b3a7640000600f81905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d15611576565b73ffffffffffffffffffffffffffffffffffffffff1614610d3557600080fd5b6064818385610d449190613383565b610d4e9190613383565b14610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613101565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f53414d4d59000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e4f611576565b73ffffffffffffffffffffffffffffffffffffffff1614610e6f57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610ed230610ab7565b9050610edd8161207e565b5050565b6000610ef5610eee611576565b8484611749565b6001905092915050565b610f07611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8b90613141565b60405180910390fd5b60005b815181101561102557600160056000848481518110610fb957610fb8613640565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101d90613599565b915050610f97565b5050565b611031611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590613141565b60405180910390fd5b601560149054906101000a900460ff161561110e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611105906131e1565b60405180910390fd5b61112861111a30610ab7565b47611123610da8565b612304565b60005b82518110156111ce57633b9aca0082828151811061114c5761114b613640565b5b602002602001015161115e919061340a565b6002600085848151811061117557611174613640565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806111c690613599565b91505061112b565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555060f0426112129190613383565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e4611576565b73ffffffffffffffffffffffffffffffffffffffff161461130457600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611367611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113eb90613141565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612426565b905092915050565b60008083141561150e5760009050611570565b6000828461151c919061340a565b905082848261152b91906133d9565b1461156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290613121565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e5906131c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561165e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611655906130c1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161173c9190613221565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b0906131a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182090613081565b60405180910390fd5b6000811161186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613161565b60405180910390fd5b60095460088190555061187d610da8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118eb57506118bb610da8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d4757600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119945750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61199d57600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a485750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611aab575060075442105b15611bea57600f5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afe9190613383565b1115611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b36906130a1565b60405180910390fd5b600e54811115611b4e57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b9957600080fd5b601e42611ba69190613383565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60158054906101000a900460ff16158015611c535750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c6b5750601560169054906101000a900460ff165b8015611cc15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d46576007544211611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0190613201565b60405180910390fd5b6000611d1530610ab7565b9050601054811115611d4457611d2a8161207e565b60004790506000811115611d4257611d4147611ecb565b5b505b505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611df25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e485750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e5757600a546008819055505b611e62838383612489565b505050565b6000838311158290611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea6919061305f565b60405180910390fd5b5060008385611ebe9190613464565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f2f600b54611f216064866114b190919063ffffffff16565b6114fb90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f5a573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611fbf600c54611fb16064866114b190919063ffffffff16565b6114fb90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611fea573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61204f600d546120416064866114b190919063ffffffff16565b6114fb90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561207a573d6000803e3d6000fd5b5050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120b5576120b461366f565b5b6040519080825280602002602001820160405280156120e35781602001602082028036833780820191505090505b50905030816000815181106120fb576120fa613640565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561219d57600080fd5b505afa1580156121b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d59190612992565b816001815181106121e9576121e8613640565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461157e565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b495949392919061323c565b600060405180830381600087803b1580156122ce57600080fd5b505af11580156122e2573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60016015806101000a81548160ff02191690831515021790555061234b30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561157e565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016123b296959493929190612fe3565b6060604051808303818588803b1580156123cb57600080fd5b505af11580156123df573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124049190612c6d565b50505060006015806101000a81548160ff021916908315150217905550505050565b6000808311829061246d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612464919061305f565b60405180910390fd5b506000838561247c91906133d9565b9050809150509392505050565b600080612495836126c4565b915091506124eb83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061258082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126b59190613221565b60405180910390a35050505050565b60008060006126f26103e86126e4600854876114fb90919063ffffffff16565b6114b190919063ffffffff16565b90506000612709828661271890919063ffffffff16565b90508082935093505050915091565b600061275a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e67565b905092915050565b60008082846127719190613383565b9050838110156127b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ad906130e1565b60405180910390fd5b8091505092915050565b60006127d36127ce846132d6565b6132b1565b905080838252602082019050828560208602820111156127f6576127f56136a3565b5b60005b85811015612826578161280c88826128a0565b8452602084019350602083019250506001810190506127f9565b5050509392505050565b600061284361283e84613302565b6132b1565b90508083825260208201905082856020860282011115612866576128656136a3565b5b60005b85811015612896578161287c888261293b565b845260208401935060208301925050600181019050612869565b5050509392505050565b6000813590506128af816139e2565b92915050565b6000815190506128c4816139e2565b92915050565b600082601f8301126128df576128de61369e565b5b81356128ef8482602086016127c0565b91505092915050565b600082601f83011261290d5761290c61369e565b5b813561291d848260208601612830565b91505092915050565b600081519050612935816139f9565b92915050565b60008135905061294a81613a10565b92915050565b60008151905061295f81613a10565b92915050565b60006020828403121561297b5761297a6136ad565b5b6000612989848285016128a0565b91505092915050565b6000602082840312156129a8576129a76136ad565b5b60006129b6848285016128b5565b91505092915050565b600080604083850312156129d6576129d56136ad565b5b60006129e4858286016128a0565b92505060206129f5858286016128a0565b9150509250929050565b600080600060608486031215612a1857612a176136ad565b5b6000612a26868287016128a0565b9350506020612a37868287016128a0565b9250506040612a488682870161293b565b9150509250925092565b60008060408385031215612a6957612a686136ad565b5b6000612a77858286016128a0565b9250506020612a888582860161293b565b9150509250929050565b600060208284031215612aa857612aa76136ad565b5b600082013567ffffffffffffffff811115612ac657612ac56136a8565b5b612ad2848285016128ca565b91505092915050565b60008060408385031215612af257612af16136ad565b5b600083013567ffffffffffffffff811115612b1057612b0f6136a8565b5b612b1c858286016128ca565b925050602083013567ffffffffffffffff811115612b3d57612b3c6136a8565b5b612b49858286016128f8565b9150509250929050565b600060208284031215612b6957612b686136ad565b5b6000612b7784828501612926565b91505092915050565b600060208284031215612b9657612b956136ad565b5b6000612ba48482850161293b565b91505092915050565b600060208284031215612bc357612bc26136ad565b5b6000612bd184828501612950565b91505092915050565b60008060408385031215612bf157612bf06136ad565b5b6000612bff8582860161293b565b9250506020612c108582860161293b565b9150509250929050565b600080600060608486031215612c3357612c326136ad565b5b6000612c418682870161293b565b9350506020612c528682870161293b565b9250506040612c638682870161293b565b9150509250925092565b600080600060608486031215612c8657612c856136ad565b5b6000612c9486828701612950565b9350506020612ca586828701612950565b9250506040612cb686828701612950565b9150509250925092565b6000612ccc8383612ce7565b60208301905092915050565b612ce1816134ed565b82525050565b612cf081613498565b82525050565b612cff81613498565b82525050565b6000612d108261333e565b612d1a8185613361565b9350612d258361332e565b8060005b83811015612d56578151612d3d8882612cc0565b9750612d4883613354565b925050600181019050612d29565b5085935050505092915050565b612d6c816134aa565b82525050565b612d7b816134ff565b82525050565b6000612d8c82613349565b612d968185613372565b9350612da6818560208601613535565b612daf816136b2565b840191505092915050565b6000612dc7602383613372565b9150612dd2826136c3565b604082019050919050565b6000612dea601083613372565b9150612df582613712565b602082019050919050565b6000612e0d602283613372565b9150612e188261373b565b604082019050919050565b6000612e30601b83613372565b9150612e3b8261378a565b602082019050919050565b6000612e53600b83613372565b9150612e5e826137b3565b602082019050919050565b6000612e76602183613372565b9150612e81826137dc565b604082019050919050565b6000612e99602083613372565b9150612ea48261382b565b602082019050919050565b6000612ebc602983613372565b9150612ec782613854565b604082019050919050565b6000612edf601983613372565b9150612eea826138a3565b602082019050919050565b6000612f02602583613372565b9150612f0d826138cc565b604082019050919050565b6000612f25602483613372565b9150612f308261391b565b604082019050919050565b6000612f48601783613372565b9150612f538261396a565b602082019050919050565b6000612f6b602883613372565b9150612f7682613993565b604082019050919050565b612f8a816134d6565b82525050565b612f99816134e0565b82525050565b6000602082019050612fb46000830184612cf6565b92915050565b6000604082019050612fcf6000830185612cd8565b612fdc6020830184612f81565b9392505050565b600060c082019050612ff86000830189612cf6565b6130056020830188612f81565b6130126040830187612d72565b61301f6060830186612d72565b61302c6080830185612cf6565b61303960a0830184612f81565b979650505050505050565b60006020820190506130596000830184612d63565b92915050565b600060208201905081810360008301526130798184612d81565b905092915050565b6000602082019050818103600083015261309a81612dba565b9050919050565b600060208201905081810360008301526130ba81612ddd565b9050919050565b600060208201905081810360008301526130da81612e00565b9050919050565b600060208201905081810360008301526130fa81612e23565b9050919050565b6000602082019050818103600083015261311a81612e46565b9050919050565b6000602082019050818103600083015261313a81612e69565b9050919050565b6000602082019050818103600083015261315a81612e8c565b9050919050565b6000602082019050818103600083015261317a81612eaf565b9050919050565b6000602082019050818103600083015261319a81612ed2565b9050919050565b600060208201905081810360008301526131ba81612ef5565b9050919050565b600060208201905081810360008301526131da81612f18565b9050919050565b600060208201905081810360008301526131fa81612f3b565b9050919050565b6000602082019050818103600083015261321a81612f5e565b9050919050565b60006020820190506132366000830184612f81565b92915050565b600060a0820190506132516000830188612f81565b61325e6020830187612d72565b81810360408301526132708186612d05565b905061327f6060830185612cf6565b61328c6080830184612f81565b9695505050505050565b60006020820190506132ab6000830184612f90565b92915050565b60006132bb6132cc565b90506132c78282613568565b919050565b6000604051905090565b600067ffffffffffffffff8211156132f1576132f061366f565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561331d5761331c61366f565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061338e826134d6565b9150613399836134d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133ce576133cd6135e2565b5b828201905092915050565b60006133e4826134d6565b91506133ef836134d6565b9250826133ff576133fe613611565b5b828204905092915050565b6000613415826134d6565b9150613420836134d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613459576134586135e2565b5b828202905092915050565b600061346f826134d6565b915061347a836134d6565b92508282101561348d5761348c6135e2565b5b828203905092915050565b60006134a3826134b6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006134f882613511565b9050919050565b600061350a826134d6565b9050919050565b600061351c82613523565b9050919050565b600061352e826134b6565b9050919050565b60005b83811015613553578082015181840152602081019050613538565b83811115613562576000848401525b50505050565b613571826136b2565b810181811067ffffffffffffffff821117156135905761358f61366f565b5b80604052505050565b60006135a4826134d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135d7576135d66135e2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f6d61746820726574617264000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b6139eb81613498565b81146139f657600080fd5b50565b613a02816134aa565b8114613a0d57600080fd5b50565b613a19816134d6565b8114613a2457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fd4c95fee52163a3e5f3c1314c4c95c35af6c0bef11365b0551eb6a9e5af3e5b64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610419578063b515566a14610456578063ccbf6ae21461047f578063dd62ed3e146104a8578063e57f14e1146104e5578063f2fde38b1461050e5761014b565b8063715018a614610343578063751039fc1461035a57806387293a09146103715780638da5cb5b1461039a57806395d89b41146103c5578063a72e41ff146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b5780634ea18fab146102c65780636fc3eaec146102ef57806370a08231146103065761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610537565b604051610172919061305f565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612a52565b610574565b6040516101af9190613044565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612965565b610592565b005b3480156101ed57600080fd5b506101f6610734565b6040516102039190613221565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612bda565b610744565b005b34801561024157600080fd5b5061025c600480360381019061025791906129ff565b610808565b6040516102699190613044565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190612965565b6108e1565b005b3480156102a757600080fd5b506102b06109d1565b6040516102bd9190613296565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190612b80565b6109da565b005b3480156102fb57600080fd5b50610304610a45565b005b34801561031257600080fd5b5061032d60048036038101906103289190612965565b610ab7565b60405161033a9190613221565b60405180910390f35b34801561034f57600080fd5b50610358610b00565b005b34801561036657600080fd5b5061036f610c53565b005b34801561037d57600080fd5b5061039860048036038101906103939190612c1a565b610cd4565b005b3480156103a657600080fd5b506103af610da8565b6040516103bc9190612f9f565b60405180910390f35b3480156103d157600080fd5b506103da610dd1565b6040516103e7919061305f565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190612965565b610e0e565b005b34801561042557600080fd5b50610440600480360381019061043b9190612a52565b610ee1565b60405161044d9190613044565b60405180910390f35b34801561046257600080fd5b5061047d60048036038101906104789190612a92565b610eff565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612adb565b611029565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906129bf565b61121c565b6040516104dc9190613221565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612965565b6112a3565b005b34801561051a57600080fd5b5061053560048036038101906105309190612965565b61135f565b005b60606040518060400160405280601081526020017f53616d6d792053706f72747320426f7400000000000000000000000000000000815250905090565b6000610588610581611576565b848461157e565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d3611576565b73ffffffffffffffffffffffffffffffffffffffff16146105f357600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106709190612f9f565b60206040518083038186803b15801561068857600080fd5b505afa15801561069c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c09190612bad565b6040518363ffffffff1660e01b81526004016106dd929190612fba565b602060405180830381600087803b1580156106f757600080fd5b505af115801561070b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072f9190612b53565b505050565b6000670de0b6b3a7640000905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610785611576565b73ffffffffffffffffffffffffffffffffffffffff16146107a557600080fd5b606482111580156107b7575060648111155b6107f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ed90613181565b60405180910390fd5b8160098190555080600a819055505050565b6000610815848484611749565b6108d684610821611576565b6108d185604051806060016040528060288152602001613a2860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611576565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e679092919063ffffffff16565b61157e565b600190509392505050565b6108e9611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096d90613141565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1b611576565b73ffffffffffffffffffffffffffffffffffffffff1614610a3b57600080fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a86611576565b73ffffffffffffffffffffffffffffffffffffffff1614610aa657600080fd5b6000479050610ab481611ecb565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b08611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90613141565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c94611576565b73ffffffffffffffffffffffffffffffffffffffff1614610cb457600080fd5b670de0b6b3a7640000600e81905550670de0b6b3a7640000600f81905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d15611576565b73ffffffffffffffffffffffffffffffffffffffff1614610d3557600080fd5b6064818385610d449190613383565b610d4e9190613383565b14610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613101565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f53414d4d59000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e4f611576565b73ffffffffffffffffffffffffffffffffffffffff1614610e6f57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610ed230610ab7565b9050610edd8161207e565b5050565b6000610ef5610eee611576565b8484611749565b6001905092915050565b610f07611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8b90613141565b60405180910390fd5b60005b815181101561102557600160056000848481518110610fb957610fb8613640565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101d90613599565b915050610f97565b5050565b611031611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590613141565b60405180910390fd5b601560149054906101000a900460ff161561110e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611105906131e1565b60405180910390fd5b61112861111a30610ab7565b47611123610da8565b612304565b60005b82518110156111ce57633b9aca0082828151811061114c5761114b613640565b5b602002602001015161115e919061340a565b6002600085848151811061117557611174613640565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806111c690613599565b91505061112b565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555060f0426112129190613383565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e4611576565b73ffffffffffffffffffffffffffffffffffffffff161461130457600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611367611576565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113eb90613141565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612426565b905092915050565b60008083141561150e5760009050611570565b6000828461151c919061340a565b905082848261152b91906133d9565b1461156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290613121565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e5906131c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561165e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611655906130c1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161173c9190613221565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b0906131a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182090613081565b60405180910390fd5b6000811161186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613161565b60405180910390fd5b60095460088190555061187d610da8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118eb57506118bb610da8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d4757600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119945750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61199d57600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a485750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611aab575060075442105b15611bea57600f5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afe9190613383565b1115611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b36906130a1565b60405180910390fd5b600e54811115611b4e57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b9957600080fd5b601e42611ba69190613383565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60158054906101000a900460ff16158015611c535750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c6b5750601560169054906101000a900460ff165b8015611cc15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d46576007544211611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0190613201565b60405180910390fd5b6000611d1530610ab7565b9050601054811115611d4457611d2a8161207e565b60004790506000811115611d4257611d4147611ecb565b5b505b505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611df25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e485750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e5757600a546008819055505b611e62838383612489565b505050565b6000838311158290611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea6919061305f565b60405180910390fd5b5060008385611ebe9190613464565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f2f600b54611f216064866114b190919063ffffffff16565b6114fb90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f5a573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611fbf600c54611fb16064866114b190919063ffffffff16565b6114fb90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611fea573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61204f600d546120416064866114b190919063ffffffff16565b6114fb90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561207a573d6000803e3d6000fd5b5050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120b5576120b461366f565b5b6040519080825280602002602001820160405280156120e35781602001602082028036833780820191505090505b50905030816000815181106120fb576120fa613640565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561219d57600080fd5b505afa1580156121b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d59190612992565b816001815181106121e9576121e8613640565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461157e565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b495949392919061323c565b600060405180830381600087803b1580156122ce57600080fd5b505af11580156122e2573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60016015806101000a81548160ff02191690831515021790555061234b30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561157e565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016123b296959493929190612fe3565b6060604051808303818588803b1580156123cb57600080fd5b505af11580156123df573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124049190612c6d565b50505060006015806101000a81548160ff021916908315150217905550505050565b6000808311829061246d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612464919061305f565b60405180910390fd5b506000838561247c91906133d9565b9050809150509392505050565b600080612495836126c4565b915091506124eb83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061258082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126b59190613221565b60405180910390a35050505050565b60008060006126f26103e86126e4600854876114fb90919063ffffffff16565b6114b190919063ffffffff16565b90506000612709828661271890919063ffffffff16565b90508082935093505050915091565b600061275a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e67565b905092915050565b60008082846127719190613383565b9050838110156127b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ad906130e1565b60405180910390fd5b8091505092915050565b60006127d36127ce846132d6565b6132b1565b905080838252602082019050828560208602820111156127f6576127f56136a3565b5b60005b85811015612826578161280c88826128a0565b8452602084019350602083019250506001810190506127f9565b5050509392505050565b600061284361283e84613302565b6132b1565b90508083825260208201905082856020860282011115612866576128656136a3565b5b60005b85811015612896578161287c888261293b565b845260208401935060208301925050600181019050612869565b5050509392505050565b6000813590506128af816139e2565b92915050565b6000815190506128c4816139e2565b92915050565b600082601f8301126128df576128de61369e565b5b81356128ef8482602086016127c0565b91505092915050565b600082601f83011261290d5761290c61369e565b5b813561291d848260208601612830565b91505092915050565b600081519050612935816139f9565b92915050565b60008135905061294a81613a10565b92915050565b60008151905061295f81613a10565b92915050565b60006020828403121561297b5761297a6136ad565b5b6000612989848285016128a0565b91505092915050565b6000602082840312156129a8576129a76136ad565b5b60006129b6848285016128b5565b91505092915050565b600080604083850312156129d6576129d56136ad565b5b60006129e4858286016128a0565b92505060206129f5858286016128a0565b9150509250929050565b600080600060608486031215612a1857612a176136ad565b5b6000612a26868287016128a0565b9350506020612a37868287016128a0565b9250506040612a488682870161293b565b9150509250925092565b60008060408385031215612a6957612a686136ad565b5b6000612a77858286016128a0565b9250506020612a888582860161293b565b9150509250929050565b600060208284031215612aa857612aa76136ad565b5b600082013567ffffffffffffffff811115612ac657612ac56136a8565b5b612ad2848285016128ca565b91505092915050565b60008060408385031215612af257612af16136ad565b5b600083013567ffffffffffffffff811115612b1057612b0f6136a8565b5b612b1c858286016128ca565b925050602083013567ffffffffffffffff811115612b3d57612b3c6136a8565b5b612b49858286016128f8565b9150509250929050565b600060208284031215612b6957612b686136ad565b5b6000612b7784828501612926565b91505092915050565b600060208284031215612b9657612b956136ad565b5b6000612ba48482850161293b565b91505092915050565b600060208284031215612bc357612bc26136ad565b5b6000612bd184828501612950565b91505092915050565b60008060408385031215612bf157612bf06136ad565b5b6000612bff8582860161293b565b9250506020612c108582860161293b565b9150509250929050565b600080600060608486031215612c3357612c326136ad565b5b6000612c418682870161293b565b9350506020612c528682870161293b565b9250506040612c638682870161293b565b9150509250925092565b600080600060608486031215612c8657612c856136ad565b5b6000612c9486828701612950565b9350506020612ca586828701612950565b9250506040612cb686828701612950565b9150509250925092565b6000612ccc8383612ce7565b60208301905092915050565b612ce1816134ed565b82525050565b612cf081613498565b82525050565b612cff81613498565b82525050565b6000612d108261333e565b612d1a8185613361565b9350612d258361332e565b8060005b83811015612d56578151612d3d8882612cc0565b9750612d4883613354565b925050600181019050612d29565b5085935050505092915050565b612d6c816134aa565b82525050565b612d7b816134ff565b82525050565b6000612d8c82613349565b612d968185613372565b9350612da6818560208601613535565b612daf816136b2565b840191505092915050565b6000612dc7602383613372565b9150612dd2826136c3565b604082019050919050565b6000612dea601083613372565b9150612df582613712565b602082019050919050565b6000612e0d602283613372565b9150612e188261373b565b604082019050919050565b6000612e30601b83613372565b9150612e3b8261378a565b602082019050919050565b6000612e53600b83613372565b9150612e5e826137b3565b602082019050919050565b6000612e76602183613372565b9150612e81826137dc565b604082019050919050565b6000612e99602083613372565b9150612ea48261382b565b602082019050919050565b6000612ebc602983613372565b9150612ec782613854565b604082019050919050565b6000612edf601983613372565b9150612eea826138a3565b602082019050919050565b6000612f02602583613372565b9150612f0d826138cc565b604082019050919050565b6000612f25602483613372565b9150612f308261391b565b604082019050919050565b6000612f48601783613372565b9150612f538261396a565b602082019050919050565b6000612f6b602883613372565b9150612f7682613993565b604082019050919050565b612f8a816134d6565b82525050565b612f99816134e0565b82525050565b6000602082019050612fb46000830184612cf6565b92915050565b6000604082019050612fcf6000830185612cd8565b612fdc6020830184612f81565b9392505050565b600060c082019050612ff86000830189612cf6565b6130056020830188612f81565b6130126040830187612d72565b61301f6060830186612d72565b61302c6080830185612cf6565b61303960a0830184612f81565b979650505050505050565b60006020820190506130596000830184612d63565b92915050565b600060208201905081810360008301526130798184612d81565b905092915050565b6000602082019050818103600083015261309a81612dba565b9050919050565b600060208201905081810360008301526130ba81612ddd565b9050919050565b600060208201905081810360008301526130da81612e00565b9050919050565b600060208201905081810360008301526130fa81612e23565b9050919050565b6000602082019050818103600083015261311a81612e46565b9050919050565b6000602082019050818103600083015261313a81612e69565b9050919050565b6000602082019050818103600083015261315a81612e8c565b9050919050565b6000602082019050818103600083015261317a81612eaf565b9050919050565b6000602082019050818103600083015261319a81612ed2565b9050919050565b600060208201905081810360008301526131ba81612ef5565b9050919050565b600060208201905081810360008301526131da81612f18565b9050919050565b600060208201905081810360008301526131fa81612f3b565b9050919050565b6000602082019050818103600083015261321a81612f5e565b9050919050565b60006020820190506132366000830184612f81565b92915050565b600060a0820190506132516000830188612f81565b61325e6020830187612d72565b81810360408301526132708186612d05565b905061327f6060830185612cf6565b61328c6080830184612f81565b9695505050505050565b60006020820190506132ab6000830184612f90565b92915050565b60006132bb6132cc565b90506132c78282613568565b919050565b6000604051905090565b600067ffffffffffffffff8211156132f1576132f061366f565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561331d5761331c61366f565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061338e826134d6565b9150613399836134d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133ce576133cd6135e2565b5b828201905092915050565b60006133e4826134d6565b91506133ef836134d6565b9250826133ff576133fe613611565b5b828204905092915050565b6000613415826134d6565b9150613420836134d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613459576134586135e2565b5b828202905092915050565b600061346f826134d6565b915061347a836134d6565b92508282101561348d5761348c6135e2565b5b828203905092915050565b60006134a3826134b6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006134f882613511565b9050919050565b600061350a826134d6565b9050919050565b600061351c82613523565b9050919050565b600061352e826134b6565b9050919050565b60005b83811015613553578082015181840152602081019050613538565b83811115613562576000848401525b50505050565b613571826136b2565b810181811067ffffffffffffffff821117156135905761358f61366f565b5b80604052505050565b60006135a4826134d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135d7576135d66135e2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f6d61746820726574617264000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b6139eb81613498565b81146139f657600080fd5b50565b613a02816134aa565b8114613a0d57600080fd5b50565b613a19816134d6565b8114613a2457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fd4c95fee52163a3e5f3c1314c4c95c35af6c0bef11365b0551eb6a9e5af3e5b64736f6c63430008070033
Deployed Bytecode Sourcemap
3850:9672:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6815:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13275:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6261:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7454:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6984:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12009:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6170:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7310:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12834:188;;;;;;;;;;;;;:::i;:::-;;6364:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2929:148;;;;;;;;;;;;;:::i;:::-;;7954:156;;;;;;;;;;;;;:::i;:::-;;7693:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2534:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6075:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12575:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6489:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11833:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11388:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6664:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8120:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2748:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5984:83;6021:13;6054:5;;;;;;;;;;;;;;;;;6047:12;;5984:83;:::o;6815:161::-;6890:4;6907:39;6916:12;:10;:12::i;:::-;6930:7;6939:6;6907:8;:39::i;:::-;6964:4;6957:11;;6815:161;;;;:::o;13275:244::-;13364:9;;;;;;;;;;;13348:25;;:12;:10;:12::i;:::-;:25;;;13340:34;;;;;;13385:20;13415:12;13385:43;;13439:13;:22;;;13462:9;;;;;;;;;;;13472:13;:23;;;13504:4;13472:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13439:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13329:190;13275:244;:::o;6261:95::-;6314:7;4304:17;6334:14;;6261:95;:::o;7454:231::-;7547:9;;;;;;;;;;;7531:25;;:12;:10;:12::i;:::-;:25;;;7523:34;;;;;;7584:3;7576:4;:11;;:27;;;;;7600:3;7591:5;:12;;7576:27;7568:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7650:4;7643;:11;;;;7672:5;7665:4;:12;;;;7454:231;;:::o;6984:313::-;7082:4;7099:36;7109:6;7117:9;7128:6;7099:9;:36::i;:::-;7146:121;7155:6;7163:12;:10;:12::i;:::-;7177:89;7215:6;7177:89;;;;;;;;;;;;;;;;;:11;:19;7189:6;7177:19;;;;;;;;;;;;;;;:33;7197:12;:10;:12::i;:::-;7177:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7146:8;:121::i;:::-;7285:4;7278:11;;6984:313;;;;;:::o;12009:88::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12084:5:::1;12069:4;:12;12074:6;12069:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12009:88:::0;:::o;6170:83::-;6211:5;4799:1;6229:16;;6170:83;:::o;7310:136::-;7396:9;;;;;;;;;;;7380:25;;:12;:10;:12::i;:::-;:25;;;7372:34;;;;;;7430:6;7417:10;:19;;;;7310:136;:::o;12834:188::-;12900:9;;;;;;;;;;;12884:25;;:12;:10;:12::i;:::-;:25;;;12876:34;;;;;;12921:26;12950:21;12921:50;;12982:32;12995:18;12982:12;:32::i;:::-;12865:157;12834:188::o;6364:117::-;6430:7;6457;:16;6465:7;6457:16;;;;;;;;;;;;;;;;6450:23;;6364:117;;;:::o;2929:148::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3036:1:::1;2999:40;;3020:6;::::0;::::1;;;;;;;;2999:40;;;;;;;;;;;;3067:1;3050:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2929:148::o:0;7954:156::-;8022:9;;;;;;;;;;;8006:25;;:12;:10;:12::i;:::-;:25;;;7998:34;;;;;;4304:17;8043:12;:22;;;;4304:17;8076:16;:26;;;;7954:156::o;7693:253::-;7806:9;;;;;;;;;;;7790:25;;:12;:10;:12::i;:::-;:25;;;7782:34;;;;;;7857:3;7849:4;7842;7835;:11;;;;:::i;:::-;:18;;;;:::i;:::-;:25;7827:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;7892:4;7886:3;:10;;;;7913:4;7907:3;:10;;;;7934:4;7928:3;:10;;;;7693:253;;;:::o;2534:79::-;2572:7;2599:6;;;;;;;;;;;2592:13;;2534:79;:::o;6075:87::-;6114:13;6147:7;;;;;;;;;;;;;;;;;6140:14;;6075:87;:::o;12575:247::-;12655:9;;;;;;;;;;;12639:25;;:12;:10;:12::i;:::-;:25;;;12631:34;;;;;;12705:4;12676:18;:26;12695:6;12676:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12720:23;12746:24;12764:4;12746:9;:24::i;:::-;12720:50;;12781:33;12798:15;12781:16;:33::i;:::-;12620:202;12575:247;:::o;6489:167::-;6567:4;6584:42;6594:12;:10;:12::i;:::-;6608:9;6619:6;6584:9;:42::i;:::-;6644:4;6637:11;;6489:167;;;;:::o;11833:164::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11907:6:::1;11902:88;11923:5;:12;11919:1;:16;11902:88;;;11974:4;11957;:14;11962:5;11968:1;11962:8;;;;;;;;:::i;:::-;;;;;;;;11957:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11937:3;;;;;:::i;:::-;;;;11902:88;;;;11833:164:::0;:::o;11388:433::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11504:11:::1;;;;;;;;;;;11503:12;11495:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11553:68;11566:24;11584:4;11566:9;:24::i;:::-;11591:21;11613:7;:5;:7::i;:::-;11553:12;:68::i;:::-;11636:6;11632:77;11647:9;:16;11645:1;:18;11632:77;;;11702:5;11691:7;11699:1;11691:10;;;;;;;;:::i;:::-;;;;;;;;:16;;;;:::i;:::-;11669:7;:21;11677:9;11687:1;11677:12;;;;;;;;:::i;:::-;;;;;;;;11669:21;;;;;;;;;;;;;;;:38;;;;11664:3;;;;;:::i;:::-;;;;11632:77;;;;11733:4;11719:11;;:18;;;;;;;;;;;;;;;;;;11762:4;11748:11;;:18;;;;;;;;;;;;;;;;;;11803:9;11784:15;:29;;;;:::i;:::-;11777:4;:36;;;;11388:433:::0;;:::o;6664:143::-;6745:7;6772:11;:18;6784:5;6772:18;;;;;;;;;;;;;;;:27;6791:7;6772:27;;;;;;;;;;;;;;;;6765:34;;6664:143;;;;:::o;8120:147::-;8205:9;;;;;;;;;;;8189:25;;:12;:10;:12::i;:::-;:25;;;8181:34;;;;;;8255:4;8226:18;:26;8245:6;8226:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8120:147;:::o;2748:173::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2864:9:::1;2835:39;;2856:6;::::0;::::1;;;;;;;;2835:39;;;;;;;;;;;;2894:9;2885:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2748:173:::0;:::o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1919:46;;1841:132;;;;:::o;1587:246::-;1645:7;1674:1;1669;:6;1665:47;;;1699:1;1692:8;;;;1665:47;1722:9;1738:1;1734;:5;;;;:::i;:::-;1722:17;;1767:1;1762;1758;:5;;;;:::i;:::-;:10;1750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1824:1;1817:8;;;1587:246;;;;;:::o;252:98::-;305:7;332:10;325:17;;252:98;:::o;8280:335::-;8390:1;8373:19;;:5;:19;;;;8365:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8471:1;8452:21;;:7;:21;;;;8444:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8553:6;8523:11;:18;8535:5;8523:18;;;;;;;;;;;;;;;:27;8542:7;8523:27;;;;;;;;;;;;;;;:36;;;;8591:7;8575:32;;8584:5;8575:32;;;8600:6;8575:32;;;;;;:::i;:::-;;;;;;;;8280:335;;;:::o;8623:1710::-;8727:1;8711:18;;:4;:18;;;;8703:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8804:1;8790:16;;:2;:16;;;;8782:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8874:1;8865:6;:10;8857:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8941:4;;8934;:11;;;;8968:7;:5;:7::i;:::-;8960:15;;:4;:15;;;;:32;;;;;8985:7;:5;:7::i;:::-;8979:13;;:2;:13;;;;8960:32;8956:1185;;;9018:4;:10;9023:4;9018:10;;;;;;;;;;;;;;;;;;;;;;;;;9017:11;:24;;;;;9033:4;:8;9038:2;9033:8;;;;;;;;;;;;;;;;;;;;;;;;;9032:9;9017:24;9009:33;;;;;;9069:13;;;;;;;;;;;9061:21;;:4;:21;;;:55;;;;;9100:15;;;;;;;;;;;9086:30;;:2;:30;;;;9061:55;:83;;;;;9122:18;:22;9141:2;9122:22;;;;;;;;;;;;;;;;;;;;;;;;;9120:24;9061:83;:111;;;;;9167:4;;9149:15;:22;9061:111;9057:422;;;9255:16;;9244:6;9230:7;:11;9238:2;9230:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9229:42;;9221:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9328:12;;9318:6;:22;;9310:31;;;;;;9383:15;9368:8;:12;9377:2;9368:12;;;;;;;;;;;;;;;;:30;9360:39;;;;;;9452:10;9433:15;:30;;;;:::i;:::-;9418:8;:12;9427:2;9418:12;;;;;;;;;;;;;;;:45;;;;9057:422;9526:6;;;;;;;;;;9525:7;:32;;;;;9544:13;;;;;;;;;;;9536:21;;:4;:21;;;;9525:32;:47;;;;;9561:11;;;;;;;;;;;9525:47;:76;;;;;9577:18;:24;9596:4;9577:24;;;;;;;;;;;;;;;;;;;;;;;;;9576:25;9525:76;9521:609;;;9648:4;;9630:15;:22;9622:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9715:28;9746:24;9764:4;9746:9;:24::i;:::-;9715:55;;9815:10;;9792:20;:33;9789:326;;;9849:38;9866:20;9849:16;:38::i;:::-;9910:26;9939:21;9910:50;;10007:1;9986:18;:22;9983:113;;;10037:35;10050:21;10037:12;:35::i;:::-;9983:113;9826:289;9789:326;9603:527;9521:609;8956:1185;10161:13;;;;;;;;;;;10155:19;;:2;:19;;;:55;;;;;10194:15;;;;;;;;;;;10178:32;;:4;:32;;;;10155:55;:85;;;;;10216:18;:24;10235:4;10216:24;;;;;;;;;;;;;;;;;;;;;;;;;10214:26;10155:85;10151:129;;;10264:4;;10257;:11;;;;10151:129;10292:33;10310:4;10315:2;10318:6;10292:17;:33::i;:::-;8623:1710;;;:::o;1389:190::-;1475:7;1508:1;1503;:6;;1511:12;1495:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1535:9;1551:1;1547;:5;;;;:::i;:::-;1535:17;;1570:1;1563:8;;;1389:190;;;;;:::o;11140:236::-;11197:9;;;;;;;;;;;:18;;:44;11216:24;11236:3;;11216:15;11227:3;11216:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11197:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11252:19;;;;;;;;;;;:28;;:54;11281:24;11301:3;;11281:15;11292:3;11281:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11252:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:16;;;;;;;;;;;:25;;:51;11343:24;11363:3;;11343:15;11354:3;11343:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11317:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11140:236;:::o;10341:483::-;5174:4;5165:6;;:13;;;;;;;;;;;;;;;;;;10419:21:::1;10457:1;10443:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10419:40;;10488:4;10470;10475:1;10470:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10514:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10504:4;10509:1;10504:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10547:62;10564:4;10579:15;;;;;;;;;;;10597:11;10547:8;:62::i;:::-;10620:15;;;;;;;;;;;:66;;;10701:11;10727:1;10743:4;10770;10790:15;10620:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10408:416;5210:5:::0;5201:6;;:14;;;;;;;;;;;;;;;;;;10341:483;:::o;10838:288::-;5174:4;5165:6;;:13;;;;;;;;;;;;;;;;;;10944:60:::1;10961:4;10975:15;;;;;;;;;;;10992:11;10944:8;:60::i;:::-;11015:15;;;;;;;;;;;:31;;;11054:9;11073:4;11079:11;11091:1;11093::::0;11095:6:::1;11102:15;11015:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5210:5:::0;5201:6;;:14;;;;;;;;;;;;;;;;;;10838:288;;;:::o;1981:189::-;2067:7;2099:1;2095;:5;2102:12;2087:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2126:9;2142:1;2138;:5;;;;:::i;:::-;2126:17;;2161:1;2154:8;;;1981:189;;;;;:::o;12105:421::-;12204:22;12227:12;12243:20;12255:7;12243:11;:20::i;:::-;12203:60;;;;12292:28;12312:7;12292;:15;12300:6;12292:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12274:7;:15;12282:6;12274:15;;;;;;;;;;;;;;;:46;;;;12352:38;12375:14;12352:7;:18;12360:9;12352:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12331:7;:18;12339:9;12331:18;;;;;;;;;;;;;;;:59;;;;12427:32;12454:4;12427:7;:22;12443:4;12427:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12402:7;:22;12418:4;12402:22;;;;;;;;;;;;;;;:57;;;;12492:9;12475:43;;12484:6;12475:43;;;12503:14;12475:43;;;;;;:::i;:::-;;;;;;;;12192:334;;12105:421;;;:::o;13033:234::-;13093:7;13102;13122:12;13137:27;13159:4;13137:17;13149:4;;13137:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13122:42;;13175:23;13201:17;13213:4;13201:7;:11;;:17;;;;:::i;:::-;13175:43;;13237:15;13254:4;13229:30;;;;;;13033:234;;;:::o;1245:136::-;1303:7;1330:43;1334:1;1337;1330:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1323:50;;1245:136;;;;:::o;1058:179::-;1116:7;1136:9;1152:1;1148;:5;;;;:::i;:::-;1136:17;;1177:1;1172;:6;;1164:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1228:1;1221:8;;;1058:179;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1497:139;;;;:::o;1642:143::-;1699:5;1730:6;1724:13;1715:22;;1746:33;1773:5;1746:33;:::i;:::-;1642:143;;;;:::o;1808:370::-;1879:5;1928:3;1921:4;1913:6;1909:17;1905:27;1895:122;;1936:79;;:::i;:::-;1895:122;2053:6;2040:20;2078:94;2168:3;2160:6;2153:4;2145:6;2141:17;2078:94;:::i;:::-;2069:103;;1885:293;1808:370;;;;:::o;2201:::-;2272:5;2321:3;2314:4;2306:6;2302:17;2298:27;2288:122;;2329:79;;:::i;:::-;2288:122;2446:6;2433:20;2471:94;2561:3;2553:6;2546:4;2538:6;2534:17;2471:94;:::i;:::-;2462:103;;2278:293;2201:370;;;;:::o;2577:137::-;2631:5;2662:6;2656:13;2647:22;;2678:30;2702:5;2678:30;:::i;:::-;2577:137;;;;:::o;2720:139::-;2766:5;2804:6;2791:20;2782:29;;2820:33;2847:5;2820:33;:::i;:::-;2720:139;;;;:::o;2865:143::-;2922:5;2953:6;2947:13;2938:22;;2969:33;2996:5;2969:33;:::i;:::-;2865:143;;;;:::o;3014:329::-;3073:6;3122:2;3110:9;3101:7;3097:23;3093:32;3090:119;;;3128:79;;:::i;:::-;3090:119;3248:1;3273:53;3318:7;3309:6;3298:9;3294:22;3273:53;:::i;:::-;3263:63;;3219:117;3014:329;;;;:::o;3349:351::-;3419:6;3468:2;3456:9;3447:7;3443:23;3439:32;3436:119;;;3474:79;;:::i;:::-;3436:119;3594:1;3619:64;3675:7;3666:6;3655:9;3651:22;3619:64;:::i;:::-;3609:74;;3565:128;3349:351;;;;:::o;3706:474::-;3774:6;3782;3831:2;3819:9;3810:7;3806:23;3802:32;3799:119;;;3837:79;;:::i;:::-;3799:119;3957:1;3982:53;4027:7;4018:6;4007:9;4003:22;3982:53;:::i;:::-;3972:63;;3928:117;4084:2;4110:53;4155:7;4146:6;4135:9;4131:22;4110:53;:::i;:::-;4100:63;;4055:118;3706:474;;;;;:::o;4186:619::-;4263:6;4271;4279;4328:2;4316:9;4307:7;4303:23;4299:32;4296:119;;;4334:79;;:::i;:::-;4296:119;4454:1;4479:53;4524:7;4515:6;4504:9;4500:22;4479:53;:::i;:::-;4469:63;;4425:117;4581:2;4607:53;4652:7;4643:6;4632:9;4628:22;4607:53;:::i;:::-;4597:63;;4552:118;4709:2;4735:53;4780:7;4771:6;4760:9;4756:22;4735:53;:::i;:::-;4725:63;;4680:118;4186:619;;;;;:::o;4811:474::-;4879:6;4887;4936:2;4924:9;4915:7;4911:23;4907:32;4904:119;;;4942:79;;:::i;:::-;4904:119;5062:1;5087:53;5132:7;5123:6;5112:9;5108:22;5087:53;:::i;:::-;5077:63;;5033:117;5189:2;5215:53;5260:7;5251:6;5240:9;5236:22;5215:53;:::i;:::-;5205:63;;5160:118;4811:474;;;;;:::o;5291:539::-;5375:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:119;;;5430:79;;:::i;:::-;5392:119;5578:1;5567:9;5563:17;5550:31;5608:18;5600:6;5597:30;5594:117;;;5630:79;;:::i;:::-;5594:117;5735:78;5805:7;5796:6;5785:9;5781:22;5735:78;:::i;:::-;5725:88;;5521:302;5291:539;;;;:::o;5836:894::-;5954:6;5962;6011:2;5999:9;5990:7;5986:23;5982:32;5979:119;;;6017:79;;:::i;:::-;5979:119;6165:1;6154:9;6150:17;6137:31;6195:18;6187:6;6184:30;6181:117;;;6217:79;;:::i;:::-;6181:117;6322:78;6392:7;6383:6;6372:9;6368:22;6322:78;:::i;:::-;6312:88;;6108:302;6477:2;6466:9;6462:18;6449:32;6508:18;6500:6;6497:30;6494:117;;;6530:79;;:::i;:::-;6494:117;6635:78;6705:7;6696:6;6685:9;6681:22;6635:78;:::i;:::-;6625:88;;6420:303;5836:894;;;;;:::o;6736:345::-;6803:6;6852:2;6840:9;6831:7;6827:23;6823:32;6820:119;;;6858:79;;:::i;:::-;6820:119;6978:1;7003:61;7056:7;7047:6;7036:9;7032:22;7003:61;:::i;:::-;6993:71;;6949:125;6736:345;;;;:::o;7087:329::-;7146:6;7195:2;7183:9;7174:7;7170:23;7166:32;7163:119;;;7201:79;;:::i;:::-;7163:119;7321:1;7346:53;7391:7;7382:6;7371:9;7367:22;7346:53;:::i;:::-;7336:63;;7292:117;7087:329;;;;:::o;7422:351::-;7492:6;7541:2;7529:9;7520:7;7516:23;7512:32;7509:119;;;7547:79;;:::i;:::-;7509:119;7667:1;7692:64;7748:7;7739:6;7728:9;7724:22;7692:64;:::i;:::-;7682:74;;7638:128;7422:351;;;;:::o;7779:474::-;7847:6;7855;7904:2;7892:9;7883:7;7879:23;7875:32;7872:119;;;7910:79;;:::i;:::-;7872:119;8030:1;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8001:117;8157:2;8183:53;8228:7;8219:6;8208:9;8204:22;8183:53;:::i;:::-;8173:63;;8128:118;7779:474;;;;;:::o;8259:619::-;8336:6;8344;8352;8401:2;8389:9;8380:7;8376:23;8372:32;8369:119;;;8407:79;;:::i;:::-;8369:119;8527:1;8552:53;8597:7;8588:6;8577:9;8573:22;8552:53;:::i;:::-;8542:63;;8498:117;8654:2;8680:53;8725:7;8716:6;8705:9;8701:22;8680:53;:::i;:::-;8670:63;;8625:118;8782:2;8808:53;8853:7;8844:6;8833:9;8829:22;8808:53;:::i;:::-;8798:63;;8753:118;8259:619;;;;;:::o;8884:663::-;8972:6;8980;8988;9037:2;9025:9;9016:7;9012:23;9008:32;9005:119;;;9043:79;;:::i;:::-;9005:119;9163:1;9188:64;9244:7;9235:6;9224:9;9220:22;9188:64;:::i;:::-;9178:74;;9134:128;9301:2;9327:64;9383:7;9374:6;9363:9;9359:22;9327:64;:::i;:::-;9317:74;;9272:129;9440:2;9466:64;9522:7;9513:6;9502:9;9498:22;9466:64;:::i;:::-;9456:74;;9411:129;8884:663;;;;;:::o;9553:179::-;9622:10;9643:46;9685:3;9677:6;9643:46;:::i;:::-;9721:4;9716:3;9712:14;9698:28;;9553:179;;;;:::o;9738:147::-;9833:45;9872:5;9833:45;:::i;:::-;9828:3;9821:58;9738:147;;:::o;9891:108::-;9968:24;9986:5;9968:24;:::i;:::-;9963:3;9956:37;9891:108;;:::o;10005:118::-;10092:24;10110:5;10092:24;:::i;:::-;10087:3;10080:37;10005:118;;:::o;10159:732::-;10278:3;10307:54;10355:5;10307:54;:::i;:::-;10377:86;10456:6;10451:3;10377:86;:::i;:::-;10370:93;;10487:56;10537:5;10487:56;:::i;:::-;10566:7;10597:1;10582:284;10607:6;10604:1;10601:13;10582:284;;;10683:6;10677:13;10710:63;10769:3;10754:13;10710:63;:::i;:::-;10703:70;;10796:60;10849:6;10796:60;:::i;:::-;10786:70;;10642:224;10629:1;10626;10622:9;10617:14;;10582:284;;;10586:14;10882:3;10875:10;;10283:608;;;10159:732;;;;:::o;10897:109::-;10978:21;10993:5;10978:21;:::i;:::-;10973:3;10966:34;10897:109;;:::o;11012:147::-;11107:45;11146:5;11107:45;:::i;:::-;11102:3;11095:58;11012:147;;:::o;11165:364::-;11253:3;11281:39;11314:5;11281:39;:::i;:::-;11336:71;11400:6;11395:3;11336:71;:::i;:::-;11329:78;;11416:52;11461:6;11456:3;11449:4;11442:5;11438:16;11416:52;:::i;:::-;11493:29;11515:6;11493:29;:::i;:::-;11488:3;11484:39;11477:46;;11257:272;11165:364;;;;:::o;11535:366::-;11677:3;11698:67;11762:2;11757:3;11698:67;:::i;:::-;11691:74;;11774:93;11863:3;11774:93;:::i;:::-;11892:2;11887:3;11883:12;11876:19;;11535:366;;;:::o;11907:::-;12049:3;12070:67;12134:2;12129:3;12070:67;:::i;:::-;12063:74;;12146:93;12235:3;12146:93;:::i;:::-;12264:2;12259:3;12255:12;12248:19;;11907:366;;;:::o;12279:::-;12421:3;12442:67;12506:2;12501:3;12442:67;:::i;:::-;12435:74;;12518:93;12607:3;12518:93;:::i;:::-;12636:2;12631:3;12627:12;12620:19;;12279:366;;;:::o;12651:::-;12793:3;12814:67;12878:2;12873:3;12814:67;:::i;:::-;12807:74;;12890:93;12979:3;12890:93;:::i;:::-;13008:2;13003:3;12999:12;12992:19;;12651:366;;;:::o;13023:::-;13165:3;13186:67;13250:2;13245:3;13186:67;:::i;:::-;13179:74;;13262:93;13351:3;13262:93;:::i;:::-;13380:2;13375:3;13371:12;13364:19;;13023:366;;;:::o;13395:::-;13537:3;13558:67;13622:2;13617:3;13558:67;:::i;:::-;13551:74;;13634:93;13723:3;13634:93;:::i;:::-;13752:2;13747:3;13743:12;13736:19;;13395:366;;;:::o;13767:::-;13909:3;13930:67;13994:2;13989:3;13930:67;:::i;:::-;13923:74;;14006:93;14095:3;14006:93;:::i;:::-;14124:2;14119:3;14115:12;14108:19;;13767:366;;;:::o;14139:::-;14281:3;14302:67;14366:2;14361:3;14302:67;:::i;:::-;14295:74;;14378:93;14467:3;14378:93;:::i;:::-;14496:2;14491:3;14487:12;14480:19;;14139:366;;;:::o;14511:::-;14653:3;14674:67;14738:2;14733:3;14674:67;:::i;:::-;14667:74;;14750:93;14839:3;14750:93;:::i;:::-;14868:2;14863:3;14859:12;14852:19;;14511:366;;;:::o;14883:::-;15025:3;15046:67;15110:2;15105:3;15046:67;:::i;:::-;15039:74;;15122:93;15211:3;15122:93;:::i;:::-;15240:2;15235:3;15231:12;15224:19;;14883:366;;;:::o;15255:::-;15397:3;15418:67;15482:2;15477:3;15418:67;:::i;:::-;15411:74;;15494:93;15583:3;15494:93;:::i;:::-;15612:2;15607:3;15603:12;15596:19;;15255:366;;;:::o;15627:::-;15769:3;15790:67;15854:2;15849:3;15790:67;:::i;:::-;15783:74;;15866:93;15955:3;15866:93;:::i;:::-;15984:2;15979:3;15975:12;15968:19;;15627:366;;;:::o;15999:::-;16141:3;16162:67;16226:2;16221:3;16162:67;:::i;:::-;16155:74;;16238:93;16327:3;16238:93;:::i;:::-;16356:2;16351:3;16347:12;16340:19;;15999:366;;;:::o;16371:118::-;16458:24;16476:5;16458:24;:::i;:::-;16453:3;16446:37;16371:118;;:::o;16495:112::-;16578:22;16594:5;16578:22;:::i;:::-;16573:3;16566:35;16495:112;;:::o;16613:222::-;16706:4;16744:2;16733:9;16729:18;16721:26;;16757:71;16825:1;16814:9;16810:17;16801:6;16757:71;:::i;:::-;16613:222;;;;:::o;16841:348::-;16970:4;17008:2;16997:9;16993:18;16985:26;;17021:79;17097:1;17086:9;17082:17;17073:6;17021:79;:::i;:::-;17110:72;17178:2;17167:9;17163:18;17154:6;17110:72;:::i;:::-;16841:348;;;;;:::o;17195:807::-;17444:4;17482:3;17471:9;17467:19;17459:27;;17496:71;17564:1;17553:9;17549:17;17540:6;17496:71;:::i;:::-;17577:72;17645:2;17634:9;17630:18;17621:6;17577:72;:::i;:::-;17659:80;17735:2;17724:9;17720:18;17711:6;17659:80;:::i;:::-;17749;17825:2;17814:9;17810:18;17801:6;17749:80;:::i;:::-;17839:73;17907:3;17896:9;17892:19;17883:6;17839:73;:::i;:::-;17922;17990:3;17979:9;17975:19;17966:6;17922:73;:::i;:::-;17195:807;;;;;;;;;:::o;18008:210::-;18095:4;18133:2;18122:9;18118:18;18110:26;;18146:65;18208:1;18197:9;18193:17;18184:6;18146:65;:::i;:::-;18008:210;;;;:::o;18224:313::-;18337:4;18375:2;18364:9;18360:18;18352:26;;18424:9;18418:4;18414:20;18410:1;18399:9;18395:17;18388:47;18452:78;18525:4;18516:6;18452:78;:::i;:::-;18444:86;;18224:313;;;;:::o;18543:419::-;18709:4;18747:2;18736:9;18732:18;18724:26;;18796:9;18790:4;18786:20;18782:1;18771:9;18767:17;18760:47;18824:131;18950:4;18824:131;:::i;:::-;18816:139;;18543:419;;;:::o;18968:::-;19134:4;19172:2;19161:9;19157:18;19149:26;;19221:9;19215:4;19211:20;19207:1;19196:9;19192:17;19185:47;19249:131;19375:4;19249:131;:::i;:::-;19241:139;;18968:419;;;:::o;19393:::-;19559:4;19597:2;19586:9;19582:18;19574:26;;19646:9;19640:4;19636:20;19632:1;19621:9;19617:17;19610:47;19674:131;19800:4;19674:131;:::i;:::-;19666:139;;19393:419;;;:::o;19818:::-;19984:4;20022:2;20011:9;20007:18;19999:26;;20071:9;20065:4;20061:20;20057:1;20046:9;20042:17;20035:47;20099:131;20225:4;20099:131;:::i;:::-;20091:139;;19818:419;;;:::o;20243:::-;20409:4;20447:2;20436:9;20432:18;20424:26;;20496:9;20490:4;20486:20;20482:1;20471:9;20467:17;20460:47;20524:131;20650:4;20524:131;:::i;:::-;20516:139;;20243:419;;;:::o;20668:::-;20834:4;20872:2;20861:9;20857:18;20849:26;;20921:9;20915:4;20911:20;20907:1;20896:9;20892:17;20885:47;20949:131;21075:4;20949:131;:::i;:::-;20941:139;;20668:419;;;:::o;21093:::-;21259:4;21297:2;21286:9;21282:18;21274:26;;21346:9;21340:4;21336:20;21332:1;21321:9;21317:17;21310:47;21374:131;21500:4;21374:131;:::i;:::-;21366:139;;21093:419;;;:::o;21518:::-;21684:4;21722:2;21711:9;21707:18;21699:26;;21771:9;21765:4;21761:20;21757:1;21746:9;21742:17;21735:47;21799:131;21925:4;21799:131;:::i;:::-;21791:139;;21518:419;;;:::o;21943:::-;22109:4;22147:2;22136:9;22132:18;22124:26;;22196:9;22190:4;22186:20;22182:1;22171:9;22167:17;22160:47;22224:131;22350:4;22224:131;:::i;:::-;22216:139;;21943:419;;;:::o;22368:::-;22534:4;22572:2;22561:9;22557:18;22549:26;;22621:9;22615:4;22611:20;22607:1;22596:9;22592:17;22585:47;22649:131;22775:4;22649:131;:::i;:::-;22641:139;;22368:419;;;:::o;22793:::-;22959:4;22997:2;22986:9;22982:18;22974:26;;23046:9;23040:4;23036:20;23032:1;23021:9;23017:17;23010:47;23074:131;23200:4;23074:131;:::i;:::-;23066:139;;22793:419;;;:::o;23218:::-;23384:4;23422:2;23411:9;23407:18;23399:26;;23471:9;23465:4;23461:20;23457:1;23446:9;23442:17;23435:47;23499:131;23625:4;23499:131;:::i;:::-;23491:139;;23218:419;;;:::o;23643:::-;23809:4;23847:2;23836:9;23832:18;23824:26;;23896:9;23890:4;23886:20;23882:1;23871:9;23867:17;23860:47;23924:131;24050:4;23924:131;:::i;:::-;23916:139;;23643:419;;;:::o;24068:222::-;24161:4;24199:2;24188:9;24184:18;24176:26;;24212:71;24280:1;24269:9;24265:17;24256:6;24212:71;:::i;:::-;24068:222;;;;:::o;24296:831::-;24559:4;24597:3;24586:9;24582:19;24574:27;;24611:71;24679:1;24668:9;24664:17;24655:6;24611:71;:::i;:::-;24692:80;24768:2;24757:9;24753:18;24744:6;24692:80;:::i;:::-;24819:9;24813:4;24809:20;24804:2;24793:9;24789:18;24782:48;24847:108;24950:4;24941:6;24847:108;:::i;:::-;24839:116;;24965:72;25033:2;25022:9;25018:18;25009:6;24965:72;:::i;:::-;25047:73;25115:3;25104:9;25100:19;25091:6;25047:73;:::i;:::-;24296:831;;;;;;;;:::o;25133:214::-;25222:4;25260:2;25249:9;25245:18;25237:26;;25273:67;25337:1;25326:9;25322:17;25313:6;25273:67;:::i;:::-;25133:214;;;;:::o;25353:129::-;25387:6;25414:20;;:::i;:::-;25404:30;;25443:33;25471:4;25463:6;25443:33;:::i;:::-;25353:129;;;:::o;25488:75::-;25521:6;25554:2;25548:9;25538:19;;25488:75;:::o;25569:311::-;25646:4;25736:18;25728:6;25725:30;25722:56;;;25758:18;;:::i;:::-;25722:56;25808:4;25800:6;25796:17;25788:25;;25868:4;25862;25858:15;25850:23;;25569:311;;;:::o;25886:::-;25963:4;26053:18;26045:6;26042:30;26039:56;;;26075:18;;:::i;:::-;26039:56;26125:4;26117:6;26113:17;26105:25;;26185:4;26179;26175:15;26167:23;;25886:311;;;:::o;26203:132::-;26270:4;26293:3;26285:11;;26323:4;26318:3;26314:14;26306:22;;26203:132;;;:::o;26341:114::-;26408:6;26442:5;26436:12;26426:22;;26341:114;;;:::o;26461:99::-;26513:6;26547:5;26541:12;26531:22;;26461:99;;;:::o;26566:113::-;26636:4;26668;26663:3;26659:14;26651:22;;26566:113;;;:::o;26685:184::-;26784:11;26818:6;26813:3;26806:19;26858:4;26853:3;26849:14;26834:29;;26685:184;;;;:::o;26875:169::-;26959:11;26993:6;26988:3;26981:19;27033:4;27028:3;27024:14;27009:29;;26875:169;;;;:::o;27050:305::-;27090:3;27109:20;27127:1;27109:20;:::i;:::-;27104:25;;27143:20;27161:1;27143:20;:::i;:::-;27138:25;;27297:1;27229:66;27225:74;27222:1;27219:81;27216:107;;;27303:18;;:::i;:::-;27216:107;27347:1;27344;27340:9;27333:16;;27050:305;;;;:::o;27361:185::-;27401:1;27418:20;27436:1;27418:20;:::i;:::-;27413:25;;27452:20;27470:1;27452:20;:::i;:::-;27447:25;;27491:1;27481:35;;27496:18;;:::i;:::-;27481:35;27538:1;27535;27531:9;27526:14;;27361:185;;;;:::o;27552:348::-;27592:7;27615:20;27633:1;27615:20;:::i;:::-;27610:25;;27649:20;27667:1;27649:20;:::i;:::-;27644:25;;27837:1;27769:66;27765:74;27762:1;27759:81;27754:1;27747:9;27740:17;27736:105;27733:131;;;27844:18;;:::i;:::-;27733:131;27892:1;27889;27885:9;27874:20;;27552:348;;;;:::o;27906:191::-;27946:4;27966:20;27984:1;27966:20;:::i;:::-;27961:25;;28000:20;28018:1;28000:20;:::i;:::-;27995:25;;28039:1;28036;28033:8;28030:34;;;28044:18;;:::i;:::-;28030:34;28089:1;28086;28082:9;28074:17;;27906:191;;;;:::o;28103:96::-;28140:7;28169:24;28187:5;28169:24;:::i;:::-;28158:35;;28103:96;;;:::o;28205:90::-;28239:7;28282:5;28275:13;28268:21;28257:32;;28205:90;;;:::o;28301:126::-;28338:7;28378:42;28371:5;28367:54;28356:65;;28301:126;;;:::o;28433:77::-;28470:7;28499:5;28488:16;;28433:77;;;:::o;28516:86::-;28551:7;28591:4;28584:5;28580:16;28569:27;;28516:86;;;:::o;28608:134::-;28666:9;28699:37;28730:5;28699:37;:::i;:::-;28686:50;;28608:134;;;:::o;28748:121::-;28806:9;28839:24;28857:5;28839:24;:::i;:::-;28826:37;;28748:121;;;:::o;28875:126::-;28925:9;28958:37;28989:5;28958:37;:::i;:::-;28945:50;;28875:126;;;:::o;29007:113::-;29057:9;29090:24;29108:5;29090:24;:::i;:::-;29077:37;;29007:113;;;:::o;29126:307::-;29194:1;29204:113;29218:6;29215:1;29212:13;29204:113;;;29303:1;29298:3;29294:11;29288:18;29284:1;29279:3;29275:11;29268:39;29240:2;29237:1;29233:10;29228:15;;29204:113;;;29335:6;29332:1;29329:13;29326:101;;;29415:1;29406:6;29401:3;29397:16;29390:27;29326:101;29175:258;29126:307;;;:::o;29439:281::-;29522:27;29544:4;29522:27;:::i;:::-;29514:6;29510:40;29652:6;29640:10;29637:22;29616:18;29604:10;29601:34;29598:62;29595:88;;;29663:18;;:::i;:::-;29595:88;29703:10;29699:2;29692:22;29482:238;29439:281;;:::o;29726:233::-;29765:3;29788:24;29806:5;29788:24;:::i;:::-;29779:33;;29834:66;29827:5;29824:77;29821:103;;;29904:18;;:::i;:::-;29821:103;29951:1;29944:5;29940:13;29933:20;;29726:233;;;:::o;29965:180::-;30013:77;30010:1;30003:88;30110:4;30107:1;30100:15;30134:4;30131:1;30124:15;30151:180;30199:77;30196:1;30189:88;30296:4;30293:1;30286:15;30320:4;30317:1;30310:15;30337:180;30385:77;30382:1;30375:88;30482:4;30479:1;30472:15;30506:4;30503:1;30496:15;30523:180;30571:77;30568:1;30561:88;30668:4;30665:1;30658:15;30692:4;30689:1;30682:15;30709:117;30818:1;30815;30808:12;30832:117;30941:1;30938;30931:12;30955:117;31064:1;31061;31054:12;31078:117;31187:1;31184;31177:12;31201:102;31242:6;31293:2;31289:7;31284:2;31277:5;31273:14;31269:28;31259:38;;31201:102;;;:::o;31309:222::-;31449:34;31445:1;31437:6;31433:14;31426:58;31518:5;31513:2;31505:6;31501:15;31494:30;31309:222;:::o;31537:166::-;31677:18;31673:1;31665:6;31661:14;31654:42;31537:166;:::o;31709:221::-;31849:34;31845:1;31837:6;31833:14;31826:58;31918:4;31913:2;31905:6;31901:15;31894:29;31709:221;:::o;31936:177::-;32076:29;32072:1;32064:6;32060:14;32053:53;31936:177;:::o;32119:161::-;32259:13;32255:1;32247:6;32243:14;32236:37;32119:161;:::o;32286:220::-;32426:34;32422:1;32414:6;32410:14;32403:58;32495:3;32490:2;32482:6;32478:15;32471:28;32286:220;:::o;32512:182::-;32652:34;32648:1;32640:6;32636:14;32629:58;32512:182;:::o;32700:228::-;32840:34;32836:1;32828:6;32824:14;32817:58;32909:11;32904:2;32896:6;32892:15;32885:36;32700:228;:::o;32934:175::-;33074:27;33070:1;33062:6;33058:14;33051:51;32934:175;:::o;33115:224::-;33255:34;33251:1;33243:6;33239:14;33232:58;33324:7;33319:2;33311:6;33307:15;33300:32;33115:224;:::o;33345:223::-;33485:34;33481:1;33473:6;33469:14;33462:58;33554:6;33549:2;33541:6;33537:15;33530:31;33345:223;:::o;33574:173::-;33714:25;33710:1;33702:6;33698:14;33691:49;33574:173;:::o;33753:227::-;33893:34;33889:1;33881:6;33877:14;33870:58;33962:10;33957:2;33949:6;33945:15;33938:35;33753:227;:::o;33986:122::-;34059:24;34077:5;34059:24;:::i;:::-;34052:5;34049:35;34039:63;;34098:1;34095;34088:12;34039:63;33986:122;:::o;34114:116::-;34184:21;34199:5;34184:21;:::i;:::-;34177:5;34174:32;34164:60;;34220:1;34217;34210:12;34164:60;34114:116;:::o;34236:122::-;34309:24;34327:5;34309:24;:::i;:::-;34302:5;34299:35;34289:63;;34348:1;34345;34338:12;34289:63;34236:122;:::o
Swarm Source
ipfs://fd4c95fee52163a3e5f3c1314c4c95c35af6c0bef11365b0551eb6a9e5af3e5b
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.