More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 50 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18245845 | 570 days ago | IN | 0 ETH | 0.00032316 | ||||
Approve | 18014140 | 603 days ago | IN | 0 ETH | 0.00156968 | ||||
Approve | 17937053 | 614 days ago | IN | 0 ETH | 0.00243939 | ||||
Approve | 17908069 | 618 days ago | IN | 0 ETH | 0.00079402 | ||||
Approve | 17907235 | 618 days ago | IN | 0 ETH | 0.00093368 | ||||
Approve | 17907151 | 618 days ago | IN | 0 ETH | 0.00079184 | ||||
Approve | 17906511 | 618 days ago | IN | 0 ETH | 0.00083707 | ||||
Approve | 17906110 | 618 days ago | IN | 0 ETH | 0.00081311 | ||||
Approve | 17905113 | 618 days ago | IN | 0 ETH | 0.00071937 | ||||
Approve | 17905080 | 618 days ago | IN | 0 ETH | 0.00070347 | ||||
Approve | 17905060 | 618 days ago | IN | 0 ETH | 0.00069316 | ||||
Approve | 17904905 | 618 days ago | IN | 0 ETH | 0.00067496 | ||||
Approve | 17904753 | 618 days ago | IN | 0 ETH | 0.00065062 | ||||
Approve | 17904655 | 618 days ago | IN | 0 ETH | 0.00071506 | ||||
Approve | 17904576 | 618 days ago | IN | 0 ETH | 0.00072715 | ||||
Approve | 17904217 | 618 days ago | IN | 0 ETH | 0.00078182 | ||||
Approve | 17904091 | 618 days ago | IN | 0 ETH | 0.00073154 | ||||
Approve | 17904081 | 618 days ago | IN | 0 ETH | 0.00067541 | ||||
Approve | 17904066 | 618 days ago | IN | 0 ETH | 0.00067533 | ||||
Approve | 17904025 | 618 days ago | IN | 0 ETH | 0.00067477 | ||||
Approve | 17904024 | 618 days ago | IN | 0 ETH | 0.00068849 | ||||
Renounce Ownersh... | 17904000 | 618 days ago | IN | 0 ETH | 0.00026824 | ||||
Approve | 17903897 | 618 days ago | IN | 0 ETH | 0.00058313 | ||||
Approve | 17903886 | 618 days ago | IN | 0 ETH | 0.00067296 | ||||
Approve | 17903862 | 618 days ago | IN | 0 ETH | 0.00079382 |
Loading...
Loading
Contract Name:
XAPE
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-03 */ /** * https://t.me/xape_eth * https://linktr.ee/xapeeth * SPDX-License-Identifier: MIT */ pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract XAPE is Context , IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; address payable private _treasuryWallet; address payable private _developmentWallet; uint256 private _initialBuyTax=1; uint256 private _initialSellTax=1; uint256 private _finalBuyTax=1; uint256 private _finalSellTax=1; uint256 private _reduceBuyTaxAt=1; uint256 private _reduceSellTaxAt=1; uint256 private _preventSwapBefore=1; uint256 private _buyCount=0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 100000000000000 * 10**_decimals; string private constant _name = "X-APE"; string private constant _symbol = "XAPE"; uint256 public _maxTxAmount = _tTotal; // No limitation on max transaction amount uint256 public _maxWalletSize = _tTotal; // No limitation on max wallet size uint256 public _taxSwapThreshold = 50000000000 * 10**_decimals; uint256 public _maxTaxSwap = 2000000000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _treasuryWallet = payable(0x73Aa27fc9098122d104bb5e75379cB9cF3d5c7B2); _developmentWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_treasuryWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function exemptFromFees(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function changeReduceAt(uint256 newReduceBuyAt, uint256 newReduceSellAt ) external onlyOwner{ require(newReduceBuyAt<=_reduceBuyTaxAt && newReduceSellAt<=_reduceSellTaxAt); _reduceBuyTaxAt=newReduceBuyAt; _reduceSellTaxAt=newReduceSellAt; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if(to == uniswapV2Pair && from != address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } if(from == address(this)){ taxAmount = 0; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(contractTokenBalance,_maxTaxSwap)); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function setPair(address pair) external onlyOwner{ uniswapV2Pair=pair; } function sendETHToFee(uint256 amount) private { _treasuryWallet.transfer(amount.mul(4).div(5)); _developmentWallet.transfer(address(this).balance); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function enableTrading() external onlyOwner() { uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newBuyFee, uint256 _newSellFee) external onlyOwner() { require(_newBuyFee<=_finalBuyTax && _newSellFee<=_finalSellTax); _finalBuyTax=_newBuyFee; _finalSellTax=_newSellFee; } receive() external payable {} function manualSwap() external { require(_msgSender()==_developmentWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newReduceBuyAt","type":"uint256"},{"internalType":"uint256","name":"newReduceSellAt","type":"uint256"}],"name":"changeReduceAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exemptFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600160055f6101000a81548160ff0219169083151502179055506001600755600160085560016009556001600a556001600b556001600c556001600d555f600e556012600a6200005591906200066f565b655af3107a4000620000689190620006bf565b600f556012600a6200007b91906200066f565b655af3107a40006200008e9190620006bf565b6010556012600a620000a191906200066f565b640ba43b7400620000b39190620006bf565b6011556012600a620000c691906200066f565b6501d1a94a2000620000d99190620006bf565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055503480156200011c575f80fd5b505f6200012e620004af60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507373aa27fc9098122d104bb5e75379cb9cf3d5c7b2600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200022f620004af60201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200027e91906200066f565b655af3107a4000620002919190620006bf565b60015f620002a4620004af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002f6620004b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000421620004af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200047f91906200066f565b655af3107a4000620004929190620006bf565b604051620004a191906200071a565b60405180910390a362000735565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000567578086048111156200053f576200053e620004dd565b5b60018516156200054f5780820291505b80810290506200055f856200050a565b94506200051f565b94509492505050565b5f8262000581576001905062000653565b8162000590575f905062000653565b8160018114620005a95760028114620005b457620005ea565b600191505062000653565b60ff841115620005c957620005c8620004dd565b5b8360020a915084821115620005e357620005e2620004dd565b5b5062000653565b5060208310610133831016604e8410600b8410161715620006245782820a9050838111156200061e576200061d620004dd565b5b62000653565b62000633848484600162000516565b925090508184048111156200064d576200064c620004dd565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200067b826200065a565b9150620006888362000663565b9250620006b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000570565b905092915050565b5f620006cb826200065a565b9150620006d8836200065a565b9250828202620006e8816200065a565b91508282048414831517620007025762000701620004dd565b5b5092915050565b62000714816200065a565b82525050565b5f6020820190506200072f5f83018462000709565b92915050565b6135ec80620007435f395ff3fe60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063a9059cbb1161006e578063a9059cbb1461042d578063bba399a114610469578063bf474bed14610491578063c876d0b9146104bb578063c9567bf9146104e5578063dd62ed3e146104fb57610155565b80637d1db4a5146103475780638187f516146103715780638a8c523c146103995780638da5cb5b146103af5780638f9a55c0146103d957806395d89b411461040357610155565b806351bc3c851161010757806351bc3c85146102795780635a90a49e1461028f57806370a08231146102b7578063715018a6146102f35780637233335614610309578063751039fc1461033157610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e957806323b872dd14610213578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610537565b60405161017a91906126a0565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612751565b610574565b6040516101b691906127a9565b60405180910390f35b3480156101ca575f80fd5b506101d3610591565b6040516101e091906127d1565b60405180910390f35b3480156101f4575f80fd5b506101fd610597565b60405161020a91906127d1565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906127ea565b6105bc565b60405161024691906127a9565b60405180910390f35b34801561025a575f80fd5b50610263610690565b6040516102709190612855565b60405180910390f35b348015610284575f80fd5b5061028d610698565b005b34801561029a575f80fd5b506102b560048036038101906102b0919061286e565b61072f565b005b3480156102c2575f80fd5b506102dd60048036038101906102d8919061286e565b61081b565b6040516102ea91906127d1565b60405180910390f35b3480156102fe575f80fd5b50610307610861565b005b348015610314575f80fd5b5061032f600480360381019061032a9190612899565b6109af565b005b34801561033c575f80fd5b50610345610a71565b005b348015610352575f80fd5b5061035b610bbf565b60405161036891906127d1565b60405180910390f35b34801561037c575f80fd5b506103976004803603810190610392919061286e565b610bc5565b005b3480156103a4575f80fd5b506103ad610c9c565b005b3480156103ba575f80fd5b506103c3610e05565b6040516103d091906128e6565b60405180910390f35b3480156103e4575f80fd5b506103ed610e2c565b6040516103fa91906127d1565b60405180910390f35b34801561040e575f80fd5b50610417610e32565b60405161042491906126a0565b60405180910390f35b348015610438575f80fd5b50610453600480360381019061044e9190612751565b610e6f565b60405161046091906127a9565b60405180910390f35b348015610474575f80fd5b5061048f600480360381019061048a9190612899565b610e8c565b005b34801561049c575f80fd5b506104a5610f4e565b6040516104b291906127d1565b60405180910390f35b3480156104c6575f80fd5b506104cf610f54565b6040516104dc91906127a9565b60405180910390f35b3480156104f0575f80fd5b506104f9610f66565b005b348015610506575f80fd5b50610521600480360381019061051c91906128ff565b611487565b60405161052e91906127d1565b60405180910390f35b60606040518060400160405280600581526020017f582d415045000000000000000000000000000000000000000000000000000000815250905090565b5f610587610580611509565b8484611510565b6001905092915050565b60125481565b5f6012600a6105a69190612a99565b655af3107a40006105b79190612ae3565b905090565b5f6105c88484846116d3565b610685846105d4611509565b6106808560405180606001604052806028815260200161358f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610637611509565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120769092919063ffffffff16565b611510565b600190509392505050565b5f6012905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d8611509565b73ffffffffffffffffffffffffffffffffffffffff16146106f7575f80fd5b5f6107013061081b565b90505f81111561071557610714816120d8565b5b5f4790505f81111561072b5761072a81612343565b5b5050565b610737611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ba90612b6e565b60405180910390fd5b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610869611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec90612b6e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b7611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612b6e565b60405180910390fd5b6009548211158015610a575750600a548111155b610a5f575f80fd5b8160098190555080600a819055505050565b610a79611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90612b6e565b60405180910390fd5b6012600a610b139190612a99565b655af3107a4000610b249190612ae3565b600f819055506012600a610b389190612a99565b655af3107a4000610b499190612ae3565b6010819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b979190612a99565b655af3107a4000610ba89190612ae3565b604051610bb591906127d1565b60405180910390a1565b600f5481565b610bcd611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090612b6e565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ca4611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790612b6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dce3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610db89190612a99565b655af3107a4000610dc99190612ae3565b611510565b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f5841504500000000000000000000000000000000000000000000000000000000815250905090565b5f610e82610e7b611509565b84846116d3565b6001905092915050565b610e94611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790612b6e565b60405180910390fd5b600b548211158015610f345750600c548111155b610f3c575f80fd5b81600b8190555080600c819055505050565b60115481565b60055f9054906101000a900460ff1681565b610f6e611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612b6e565b60405180910390fd5b60148054906101000a900460ff1615611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90612bd6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110e63060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6110d09190612a99565b655af3107a40006110e19190612ae3565b611510565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111749190612c08565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121e9190612c08565b6040518363ffffffff1660e01b815260040161123b929190612c33565b6020604051808303815f875af1158015611257573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b9190612c08565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113023061081b565b5f8061130c610e05565b426040518863ffffffff1660e01b815260040161132e96959493929190612c9c565b60606040518083038185885af115801561134a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061136f9190612d0f565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161140f929190612d5f565b6020604051808303815f875af115801561142b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144f9190612db0565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590612e4b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390612ed9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116c691906127d1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173890612f67565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a690612ff5565b60405180910390fd5b5f81116117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890613083565b60405180910390fd5b5f6117fa610e05565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118685750611838610e05565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dc6576118a9606461189b600b54600e54116118885760075461188c565b6009545b8561243790919063ffffffff16565b6124ae90919063ffffffff16565b905060055f9054906101000a900460ff1615611a315760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611969575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a30574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e490613137565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ada575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b2d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611be757600f54821115611b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6e9061319f565b60405180910390fd5b60105482611b848561081b565b611b8e91906131bd565b1115611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc69061323a565b60405180910390fd5b600e5f815480929190611be190613258565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c6f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cb357611cb06064611ca2600c54600e5411611c8f57600854611c93565b600a545b8561243790919063ffffffff16565b6124ae90919063ffffffff16565b90505b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cea575f90505b5f611cf43061081b565b9050601460159054906101000a900460ff16158015611d5f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d775750601460169054906101000a900460ff165b8015611d84575060115481115b8015611d935750600d54600e54115b15611dc457611dac611da7826012546124f7565b6120d8565b5f4790505f811115611dc257611dc147612343565b5b505b505b5f811115611ec557611e1e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebc91906127d1565b60405180910390a35b611f158260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461256c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fb8611f6c828461256c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61205b848661256c90919063ffffffff16565b60405161206891906127d1565b60405180910390a350505050565b5f8383111582906120bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b491906126a0565b60405180910390fd5b505f83856120cb919061329f565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561210f5761210e6132d2565b5b60405190808252806020026020018201604052801561213d5781602001602082028036833780820191505090505b50905030815f81518110612154576121536132ff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061221c9190612c08565b816001815181106122305761222f6132ff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611510565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122f89594939291906133e3565b5f604051808303815f87803b15801561230f575f80fd5b505af1158015612321573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123a6600561239860048661243790919063ffffffff16565b6124ae90919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156123ce573d5f803e3d5ffd5b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015612433573d5f803e3d5ffd5b5050565b5f808303612447575f90506124a8565b5f82846124549190612ae3565b90508284826124639190613468565b146124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613508565b60405180910390fd5b809150505b92915050565b5f6124ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125b5565b905092915050565b5f8183116125055782612507565b815b905092915050565b5f80828461251d91906131bd565b905083811015612562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255990613570565b60405180910390fd5b8091505092915050565b5f6125ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612076565b905092915050565b5f80831182906125fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f291906126a0565b60405180910390fd5b505f83856126099190613468565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561264d578082015181840152602081019050612632565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61267282612616565b61267c8185612620565b935061268c818560208601612630565b61269581612658565b840191505092915050565b5f6020820190508181035f8301526126b88184612668565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ed826126c4565b9050919050565b6126fd816126e3565b8114612707575f80fd5b50565b5f81359050612718816126f4565b92915050565b5f819050919050565b6127308161271e565b811461273a575f80fd5b50565b5f8135905061274b81612727565b92915050565b5f8060408385031215612767576127666126c0565b5b5f6127748582860161270a565b92505060206127858582860161273d565b9150509250929050565b5f8115159050919050565b6127a38161278f565b82525050565b5f6020820190506127bc5f83018461279a565b92915050565b6127cb8161271e565b82525050565b5f6020820190506127e45f8301846127c2565b92915050565b5f805f60608486031215612801576128006126c0565b5b5f61280e8682870161270a565b935050602061281f8682870161270a565b92505060406128308682870161273d565b9150509250925092565b5f60ff82169050919050565b61284f8161283a565b82525050565b5f6020820190506128685f830184612846565b92915050565b5f60208284031215612883576128826126c0565b5b5f6128908482850161270a565b91505092915050565b5f80604083850312156128af576128ae6126c0565b5b5f6128bc8582860161273d565b92505060206128cd8582860161273d565b9150509250929050565b6128e0816126e3565b82525050565b5f6020820190506128f95f8301846128d7565b92915050565b5f8060408385031215612915576129146126c0565b5b5f6129228582860161270a565b92505060206129338582860161270a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129bf5780860481111561299b5761299a61293d565b5b60018516156129aa5780820291505b80810290506129b88561296a565b945061297f565b94509492505050565b5f826129d75760019050612a92565b816129e4575f9050612a92565b81600181146129fa5760028114612a0457612a33565b6001915050612a92565b60ff841115612a1657612a1561293d565b5b8360020a915084821115612a2d57612a2c61293d565b5b50612a92565b5060208310610133831016604e8410600b8410161715612a685782820a905083811115612a6357612a6261293d565b5b612a92565b612a758484846001612976565b92509050818404811115612a8c57612a8b61293d565b5b81810290505b9392505050565b5f612aa38261271e565b9150612aae8361283a565b9250612adb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129c8565b905092915050565b5f612aed8261271e565b9150612af88361271e565b9250828202612b068161271e565b91508282048414831517612b1d57612b1c61293d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b58602083612620565b9150612b6382612b24565b602082019050919050565b5f6020820190508181035f830152612b8581612b4c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bc0601783612620565b9150612bcb82612b8c565b602082019050919050565b5f6020820190508181035f830152612bed81612bb4565b9050919050565b5f81519050612c02816126f4565b92915050565b5f60208284031215612c1d57612c1c6126c0565b5b5f612c2a84828501612bf4565b91505092915050565b5f604082019050612c465f8301856128d7565b612c5360208301846128d7565b9392505050565b5f819050919050565b5f819050919050565b5f612c86612c81612c7c84612c5a565b612c63565b61271e565b9050919050565b612c9681612c6c565b82525050565b5f60c082019050612caf5f8301896128d7565b612cbc60208301886127c2565b612cc96040830187612c8d565b612cd66060830186612c8d565b612ce360808301856128d7565b612cf060a08301846127c2565b979650505050505050565b5f81519050612d0981612727565b92915050565b5f805f60608486031215612d2657612d256126c0565b5b5f612d3386828701612cfb565b9350506020612d4486828701612cfb565b9250506040612d5586828701612cfb565b9150509250925092565b5f604082019050612d725f8301856128d7565b612d7f60208301846127c2565b9392505050565b612d8f8161278f565b8114612d99575f80fd5b50565b5f81519050612daa81612d86565b92915050565b5f60208284031215612dc557612dc46126c0565b5b5f612dd284828501612d9c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e35602483612620565b9150612e4082612ddb565b604082019050919050565b5f6020820190508181035f830152612e6281612e29565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ec3602283612620565b9150612ece82612e69565b604082019050919050565b5f6020820190508181035f830152612ef081612eb7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f51602583612620565b9150612f5c82612ef7565b604082019050919050565b5f6020820190508181035f830152612f7e81612f45565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fdf602383612620565b9150612fea82612f85565b604082019050919050565b5f6020820190508181035f83015261300c81612fd3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61306d602983612620565b915061307882613013565b604082019050919050565b5f6020820190508181035f83015261309a81613061565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613121604983612620565b915061312c826130a1565b606082019050919050565b5f6020820190508181035f83015261314e81613115565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613189601983612620565b915061319482613155565b602082019050919050565b5f6020820190508181035f8301526131b68161317d565b9050919050565b5f6131c78261271e565b91506131d28361271e565b92508282019050808211156131ea576131e961293d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613224601a83612620565b915061322f826131f0565b602082019050919050565b5f6020820190508181035f83015261325181613218565b9050919050565b5f6132628261271e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132945761329361293d565b5b600182019050919050565b5f6132a98261271e565b91506132b48361271e565b92508282039050818111156132cc576132cb61293d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61335e816126e3565b82525050565b5f61336f8383613355565b60208301905092915050565b5f602082019050919050565b5f6133918261332c565b61339b8185613336565b93506133a683613346565b805f5b838110156133d65781516133bd8882613364565b97506133c88361337b565b9250506001810190506133a9565b5085935050505092915050565b5f60a0820190506133f65f8301886127c2565b6134036020830187612c8d565b81810360408301526134158186613387565b905061342460608301856128d7565b61343160808301846127c2565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134728261271e565b915061347d8361271e565b92508261348d5761348c61343b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134f2602183612620565b91506134fd82613498565b604082019050919050565b5f6020820190508181035f83015261351f816134e6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61355a601b83612620565b915061356582613526565b602082019050919050565b5f6020820190508181035f8301526135878161354e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220849107d2412703541da7a0b8bcf2783f53c8553385f75cf6ec2b8d884a94bec664736f6c63430008140033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063a9059cbb1161006e578063a9059cbb1461042d578063bba399a114610469578063bf474bed14610491578063c876d0b9146104bb578063c9567bf9146104e5578063dd62ed3e146104fb57610155565b80637d1db4a5146103475780638187f516146103715780638a8c523c146103995780638da5cb5b146103af5780638f9a55c0146103d957806395d89b411461040357610155565b806351bc3c851161010757806351bc3c85146102795780635a90a49e1461028f57806370a08231146102b7578063715018a6146102f35780637233335614610309578063751039fc1461033157610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e957806323b872dd14610213578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610537565b60405161017a91906126a0565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612751565b610574565b6040516101b691906127a9565b60405180910390f35b3480156101ca575f80fd5b506101d3610591565b6040516101e091906127d1565b60405180910390f35b3480156101f4575f80fd5b506101fd610597565b60405161020a91906127d1565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906127ea565b6105bc565b60405161024691906127a9565b60405180910390f35b34801561025a575f80fd5b50610263610690565b6040516102709190612855565b60405180910390f35b348015610284575f80fd5b5061028d610698565b005b34801561029a575f80fd5b506102b560048036038101906102b0919061286e565b61072f565b005b3480156102c2575f80fd5b506102dd60048036038101906102d8919061286e565b61081b565b6040516102ea91906127d1565b60405180910390f35b3480156102fe575f80fd5b50610307610861565b005b348015610314575f80fd5b5061032f600480360381019061032a9190612899565b6109af565b005b34801561033c575f80fd5b50610345610a71565b005b348015610352575f80fd5b5061035b610bbf565b60405161036891906127d1565b60405180910390f35b34801561037c575f80fd5b506103976004803603810190610392919061286e565b610bc5565b005b3480156103a4575f80fd5b506103ad610c9c565b005b3480156103ba575f80fd5b506103c3610e05565b6040516103d091906128e6565b60405180910390f35b3480156103e4575f80fd5b506103ed610e2c565b6040516103fa91906127d1565b60405180910390f35b34801561040e575f80fd5b50610417610e32565b60405161042491906126a0565b60405180910390f35b348015610438575f80fd5b50610453600480360381019061044e9190612751565b610e6f565b60405161046091906127a9565b60405180910390f35b348015610474575f80fd5b5061048f600480360381019061048a9190612899565b610e8c565b005b34801561049c575f80fd5b506104a5610f4e565b6040516104b291906127d1565b60405180910390f35b3480156104c6575f80fd5b506104cf610f54565b6040516104dc91906127a9565b60405180910390f35b3480156104f0575f80fd5b506104f9610f66565b005b348015610506575f80fd5b50610521600480360381019061051c91906128ff565b611487565b60405161052e91906127d1565b60405180910390f35b60606040518060400160405280600581526020017f582d415045000000000000000000000000000000000000000000000000000000815250905090565b5f610587610580611509565b8484611510565b6001905092915050565b60125481565b5f6012600a6105a69190612a99565b655af3107a40006105b79190612ae3565b905090565b5f6105c88484846116d3565b610685846105d4611509565b6106808560405180606001604052806028815260200161358f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610637611509565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120769092919063ffffffff16565b611510565b600190509392505050565b5f6012905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d8611509565b73ffffffffffffffffffffffffffffffffffffffff16146106f7575f80fd5b5f6107013061081b565b90505f81111561071557610714816120d8565b5b5f4790505f81111561072b5761072a81612343565b5b5050565b610737611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ba90612b6e565b60405180910390fd5b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610869611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec90612b6e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b7611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612b6e565b60405180910390fd5b6009548211158015610a575750600a548111155b610a5f575f80fd5b8160098190555080600a819055505050565b610a79611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90612b6e565b60405180910390fd5b6012600a610b139190612a99565b655af3107a4000610b249190612ae3565b600f819055506012600a610b389190612a99565b655af3107a4000610b499190612ae3565b6010819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b979190612a99565b655af3107a4000610ba89190612ae3565b604051610bb591906127d1565b60405180910390a1565b600f5481565b610bcd611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090612b6e565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ca4611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790612b6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dce3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610db89190612a99565b655af3107a4000610dc99190612ae3565b611510565b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f5841504500000000000000000000000000000000000000000000000000000000815250905090565b5f610e82610e7b611509565b84846116d3565b6001905092915050565b610e94611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790612b6e565b60405180910390fd5b600b548211158015610f345750600c548111155b610f3c575f80fd5b81600b8190555080600c819055505050565b60115481565b60055f9054906101000a900460ff1681565b610f6e611509565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612b6e565b60405180910390fd5b60148054906101000a900460ff1615611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90612bd6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110e63060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6110d09190612a99565b655af3107a40006110e19190612ae3565b611510565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111749190612c08565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121e9190612c08565b6040518363ffffffff1660e01b815260040161123b929190612c33565b6020604051808303815f875af1158015611257573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b9190612c08565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113023061081b565b5f8061130c610e05565b426040518863ffffffff1660e01b815260040161132e96959493929190612c9c565b60606040518083038185885af115801561134a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061136f9190612d0f565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161140f929190612d5f565b6020604051808303815f875af115801561142b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144f9190612db0565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590612e4b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390612ed9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116c691906127d1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173890612f67565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a690612ff5565b60405180910390fd5b5f81116117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890613083565b60405180910390fd5b5f6117fa610e05565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118685750611838610e05565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dc6576118a9606461189b600b54600e54116118885760075461188c565b6009545b8561243790919063ffffffff16565b6124ae90919063ffffffff16565b905060055f9054906101000a900460ff1615611a315760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611969575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a30574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e490613137565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ada575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b2d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611be757600f54821115611b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6e9061319f565b60405180910390fd5b60105482611b848561081b565b611b8e91906131bd565b1115611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc69061323a565b60405180910390fd5b600e5f815480929190611be190613258565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c6f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cb357611cb06064611ca2600c54600e5411611c8f57600854611c93565b600a545b8561243790919063ffffffff16565b6124ae90919063ffffffff16565b90505b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cea575f90505b5f611cf43061081b565b9050601460159054906101000a900460ff16158015611d5f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d775750601460169054906101000a900460ff165b8015611d84575060115481115b8015611d935750600d54600e54115b15611dc457611dac611da7826012546124f7565b6120d8565b5f4790505f811115611dc257611dc147612343565b5b505b505b5f811115611ec557611e1e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebc91906127d1565b60405180910390a35b611f158260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461256c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fb8611f6c828461256c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61205b848661256c90919063ffffffff16565b60405161206891906127d1565b60405180910390a350505050565b5f8383111582906120bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b491906126a0565b60405180910390fd5b505f83856120cb919061329f565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561210f5761210e6132d2565b5b60405190808252806020026020018201604052801561213d5781602001602082028036833780820191505090505b50905030815f81518110612154576121536132ff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061221c9190612c08565b816001815181106122305761222f6132ff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611510565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122f89594939291906133e3565b5f604051808303815f87803b15801561230f575f80fd5b505af1158015612321573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123a6600561239860048661243790919063ffffffff16565b6124ae90919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156123ce573d5f803e3d5ffd5b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015612433573d5f803e3d5ffd5b5050565b5f808303612447575f90506124a8565b5f82846124549190612ae3565b90508284826124639190613468565b146124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613508565b60405180910390fd5b809150505b92915050565b5f6124ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125b5565b905092915050565b5f8183116125055782612507565b815b905092915050565b5f80828461251d91906131bd565b905083811015612562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255990613570565b60405180910390fd5b8091505092915050565b5f6125ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612076565b905092915050565b5f80831182906125fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f291906126a0565b60405180910390fd5b505f83856126099190613468565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561264d578082015181840152602081019050612632565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61267282612616565b61267c8185612620565b935061268c818560208601612630565b61269581612658565b840191505092915050565b5f6020820190508181035f8301526126b88184612668565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ed826126c4565b9050919050565b6126fd816126e3565b8114612707575f80fd5b50565b5f81359050612718816126f4565b92915050565b5f819050919050565b6127308161271e565b811461273a575f80fd5b50565b5f8135905061274b81612727565b92915050565b5f8060408385031215612767576127666126c0565b5b5f6127748582860161270a565b92505060206127858582860161273d565b9150509250929050565b5f8115159050919050565b6127a38161278f565b82525050565b5f6020820190506127bc5f83018461279a565b92915050565b6127cb8161271e565b82525050565b5f6020820190506127e45f8301846127c2565b92915050565b5f805f60608486031215612801576128006126c0565b5b5f61280e8682870161270a565b935050602061281f8682870161270a565b92505060406128308682870161273d565b9150509250925092565b5f60ff82169050919050565b61284f8161283a565b82525050565b5f6020820190506128685f830184612846565b92915050565b5f60208284031215612883576128826126c0565b5b5f6128908482850161270a565b91505092915050565b5f80604083850312156128af576128ae6126c0565b5b5f6128bc8582860161273d565b92505060206128cd8582860161273d565b9150509250929050565b6128e0816126e3565b82525050565b5f6020820190506128f95f8301846128d7565b92915050565b5f8060408385031215612915576129146126c0565b5b5f6129228582860161270a565b92505060206129338582860161270a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129bf5780860481111561299b5761299a61293d565b5b60018516156129aa5780820291505b80810290506129b88561296a565b945061297f565b94509492505050565b5f826129d75760019050612a92565b816129e4575f9050612a92565b81600181146129fa5760028114612a0457612a33565b6001915050612a92565b60ff841115612a1657612a1561293d565b5b8360020a915084821115612a2d57612a2c61293d565b5b50612a92565b5060208310610133831016604e8410600b8410161715612a685782820a905083811115612a6357612a6261293d565b5b612a92565b612a758484846001612976565b92509050818404811115612a8c57612a8b61293d565b5b81810290505b9392505050565b5f612aa38261271e565b9150612aae8361283a565b9250612adb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129c8565b905092915050565b5f612aed8261271e565b9150612af88361271e565b9250828202612b068161271e565b91508282048414831517612b1d57612b1c61293d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b58602083612620565b9150612b6382612b24565b602082019050919050565b5f6020820190508181035f830152612b8581612b4c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bc0601783612620565b9150612bcb82612b8c565b602082019050919050565b5f6020820190508181035f830152612bed81612bb4565b9050919050565b5f81519050612c02816126f4565b92915050565b5f60208284031215612c1d57612c1c6126c0565b5b5f612c2a84828501612bf4565b91505092915050565b5f604082019050612c465f8301856128d7565b612c5360208301846128d7565b9392505050565b5f819050919050565b5f819050919050565b5f612c86612c81612c7c84612c5a565b612c63565b61271e565b9050919050565b612c9681612c6c565b82525050565b5f60c082019050612caf5f8301896128d7565b612cbc60208301886127c2565b612cc96040830187612c8d565b612cd66060830186612c8d565b612ce360808301856128d7565b612cf060a08301846127c2565b979650505050505050565b5f81519050612d0981612727565b92915050565b5f805f60608486031215612d2657612d256126c0565b5b5f612d3386828701612cfb565b9350506020612d4486828701612cfb565b9250506040612d5586828701612cfb565b9150509250925092565b5f604082019050612d725f8301856128d7565b612d7f60208301846127c2565b9392505050565b612d8f8161278f565b8114612d99575f80fd5b50565b5f81519050612daa81612d86565b92915050565b5f60208284031215612dc557612dc46126c0565b5b5f612dd284828501612d9c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e35602483612620565b9150612e4082612ddb565b604082019050919050565b5f6020820190508181035f830152612e6281612e29565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ec3602283612620565b9150612ece82612e69565b604082019050919050565b5f6020820190508181035f830152612ef081612eb7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f51602583612620565b9150612f5c82612ef7565b604082019050919050565b5f6020820190508181035f830152612f7e81612f45565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fdf602383612620565b9150612fea82612f85565b604082019050919050565b5f6020820190508181035f83015261300c81612fd3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61306d602983612620565b915061307882613013565b604082019050919050565b5f6020820190508181035f83015261309a81613061565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613121604983612620565b915061312c826130a1565b606082019050919050565b5f6020820190508181035f83015261314e81613115565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613189601983612620565b915061319482613155565b602082019050919050565b5f6020820190508181035f8301526131b68161317d565b9050919050565b5f6131c78261271e565b91506131d28361271e565b92508282019050808211156131ea576131e961293d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613224601a83612620565b915061322f826131f0565b602082019050919050565b5f6020820190508181035f83015261325181613218565b9050919050565b5f6132628261271e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132945761329361293d565b5b600182019050919050565b5f6132a98261271e565b91506132b48361271e565b92508282039050818111156132cc576132cb61293d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61335e816126e3565b82525050565b5f61336f8383613355565b60208301905092915050565b5f602082019050919050565b5f6133918261332c565b61339b8185613336565b93506133a683613346565b805f5b838110156133d65781516133bd8882613364565b97506133c88361337b565b9250506001810190506133a9565b5085935050505092915050565b5f60a0820190506133f65f8301886127c2565b6134036020830187612c8d565b81810360408301526134158186613387565b905061342460608301856128d7565b61343160808301846127c2565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134728261271e565b915061347d8361271e565b92508261348d5761348c61343b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134f2602183612620565b91506134fd82613498565b604082019050919050565b5f6020820190508181035f83015261351f816134e6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61355a601b83612620565b915061356582613526565b602082019050919050565b5f6020820190508181035f8301526135878161354e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220849107d2412703541da7a0b8bcf2783f53c8553385f75cf6ec2b8d884a94bec664736f6c63430008140033
Deployed Bytecode Sourcemap
3539:9289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5612:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6445:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4786:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5889:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7007:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5798:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12469:356;;;;;;;;;;;;;:::i;:::-;;6614:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5992:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2622:148;;;;;;;;;;;;;:::i;:::-;;12197:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10754:196;;;;;;;;;;;;;:::i;:::-;;4548:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10958:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11911:272;;;;;;;;;;;;;:::i;:::-;;2408:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4635:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5703:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6119:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6733:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4717:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3881:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11232:671;;;;;;;;;;;;;:::i;:::-;;6294:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5612:83;5649:13;5682:5;;;;;;;;;;;;;;;;;5675:12;;5612:83;:::o;6445:161::-;6520:4;6537:39;6546:12;:10;:12::i;:::-;6560:7;6569:6;6537:8;:39::i;:::-;6594:4;6587:11;;6445:161;;;;:::o;4786:58::-;;;;:::o;5889:95::-;5942:7;4373:2;4435;:13;;;;:::i;:::-;4417:15;:31;;;;:::i;:::-;5962:14;;5889:95;:::o;7007:313::-;7105:4;7122:36;7132:6;7140:9;7151:6;7122:9;:36::i;:::-;7169:121;7178:6;7186:12;:10;:12::i;:::-;7200:89;7238:6;7200:89;;;;;;;;;;;;;;;;;:11;:19;7212:6;7200:19;;;;;;;;;;;;;;;:33;7220:12;:10;:12::i;:::-;7200:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7169:8;:121::i;:::-;7308:4;7301:11;;7007:313;;;;;:::o;5798:83::-;5839:5;4373:2;5857:16;;5798:83;:::o;12469:356::-;12533:18;;;;;;;;;;;12519:32;;:12;:10;:12::i;:::-;:32;;;12511:41;;;;;;12563:20;12584:24;12602:4;12584:9;:24::i;:::-;12563:45;;12635:1;12622:12;:14;12619:73;;;12650:30;12667:12;12650:16;:30::i;:::-;12619:73;12702:18;12721:21;12702:40;;12767:1;12756:10;:12;12753:65;;;12782:24;12795:10;12782:12;:24::i;:::-;12753:65;12500:325;;12469:356::o;6614:111::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6713:4:::1;6683:18;:27;6702:7;6683:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;6614:111:::0;:::o;5992:119::-;6058:7;6085:9;:18;6095:7;6085:18;;;;;;;;;;;;;;;;6078:25;;5992:119;;;:::o;2622:148::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2729:1:::1;2692:40;;2713:6;::::0;::::1;;;;;;;;2692:40;;;;;;;;;;;;2760:1;2743:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2622:148::o:0;12197:227::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12307:12:::1;;12295:10;:24;;:54;;;;;12336:13;;12323:11;:26;;12295:54;12287:63;;;::::0;::::1;;12372:10;12359:12;:23;;;;12405:11;12391:13;:25;;;;12197:227:::0;;:::o;10754:196::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4373:2:::1;4435;:13;;;;:::i;:::-;4417:15;:31;;;;:::i;:::-;10807:12;:22;;;;4373:2;4435;:13;;;;:::i;:::-;4417:15;:31;;;;:::i;:::-;10840:14;:22;;;;10894:5;10873:20;;:26;;;;;;;;;;;;;;;;;;10915:27;4373:2;4435;:13;;;;:::i;:::-;4417:15;:31;;;;:::i;:::-;10915:27;;;;;;:::i;:::-;;;;;;;;10754:196::o:0;4548:37::-;;;;:::o;10958:86::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11032:4:::1;11018:13;;:18;;;;;;;;;;;;;;;;;;10958:86:::0;:::o;11911:272::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12005:42:::1;11968:15;;:80;;;;;;;;;;;;;;;;;;12059:58;12076:4;12091:15;;;;;;;;;;;4373:2;4435;:13;;;;:::i;:::-;4417:15;:31;;;;:::i;:::-;12059:8;:58::i;:::-;12142:4;12128:11;;:18;;;;;;;;;;;;;;;;;;12171:4;12157:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11911:272::o:0;2408:79::-;2446:7;2473:6;;;;;;;;;;;2466:13;;2408:79;:::o;4635:39::-;;;;:::o;5703:87::-;5742:13;5775:7;;;;;;;;;;;;;;;;;5768:14;;5703:87;:::o;6119:167::-;6197:4;6214:42;6224:12;:10;:12::i;:::-;6238:9;6249:6;6214:9;:42::i;:::-;6274:4;6267:11;;6119:167;;;;:::o;6733:266::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6858:15:::1;;6842:14;:31;;:68;;;;;6894:16;;6877:15;:33;;6842:68;6834:77;;;::::0;::::1;;6936:14;6920:15;:30;;;;6976:15;6959:16;:32;;;;6733:266:::0;;:::o;4717:62::-;;;;:::o;3881:39::-;;;;;;;;;;;;;:::o;11232:671::-;2545:12;:10;:12::i;:::-;2535:22;;:6;;;;;;;;;;:22;;;2527:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11296:11:::1;::::0;::::1;;;;;;;;11295:12;11287:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11382:42;11345:15;;:80;;;;;;;;;;;;;;;;;;11436:58;11453:4;11468:15;;;;;;;;;;;4373:2;4435;:13;;;;:::i;:::-;4417:15;:31;;;;:::i;:::-;11436:8;:58::i;:::-;11539:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11521:55;;;11585:4;11592:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11521:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11505:13;;:110;;;;;;;;;;;;;;;;;;11626:15;;;;;;;;;;;:31;;;11665:21;11696:4;11702:24;11720:4;11702:9;:24::i;:::-;11727:1;11729::::0;11731:7:::1;:5;:7::i;:::-;11739:15;11626:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11773:13;;;;;;;;;;;11766:29;;;11804:15;;;;;;;;;;;11822:14;11766:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11862:4;11848:11;;:18;;;;;;;;;;;;;;;;;;11891:4;11877:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11232:671::o:0;6294:143::-;6375:7;6402:11;:18;6414:5;6402:18;;;;;;;;;;;;;;;:27;6421:7;6402:27;;;;;;;;;;;;;;;;6395:34;;6294:143;;;;:::o;163:98::-;216:7;243:10;236:17;;163:98;:::o;7328:335::-;7438:1;7421:19;;:5;:19;;;7413:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7519:1;7500:21;;:7;:21;;;7492:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7601:6;7571:11;:18;7583:5;7571:18;;;;;;;;;;;;;;;:27;7590:7;7571:27;;;;;;;;;;;;;;;:36;;;;7639:7;7623:32;;7632:5;7623:32;;;7648:6;7623:32;;;;;;:::i;:::-;;;;;;;;7328:335;;;:::o;7671:2476::-;7775:1;7759:18;;:4;:18;;;7751:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7852:1;7838:16;;:2;:16;;;7830:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7922:1;7913:6;:10;7905:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7980:17;8022:7;:5;:7::i;:::-;8014:15;;:4;:15;;;;:32;;;;;8039:7;:5;:7::i;:::-;8033:13;;:2;:13;;;;8014:32;8010:1781;;;8075:76;8147:3;8075:67;8097:15;;8087:9;;:25;8086:55;;8127:14;;8086:55;;;8114:12;;8086:55;8075:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8063:88;;8172:20;;;;;;;;;;;8168:508;;;8233:15;;;;;;;;;;;8219:30;;:2;:30;;;;:62;;;;;8267:13;;;;;;;;;;;8253:28;;:2;:28;;;;8219:62;8215:444;;;8417:12;8344:28;:39;8373:9;8344:39;;;;;;;;;;;;;;;;:85;8308:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8625:12;8583:28;:39;8612:9;8583:39;;;;;;;;;;;;;;;:54;;;;8215:444;8168:508;8704:13;;;;;;;;;;;8696:21;;:4;:21;;;:55;;;;;8735:15;;;;;;;;;;;8721:30;;:2;:30;;;;8696:55;:83;;;;;8757:18;:22;8776:2;8757:22;;;;;;;;;;;;;;;;;;;;;;;;;8755:24;8696:83;8692:313;;;8819:12;;8809:6;:22;;8801:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8914:14;;8904:6;8888:13;8898:2;8888:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8880:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8978:9;;:11;;;;;;;;;:::i;:::-;;;;;;8692:313;9030:13;;;;;;;;;;;9024:19;;:2;:19;;;:44;;;;;9063:4;9047:21;;:4;:21;;;;9024:44;9021:175;;;9101:79;9176:3;9101:70;9123:16;;9113:9;;:26;9112:58;;9155:15;;9112:58;;;9141:13;;9112:58;9101:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9089:91;;9021:175;9231:4;9215:21;;:4;:21;;;9212:73;;9268:1;9256:13;;9212:73;9301:28;9332:24;9350:4;9332:9;:24::i;:::-;9301:55;;9376:6;;;;;;;;;;;9375:7;:32;;;;;9394:13;;;;;;;;;;;9386:21;;:2;:21;;;9375:32;:47;;;;;9411:11;;;;;;;;;;;9375:47;:89;;;;;9447:17;;9426:20;:38;9375:89;:121;;;;;9478:18;;9468:9;;:28;9375:121;9371:409;;;9517:55;9534:37;9538:20;9559:11;;9534:3;:37::i;:::-;9517:16;:55::i;:::-;9591:26;9620:21;9591:50;;9684:1;9663:18;:22;9660:105;;;9710:35;9723:21;9710:12;:35::i;:::-;9660:105;9498:282;9371:409;8048:1743;8010:1781;9816:1;9806:9;:11;9803:161;;;9856:39;9885:9;9856;:24;9874:4;9856:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9831:9;:24;9849:4;9831:24;;;;;;;;;;;;;;;:64;;;;9936:4;9913:39;;9922:4;9913:39;;;9942:9;9913:39;;;;;;:::i;:::-;;;;;;;;9803:161;9990:27;10010:6;9990:9;:15;10000:4;9990:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9974:9;:15;9984:4;9974:15;;;;;;;;;;;;;;;:43;;;;10042:40;10060:21;10071:9;10060:6;:10;;:21;;;;:::i;:::-;10042:9;:13;10052:2;10042:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10028:9;:13;10038:2;10028:13;;;;;;;;;;;;;;;:54;;;;10113:2;10098:41;;10107:4;10098:41;;;10117:21;10128:9;10117:6;:10;;:21;;;;:::i;:::-;10098:41;;;;;;:::i;:::-;;;;;;;;7740:2407;7671:2476;;;:::o;1300:190::-;1386:7;1419:1;1414;:6;;1422:12;1406:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1446:9;1462:1;1458;:5;;;;:::i;:::-;1446:17;;1481:1;1474:8;;;1300:190;;;;;:::o;10263:483::-;5137:4;5128:6;;:13;;;;;;;;;;;;;;;;;;10341:21:::1;10379:1;10365:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10341:40;;10410:4;10392;10397:1;10392:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10436:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10426:4;10431:1;10426:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10469:62;10486:4;10501:15;;;;;;;;;;;10519:11;10469:8;:62::i;:::-;10542:15;;;;;;;;;;;:66;;;10623:11;10649:1;10665:4;10692;10712:15;10542:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10330:416;5173:5:::0;5164:6;;:14;;;;;;;;;;;;;;;;;;10263:483;:::o;11052:172::-;11109:15;;;;;;;;;;;:24;;:46;11134:20;11152:1;11134:13;11145:1;11134:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;11109:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11166:18;;;;;;;;;;;:27;;:50;11194:21;11166:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11052:172;:::o;1498:246::-;1556:7;1585:1;1580;:6;1576:47;;1610:1;1603:8;;;;1576:47;1633:9;1649:1;1645;:5;;;;:::i;:::-;1633:17;;1678:1;1673;1669;:5;;;;:::i;:::-;:10;1661:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1735:1;1728:8;;;1498:246;;;;;:::o;1752:132::-;1810:7;1837:39;1841:1;1844;1837:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1830:46;;1752:132;;;;:::o;10157:98::-;10214:7;10241:1;10239;:3;10238:9;;10246:1;10238:9;;;10244:1;10238:9;10231:16;;10157:98;;;;:::o;969:179::-;1027:7;1047:9;1063:1;1059;:5;;;;:::i;:::-;1047:17;;1088:1;1083;:6;;1075:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1139:1;1132:8;;;969:179;;;;:::o;1156:136::-;1214:7;1241:43;1245:1;1248;1241:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1234:50;;1156:136;;;;:::o;1892:189::-;1978:7;2010:1;2006;:5;2013:12;1998:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2037:9;2053:1;2049;:5;;;;:::i;:::-;2037:17;;2072:1;2065:8;;;1892:189;;;;;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:173::-;10555:25;10551:1;10543:6;10539:14;10532:49;10415:173;:::o;10594:366::-;10736:3;10757:67;10821:2;10816:3;10757:67;:::i;:::-;10750:74;;10833:93;10922:3;10833:93;:::i;:::-;10951:2;10946:3;10942:12;10935:19;;10594:366;;;:::o;10966:419::-;11132:4;11170:2;11159:9;11155:18;11147:26;;11219:9;11213:4;11209:20;11205:1;11194:9;11190:17;11183:47;11247:131;11373:4;11247:131;:::i;:::-;11239:139;;10966:419;;;:::o;11391:143::-;11448:5;11479:6;11473:13;11464:22;;11495:33;11522:5;11495:33;:::i;:::-;11391:143;;;;:::o;11540:351::-;11610:6;11659:2;11647:9;11638:7;11634:23;11630:32;11627:119;;;11665:79;;:::i;:::-;11627:119;11785:1;11810:64;11866:7;11857:6;11846:9;11842:22;11810:64;:::i;:::-;11800:74;;11756:128;11540:351;;;;:::o;11897:332::-;12018:4;12056:2;12045:9;12041:18;12033:26;;12069:71;12137:1;12126:9;12122:17;12113:6;12069:71;:::i;:::-;12150:72;12218:2;12207:9;12203:18;12194:6;12150:72;:::i;:::-;11897:332;;;;;:::o;12235:85::-;12280:7;12309:5;12298:16;;12235:85;;;:::o;12326:60::-;12354:3;12375:5;12368:12;;12326:60;;;:::o;12392:158::-;12450:9;12483:61;12501:42;12510:32;12536:5;12510:32;:::i;:::-;12501:42;:::i;:::-;12483:61;:::i;:::-;12470:74;;12392:158;;;:::o;12556:147::-;12651:45;12690:5;12651:45;:::i;:::-;12646:3;12639:58;12556:147;;:::o;12709:807::-;12958:4;12996:3;12985:9;12981:19;12973:27;;13010:71;13078:1;13067:9;13063:17;13054:6;13010:71;:::i;:::-;13091:72;13159:2;13148:9;13144:18;13135:6;13091:72;:::i;:::-;13173:80;13249:2;13238:9;13234:18;13225:6;13173:80;:::i;:::-;13263;13339:2;13328:9;13324:18;13315:6;13263:80;:::i;:::-;13353:73;13421:3;13410:9;13406:19;13397:6;13353:73;:::i;:::-;13436;13504:3;13493:9;13489:19;13480:6;13436:73;:::i;:::-;12709:807;;;;;;;;;:::o;13522:143::-;13579:5;13610:6;13604:13;13595:22;;13626:33;13653:5;13626:33;:::i;:::-;13522:143;;;;:::o;13671:663::-;13759:6;13767;13775;13824:2;13812:9;13803:7;13799:23;13795:32;13792:119;;;13830:79;;:::i;:::-;13792:119;13950:1;13975:64;14031:7;14022:6;14011:9;14007:22;13975:64;:::i;:::-;13965:74;;13921:128;14088:2;14114:64;14170:7;14161:6;14150:9;14146:22;14114:64;:::i;:::-;14104:74;;14059:129;14227:2;14253:64;14309:7;14300:6;14289:9;14285:22;14253:64;:::i;:::-;14243:74;;14198:129;13671:663;;;;;:::o;14340:332::-;14461:4;14499:2;14488:9;14484:18;14476:26;;14512:71;14580:1;14569:9;14565:17;14556:6;14512:71;:::i;:::-;14593:72;14661:2;14650:9;14646:18;14637:6;14593:72;:::i;:::-;14340:332;;;;;:::o;14678:116::-;14748:21;14763:5;14748:21;:::i;:::-;14741:5;14738:32;14728:60;;14784:1;14781;14774:12;14728:60;14678:116;:::o;14800:137::-;14854:5;14885:6;14879:13;14870:22;;14901:30;14925:5;14901:30;:::i;:::-;14800:137;;;;:::o;14943:345::-;15010:6;15059:2;15047:9;15038:7;15034:23;15030:32;15027:119;;;15065:79;;:::i;:::-;15027:119;15185:1;15210:61;15263:7;15254:6;15243:9;15239:22;15210:61;:::i;:::-;15200:71;;15156:125;14943:345;;;;:::o;15294:223::-;15434:34;15430:1;15422:6;15418:14;15411:58;15503:6;15498:2;15490:6;15486:15;15479:31;15294:223;:::o;15523:366::-;15665:3;15686:67;15750:2;15745:3;15686:67;:::i;:::-;15679:74;;15762:93;15851:3;15762:93;:::i;:::-;15880:2;15875:3;15871:12;15864:19;;15523:366;;;:::o;15895:419::-;16061:4;16099:2;16088:9;16084:18;16076:26;;16148:9;16142:4;16138:20;16134:1;16123:9;16119:17;16112:47;16176:131;16302:4;16176:131;:::i;:::-;16168:139;;15895:419;;;:::o;16320:221::-;16460:34;16456:1;16448:6;16444:14;16437:58;16529:4;16524:2;16516:6;16512:15;16505:29;16320:221;:::o;16547:366::-;16689:3;16710:67;16774:2;16769:3;16710:67;:::i;:::-;16703:74;;16786:93;16875:3;16786:93;:::i;:::-;16904:2;16899:3;16895:12;16888:19;;16547:366;;;:::o;16919:419::-;17085:4;17123:2;17112:9;17108:18;17100:26;;17172:9;17166:4;17162:20;17158:1;17147:9;17143:17;17136:47;17200:131;17326:4;17200:131;:::i;:::-;17192:139;;16919:419;;;:::o;17344:224::-;17484:34;17480:1;17472:6;17468:14;17461:58;17553:7;17548:2;17540:6;17536:15;17529:32;17344:224;:::o;17574:366::-;17716:3;17737:67;17801:2;17796:3;17737:67;:::i;:::-;17730:74;;17813:93;17902:3;17813:93;:::i;:::-;17931:2;17926:3;17922:12;17915:19;;17574:366;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;17946:419;;;:::o;18371:222::-;18511:34;18507:1;18499:6;18495:14;18488:58;18580:5;18575:2;18567:6;18563:15;18556:30;18371:222;:::o;18599:366::-;18741:3;18762:67;18826:2;18821:3;18762:67;:::i;:::-;18755:74;;18838:93;18927:3;18838:93;:::i;:::-;18956:2;18951:3;18947:12;18940:19;;18599:366;;;:::o;18971:419::-;19137:4;19175:2;19164:9;19160:18;19152:26;;19224:9;19218:4;19214:20;19210:1;19199:9;19195:17;19188:47;19252:131;19378:4;19252:131;:::i;:::-;19244:139;;18971:419;;;:::o;19396:228::-;19536:34;19532:1;19524:6;19520:14;19513:58;19605:11;19600:2;19592:6;19588:15;19581:36;19396:228;:::o;19630:366::-;19772:3;19793:67;19857:2;19852:3;19793:67;:::i;:::-;19786:74;;19869:93;19958:3;19869:93;:::i;:::-;19987:2;19982:3;19978:12;19971:19;;19630:366;;;:::o;20002:419::-;20168:4;20206:2;20195:9;20191:18;20183:26;;20255:9;20249:4;20245:20;20241:1;20230:9;20226:17;20219:47;20283:131;20409:4;20283:131;:::i;:::-;20275:139;;20002:419;;;:::o;20427:297::-;20567:34;20563:1;20555:6;20551:14;20544:58;20636:34;20631:2;20623:6;20619:15;20612:59;20705:11;20700:2;20692:6;20688:15;20681:36;20427:297;:::o;20730:366::-;20872:3;20893:67;20957:2;20952:3;20893:67;:::i;:::-;20886:74;;20969:93;21058:3;20969:93;:::i;:::-;21087:2;21082:3;21078:12;21071:19;;20730:366;;;:::o;21102:419::-;21268:4;21306:2;21295:9;21291:18;21283:26;;21355:9;21349:4;21345:20;21341:1;21330:9;21326:17;21319:47;21383:131;21509:4;21383:131;:::i;:::-;21375:139;;21102:419;;;:::o;21527:175::-;21667:27;21663:1;21655:6;21651:14;21644:51;21527:175;:::o;21708:366::-;21850:3;21871:67;21935:2;21930:3;21871:67;:::i;:::-;21864:74;;21947:93;22036:3;21947:93;:::i;:::-;22065:2;22060:3;22056:12;22049:19;;21708:366;;;:::o;22080:419::-;22246:4;22284:2;22273:9;22269:18;22261:26;;22333:9;22327:4;22323:20;22319:1;22308:9;22304:17;22297:47;22361:131;22487:4;22361:131;:::i;:::-;22353:139;;22080:419;;;:::o;22505:191::-;22545:3;22564:20;22582:1;22564:20;:::i;:::-;22559:25;;22598:20;22616:1;22598:20;:::i;:::-;22593:25;;22641:1;22638;22634:9;22627:16;;22662:3;22659:1;22656:10;22653:36;;;22669:18;;:::i;:::-;22653:36;22505:191;;;;:::o;22702:176::-;22842:28;22838:1;22830:6;22826:14;22819:52;22702:176;:::o;22884:366::-;23026:3;23047:67;23111:2;23106:3;23047:67;:::i;:::-;23040:74;;23123:93;23212:3;23123:93;:::i;:::-;23241:2;23236:3;23232:12;23225:19;;22884:366;;;:::o;23256:419::-;23422:4;23460:2;23449:9;23445:18;23437:26;;23509:9;23503:4;23499:20;23495:1;23484:9;23480:17;23473:47;23537:131;23663:4;23537:131;:::i;:::-;23529:139;;23256:419;;;:::o;23681:233::-;23720:3;23743:24;23761:5;23743:24;:::i;:::-;23734:33;;23789:66;23782:5;23779:77;23776:103;;23859:18;;:::i;:::-;23776:103;23906:1;23899:5;23895:13;23888:20;;23681:233;;;:::o;23920:194::-;23960:4;23980:20;23998:1;23980:20;:::i;:::-;23975:25;;24014:20;24032:1;24014:20;:::i;:::-;24009:25;;24058:1;24055;24051:9;24043:17;;24082:1;24076:4;24073:11;24070:37;;;24087:18;;:::i;:::-;24070:37;23920:194;;;;:::o;24120:180::-;24168:77;24165:1;24158:88;24265:4;24262:1;24255:15;24289:4;24286:1;24279:15;24306:180;24354:77;24351:1;24344:88;24451:4;24448:1;24441:15;24475:4;24472:1;24465:15;24492:114;24559:6;24593:5;24587:12;24577:22;;24492:114;;;:::o;24612:184::-;24711:11;24745:6;24740:3;24733:19;24785:4;24780:3;24776:14;24761:29;;24612:184;;;;:::o;24802:132::-;24869:4;24892:3;24884:11;;24922:4;24917:3;24913:14;24905:22;;24802:132;;;:::o;24940:108::-;25017:24;25035:5;25017:24;:::i;:::-;25012:3;25005:37;24940:108;;:::o;25054:179::-;25123:10;25144:46;25186:3;25178:6;25144:46;:::i;:::-;25222:4;25217:3;25213:14;25199:28;;25054:179;;;;:::o;25239:113::-;25309:4;25341;25336:3;25332:14;25324:22;;25239:113;;;:::o;25388:732::-;25507:3;25536:54;25584:5;25536:54;:::i;:::-;25606:86;25685:6;25680:3;25606:86;:::i;:::-;25599:93;;25716:56;25766:5;25716:56;:::i;:::-;25795:7;25826:1;25811:284;25836:6;25833:1;25830:13;25811:284;;;25912:6;25906:13;25939:63;25998:3;25983:13;25939:63;:::i;:::-;25932:70;;26025:60;26078:6;26025:60;:::i;:::-;26015:70;;25871:224;25858:1;25855;25851:9;25846:14;;25811:284;;;25815:14;26111:3;26104:10;;25512:608;;;25388:732;;;;:::o;26126:831::-;26389:4;26427:3;26416:9;26412:19;26404:27;;26441:71;26509:1;26498:9;26494:17;26485:6;26441:71;:::i;:::-;26522:80;26598:2;26587:9;26583:18;26574:6;26522:80;:::i;:::-;26649:9;26643:4;26639:20;26634:2;26623:9;26619:18;26612:48;26677:108;26780:4;26771:6;26677:108;:::i;:::-;26669:116;;26795:72;26863:2;26852:9;26848:18;26839:6;26795:72;:::i;:::-;26877:73;26945:3;26934:9;26930:19;26921:6;26877:73;:::i;:::-;26126:831;;;;;;;;:::o;26963:180::-;27011:77;27008:1;27001:88;27108:4;27105:1;27098:15;27132:4;27129:1;27122:15;27149:185;27189:1;27206:20;27224:1;27206:20;:::i;:::-;27201:25;;27240:20;27258:1;27240:20;:::i;:::-;27235:25;;27279:1;27269:35;;27284:18;;:::i;:::-;27269:35;27326:1;27323;27319:9;27314:14;;27149:185;;;;:::o;27340:220::-;27480:34;27476:1;27468:6;27464:14;27457:58;27549:3;27544:2;27536:6;27532:15;27525:28;27340:220;:::o;27566:366::-;27708:3;27729:67;27793:2;27788:3;27729:67;:::i;:::-;27722:74;;27805:93;27894:3;27805:93;:::i;:::-;27923:2;27918:3;27914:12;27907:19;;27566:366;;;:::o;27938:419::-;28104:4;28142:2;28131:9;28127:18;28119:26;;28191:9;28185:4;28181:20;28177:1;28166:9;28162:17;28155:47;28219:131;28345:4;28219:131;:::i;:::-;28211:139;;27938:419;;;:::o;28363:177::-;28503:29;28499:1;28491:6;28487:14;28480:53;28363:177;:::o;28546:366::-;28688:3;28709:67;28773:2;28768:3;28709:67;:::i;:::-;28702:74;;28785:93;28874:3;28785:93;:::i;:::-;28903:2;28898:3;28894:12;28887:19;;28546:366;;;:::o;28918:419::-;29084:4;29122:2;29111:9;29107:18;29099:26;;29171:9;29165:4;29161:20;29157:1;29146:9;29142:17;29135:47;29199:131;29325:4;29199:131;:::i;:::-;29191:139;;28918:419;;;:::o
Swarm Source
ipfs://849107d2412703541da7a0b8bcf2783f53c8553385f75cf6ec2b8d884a94bec6
Loading...
Loading
Loading...
Loading
OVERVIEW
X-APE is a community-driven crypto project with DeFi utilities & Ape DNA NFTs. Our mission is to support animal rescue & create positive social impact.Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.