More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 29 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17476929 | 573 days ago | IN | 0 ETH | 0.00074582 | ||||
Wallet | 17464217 | 575 days ago | IN | 0 ETH | 0.00149154 | ||||
Wallet | 17464201 | 575 days ago | IN | 0 ETH | 0.00150352 | ||||
Approve | 17464197 | 575 days ago | IN | 0 ETH | 0.00173285 | ||||
Setis Bot | 17464188 | 575 days ago | IN | 0 ETH | 0.0140361 | ||||
Approve | 17464167 | 575 days ago | IN | 0 ETH | 0.00153376 | ||||
Approve | 17464159 | 575 days ago | IN | 0 ETH | 0.00158819 | ||||
Approve | 17464158 | 575 days ago | IN | 0 ETH | 0.00162872 | ||||
Approve | 17464157 | 575 days ago | IN | 0 ETH | 0.00145575 | ||||
Approve | 17464156 | 575 days ago | IN | 0 ETH | 0.00153261 | ||||
Approve | 17464155 | 575 days ago | IN | 0 ETH | 0.00158017 | ||||
Approve | 17464154 | 575 days ago | IN | 0 ETH | 0.00157467 | ||||
Approve | 17464153 | 575 days ago | IN | 0 ETH | 0.00140778 | ||||
Approve | 17464152 | 575 days ago | IN | 0 ETH | 0.0014633 | ||||
Approve | 17464152 | 575 days ago | IN | 0 ETH | 0.00153407 | ||||
Approve | 17464151 | 575 days ago | IN | 0 ETH | 0.00151851 | ||||
Approve | 17464151 | 575 days ago | IN | 0 ETH | 0.00158927 | ||||
Approve | 17464151 | 575 days ago | IN | 0 ETH | 0.00158927 | ||||
Approve | 17464151 | 575 days ago | IN | 0 ETH | 0.0017308 | ||||
Approve | 17464151 | 575 days ago | IN | 0 ETH | 0.0019195 | ||||
Approve | 17464150 | 575 days ago | IN | 0 ETH | 0.00151864 | ||||
Approve | 17464150 | 575 days ago | IN | 0 ETH | 0.00151864 | ||||
Approve | 17464150 | 575 days ago | IN | 0 ETH | 0.00151864 | ||||
Approve | 17464150 | 575 days ago | IN | 0 ETH | 0.00152232 | ||||
Approve | 17464150 | 575 days ago | IN | 0 ETH | 0.00152232 |
Latest 12 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17464201 | 575 days ago | 0.05874534 ETH | ||||
17464201 | 575 days ago | 0.05855017 ETH | ||||
17464201 | 575 days ago | 0.11729552 ETH | ||||
17464189 | 575 days ago | 0.05803955 ETH | ||||
17464189 | 575 days ago | 0.05784673 ETH | ||||
17464189 | 575 days ago | 0.11588628 ETH | ||||
17464186 | 575 days ago | 0.06163674 ETH | ||||
17464186 | 575 days ago | 0.06143197 ETH | ||||
17464186 | 575 days ago | 0.12306871 ETH | ||||
17464185 | 575 days ago | 0.06571989 ETH | ||||
17464185 | 575 days ago | 0.06550155 ETH | ||||
17464185 | 575 days ago | 0.13122144 ETH |
Loading...
Loading
Contract Name:
BoringClub
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-12 */ // https://t.me/boring_lfg // SPDX-License-Identifier: MIT pragma solidity 0.8.17; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;} function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;} function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;} function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;} function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;} function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}} function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b > a) return(false, 0); return(true, a - b);}} function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if (a == 0) return(true, 0); uint256 c = a * b; if(c / a != b) return(false, 0); return(true, c);}} function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a / b);}} function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a % b);}} function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b <= a, errorMessage); return a - b;}} function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a / b;}} function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a % b;}}} interface IERC20 { function totalSupply() external view returns (uint256); function circulatingSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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);} abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);} event OwnershipTransferred(address owner); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { 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); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract BoringClub is IERC20, Ownable { using SafeMath for uint256; string private constant _name = 'BoringClub'; string private constant _symbol = 'BORC'; uint8 private constant _decimals = 9; uint256 private _totalSupply = 100000000 * (10 ** _decimals); uint256 private _maxTxAmountPercent = 100; // 10000; uint256 private _maxTransferPercent = 100; uint256 private _maxWalletPercent = 100; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) private isBot; IRouter router; address public pair; bool private tradingAllowed = true; uint256 private liquidityFee = 0; uint256 private marketingFee = 300; uint256 private developmentFee = 300; uint256 private burnFee = 0; uint256 private totalFee = 2500; uint256 private sellFee = 2500; uint256 private transferFee = 9900; uint256 private denominator = 10000; bool private swapEnabled = true; uint256 private swapTimes; bool private swapping; uint256 private swapThreshold = ( _totalSupply * 2000 ) / 100000; uint256 private _minTokenAmount = ( _totalSupply * 10 ) / 100000; modifier lockTheSwap {swapping = true; _; swapping = false;} address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal constant development_receiver = 0x161B5E270B83c0210F3D24a2B8Cd9C40cF214d7d; address internal constant marketing_receiver = 0x161B5E270B83c0210F3D24a2B8Cd9C40cF214d7d; address internal constant liquidity_receiver = 0x161B5E270B83c0210F3D24a2B8Cd9C40cF214d7d; constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExempt[address(this)] = true; isFeeExempt[liquidity_receiver] = true; isFeeExempt[marketing_receiver] = true; isFeeExempt[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} 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 Trading() external onlyOwner {tradingAllowed = true;} function getOwner() external view override returns (address) { return owner; } function totalSupply() public view override returns (uint256) {return _totalSupply;} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; } function setisBot(address _address, bool _enabled) external onlyOwner {isBot[_address] = _enabled;} function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;} function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;} function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;} function preTxCheck(address sender, address recipient, uint256 amount) internal view { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > uint256(0), "Transfer amount must be greater than zero"); require(amount <= balanceOf(sender),"You are trying to transfer more than your balance"); } function _transfer(address sender, address recipient, uint256 amount) private { preTxCheck(sender, recipient, amount); checkTradingAllowed(sender, recipient); checkMaxWallet(sender, recipient, amount); swapbackCounters(sender, recipient); checkTxLimit(sender, recipient, amount); swapBack(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function Fee(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner { liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans; } function Wallet(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner { uint256 newTx = (totalSupply() * _buy) / 10000; uint256 newTransfer = (totalSupply() * _trans) / 10000; uint256 newWallet = (totalSupply() * _wallet) / 10000; _maxTxAmountPercent = _buy; _maxTransferPercent = _trans; _maxWalletPercent = _wallet; uint256 limit = totalSupply().mul(5).div(1000); require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%"); } function checkTradingAllowed(address sender, address recipient) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");} } function checkMaxWallet(address sender, address recipient, uint256 amount) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");} } function swapbackCounters(address sender, address recipient) internal { if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);} } function checkTxLimit(address sender, address recipient, uint256 amount) internal view { if(sender != pair){require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");} require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee); if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);} uint256 remainingBalance = address(this).balance; if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, liquidity_receiver, block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= _minTokenAmount; bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(0) && aboveThreshold; } function swapBack(address sender, address recipient, uint256 amount) internal { if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);} } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));} if(recipient == pair){return sellFee;} if(sender == pair){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));} return amount.sub(feeAmount);} return amount; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"Fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Trading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"Wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","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":"view","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526009600a62000014919062000712565b6305f5e10062000025919062000763565b6001556064600255606460035560646004556001600a60146101000a81548160ff0219169083151502179055506000600b5561012c600c5561012c600d556000600e556109c4600f556109c46010556126ac6011556127106012556001601360006101000a81548160ff021916908315150217905550620186a06107d0600154620000b1919062000763565b620000bd9190620007dd565b601655620186a0600a600154620000d5919062000763565b620000e19190620007dd565b601755348015620000f157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c191906200087f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f91906200087f565b6040518363ffffffff1660e01b81526004016200026e929190620008c2565b6020604051808303816000875af11580156200028e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b491906200087f565b905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073161b5e270b83c0210f3d24a2b8cd9c40cf214d7d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073161b5e270b83c0210f3d24a2b8cd9c40cf214d7d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000568919062000900565b60405180910390a350506200091d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060657808604811115620005de57620005dd62000578565b5b6001851615620005ee5780820291505b8081029050620005fe85620005a7565b9450620005be565b94509492505050565b600082620006215760019050620006f4565b81620006315760009050620006f4565b81600181146200064a576002811462000655576200068b565b6001915050620006f4565b60ff8411156200066a576200066962000578565b5b8360020a91508482111562000684576200068362000578565b5b50620006f4565b5060208310610133831016604e8410600b8410161715620006c55782820a905083811115620006bf57620006be62000578565b5b620006f4565b620006d48484846001620005b4565b92509050818404811115620006ee57620006ed62000578565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200071f82620006fb565b91506200072c8362000705565b92506200075b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200060f565b905092915050565b60006200077082620006fb565b91506200077d83620006fb565b92508282026200078d81620006fb565b91508282048414831517620007a757620007a662000578565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007ea82620006fb565b9150620007f783620006fb565b9250826200080a5762000809620007ae565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000847826200081a565b9050919050565b62000859816200083a565b81146200086557600080fd5b50565b60008151905062000879816200084e565b92915050565b60006020828403121562000898576200089762000815565b5b6000620008a88482850162000868565b91505092915050565b620008bc816200083a565b82525050565b6000604082019050620008d96000830185620008b1565b620008e86020830184620008b1565b9392505050565b620008fa81620006fb565b82525050565b6000602082019050620009176000830184620008ef565b92915050565b61339b806200092d6000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b657806395d89b411161006f57806395d89b411461047d578063a8aa1b31146104a8578063a9059cbb146104d3578063bc0ad5a314610510578063dd62ed3e14610527578063f2fde38b146105645761014b565b806370a082311461036b57806378109e54146103a85780637d1db4a5146103d3578063893d20e8146103fe5780638c41180e146104295780639358928b146104525761014b565b806323b872dd1161010857806323b872dd146102375780632f54bf6e14610274578063313ce567146102b15780633f4218e0146102dc57806348ff2b8b146103195780634cd9ae6d146103425761014b565b806306fdde0314610150578063095ea7b31461017b57806317b7d83c146101b857806318160ddd146101e15780631f976b7e1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561058d565b60405161017291906124d8565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612593565b6105ca565b6040516101af91906125ee565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612609565b6105e1565b005b3480156101ed57600080fd5b506101f6610663565b60405161020391906126ba565b60405180910390f35b34801561021857600080fd5b5061022161066d565b60405161022e91906126ba565b60405180910390f35b34801561024357600080fd5b5061025e600480360381019061025991906126d5565b610696565b60405161026b91906125ee565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190612728565b610761565b6040516102a891906125ee565b60405180910390f35b3480156102bd57600080fd5b506102c66107ba565b6040516102d39190612771565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190612728565b6107c3565b60405161031091906125ee565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b91906127b8565b6107e3565b005b34801561034e57600080fd5b50610369600480360381019061036491906127f8565b610886565b005b34801561037757600080fd5b50610392600480360381019061038d9190612728565b6109e6565b60405161039f91906126ba565b60405180910390f35b3480156103b457600080fd5b506103bd610a2f565b6040516103ca91906126ba565b60405180910390f35b3480156103df57600080fd5b506103e8610a58565b6040516103f591906126ba565b60405180910390f35b34801561040a57600080fd5b50610413610a81565b604051610420919061285a565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b91906127b8565b610aaa565b005b34801561045e57600080fd5b50610467610b4d565b60405161047491906126ba565b60405180910390f35b34801561048957600080fd5b50610492610b8e565b60405161049f91906124d8565b60405180910390f35b3480156104b457600080fd5b506104bd610bcb565b6040516104ca919061285a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612593565b610bf1565b60405161050791906125ee565b60405180910390f35b34801561051c57600080fd5b50610525610c08565b005b34801561053357600080fd5b5061054e60048036038101906105499190612875565b610c6d565b60405161055b91906126ba565b60405180910390f35b34801561057057600080fd5b5061058b600480360381019061058691906128f3565b610cf4565b005b60606040518060400160405280600a81526020017f426f72696e67436c756200000000000000000000000000000000000000000000815250905090565b60006105d7338484610db6565b6001905092915050565b6105ea33610761565b610629576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106209061296c565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f81905550816010819055508060118190555050505050505050565b6000600154905090565b600060125460035461067d610663565b61068791906129bb565b6106919190612a2c565b905090565b60006106a3848484610f7f565b61075684336107518560405180606001604052806028815260200161333e60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111789092919063ffffffff16565b610db6565b600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60076020528060005260406000206000915054906101000a900460ff1681565b6107ec33610761565b61082b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108229061296c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61088f33610761565b6108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c59061296c565b60405180910390fd5b6000612710846108dc610663565b6108e691906129bb565b6108f09190612a2c565b9050600061271084610900610663565b61090a91906129bb565b6109149190612a2c565b9050600061271084610924610663565b61092e91906129bb565b6109389190612a2c565b905085600281905550846003819055508360048190555060006109806103e86109726005610964610663565b6111cd90919063ffffffff16565b6111e390919063ffffffff16565b90508084101580156109925750808310155b801561099e5750808210155b6109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490612acf565b60405180910390fd5b50505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610a3f610663565b610a4991906129bb565b610a539190612a2c565b905090565b6000601254600254610a68610663565b610a7291906129bb565b610a7c9190612a2c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab333610761565b610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae99061296c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610b89610b5c60006109e6565b610b7b610b6a61dead6109e6565b6001546111f990919063ffffffff16565b6111f990919063ffffffff16565b905090565b60606040518060400160405280600481526020017f424f524300000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bfe338484610f7f565b6001905092915050565b610c1133610761565b610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c479061296c565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cfd33610761565b610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d339061296c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610dab9190612b4e565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1c90612bdb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b90612c6d565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f7291906126ba565b60405180910390a3505050565b610f8a83838361120f565b610f948383611380565b610f9f83838361147d565b610fa9838361165b565b610fb4838383611726565b610fbf838383611965565b61101181600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111f990919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611060848461198e565b61106a5781611076565b611075848484611a3c565b5b90506110ca81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161116a91906126ba565b60405180910390a350505050565b60008383111582906111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b791906124d8565b60405180910390fd5b5082840390509392505050565b600081836111db91906129bb565b905092915050565b600081836111f19190612a2c565b905092915050565b600081836112079190612c8d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590612d33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612dc5565b60405180910390fd5b60008111611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790612e57565b60405180910390fd5b611339836109e6565b81111561137b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137290612ee9565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114245750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561147957600a60149054906101000a900460ff16611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90612f55565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115215750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561157b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115b5575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611656576115c2610a2f565b61161482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b1115611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612fc1565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156117025750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117225760016014600082825461171a9190612fe1565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461186e5761178361066d565b811115806117da5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061182e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186490613061565b60405180910390fd5b5b611876610a58565b811115806118cd5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119215750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613061565b60405180910390fd5b505050565b611970838383611bfa565b1561198957611980601654611d33565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a345750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a498585611f84565b1115611bd9576000611a81611a5e8686611f84565b611a73601254866111e390919063ffffffff16565b6111cd90919063ffffffff16565b9050611ad581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b7591906126ba565b60405180910390a36000600e541115611bbe57611bbd3061dead611bb8600e54611baa601254896111e390919063ffffffff16565b6111cd90919063ffffffff16565b610f7f565b5b611bd181846111f990919063ffffffff16565b915050611bdd565b8190505b9392505050565b60008183611bf29190612fe1565b905092915050565b60008060175483101590506000601654611c13306109e6565b10159050601560009054906101000a900460ff16158015611c405750601360009054906101000a900460ff165b8015611c585750600a60149054906101000a900460ff165b8015611c615750815b8015611cb75750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d105750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d1f5750600060145410155b8015611d285750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611da16002611d93600d54611d85600c54611d776001600b54611be490919063ffffffff16565b611be490919063ffffffff16565b611be490919063ffffffff16565b6111cd90919063ffffffff16565b90506000611dcc82611dbe600b54866111cd90919063ffffffff16565b6111e390919063ffffffff16565b90506000611de382856111f990919063ffffffff16565b90506000479050611df382612113565b6000611e0882476111f990919063ffffffff16565b90506000611e33611e24600b54886111f990919063ffffffff16565b836111e390919063ffffffff16565b90506000611e4c600b54836111cd90919063ffffffff16565b90506000811115611e6257611e618682612356565b5b6000611e8c600c54611e7e6002866111cd90919063ffffffff16565b6111cd90919063ffffffff16565b90506000811115611ef35773161b5e270b83c0210f3d24a2b8cd9c40cf214d7d73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ef1573d6000803e3d6000fd5b505b60004790506000811115611f5d5773161b5e270b83c0210f3d24a2b8cd9c40cf214d7d73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5b573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120275750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120495761204260646012546111f990919063ffffffff16565b905061210d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120a857601054905061210d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361210757600f54905061210d565b60115490505b92915050565b6000600267ffffffffffffffff8111156121305761212f613081565b5b60405190808252806020026020018201604052801561215e5781602001602082028036833780820191505090505b5090503081600081518110612176576121756130b0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224191906130f4565b81600181518110612255576122546130b0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122bc30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610db6565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161232095949392919061321a565b600060405180830381600087803b15801561233a57600080fd5b505af115801561234e573d6000803e3d6000fd5b505050505050565b61238330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610db6565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073161b5e270b83c0210f3d24a2b8cd9c40cf214d7d426040518863ffffffff1660e01b81526004016123fe96959493929190613274565b60606040518083038185885af115801561241c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061244191906132ea565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612482578082015181840152602081019050612467565b60008484015250505050565b6000601f19601f8301169050919050565b60006124aa82612448565b6124b48185612453565b93506124c4818560208601612464565b6124cd8161248e565b840191505092915050565b600060208201905081810360008301526124f2818461249f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061252a826124ff565b9050919050565b61253a8161251f565b811461254557600080fd5b50565b60008135905061255781612531565b92915050565b6000819050919050565b6125708161255d565b811461257b57600080fd5b50565b60008135905061258d81612567565b92915050565b600080604083850312156125aa576125a96124fa565b5b60006125b885828601612548565b92505060206125c98582860161257e565b9150509250929050565b60008115159050919050565b6125e8816125d3565b82525050565b600060208201905061260360008301846125df565b92915050565b600080600080600080600060e0888a031215612628576126276124fa565b5b60006126368a828b0161257e565b97505060206126478a828b0161257e565b96505060406126588a828b0161257e565b95505060606126698a828b0161257e565b945050608061267a8a828b0161257e565b93505060a061268b8a828b0161257e565b92505060c061269c8a828b0161257e565b91505092959891949750929550565b6126b48161255d565b82525050565b60006020820190506126cf60008301846126ab565b92915050565b6000806000606084860312156126ee576126ed6124fa565b5b60006126fc86828701612548565b935050602061270d86828701612548565b925050604061271e8682870161257e565b9150509250925092565b60006020828403121561273e5761273d6124fa565b5b600061274c84828501612548565b91505092915050565b600060ff82169050919050565b61276b81612755565b82525050565b60006020820190506127866000830184612762565b92915050565b612795816125d3565b81146127a057600080fd5b50565b6000813590506127b28161278c565b92915050565b600080604083850312156127cf576127ce6124fa565b5b60006127dd85828601612548565b92505060206127ee858286016127a3565b9150509250929050565b600080600060608486031215612811576128106124fa565b5b600061281f8682870161257e565b93505060206128308682870161257e565b92505060406128418682870161257e565b9150509250925092565b6128548161251f565b82525050565b600060208201905061286f600083018461284b565b92915050565b6000806040838503121561288c5761288b6124fa565b5b600061289a85828601612548565b92505060206128ab85828601612548565b9150509250929050565b60006128c0826124ff565b9050919050565b6128d0816128b5565b81146128db57600080fd5b50565b6000813590506128ed816128c7565b92915050565b600060208284031215612909576129086124fa565b5b6000612917848285016128de565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612956600683612453565b915061296182612920565b602082019050919050565b6000602082019050818103600083015261298581612949565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129c68261255d565b91506129d18361255d565b92508282026129df8161255d565b915082820484148315176129f6576129f561298c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a378261255d565b9150612a428361255d565b925082612a5257612a516129fd565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612ab9602e83612453565b9150612ac482612a5d565b604082019050919050565b60006020820190508181036000830152612ae881612aac565b9050919050565b6000819050919050565b6000612b14612b0f612b0a846124ff565b612aef565b6124ff565b9050919050565b6000612b2682612af9565b9050919050565b6000612b3882612b1b565b9050919050565b612b4881612b2d565b82525050565b6000602082019050612b636000830184612b3f565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc5602483612453565b9150612bd082612b69565b604082019050919050565b60006020820190508181036000830152612bf481612bb8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c57602283612453565b9150612c6282612bfb565b604082019050919050565b60006020820190508181036000830152612c8681612c4a565b9050919050565b6000612c988261255d565b9150612ca38361255d565b9250828203905081811115612cbb57612cba61298c565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d1d602583612453565b9150612d2882612cc1565b604082019050919050565b60006020820190508181036000830152612d4c81612d10565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612daf602383612453565b9150612dba82612d53565b604082019050919050565b60006020820190508181036000830152612dde81612da2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e41602983612453565b9150612e4c82612de5565b604082019050919050565b60006020820190508181036000830152612e7081612e34565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612ed3603183612453565b9150612ede82612e77565b604082019050919050565b60006020820190508181036000830152612f0281612ec6565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000612f3f600e83612453565b9150612f4a82612f09565b602082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000612fab601e83612453565b9150612fb682612f75565b602082019050919050565b60006020820190508181036000830152612fda81612f9e565b9050919050565b6000612fec8261255d565b9150612ff78361255d565b925082820190508082111561300f5761300e61298c565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061304b601183612453565b915061305682613015565b602082019050919050565b6000602082019050818103600083015261307a8161303e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130ee81612531565b92915050565b60006020828403121561310a576131096124fa565b5b6000613118848285016130df565b91505092915050565b6000819050919050565b600061314661314161313c84613121565b612aef565b61255d565b9050919050565b6131568161312b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131918161251f565b82525050565b60006131a38383613188565b60208301905092915050565b6000602082019050919050565b60006131c78261315c565b6131d18185613167565b93506131dc83613178565b8060005b8381101561320d5781516131f48882613197565b97506131ff836131af565b9250506001810190506131e0565b5085935050505092915050565b600060a08201905061322f60008301886126ab565b61323c602083018761314d565b818103604083015261324e81866131bc565b905061325d606083018561284b565b61326a60808301846126ab565b9695505050505050565b600060c082019050613289600083018961284b565b61329660208301886126ab565b6132a3604083018761314d565b6132b0606083018661314d565b6132bd608083018561284b565b6132ca60a08301846126ab565b979650505050505050565b6000815190506132e481612567565b92915050565b600080600060608486031215613303576133026124fa565b5b6000613311868287016132d5565b9350506020613322868287016132d5565b9250506040613333868287016132d5565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122087b8f0b639b39b67ff43e39b0aa86a60e27191082de8b8fb1475627fd1a5060164736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101445760003560e01c806370a08231116100b657806395d89b411161006f57806395d89b411461047d578063a8aa1b31146104a8578063a9059cbb146104d3578063bc0ad5a314610510578063dd62ed3e14610527578063f2fde38b146105645761014b565b806370a082311461036b57806378109e54146103a85780637d1db4a5146103d3578063893d20e8146103fe5780638c41180e146104295780639358928b146104525761014b565b806323b872dd1161010857806323b872dd146102375780632f54bf6e14610274578063313ce567146102b15780633f4218e0146102dc57806348ff2b8b146103195780634cd9ae6d146103425761014b565b806306fdde0314610150578063095ea7b31461017b57806317b7d83c146101b857806318160ddd146101e15780631f976b7e1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561058d565b60405161017291906124d8565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612593565b6105ca565b6040516101af91906125ee565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612609565b6105e1565b005b3480156101ed57600080fd5b506101f6610663565b60405161020391906126ba565b60405180910390f35b34801561021857600080fd5b5061022161066d565b60405161022e91906126ba565b60405180910390f35b34801561024357600080fd5b5061025e600480360381019061025991906126d5565b610696565b60405161026b91906125ee565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190612728565b610761565b6040516102a891906125ee565b60405180910390f35b3480156102bd57600080fd5b506102c66107ba565b6040516102d39190612771565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190612728565b6107c3565b60405161031091906125ee565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b91906127b8565b6107e3565b005b34801561034e57600080fd5b50610369600480360381019061036491906127f8565b610886565b005b34801561037757600080fd5b50610392600480360381019061038d9190612728565b6109e6565b60405161039f91906126ba565b60405180910390f35b3480156103b457600080fd5b506103bd610a2f565b6040516103ca91906126ba565b60405180910390f35b3480156103df57600080fd5b506103e8610a58565b6040516103f591906126ba565b60405180910390f35b34801561040a57600080fd5b50610413610a81565b604051610420919061285a565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b91906127b8565b610aaa565b005b34801561045e57600080fd5b50610467610b4d565b60405161047491906126ba565b60405180910390f35b34801561048957600080fd5b50610492610b8e565b60405161049f91906124d8565b60405180910390f35b3480156104b457600080fd5b506104bd610bcb565b6040516104ca919061285a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612593565b610bf1565b60405161050791906125ee565b60405180910390f35b34801561051c57600080fd5b50610525610c08565b005b34801561053357600080fd5b5061054e60048036038101906105499190612875565b610c6d565b60405161055b91906126ba565b60405180910390f35b34801561057057600080fd5b5061058b600480360381019061058691906128f3565b610cf4565b005b60606040518060400160405280600a81526020017f426f72696e67436c756200000000000000000000000000000000000000000000815250905090565b60006105d7338484610db6565b6001905092915050565b6105ea33610761565b610629576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106209061296c565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f81905550816010819055508060118190555050505050505050565b6000600154905090565b600060125460035461067d610663565b61068791906129bb565b6106919190612a2c565b905090565b60006106a3848484610f7f565b61075684336107518560405180606001604052806028815260200161333e60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111789092919063ffffffff16565b610db6565b600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60076020528060005260406000206000915054906101000a900460ff1681565b6107ec33610761565b61082b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108229061296c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61088f33610761565b6108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c59061296c565b60405180910390fd5b6000612710846108dc610663565b6108e691906129bb565b6108f09190612a2c565b9050600061271084610900610663565b61090a91906129bb565b6109149190612a2c565b9050600061271084610924610663565b61092e91906129bb565b6109389190612a2c565b905085600281905550846003819055508360048190555060006109806103e86109726005610964610663565b6111cd90919063ffffffff16565b6111e390919063ffffffff16565b90508084101580156109925750808310155b801561099e5750808210155b6109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490612acf565b60405180910390fd5b50505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610a3f610663565b610a4991906129bb565b610a539190612a2c565b905090565b6000601254600254610a68610663565b610a7291906129bb565b610a7c9190612a2c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab333610761565b610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae99061296c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610b89610b5c60006109e6565b610b7b610b6a61dead6109e6565b6001546111f990919063ffffffff16565b6111f990919063ffffffff16565b905090565b60606040518060400160405280600481526020017f424f524300000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bfe338484610f7f565b6001905092915050565b610c1133610761565b610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c479061296c565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cfd33610761565b610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d339061296c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610dab9190612b4e565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1c90612bdb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b90612c6d565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f7291906126ba565b60405180910390a3505050565b610f8a83838361120f565b610f948383611380565b610f9f83838361147d565b610fa9838361165b565b610fb4838383611726565b610fbf838383611965565b61101181600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111f990919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611060848461198e565b61106a5781611076565b611075848484611a3c565b5b90506110ca81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161116a91906126ba565b60405180910390a350505050565b60008383111582906111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b791906124d8565b60405180910390fd5b5082840390509392505050565b600081836111db91906129bb565b905092915050565b600081836111f19190612a2c565b905092915050565b600081836112079190612c8d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590612d33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612dc5565b60405180910390fd5b60008111611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790612e57565b60405180910390fd5b611339836109e6565b81111561137b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137290612ee9565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114245750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561147957600a60149054906101000a900460ff16611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90612f55565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115215750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561157b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115b5575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611656576115c2610a2f565b61161482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b1115611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612fc1565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156117025750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117225760016014600082825461171a9190612fe1565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461186e5761178361066d565b811115806117da5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061182e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186490613061565b60405180910390fd5b5b611876610a58565b811115806118cd5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119215750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613061565b60405180910390fd5b505050565b611970838383611bfa565b1561198957611980601654611d33565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a345750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a498585611f84565b1115611bd9576000611a81611a5e8686611f84565b611a73601254866111e390919063ffffffff16565b6111cd90919063ffffffff16565b9050611ad581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b7591906126ba565b60405180910390a36000600e541115611bbe57611bbd3061dead611bb8600e54611baa601254896111e390919063ffffffff16565b6111cd90919063ffffffff16565b610f7f565b5b611bd181846111f990919063ffffffff16565b915050611bdd565b8190505b9392505050565b60008183611bf29190612fe1565b905092915050565b60008060175483101590506000601654611c13306109e6565b10159050601560009054906101000a900460ff16158015611c405750601360009054906101000a900460ff165b8015611c585750600a60149054906101000a900460ff165b8015611c615750815b8015611cb75750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d105750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d1f5750600060145410155b8015611d285750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611da16002611d93600d54611d85600c54611d776001600b54611be490919063ffffffff16565b611be490919063ffffffff16565b611be490919063ffffffff16565b6111cd90919063ffffffff16565b90506000611dcc82611dbe600b54866111cd90919063ffffffff16565b6111e390919063ffffffff16565b90506000611de382856111f990919063ffffffff16565b90506000479050611df382612113565b6000611e0882476111f990919063ffffffff16565b90506000611e33611e24600b54886111f990919063ffffffff16565b836111e390919063ffffffff16565b90506000611e4c600b54836111cd90919063ffffffff16565b90506000811115611e6257611e618682612356565b5b6000611e8c600c54611e7e6002866111cd90919063ffffffff16565b6111cd90919063ffffffff16565b90506000811115611ef35773161b5e270b83c0210f3d24a2b8cd9c40cf214d7d73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ef1573d6000803e3d6000fd5b505b60004790506000811115611f5d5773161b5e270b83c0210f3d24a2b8cd9c40cf214d7d73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5b573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120275750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120495761204260646012546111f990919063ffffffff16565b905061210d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120a857601054905061210d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361210757600f54905061210d565b60115490505b92915050565b6000600267ffffffffffffffff8111156121305761212f613081565b5b60405190808252806020026020018201604052801561215e5781602001602082028036833780820191505090505b5090503081600081518110612176576121756130b0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224191906130f4565b81600181518110612255576122546130b0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122bc30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610db6565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161232095949392919061321a565b600060405180830381600087803b15801561233a57600080fd5b505af115801561234e573d6000803e3d6000fd5b505050505050565b61238330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610db6565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073161b5e270b83c0210f3d24a2b8cd9c40cf214d7d426040518863ffffffff1660e01b81526004016123fe96959493929190613274565b60606040518083038185885af115801561241c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061244191906132ea565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612482578082015181840152602081019050612467565b60008484015250505050565b6000601f19601f8301169050919050565b60006124aa82612448565b6124b48185612453565b93506124c4818560208601612464565b6124cd8161248e565b840191505092915050565b600060208201905081810360008301526124f2818461249f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061252a826124ff565b9050919050565b61253a8161251f565b811461254557600080fd5b50565b60008135905061255781612531565b92915050565b6000819050919050565b6125708161255d565b811461257b57600080fd5b50565b60008135905061258d81612567565b92915050565b600080604083850312156125aa576125a96124fa565b5b60006125b885828601612548565b92505060206125c98582860161257e565b9150509250929050565b60008115159050919050565b6125e8816125d3565b82525050565b600060208201905061260360008301846125df565b92915050565b600080600080600080600060e0888a031215612628576126276124fa565b5b60006126368a828b0161257e565b97505060206126478a828b0161257e565b96505060406126588a828b0161257e565b95505060606126698a828b0161257e565b945050608061267a8a828b0161257e565b93505060a061268b8a828b0161257e565b92505060c061269c8a828b0161257e565b91505092959891949750929550565b6126b48161255d565b82525050565b60006020820190506126cf60008301846126ab565b92915050565b6000806000606084860312156126ee576126ed6124fa565b5b60006126fc86828701612548565b935050602061270d86828701612548565b925050604061271e8682870161257e565b9150509250925092565b60006020828403121561273e5761273d6124fa565b5b600061274c84828501612548565b91505092915050565b600060ff82169050919050565b61276b81612755565b82525050565b60006020820190506127866000830184612762565b92915050565b612795816125d3565b81146127a057600080fd5b50565b6000813590506127b28161278c565b92915050565b600080604083850312156127cf576127ce6124fa565b5b60006127dd85828601612548565b92505060206127ee858286016127a3565b9150509250929050565b600080600060608486031215612811576128106124fa565b5b600061281f8682870161257e565b93505060206128308682870161257e565b92505060406128418682870161257e565b9150509250925092565b6128548161251f565b82525050565b600060208201905061286f600083018461284b565b92915050565b6000806040838503121561288c5761288b6124fa565b5b600061289a85828601612548565b92505060206128ab85828601612548565b9150509250929050565b60006128c0826124ff565b9050919050565b6128d0816128b5565b81146128db57600080fd5b50565b6000813590506128ed816128c7565b92915050565b600060208284031215612909576129086124fa565b5b6000612917848285016128de565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612956600683612453565b915061296182612920565b602082019050919050565b6000602082019050818103600083015261298581612949565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129c68261255d565b91506129d18361255d565b92508282026129df8161255d565b915082820484148315176129f6576129f561298c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a378261255d565b9150612a428361255d565b925082612a5257612a516129fd565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612ab9602e83612453565b9150612ac482612a5d565b604082019050919050565b60006020820190508181036000830152612ae881612aac565b9050919050565b6000819050919050565b6000612b14612b0f612b0a846124ff565b612aef565b6124ff565b9050919050565b6000612b2682612af9565b9050919050565b6000612b3882612b1b565b9050919050565b612b4881612b2d565b82525050565b6000602082019050612b636000830184612b3f565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc5602483612453565b9150612bd082612b69565b604082019050919050565b60006020820190508181036000830152612bf481612bb8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c57602283612453565b9150612c6282612bfb565b604082019050919050565b60006020820190508181036000830152612c8681612c4a565b9050919050565b6000612c988261255d565b9150612ca38361255d565b9250828203905081811115612cbb57612cba61298c565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d1d602583612453565b9150612d2882612cc1565b604082019050919050565b60006020820190508181036000830152612d4c81612d10565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612daf602383612453565b9150612dba82612d53565b604082019050919050565b60006020820190508181036000830152612dde81612da2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e41602983612453565b9150612e4c82612de5565b604082019050919050565b60006020820190508181036000830152612e7081612e34565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612ed3603183612453565b9150612ede82612e77565b604082019050919050565b60006020820190508181036000830152612f0281612ec6565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000612f3f600e83612453565b9150612f4a82612f09565b602082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000612fab601e83612453565b9150612fb682612f75565b602082019050919050565b60006020820190508181036000830152612fda81612f9e565b9050919050565b6000612fec8261255d565b9150612ff78361255d565b925082820190508082111561300f5761300e61298c565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061304b601183612453565b915061305682613015565b602082019050919050565b6000602082019050818103600083015261307a8161303e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130ee81612531565b92915050565b60006020828403121561310a576131096124fa565b5b6000613118848285016130df565b91505092915050565b6000819050919050565b600061314661314161313c84613121565b612aef565b61255d565b9050919050565b6131568161312b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131918161251f565b82525050565b60006131a38383613188565b60208301905092915050565b6000602082019050919050565b60006131c78261315c565b6131d18185613167565b93506131dc83613178565b8060005b8381101561320d5781516131f48882613197565b97506131ff836131af565b9250506001810190506131e0565b5085935050505092915050565b600060a08201905061322f60008301886126ab565b61323c602083018761314d565b818103604083015261324e81866131bc565b905061325d606083018561284b565b61326a60808301846126ab565b9695505050505050565b600060c082019050613289600083018961284b565b61329660208301886126ab565b6132a3604083018761314d565b6132b0606083018661314d565b6132bd608083018561284b565b6132ca60a08301846126ab565b979650505050505050565b6000815190506132e481612567565b92915050565b600080600060608486031215613303576133026124fa565b5b6000613311868287016132d5565b9350506020613322868287016132d5565b9250506040613333868287016132d5565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122087b8f0b639b39b67ff43e39b0aa86a60e27191082de8b8fb1475627fd1a5060164736f6c63430008110033
Deployed Bytecode Sourcemap
4705:11562:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7052:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8257:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10047:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7427:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8779:119;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15610:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3085:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7202:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5265:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8143:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10442:577;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7517:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8540:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8660:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7343:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8038:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8396:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7125:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5383:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7626:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7275:62;;;;;;;;;;;;;:::i;:::-;;7771:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3178:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7052:67;7089:13;7112:5;;;;;;;;;;;;;;;;;7105:12;;7052:67;:::o;8257:133::-;8332:4;8339:37;8348:10;8360:7;8369:6;8339:8;:37::i;:::-;8384:4;8377:11;;8257:133;;;;:::o;10047:387::-;3044:19;3052:10;3044:7;:19::i;:::-;3036:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10229:10:::1;10214:12;:25;;;;10265:10;10250:12;:25;;;;10296:5;10286:7;:15;;;;10329:12;10312:14;:29;;;;10363:6;10352:8;:17;;;;10390:5;10380:7;:15;;;;10420:6;10406:11;:20;;;;10047:387:::0;;;;;;;:::o;7427:84::-;7480:7;7497:12;;7490:19;;7427:84;:::o;8779:119::-;8830:7;8885:11;;8863:19;;8847:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;8840:56;;8779:119;:::o;15610:309::-;15708:4;15725:36;15735:6;15743:9;15754:6;15725:9;:36::i;:::-;15772:117;15781:6;15789:10;15801:87;15837:6;15801:87;;;;;;;;;;;;;;;;;:11;:19;15813:6;15801:19;;;;;;;;;;;;;;;:31;15821:10;15801:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;15772:8;:117::i;:::-;15907:4;15900:11;;15610:309;;;;;:::o;3085:87::-;3140:4;3165:5;;;;;;;;;;;3154:16;;:7;:16;;;3147:23;;3085:87;;;:::o;7202:67::-;7243:5;4917:1;7251:16;;7202:67;:::o;5265:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;8143:108::-;3044:19;3052:10;3044:7;:19::i;:::-;3036:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8241:8:::1;8217:11;:21;8229:8;8217:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;8143:108:::0;;:::o;10442:577::-;3044:19;3052:10;3044:7;:19::i;:::-;3036:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10535:13:::1;10576:5;10568:4;10552:13;:11;:13::i;:::-;:20;;;;:::i;:::-;10551:30;;;;:::i;:::-;10535:46;;10592:19;10641:5;10631:6;10615:13;:11;:13::i;:::-;:22;;;;:::i;:::-;10614:32;;;;:::i;:::-;10592:54;;10657:17;10705:5;10694:7;10678:13;:11;:13::i;:::-;:23;;;;:::i;:::-;10677:33;;;;:::i;:::-;10657:53;;10743:4;10721:19;:26;;;;10780:6;10758:19;:28;;;;10817:7;10797:17;:27;;;;10835:13;10851:30;10876:4;10851:20;10869:1;10851:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;10835:46;;10909:5;10900;:14;;:38;;;;;10933:5;10918:11;:20;;10900:38;:60;;;;;10955:5;10942:9;:18;;10900:60;10892:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;10524:495;;;;10442:577:::0;;;:::o;7517:103::-;7583:7;7600:9;:18;7610:7;7600:18;;;;;;;;;;;;;;;;7593:25;;7517:103;;;:::o;8540:114::-;8588:7;8641:11;;8621:17;;8605:13;:11;:13::i;:::-;:33;;;;:::i;:::-;:47;;;;:::i;:::-;8598:54;;8540:114;:::o;8660:113::-;8705:7;8760:11;;8738:19;;8722:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;8715:56;;8660:113;:::o;7343:78::-;7395:7;7413:5;;;;;;;;;;;7406:12;;7343:78;:::o;8038:99::-;3044:19;3052:10;3044:7;:19::i;:::-;3036:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8127:8:::1;8109:5;:15;8115:8;8109:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8038:99:::0;;:::o;8396:138::-;8455:7;8472:60;8510:21;8528:1;8510:9;:21::i;:::-;8472:33;8489:15;6107:42;8489:9;:15::i;:::-;8472:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;8465:67;;8396:138;:::o;7125:71::-;7164:13;7187:7;;;;;;;;;;;;;;;;;7180:14;;7125:71;:::o;5383:19::-;;;;;;;;;;;;;:::o;7626:139::-;7704:4;7711:40;7721:10;7733:9;7744:6;7711:9;:40::i;:::-;7759:4;7752:11;;7626:139;;;;:::o;7275:62::-;3044:19;3052:10;3044:7;:19::i;:::-;3036:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7331:4:::1;7314:14;;:21;;;;;;;;;;;;;;;;;;7275:62::o:0;7771:127::-;7852:7;7869:11;:18;7881:5;7869:18;;;;;;;;;;;;;;;:27;7888:7;7869:27;;;;;;;;;;;;;;;;7862:34;;7771:127;;;;:::o;3178:111::-;3044:19;3052:10;3044:7;:19::i;:::-;3036:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3252:3:::1;3244:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3262:25;3283:3;3262:25;;;;;;:::i;:::-;;;;;;;;3178:111:::0;:::o;15927:335::-;16037:1;16020:19;;:5;:19;;;16012:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16118:1;16099:21;;:7;:21;;;16091:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16200:6;16170:11;:18;16182:5;16170:18;;;;;;;;;;;;;;;:27;16189:7;16170:27;;;;;;;;;;;;;;;:36;;;;16238:7;16222:32;;16231:5;16222:32;;;16247:6;16222:32;;;;;;:::i;:::-;;;;;;;;15927:335;;;:::o;9353:686::-;9442:37;9453:6;9461:9;9472:6;9442:10;:37::i;:::-;9490:38;9510:6;9518:9;9490:19;:38::i;:::-;9539:41;9554:6;9562:9;9573:6;9539:14;:41::i;:::-;9592:35;9609:6;9617:9;9592:16;:35::i;:::-;9638:39;9651:6;9659:9;9670:6;9638:12;:39::i;:::-;9689:35;9698:6;9706:9;9717:6;9689:8;:35::i;:::-;9755:29;9777:6;9755:9;:17;9765:6;9755:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9735:9;:17;9745:6;9735:17;;;;;;;;;;;;;;;:49;;;;9795:22;9820:32;9834:6;9842:9;9820:13;:32::i;:::-;:78;;9892:6;9820:78;;;9855:34;9863:6;9871:9;9882:6;9855:7;:34::i;:::-;9820:78;9795:103;;9932:40;9957:14;9932:9;:20;9942:9;9932:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9909:9;:20;9919:9;9909:20;;;;;;;;;;;;;;;:63;;;;10005:9;9988:43;;9997:6;9988:43;;;10016:14;9988:43;;;;;;:::i;:::-;;;;;;;;9431:608;9353:686;;;:::o;1417:162::-;1503:7;1546:1;1541;:6;;1549:12;1533:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1575:1;1571;:5;1564:12;;1417:162;;;;;:::o;292:82::-;350:7;371:1;367;:5;;;;:::i;:::-;360:12;;292:82;;;;:::o;380:::-;438:7;459:1;455;:5;;;;:::i;:::-;448:12;;380:82;;;;:::o;204:::-;262:7;283:1;279;:5;;;;:::i;:::-;272:12;;204:82;;;;:::o;8906:439::-;9028:1;9010:20;;:6;:20;;;9002:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9112:1;9091:23;;:9;:23;;;9083:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9190:1;9173:6;:19;9165:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9267:17;9277:6;9267:9;:17::i;:::-;9257:6;:27;;9249:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;8906:439;;;:::o;11027:191::-;11120:11;:19;11132:6;11120:19;;;;;;;;;;;;;;;;;;;;;;;;;11119:20;:47;;;;;11144:11;:22;11156:9;11144:22;;;;;;;;;;;;;;;;;;;;;;;;;11143:23;11119:47;11116:95;;;11176:14;;;;;;;;;;;11168:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11116:95;11027:191;;:::o;11230:333::-;11334:11;:19;11346:6;11334:19;;;;;;;;;;;;;;;;;;;;;;;;;11333:20;:47;;;;;11358:11;:22;11370:9;11358:22;;;;;;;;;;;;;;;;;;;;;;;;;11357:23;11333:47;:77;;;;;11405:4;;;;;;;;;;;11384:26;;:9;:26;;;;11333:77;:107;;;;;6107:42;11414:26;;:9;:26;;;;11333:107;11330:226;;;11502:17;:15;:17::i;:::-;11465:32;11490:6;11465:9;:20;11475:9;11465:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11464:55;;11456:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11330:226;11230:333;;;:::o;11571:159::-;11668:4;;;;;;;;;;;11655:17;;:9;:17;;;:41;;;;;11677:11;:19;11689:6;11677:19;;;;;;;;;;;;;;;;;;;;;;;;;11676:20;11655:41;11652:71;;;11719:1;11698:9;;:23;;;;;;;:::i;:::-;;;;;;;;11652:71;11571:159;;:::o;11738:349::-;11849:4;;;;;;;;;;;11839:14;;:6;:14;;;11836:130;;11873:20;:18;:20::i;:::-;11863:6;:30;;:53;;;;11897:11;:19;11909:6;11897:19;;;;;;;;;;;;;;;;;;;;;;;;;11863:53;:79;;;;11920:11;:22;11932:9;11920:22;;;;;;;;;;;;;;;;;;;;;;;;;11863:79;11855:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;11836:130;11994:14;:12;:14::i;:::-;11984:6;:24;;:47;;;;12012:11;:19;12024:6;12012:19;;;;;;;;;;;;;;;;;;;;;;;;;11984:47;:73;;;;12035:11;:22;12047:9;12035:22;;;;;;;;;;;;;;;;;;;;;;;;;11984:73;11976:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11738:349;;;:::o;14370:197::-;14462:41;14477:6;14485:9;14496:6;14462:14;:41::i;:::-;14459:101;;;14505:29;14520:13;;14505:14;:29::i;:::-;14556:1;14536:9;:22;;;;14459:101;14370:197;;;:::o;14575:160::-;14656:4;14681:11;:19;14693:6;14681:19;;;;;;;;;;;;;;;;;;;;;;;;;14680:20;:47;;;;;14705:11;:22;14717:9;14705:22;;;;;;;;;;;;;;;;;;;;;;;;;14704:23;14680:47;14673:54;;14575:160;;;;:::o;15056:546::-;15142:7;15198:1;15165:30;15177:6;15185:9;15165:11;:30::i;:::-;:34;15162:418;;;15211:17;15231:59;15259:30;15271:6;15279:9;15259:11;:30::i;:::-;15231:23;15242:11;;15231:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;15211:79;;15328:39;15357:9;15328;:24;15346:4;15328:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15301:9;:24;15319:4;15301:24;;;;;;;;;;;;;;;:66;;;;15408:4;15383:42;;15392:6;15383:42;;;15415:9;15383:42;;;;;;:::i;:::-;;;;;;;;15457:1;15439:7;;:20;15436:104;;;15461:77;15479:4;6107:42;15501:36;15529:7;;15501:23;15512:11;;15501:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;15461:9;:77::i;:::-;15436:104;15557:21;15568:9;15557:6;:10;;:21;;;;:::i;:::-;15550:28;;;;;15162:418;15588:6;15581:13;;15056:546;;;;;;:::o;116:82::-;174:7;195:1;191;:5;;;;:::i;:::-;184:12;;116:82;;;;:::o;13962:400::-;14060:4;14077:13;14103:15;;14093:6;:25;;14077:41;;14129:19;14179:13;;14151:24;14169:4;14151:9;:24::i;:::-;:41;;14129:63;;14211:8;;;;;;;;;;;14210:9;:24;;;;;14223:11;;;;;;;;;;;14210:24;:42;;;;;14238:14;;;;;;;;;;;14210:42;:54;;;;;14256:8;14210:54;:78;;;;;14269:11;:19;14281:6;14269:19;;;;;;;;;;;;;;;;;;;;;;;;;14268:20;14210:78;:99;;;;;14305:4;;;;;;;;;;;14292:17;;:9;:17;;;14210:99;:126;;;;;14334:1;14313:9;;:23;;14210:126;:144;;;;;14340:14;14210:144;14203:151;;;;13962:400;;;;;:::o;12095:1066::-;6039:4;6028:8;;:15;;;;;;;;;;;;;;;;;;12166:20:::1;12189:66;12253:1;12190:57;12232:14;;12190:37;12214:12;;12190:19;12207:1;12190:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;12189:63;;:66;;;;:::i;:::-;12166:89;;12266:32;12301:42;12330:12;12301:24;12312:12;;12301:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;12266:77;;12354:14;12371:36;12382:24;12371:6;:10;;:36;;;;:::i;:::-;12354:53;;12418:22;12443:21;12418:46;;12475:24;12492:6;12475:16;:24::i;:::-;12510:20;12533:41;12559:14;12533:21;:25;;:41;;;;:::i;:::-;12510:64;;12585:19;12606:48;12623:30;12640:12;;12623;:16;;:30;;;;:::i;:::-;12606:12;:16;;:48;;;;:::i;:::-;12585:69;;12665:29;12697;12713:12;;12697:11;:15;;:29;;;;:::i;:::-;12665:61;;12772:1;12740:21;:34;12737:103;;;12776:61;12789:24;12815:21;12776:12;:61::i;:::-;12737:103;12850:20;12873:36;12896:12;;12873:18;12889:1;12873:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;12850:59;;12938:1;12923:12;:16;12920:73;;;6302:42;12941:36;;:50;12978:12;12941:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12920:73;13003:24;13030:21;13003:48;;13092:1;13065:16;:29;13062:92;;;6205:42;13096:38;;:56;13135:16;13096:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13062:92;12155:1006;;;;;;;;;6059:5:::0;6048:8;;:16;;;;;;;;;;;;;;;;;;12095:1066;:::o;14743:305::-;14822:7;14845:5;:13;14851:6;14845:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;14862:5;:16;14868:9;14862:16;;;;;;;;;;;;;;;;;;;;;;;;;14845:33;14842:76;;;14887:29;14911:3;14887:11;;:15;;:29;;;;:::i;:::-;14880:36;;;;14842:76;14944:4;;;;;;;;;;;14931:17;;:9;:17;;;14928:38;;14957:7;;14950:14;;;;14928:38;14989:4;;;;;;;;;;;14979:14;;:6;:14;;;14976:36;;15002:8;;14995:15;;;;14976:36;15029:11;;15022:18;;14743:305;;;;;:::o;13520:434::-;13586:21;13624:1;13610:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13586:40;;13655:4;13637;13642:1;13637:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13681:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13671:4;13676:1;13671:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13705:53;13722:4;13737:6;;;;;;;;;;;13746:11;13705:8;:53::i;:::-;13769:6;;;;;;;;;;;:57;;;13841:11;13867:1;13883:4;13910;13930:15;13769:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13575:379;13520:434;:::o;13169:343::-;13250:53;13267:4;13282:6;;;;;;;;;;;13291:11;13250:8;:53::i;:::-;13314:6;;;;;;;;;;;:22;;;13344:9;13377:4;13397:11;13423:1;13439;6398:42;13488:15;13314:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13169:343;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:1203::-;3559:6;3567;3575;3583;3591;3599;3607;3656:3;3644:9;3635:7;3631:23;3627:33;3624:120;;;3663:79;;:::i;:::-;3624:120;3783:1;3808:53;3853:7;3844:6;3833:9;3829:22;3808:53;:::i;:::-;3798:63;;3754:117;3910:2;3936:53;3981:7;3972:6;3961:9;3957:22;3936:53;:::i;:::-;3926:63;;3881:118;4038:2;4064:53;4109:7;4100:6;4089:9;4085:22;4064:53;:::i;:::-;4054:63;;4009:118;4166:2;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4137:118;4294:3;4321:53;4366:7;4357:6;4346:9;4342:22;4321:53;:::i;:::-;4311:63;;4265:119;4423:3;4450:53;4495:7;4486:6;4475:9;4471:22;4450:53;:::i;:::-;4440:63;;4394:119;4552:3;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4523:119;3446:1203;;;;;;;;;;:::o;4655:118::-;4742:24;4760:5;4742:24;:::i;:::-;4737:3;4730:37;4655:118;;:::o;4779:222::-;4872:4;4910:2;4899:9;4895:18;4887:26;;4923:71;4991:1;4980:9;4976:17;4967:6;4923:71;:::i;:::-;4779:222;;;;:::o;5007:619::-;5084:6;5092;5100;5149:2;5137:9;5128:7;5124:23;5120:32;5117:119;;;5155:79;;:::i;:::-;5117:119;5275:1;5300:53;5345:7;5336:6;5325:9;5321:22;5300:53;:::i;:::-;5290:63;;5246:117;5402:2;5428:53;5473:7;5464:6;5453:9;5449:22;5428:53;:::i;:::-;5418:63;;5373:118;5530:2;5556:53;5601:7;5592:6;5581:9;5577:22;5556:53;:::i;:::-;5546:63;;5501:118;5007:619;;;;;:::o;5632:329::-;5691:6;5740:2;5728:9;5719:7;5715:23;5711:32;5708:119;;;5746:79;;:::i;:::-;5708:119;5866:1;5891:53;5936:7;5927:6;5916:9;5912:22;5891:53;:::i;:::-;5881:63;;5837:117;5632:329;;;;:::o;5967:86::-;6002:7;6042:4;6035:5;6031:16;6020:27;;5967:86;;;:::o;6059:112::-;6142:22;6158:5;6142:22;:::i;:::-;6137:3;6130:35;6059:112;;:::o;6177:214::-;6266:4;6304:2;6293:9;6289:18;6281:26;;6317:67;6381:1;6370:9;6366:17;6357:6;6317:67;:::i;:::-;6177:214;;;;:::o;6397:116::-;6467:21;6482:5;6467:21;:::i;:::-;6460:5;6457:32;6447:60;;6503:1;6500;6493:12;6447:60;6397:116;:::o;6519:133::-;6562:5;6600:6;6587:20;6578:29;;6616:30;6640:5;6616:30;:::i;:::-;6519:133;;;;:::o;6658:468::-;6723:6;6731;6780:2;6768:9;6759:7;6755:23;6751:32;6748:119;;;6786:79;;:::i;:::-;6748:119;6906:1;6931:53;6976:7;6967:6;6956:9;6952:22;6931:53;:::i;:::-;6921:63;;6877:117;7033:2;7059:50;7101:7;7092:6;7081:9;7077:22;7059:50;:::i;:::-;7049:60;;7004:115;6658:468;;;;;:::o;7132:619::-;7209:6;7217;7225;7274:2;7262:9;7253:7;7249:23;7245:32;7242:119;;;7280:79;;:::i;:::-;7242:119;7400:1;7425:53;7470:7;7461:6;7450:9;7446:22;7425:53;:::i;:::-;7415:63;;7371:117;7527:2;7553:53;7598:7;7589:6;7578:9;7574:22;7553:53;:::i;:::-;7543:63;;7498:118;7655:2;7681:53;7726:7;7717:6;7706:9;7702:22;7681:53;:::i;:::-;7671:63;;7626:118;7132:619;;;;;:::o;7757:118::-;7844:24;7862:5;7844:24;:::i;:::-;7839:3;7832:37;7757:118;;:::o;7881:222::-;7974:4;8012:2;8001:9;7997:18;7989:26;;8025:71;8093:1;8082:9;8078:17;8069:6;8025:71;:::i;:::-;7881:222;;;;:::o;8109:474::-;8177:6;8185;8234:2;8222:9;8213:7;8209:23;8205:32;8202:119;;;8240:79;;:::i;:::-;8202:119;8360:1;8385:53;8430:7;8421:6;8410:9;8406:22;8385:53;:::i;:::-;8375:63;;8331:117;8487:2;8513:53;8558:7;8549:6;8538:9;8534:22;8513:53;:::i;:::-;8503:63;;8458:118;8109:474;;;;;:::o;8589:104::-;8634:7;8663:24;8681:5;8663:24;:::i;:::-;8652:35;;8589:104;;;:::o;8699:138::-;8780:32;8806:5;8780:32;:::i;:::-;8773:5;8770:43;8760:71;;8827:1;8824;8817:12;8760:71;8699:138;:::o;8843:155::-;8897:5;8935:6;8922:20;8913:29;;8951:41;8986:5;8951:41;:::i;:::-;8843:155;;;;:::o;9004:345::-;9071:6;9120:2;9108:9;9099:7;9095:23;9091:32;9088:119;;;9126:79;;:::i;:::-;9088:119;9246:1;9271:61;9324:7;9315:6;9304:9;9300:22;9271:61;:::i;:::-;9261:71;;9217:125;9004:345;;;;:::o;9355:156::-;9495:8;9491:1;9483:6;9479:14;9472:32;9355:156;:::o;9517:365::-;9659:3;9680:66;9744:1;9739:3;9680:66;:::i;:::-;9673:73;;9755:93;9844:3;9755:93;:::i;:::-;9873:2;9868:3;9864:12;9857:19;;9517:365;;;:::o;9888:419::-;10054:4;10092:2;10081:9;10077:18;10069:26;;10141:9;10135:4;10131:20;10127:1;10116:9;10112:17;10105:47;10169:131;10295:4;10169:131;:::i;:::-;10161:139;;9888:419;;;:::o;10313:180::-;10361:77;10358:1;10351:88;10458:4;10455:1;10448:15;10482:4;10479:1;10472:15;10499:410;10539:7;10562:20;10580:1;10562:20;:::i;:::-;10557:25;;10596:20;10614:1;10596:20;:::i;:::-;10591:25;;10651:1;10648;10644:9;10673:30;10691:11;10673:30;:::i;:::-;10662:41;;10852:1;10843:7;10839:15;10836:1;10833:22;10813:1;10806:9;10786:83;10763:139;;10882:18;;:::i;:::-;10763:139;10547:362;10499:410;;;;:::o;10915:180::-;10963:77;10960:1;10953:88;11060:4;11057:1;11050:15;11084:4;11081:1;11074:15;11101:185;11141:1;11158:20;11176:1;11158:20;:::i;:::-;11153:25;;11192:20;11210:1;11192:20;:::i;:::-;11187:25;;11231:1;11221:35;;11236:18;;:::i;:::-;11221:35;11278:1;11275;11271:9;11266:14;;11101:185;;;;:::o;11292:233::-;11432:34;11428:1;11420:6;11416:14;11409:58;11501:16;11496:2;11488:6;11484:15;11477:41;11292:233;:::o;11531:366::-;11673:3;11694:67;11758:2;11753:3;11694:67;:::i;:::-;11687:74;;11770:93;11859:3;11770:93;:::i;:::-;11888:2;11883:3;11879:12;11872:19;;11531:366;;;:::o;11903:419::-;12069:4;12107:2;12096:9;12092:18;12084:26;;12156:9;12150:4;12146:20;12142:1;12131:9;12127:17;12120:47;12184:131;12310:4;12184:131;:::i;:::-;12176:139;;11903:419;;;:::o;12328:60::-;12356:3;12377:5;12370:12;;12328:60;;;:::o;12394:142::-;12444:9;12477:53;12495:34;12504:24;12522:5;12504:24;:::i;:::-;12495:34;:::i;:::-;12477:53;:::i;:::-;12464:66;;12394:142;;;:::o;12542:126::-;12592:9;12625:37;12656:5;12625:37;:::i;:::-;12612:50;;12542:126;;;:::o;12674:134::-;12732:9;12765:37;12796:5;12765:37;:::i;:::-;12752:50;;12674:134;;;:::o;12814:147::-;12909:45;12948:5;12909:45;:::i;:::-;12904:3;12897:58;12814:147;;:::o;12967:238::-;13068:4;13106:2;13095:9;13091:18;13083:26;;13119:79;13195:1;13184:9;13180:17;13171:6;13119:79;:::i;:::-;12967:238;;;;:::o;13211:223::-;13351:34;13347:1;13339:6;13335:14;13328:58;13420:6;13415:2;13407:6;13403:15;13396:31;13211:223;:::o;13440:366::-;13582:3;13603:67;13667:2;13662:3;13603:67;:::i;:::-;13596:74;;13679:93;13768:3;13679:93;:::i;:::-;13797:2;13792:3;13788:12;13781:19;;13440:366;;;:::o;13812:419::-;13978:4;14016:2;14005:9;14001:18;13993:26;;14065:9;14059:4;14055:20;14051:1;14040:9;14036:17;14029:47;14093:131;14219:4;14093:131;:::i;:::-;14085:139;;13812:419;;;:::o;14237:221::-;14377:34;14373:1;14365:6;14361:14;14354:58;14446:4;14441:2;14433:6;14429:15;14422:29;14237:221;:::o;14464:366::-;14606:3;14627:67;14691:2;14686:3;14627:67;:::i;:::-;14620:74;;14703:93;14792:3;14703:93;:::i;:::-;14821:2;14816:3;14812:12;14805:19;;14464:366;;;:::o;14836:419::-;15002:4;15040:2;15029:9;15025:18;15017:26;;15089:9;15083:4;15079:20;15075:1;15064:9;15060:17;15053:47;15117:131;15243:4;15117:131;:::i;:::-;15109:139;;14836:419;;;:::o;15261:194::-;15301:4;15321:20;15339:1;15321:20;:::i;:::-;15316:25;;15355:20;15373:1;15355:20;:::i;:::-;15350:25;;15399:1;15396;15392:9;15384:17;;15423:1;15417:4;15414:11;15411:37;;;15428:18;;:::i;:::-;15411:37;15261:194;;;;:::o;15461:224::-;15601:34;15597:1;15589:6;15585:14;15578:58;15670:7;15665:2;15657:6;15653:15;15646:32;15461:224;:::o;15691:366::-;15833:3;15854:67;15918:2;15913:3;15854:67;:::i;:::-;15847:74;;15930:93;16019:3;15930:93;:::i;:::-;16048:2;16043:3;16039:12;16032:19;;15691:366;;;:::o;16063:419::-;16229:4;16267:2;16256:9;16252:18;16244:26;;16316:9;16310:4;16306:20;16302:1;16291:9;16287:17;16280:47;16344:131;16470:4;16344:131;:::i;:::-;16336:139;;16063:419;;;:::o;16488:222::-;16628:34;16624:1;16616:6;16612:14;16605:58;16697:5;16692:2;16684:6;16680:15;16673:30;16488:222;:::o;16716:366::-;16858:3;16879:67;16943:2;16938:3;16879:67;:::i;:::-;16872:74;;16955:93;17044:3;16955:93;:::i;:::-;17073:2;17068:3;17064:12;17057:19;;16716:366;;;:::o;17088:419::-;17254:4;17292:2;17281:9;17277:18;17269:26;;17341:9;17335:4;17331:20;17327:1;17316:9;17312:17;17305:47;17369:131;17495:4;17369:131;:::i;:::-;17361:139;;17088:419;;;:::o;17513:228::-;17653:34;17649:1;17641:6;17637:14;17630:58;17722:11;17717:2;17709:6;17705:15;17698:36;17513:228;:::o;17747:366::-;17889:3;17910:67;17974:2;17969:3;17910:67;:::i;:::-;17903:74;;17986:93;18075:3;17986:93;:::i;:::-;18104:2;18099:3;18095:12;18088:19;;17747:366;;;:::o;18119:419::-;18285:4;18323:2;18312:9;18308:18;18300:26;;18372:9;18366:4;18362:20;18358:1;18347:9;18343:17;18336:47;18400:131;18526:4;18400:131;:::i;:::-;18392:139;;18119:419;;;:::o;18544:236::-;18684:34;18680:1;18672:6;18668:14;18661:58;18753:19;18748:2;18740:6;18736:15;18729:44;18544:236;:::o;18786:366::-;18928:3;18949:67;19013:2;19008:3;18949:67;:::i;:::-;18942:74;;19025:93;19114:3;19025:93;:::i;:::-;19143:2;19138:3;19134:12;19127:19;;18786:366;;;:::o;19158:419::-;19324:4;19362:2;19351:9;19347:18;19339:26;;19411:9;19405:4;19401:20;19397:1;19386:9;19382:17;19375:47;19439:131;19565:4;19439:131;:::i;:::-;19431:139;;19158:419;;;:::o;19583:164::-;19723:16;19719:1;19711:6;19707:14;19700:40;19583:164;:::o;19753:366::-;19895:3;19916:67;19980:2;19975:3;19916:67;:::i;:::-;19909:74;;19992:93;20081:3;19992:93;:::i;:::-;20110:2;20105:3;20101:12;20094:19;;19753:366;;;:::o;20125:419::-;20291:4;20329:2;20318:9;20314:18;20306:26;;20378:9;20372:4;20368:20;20364:1;20353:9;20349:17;20342:47;20406:131;20532:4;20406:131;:::i;:::-;20398:139;;20125:419;;;:::o;20550:180::-;20690:32;20686:1;20678:6;20674:14;20667:56;20550:180;:::o;20736:366::-;20878:3;20899:67;20963:2;20958:3;20899:67;:::i;:::-;20892:74;;20975:93;21064:3;20975:93;:::i;:::-;21093:2;21088:3;21084:12;21077:19;;20736:366;;;:::o;21108:419::-;21274:4;21312:2;21301:9;21297:18;21289:26;;21361:9;21355:4;21351:20;21347:1;21336:9;21332:17;21325:47;21389:131;21515:4;21389:131;:::i;:::-;21381:139;;21108:419;;;:::o;21533:191::-;21573:3;21592:20;21610:1;21592:20;:::i;:::-;21587:25;;21626:20;21644:1;21626:20;:::i;:::-;21621:25;;21669:1;21666;21662:9;21655:16;;21690:3;21687:1;21684:10;21681:36;;;21697:18;;:::i;:::-;21681:36;21533:191;;;;:::o;21730:167::-;21870:19;21866:1;21858:6;21854:14;21847:43;21730:167;:::o;21903:366::-;22045:3;22066:67;22130:2;22125:3;22066:67;:::i;:::-;22059:74;;22142:93;22231:3;22142:93;:::i;:::-;22260:2;22255:3;22251:12;22244:19;;21903:366;;;:::o;22275:419::-;22441:4;22479:2;22468:9;22464:18;22456:26;;22528:9;22522:4;22518:20;22514:1;22503:9;22499:17;22492:47;22556:131;22682:4;22556:131;:::i;:::-;22548:139;;22275:419;;;:::o;22700:180::-;22748:77;22745:1;22738:88;22845:4;22842:1;22835:15;22869:4;22866:1;22859:15;22886:180;22934:77;22931:1;22924:88;23031:4;23028:1;23021:15;23055:4;23052:1;23045:15;23072:143;23129:5;23160:6;23154:13;23145:22;;23176:33;23203:5;23176:33;:::i;:::-;23072:143;;;;:::o;23221:351::-;23291:6;23340:2;23328:9;23319:7;23315:23;23311:32;23308:119;;;23346:79;;:::i;:::-;23308:119;23466:1;23491:64;23547:7;23538:6;23527:9;23523:22;23491:64;:::i;:::-;23481:74;;23437:128;23221:351;;;;:::o;23578:85::-;23623:7;23652:5;23641:16;;23578:85;;;:::o;23669:158::-;23727:9;23760:61;23778:42;23787:32;23813:5;23787:32;:::i;:::-;23778:42;:::i;:::-;23760:61;:::i;:::-;23747:74;;23669:158;;;:::o;23833:147::-;23928:45;23967:5;23928:45;:::i;:::-;23923:3;23916:58;23833:147;;:::o;23986:114::-;24053:6;24087:5;24081:12;24071:22;;23986:114;;;:::o;24106:184::-;24205:11;24239:6;24234:3;24227:19;24279:4;24274:3;24270:14;24255:29;;24106:184;;;;:::o;24296:132::-;24363:4;24386:3;24378:11;;24416:4;24411:3;24407:14;24399:22;;24296:132;;;:::o;24434:108::-;24511:24;24529:5;24511:24;:::i;:::-;24506:3;24499:37;24434:108;;:::o;24548:179::-;24617:10;24638:46;24680:3;24672:6;24638:46;:::i;:::-;24716:4;24711:3;24707:14;24693:28;;24548:179;;;;:::o;24733:113::-;24803:4;24835;24830:3;24826:14;24818:22;;24733:113;;;:::o;24882:732::-;25001:3;25030:54;25078:5;25030:54;:::i;:::-;25100:86;25179:6;25174:3;25100:86;:::i;:::-;25093:93;;25210:56;25260:5;25210:56;:::i;:::-;25289:7;25320:1;25305:284;25330:6;25327:1;25324:13;25305:284;;;25406:6;25400:13;25433:63;25492:3;25477:13;25433:63;:::i;:::-;25426:70;;25519:60;25572:6;25519:60;:::i;:::-;25509:70;;25365:224;25352:1;25349;25345:9;25340:14;;25305:284;;;25309:14;25605:3;25598:10;;25006:608;;;24882:732;;;;:::o;25620:831::-;25883:4;25921:3;25910:9;25906:19;25898:27;;25935:71;26003:1;25992:9;25988:17;25979:6;25935:71;:::i;:::-;26016:80;26092:2;26081:9;26077:18;26068:6;26016:80;:::i;:::-;26143:9;26137:4;26133:20;26128:2;26117:9;26113:18;26106:48;26171:108;26274:4;26265:6;26171:108;:::i;:::-;26163:116;;26289:72;26357:2;26346:9;26342:18;26333:6;26289:72;:::i;:::-;26371:73;26439:3;26428:9;26424:19;26415:6;26371:73;:::i;:::-;25620:831;;;;;;;;:::o;26457:807::-;26706:4;26744:3;26733:9;26729:19;26721:27;;26758:71;26826:1;26815:9;26811:17;26802:6;26758:71;:::i;:::-;26839:72;26907:2;26896:9;26892:18;26883:6;26839:72;:::i;:::-;26921:80;26997:2;26986:9;26982:18;26973:6;26921:80;:::i;:::-;27011;27087:2;27076:9;27072:18;27063:6;27011:80;:::i;:::-;27101:73;27169:3;27158:9;27154:19;27145:6;27101:73;:::i;:::-;27184;27252:3;27241:9;27237:19;27228:6;27184:73;:::i;:::-;26457:807;;;;;;;;;:::o;27270:143::-;27327:5;27358:6;27352:13;27343:22;;27374:33;27401:5;27374:33;:::i;:::-;27270:143;;;;:::o;27419:663::-;27507:6;27515;27523;27572:2;27560:9;27551:7;27547:23;27543:32;27540:119;;;27578:79;;:::i;:::-;27540:119;27698:1;27723:64;27779:7;27770:6;27759:9;27755:22;27723:64;:::i;:::-;27713:74;;27669:128;27836:2;27862:64;27918:7;27909:6;27898:9;27894:22;27862:64;:::i;:::-;27852:74;;27807:129;27975:2;28001:64;28057:7;28048:6;28037:9;28033:22;28001:64;:::i;:::-;27991:74;;27946:129;27419:663;;;;;:::o
Swarm Source
ipfs://87b8f0b639b39b67ff43e39b0aa86a60e27191082de8b8fb1475627fd1a50601
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.