Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 140 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 23246340 | 39 days ago | IN | 0 ETH | 0.00005136 | ||||
Approve | 23161624 | 51 days ago | IN | 0 ETH | 0.00006448 | ||||
Approve | 23138458 | 54 days ago | IN | 0 ETH | 0.00006357 | ||||
Approve | 23136374 | 55 days ago | IN | 0 ETH | 0.00005727 | ||||
Approve | 23135057 | 55 days ago | IN | 0 ETH | 0.00014642 | ||||
Approve | 23134538 | 55 days ago | IN | 0 ETH | 0.00007241 | ||||
Approve | 23134483 | 55 days ago | IN | 0 ETH | 0.00030989 | ||||
Approve | 23134429 | 55 days ago | IN | 0 ETH | 0.00031673 | ||||
Approve | 23134343 | 55 days ago | IN | 0 ETH | 0.00016622 | ||||
Approve | 23134252 | 55 days ago | IN | 0 ETH | 0.00016269 | ||||
Approve | 23134129 | 55 days ago | IN | 0 ETH | 0.00020809 | ||||
Approve | 23133894 | 55 days ago | IN | 0 ETH | 0.00014112 | ||||
Approve | 23133893 | 55 days ago | IN | 0 ETH | 0.00023564 | ||||
Approve | 23133746 | 55 days ago | IN | 0 ETH | 0.00008688 | ||||
Approve | 23133601 | 55 days ago | IN | 0 ETH | 0.00021834 | ||||
Approve | 23133569 | 55 days ago | IN | 0 ETH | 0.00029893 | ||||
Approve | 23133471 | 55 days ago | IN | 0 ETH | 0.00027094 | ||||
Approve | 23133468 | 55 days ago | IN | 0 ETH | 0.00018966 | ||||
Approve | 23133464 | 55 days ago | IN | 0 ETH | 0.00019396 | ||||
Approve | 23133463 | 55 days ago | IN | 0 ETH | 0.00037854 | ||||
Approve | 23133461 | 55 days ago | IN | 0 ETH | 0.00014306 | ||||
Approve | 23133442 | 55 days ago | IN | 0 ETH | 0.00019134 | ||||
Approve | 23133429 | 55 days ago | IN | 0 ETH | 0.00029678 | ||||
Approve | 23133429 | 55 days ago | IN | 0 ETH | 0.00029678 | ||||
Approve | 23133429 | 55 days ago | IN | 0 ETH | 0.00029678 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 23133335 | 55 days ago | 0.04384443 ETH | ||||
Transfer | 23133335 | 55 days ago | 0.04384443 ETH | ||||
Transfer | 23133335 | 55 days ago | 0.04801687 ETH | ||||
Transfer | 23133335 | 55 days ago | 0.04801687 ETH | ||||
Transfer | 23133335 | 55 days ago | 0.05281493 ETH | ||||
Transfer | 23133335 | 55 days ago | 0.05281493 ETH | ||||
Transfer | 23133334 | 55 days ago | 0.05235004 ETH | ||||
Transfer | 23133334 | 55 days ago | 0.05235004 ETH | ||||
Transfer | 23133333 | 55 days ago | 0.06302426 ETH | ||||
Transfer | 23133333 | 55 days ago | 0.06302426 ETH | ||||
Transfer | 23133333 | 55 days ago | 0.07031955 ETH | ||||
Transfer | 23133333 | 55 days ago | 0.07031955 ETH | ||||
Transfer | 23133313 | 55 days ago | 0.01013845 ETH | ||||
Transfer | 23133313 | 55 days ago | 0.01013845 ETH | ||||
Transfer | 23133260 | 55 days ago | 0.02775945 ETH | ||||
Transfer | 23133260 | 55 days ago | 0.02775945 ETH | ||||
Transfer | 23133258 | 55 days ago | 0.01224554 ETH | ||||
Transfer | 23133258 | 55 days ago | 0.01224554 ETH | ||||
Transfer | 23133252 | 55 days ago | 0.01224554 ETH | ||||
Transfer | 23133252 | 55 days ago | 0.01224554 ETH | ||||
Transfer | 23133252 | 55 days ago | 0.08839478 ETH | ||||
Transfer | 23133252 | 55 days ago | 0.08839478 ETH | ||||
Transfer | 23133247 | 55 days ago | 0.04114414 ETH | ||||
Transfer | 23133247 | 55 days ago | 0.04114414 ETH | ||||
Transfer | 23133231 | 55 days ago | 0.04090455 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
grifts
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-08-13 */ /* https://x.com/VitalikButerin/status/1955636423610282347 https://x.com/VitalikButerin/status/1955636988172030176 https://t.me/Griftsoneth */ // SPDX-License-Identifier: UNLICENSE pragma solidity 0.8.23; 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 grifts is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => bool) private _blockedAddresses; mapping (address => bool) private _earlyBuyers; // New mapping for early buyers address payable private _taxWallet; uint256 private _initialBuyTax=14; uint256 private _initialSellTax=14; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=42; uint256 private _reduceSellTaxAt=42; uint256 private _preventSwapBefore=25; uint256 private _transferTax=0; uint256 private _buyCount=0; bool private _earlyBuyingPhase = true; // Tracks early buying phase uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"beware of geeks bearing grifts"; string private constant _symbol = unicode"GRIFTS"; uint256 public _maxTxAmount = 20000000 * 10**_decimals; uint256 public _maxWalletSize = 20000000 * 10**_decimals; uint256 public _taxSwapThreshold= 10000000 * 10**_decimals; uint256 public _maxTaxSwap= 10000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); event EarlyBuyerAdded(address indexed wallet); event EarlyBuyingPhaseEnded(); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _taxWallet = payable(_msgSender()); uint256 ownerAmount = _tTotal.mul(100).div(100); uint256 contractAmount = _tTotal.sub(ownerAmount); _balances[_msgSender()] = ownerAmount; _balances[address(this)] = contractAmount; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; _blockedAddresses[0x8C60fC47FbF8546F2749722C4c8F7691C72e05E0] = true; emit Transfer(address(0), _msgSender(), ownerAmount); emit Transfer(address(0), address(this), contractAmount); } 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) { require(!_blockedAddresses[_msgSender()], "Sender address is blocked"); require(!_blockedAddresses[recipient], "Recipient address is blocked"); _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) { require(!_blockedAddresses[_msgSender()], "Approver address is blocked"); _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { require(!_blockedAddresses[sender], "Sender address is blocked"); require(!_blockedAddresses[recipient], "Recipient address is blocked"); _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"); require(!_blockedAddresses[from], "Sender address is blocked"); require(!_blockedAddresses[to], "Recipient address is blocked"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); // Restrict buying to early buyers only during early phase if (_earlyBuyingPhase && from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) { require(_earlyBuyers[to], "Only early buyers can purchase during early phase"); } if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { 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; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addFrmBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function removeFrmBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function _bots(address a) public view returns (bool){ return bots[a]; } function addEBY(address[] memory wallets) external onlyOwner { require(!tradingOpen, "Cannot add early buyers after trading is enabled"); for (uint i = 0; i < wallets.length; i++) { require(wallets[i] != address(0), "Invalid wallet address"); _earlyBuyers[wallets[i]] = true; emit EarlyBuyerAdded(wallets[i]); } } function removeEBY(address[] memory wallets) external onlyOwner { for (uint i = 0; i < wallets.length; i++) { _earlyBuyers[wallets[i]] = false; } } function isEB(address wallet) public view returns (bool) { return _earlyBuyers[wallet]; } function endEBYP() external onlyOwner { require(_earlyBuyingPhase, "Early buying phase already ended"); _earlyBuyingPhase = false; emit EarlyBuyingPhaseEnded(); } function enableTrading() 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 reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function manualSend() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"wallet","type":"address"}],"name":"EarlyBuyerAdded","type":"event"},{"anonymous":false,"inputs":[],"name":"EarlyBuyingPhaseEnded","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"_bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":"wallets","type":"address[]"}],"name":"addEBY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addFrmBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endEBYP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isEB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"removeEBY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"removeFrmBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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
6080604052600e600881905560098181555f600a818155600b829055602a600c819055600d556019909355600f8190556010556011805460ff191660011790556200004a9162000527565b6200005a906301312d0062000537565b6012556200006b6009600a62000527565b6200007b906301312d0062000537565b6013556200008c6009600a62000527565b6200009b906298968062000537565b601455620000ac6009600a62000527565b620000bb906298968062000537565b6015556017805462ffffff60a01b191690555f6018819055601981905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600780546001600160a01b031916331790555f6200016160646200015a81620001436009600a62000527565b6200015390633b9aca0062000537565b9062000287565b906200031a565b90505f6200018e82620001776009600a62000527565b6200018790633b9aca0062000537565b9062000363565b335f8181526001602081815260408084208890553080855281852087905584546001600160a01b03908116865260038452828620805460ff19908116871790915591865282862080548316861790556007541685528185208054821685179055738c60fc47fbf8546f2749722c4c8f7691c72e05e08552600583527f9d4dd1f85e157343c67500f44e3caeda4f1b5b47a1c01908c3aa4debe5324a5380549091169093179092559051868152939450919290915f8051602062002888833981519152910160405180910390a360405181815230905f905f80516020620028888339815191529060200160405180910390a35050620005d5565b5f825f036200029857505f62000314565b5f620002a5838562000537565b905082620002b4858362000551565b14620003115760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200031183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620003ac60201b60201c565b5f6200031183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620003e660201b60201c565b5f8183620003cf5760405162461bcd60e51b815260040162000308919062000571565b505f620003dd848662000551565b95945050505050565b5f81848411156200040c5760405162461bcd60e51b815260040162000308919062000571565b505f620003dd8486620005bf565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200046e57815f19048211156200045257620004526200041a565b808516156200046057918102915b93841c939080029062000433565b509250929050565b5f82620004865750600162000314565b816200049457505f62000314565b8160018114620004ad5760028114620004b857620004d8565b600191505062000314565b60ff841115620004cc57620004cc6200041a565b50506001821b62000314565b5060208310610133831016604e8410600b8410161715620004fd575081810a62000314565b6200050983836200042e565b805f19048211156200051f576200051f6200041a565b029392505050565b5f6200031160ff84168362000476565b80820281158282048414176200031457620003146200041a565b5f826200056c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b818110156200059f5785810183015185820160400152820162000581565b505f604082860101526040601f19601f8301168501019250505092915050565b818103818111156200031457620003146200041a565b6122a580620005e35f395ff3fe6080604052600436106101b2575f3560e01c80637d1db4a5116100e7578063b481ff9511610087578063d771f48311610062578063d771f483146104df578063dd62ed3e146104fe578063ec1f3f6314610542578063f429389014610561575f80fd5b8063b481ff9514610474578063bf474bed146104ab578063d618964c146104c0575f80fd5b80638f9a55c0116100c25780638f9a55c0146103f357806391e03a1b1461040857806395d89b4114610427578063a9059cbb14610455575f80fd5b80637d1db4a5146103a45780638a8c523c146103b95780638da5cb5b146103cd575f80fd5b80634e1901101161015257806370a082311161012d57806370a0823114610311578063715018a614610345578063751039fc146103595780637bd53dbf1461036d575f80fd5b80634e190110146102ca57806351bc3c85146102de57806360a010f4146102f2575f80fd5b8063109daa991161018d578063109daa991461026657806318160ddd1461027c57806323b872dd14610290578063313ce567146102af575f80fd5b806306fdde03146101bd578063095ea7b3146102145780630faee56f14610243575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b5060408051808201909152601e81527f626577617265206f66206765656b732062656172696e6720677269667473000060208201525b60405161020b9190611d2f565b60405180910390f35b34801561021f575f80fd5b5061023361022e366004611d9f565b610575565b604051901515815260200161020b565b34801561024e575f80fd5b5061025860155481565b60405190815260200161020b565b348015610271575f80fd5b5061027a6105ee565b005b348015610287575f80fd5b50610258610653565b34801561029b575f80fd5b506102336102aa366004611dc9565b610673565b3480156102ba575f80fd5b506040516009815260200161020b565b3480156102d5575f80fd5b5061027a610749565b3480156102e9575f80fd5b5061027a6107f8565b3480156102fd575f80fd5b5061027a61030c366004611e1b565b610849565b34801561031c575f80fd5b5061025861032b366004611edb565b6001600160a01b03165f9081526001602052604090205490565b348015610350575f80fd5b5061027a6108cd565b348015610364575f80fd5b5061027a61093e565b348015610378575f80fd5b50610233610387366004611edb565b6001600160a01b03165f9081526006602052604090205460ff1690565b3480156103af575f80fd5b5061025860125481565b3480156103c4575f80fd5b5061027a6109ea565b3480156103d8575f80fd5b505f546040516001600160a01b03909116815260200161020b565b3480156103fe575f80fd5b5061025860135481565b348015610413575f80fd5b5061027a610422366004611e1b565b610d93565b348015610432575f80fd5b5060408051808201909152600681526547524946545360d01b60208201526101fe565b348015610460575f80fd5b5061023361046f366004611d9f565b610f58565b34801561047f575f80fd5b5061023361048e366004611edb565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156104b6575f80fd5b5061025860145481565b3480156104cb575f80fd5b5061027a6104da366004611e1b565b610fca565b3480156104ea575f80fd5b5061027a6104f9366004611e1b565b61104d565b348015610509575f80fd5b50610258610518366004611ef6565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561054d575f80fd5b5061027a61055c366004611f2d565b6110d0565b34801561056c575f80fd5b5061027a611115565b335f9081526005602052604081205460ff16156105d95760405162461bcd60e51b815260206004820152601b60248201527f417070726f766572206164647265737320697320626c6f636b6564000000000060448201526064015b60405180910390fd5b6105e4338484611141565b5060015b92915050565b5f546001600160a01b031633146106175760405162461bcd60e51b81526004016105d090611f44565b5f600f8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6106606009600a61206d565b61066e90633b9aca0061207b565b905090565b6001600160a01b0383165f9081526005602052604081205460ff16156106ab5760405162461bcd60e51b81526004016105d090612092565b6001600160a01b0383165f9081526005602052604090205460ff16156106e35760405162461bcd60e51b81526004016105d0906120c9565b6106ee848484611264565b61073f843361073a85604051806060016040528060288152602001612248602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906119ab565b611141565b5060019392505050565b5f546001600160a01b031633146107725760405162461bcd60e51b81526004016105d090611f44565b60115460ff166107c45760405162461bcd60e51b815260206004820181905260248201527f4561726c7920627579696e6720706861736520616c726561647920656e64656460448201526064016105d0565b6011805460ff191690556040517f9301d805eb0ea45199f9a0527be1708a5bd8cb9746cc1bf03ad58027e71127bd905f90a1565b6007546001600160a01b0316336001600160a01b031614610817575f80fd5b305f90815260016020526040902054801561083557610835816119e3565b4780156108455761084581611b53565b5050565b5f546001600160a01b031633146108725760405162461bcd60e51b81526004016105d090611f44565b5f5b815181101561084557600160045f84848151811061089457610894612100565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610874565b5f546001600160a01b031633146108f65760405162461bcd60e51b81526004016105d090611f44565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109675760405162461bcd60e51b81526004016105d090611f44565b6109736009600a61206d565b61098190633b9aca0061207b565b6012556109906009600a61206d565b61099e90633b9aca0061207b565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6109ce6009600a61206d565b6109dc90633b9aca0061207b565b604051908152602001610649565b5f546001600160a01b03163314610a135760405162461bcd60e51b81526004016105d090611f44565b601754600160a01b900460ff1615610a6d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d0565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610ab6903090610aa86009600a61206d565b61073a90633b9aca0061207b565b60165f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2a9190612114565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bad9190612114565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1b9190612114565b601780546001600160a01b039283166001600160a01b03199091161790556016541663f305d7194730610c62816001600160a01b03165f9081526001602052604090205490565b5f80610c755f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cdb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d00919061212f565b505060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610d55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d79919061215a565b506017805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610dbc5760405162461bcd60e51b81526004016105d090611f44565b601754600160a01b900460ff1615610e2f5760405162461bcd60e51b815260206004820152603060248201527f43616e6e6f7420616464206561726c792062757965727320616674657220747260448201526f18591a5b99c81a5cc8195b98589b195960821b60648201526084016105d0565b5f5b8151811015610845575f6001600160a01b0316828281518110610e5657610e56612100565b60200260200101516001600160a01b031603610ead5760405162461bcd60e51b8152602060048201526016602482015275496e76616c69642077616c6c6574206164647265737360501b60448201526064016105d0565b600160065f848481518110610ec457610ec4612100565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff021916908315150217905550818181518110610f1357610f13612100565b60200260200101516001600160a01b03167fa4d858c941b40b3b35e06f007c32b16a2b9e03e32319c913b86243cc396cb90d60405160405180910390a2600101610e31565b335f9081526005602052604081205460ff1615610f875760405162461bcd60e51b81526004016105d090612092565b6001600160a01b0383165f9081526005602052604090205460ff1615610fbf5760405162461bcd60e51b81526004016105d0906120c9565b6105e4338484611264565b5f546001600160a01b03163314610ff35760405162461bcd60e51b81526004016105d090611f44565b5f5b8151811015610845575f60065f84848151811061101457611014612100565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ff5565b5f546001600160a01b031633146110765760405162461bcd60e51b81526004016105d090611f44565b5f5b8151811015610845575f60045f84848151811061109757611097612100565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101611078565b6007546001600160a01b0316336001600160a01b0316146110ef575f80fd5b600a5481111580156111035750600b548111155b61110b575f80fd5b600a819055600b55565b6007546001600160a01b0316336001600160a01b031614611134575f80fd5b4761113e81611b53565b50565b6001600160a01b0383166111a35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d0565b6001600160a01b0382166112045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d0565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d0565b6001600160a01b03821661132a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d0565b5f811161138b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d0565b6001600160a01b0383165f9081526005602052604090205460ff16156113c35760405162461bcd60e51b81526004016105d090612092565b6001600160a01b0382165f9081526005602052604090205460ff16156113fb5760405162461bcd60e51b81526004016105d0906120c9565b5f80546001600160a01b0385811691161480159061142657505f546001600160a01b03848116911614155b1561186e576001600160a01b0384165f9081526004602052604090205460ff1615801561146b57506001600160a01b0383165f9081526004602052604090205460ff16155b611473575f80fd5b60115460ff16801561149257506017546001600160a01b038581169116145b80156114ac57506016546001600160a01b03848116911614155b80156114d057506001600160a01b0383165f9081526003602052604090205460ff16155b15611556576001600160a01b0383165f9081526006602052604090205460ff166115565760405162461bcd60e51b815260206004820152603160248201527f4f6e6c79206561726c79206275796572732063616e20707572636861736520646044820152707572696e67206561726c7920706861736560781b60648201526084016105d0565b6010545f0361158e5761158b6064611585600c546010541161157a5760085461157e565b600a545b8590611b8a565b90611c0f565b90505b601054156115b3576115b06064611585600f5485611b8a90919063ffffffff16565b90505b6017546001600160a01b0385811691161480156115de57506016546001600160a01b03848116911614155b801561160257506001600160a01b0383165f9081526003602052604090205460ff16155b15611705576012548211156116595760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105d0565b6013548261167b856001600160a01b03165f9081526001602052604090205490565b6116859190612179565b11156116d35760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105d0565b6116ee6064611585600c546010541161157a5760085461157e565b601080549192505f6116ff8361218c565b91905055505b6017546001600160a01b03848116911614801561172b57506001600160a01b0384163014155b15611758576117556064611585600d546010541161174b5760095461157e565b600b548590611b8a565b90505b305f90815260016020526040902054601754600160a81b900460ff1615801561178e57506017546001600160a01b038581169116145b80156117a35750601754600160b01b900460ff165b80156117b0575060145481115b80156117bf5750600e54601054115b1561186c576019544311156117d3575f6018555b6003601854106118255760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016105d0565b61184261183d8461183884601554611c50565b611c50565b6119e3565b4780156118525761185247611b53565b60188054905f6118618361218c565b909155505043601955505b505b80156118e657305f9081526001602052604090205461188d9082611c64565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118dd9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546119089083611cc2565b6001600160a01b0385165f9081526001602052604090205561194b61192d8383611cc2565b6001600160a01b0385165f9081526001602052604090205490611c64565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119948585611cc2565b60405190815260200160405180910390a350505050565b5f81848411156119ce5760405162461bcd60e51b81526004016105d09190611d2f565b505f6119da84866121a4565b95945050505050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a2957611a29612100565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa49190612114565b81600181518110611ab757611ab7612100565b6001600160a01b039283166020918202929092010152601654611add9130911684611141565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b159085905f908690309042906004016121b7565b5f604051808303815f87803b158015611b2c575f80fd5b505af1158015611b3e573d5f803e3d5ffd5b50506017805460ff60a81b1916905550505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610845573d5f803e3d5ffd5b5f825f03611b9957505f6105e8565b5f611ba4838561207b565b905082611bb18583612228565b14611c085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d0565b9392505050565b5f611c0883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d03565b5f818311611c5e5782611c08565b50919050565b5f80611c708385612179565b905083811015611c085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d0565b5f611c0883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119ab565b5f8183611d235760405162461bcd60e51b81526004016105d09190611d2f565b505f6119da8486612228565b5f602080835283518060208501525f5b81811015611d5b57858101830151858201604001528201611d3f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113e575f80fd5b8035611d9a81611d7b565b919050565b5f8060408385031215611db0575f80fd5b8235611dbb81611d7b565b946020939093013593505050565b5f805f60608486031215611ddb575f80fd5b8335611de681611d7b565b92506020840135611df681611d7b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611e2c575f80fd5b823567ffffffffffffffff80821115611e43575f80fd5b818501915085601f830112611e56575f80fd5b813581811115611e6857611e68611e07565b8060051b604051601f19603f83011681018181108582111715611e8d57611e8d611e07565b604052918252848201925083810185019188831115611eaa575f80fd5b938501935b82851015611ecf57611ec085611d8f565b84529385019392850192611eaf565b98975050505050505050565b5f60208284031215611eeb575f80fd5b8135611c0881611d7b565b5f8060408385031215611f07575f80fd5b8235611f1281611d7b565b91506020830135611f2281611d7b565b809150509250929050565b5f60208284031215611f3d575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611fc757815f1904821115611fad57611fad611f79565b80851615611fba57918102915b93841c9390800290611f92565b509250929050565b5f82611fdd575060016105e8565b81611fe957505f6105e8565b8160018114611fff576002811461200957612025565b60019150506105e8565b60ff84111561201a5761201a611f79565b50506001821b6105e8565b5060208310610133831016604e8410600b8410161715612048575081810a6105e8565b6120528383611f8d565b805f190482111561206557612065611f79565b029392505050565b5f611c0860ff841683611fcf565b80820281158282048414176105e8576105e8611f79565b60208082526019908201527f53656e646572206164647265737320697320626c6f636b656400000000000000604082015260600190565b6020808252601c908201527f526563697069656e74206164647265737320697320626c6f636b656400000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612124575f80fd5b8151611c0881611d7b565b5f805f60608486031215612141575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561216a575f80fd5b81518015158114611c08575f80fd5b808201808211156105e8576105e8611f79565b5f6001820161219d5761219d611f79565b5060010190565b818103818111156105e8576105e8611f79565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156122075784516001600160a01b0316835293830193918301916001016121e2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261224257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122098ee36e9bf82d6fa7361ac9ed1cbfd6ffe80ab66f2c0296c0155ac76f934131b64736f6c63430008170033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x6080604052600436106101b2575f3560e01c80637d1db4a5116100e7578063b481ff9511610087578063d771f48311610062578063d771f483146104df578063dd62ed3e146104fe578063ec1f3f6314610542578063f429389014610561575f80fd5b8063b481ff9514610474578063bf474bed146104ab578063d618964c146104c0575f80fd5b80638f9a55c0116100c25780638f9a55c0146103f357806391e03a1b1461040857806395d89b4114610427578063a9059cbb14610455575f80fd5b80637d1db4a5146103a45780638a8c523c146103b95780638da5cb5b146103cd575f80fd5b80634e1901101161015257806370a082311161012d57806370a0823114610311578063715018a614610345578063751039fc146103595780637bd53dbf1461036d575f80fd5b80634e190110146102ca57806351bc3c85146102de57806360a010f4146102f2575f80fd5b8063109daa991161018d578063109daa991461026657806318160ddd1461027c57806323b872dd14610290578063313ce567146102af575f80fd5b806306fdde03146101bd578063095ea7b3146102145780630faee56f14610243575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b5060408051808201909152601e81527f626577617265206f66206765656b732062656172696e6720677269667473000060208201525b60405161020b9190611d2f565b60405180910390f35b34801561021f575f80fd5b5061023361022e366004611d9f565b610575565b604051901515815260200161020b565b34801561024e575f80fd5b5061025860155481565b60405190815260200161020b565b348015610271575f80fd5b5061027a6105ee565b005b348015610287575f80fd5b50610258610653565b34801561029b575f80fd5b506102336102aa366004611dc9565b610673565b3480156102ba575f80fd5b506040516009815260200161020b565b3480156102d5575f80fd5b5061027a610749565b3480156102e9575f80fd5b5061027a6107f8565b3480156102fd575f80fd5b5061027a61030c366004611e1b565b610849565b34801561031c575f80fd5b5061025861032b366004611edb565b6001600160a01b03165f9081526001602052604090205490565b348015610350575f80fd5b5061027a6108cd565b348015610364575f80fd5b5061027a61093e565b348015610378575f80fd5b50610233610387366004611edb565b6001600160a01b03165f9081526006602052604090205460ff1690565b3480156103af575f80fd5b5061025860125481565b3480156103c4575f80fd5b5061027a6109ea565b3480156103d8575f80fd5b505f546040516001600160a01b03909116815260200161020b565b3480156103fe575f80fd5b5061025860135481565b348015610413575f80fd5b5061027a610422366004611e1b565b610d93565b348015610432575f80fd5b5060408051808201909152600681526547524946545360d01b60208201526101fe565b348015610460575f80fd5b5061023361046f366004611d9f565b610f58565b34801561047f575f80fd5b5061023361048e366004611edb565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156104b6575f80fd5b5061025860145481565b3480156104cb575f80fd5b5061027a6104da366004611e1b565b610fca565b3480156104ea575f80fd5b5061027a6104f9366004611e1b565b61104d565b348015610509575f80fd5b50610258610518366004611ef6565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561054d575f80fd5b5061027a61055c366004611f2d565b6110d0565b34801561056c575f80fd5b5061027a611115565b335f9081526005602052604081205460ff16156105d95760405162461bcd60e51b815260206004820152601b60248201527f417070726f766572206164647265737320697320626c6f636b6564000000000060448201526064015b60405180910390fd5b6105e4338484611141565b5060015b92915050565b5f546001600160a01b031633146106175760405162461bcd60e51b81526004016105d090611f44565b5f600f8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6106606009600a61206d565b61066e90633b9aca0061207b565b905090565b6001600160a01b0383165f9081526005602052604081205460ff16156106ab5760405162461bcd60e51b81526004016105d090612092565b6001600160a01b0383165f9081526005602052604090205460ff16156106e35760405162461bcd60e51b81526004016105d0906120c9565b6106ee848484611264565b61073f843361073a85604051806060016040528060288152602001612248602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906119ab565b611141565b5060019392505050565b5f546001600160a01b031633146107725760405162461bcd60e51b81526004016105d090611f44565b60115460ff166107c45760405162461bcd60e51b815260206004820181905260248201527f4561726c7920627579696e6720706861736520616c726561647920656e64656460448201526064016105d0565b6011805460ff191690556040517f9301d805eb0ea45199f9a0527be1708a5bd8cb9746cc1bf03ad58027e71127bd905f90a1565b6007546001600160a01b0316336001600160a01b031614610817575f80fd5b305f90815260016020526040902054801561083557610835816119e3565b4780156108455761084581611b53565b5050565b5f546001600160a01b031633146108725760405162461bcd60e51b81526004016105d090611f44565b5f5b815181101561084557600160045f84848151811061089457610894612100565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610874565b5f546001600160a01b031633146108f65760405162461bcd60e51b81526004016105d090611f44565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109675760405162461bcd60e51b81526004016105d090611f44565b6109736009600a61206d565b61098190633b9aca0061207b565b6012556109906009600a61206d565b61099e90633b9aca0061207b565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6109ce6009600a61206d565b6109dc90633b9aca0061207b565b604051908152602001610649565b5f546001600160a01b03163314610a135760405162461bcd60e51b81526004016105d090611f44565b601754600160a01b900460ff1615610a6d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d0565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610ab6903090610aa86009600a61206d565b61073a90633b9aca0061207b565b60165f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2a9190612114565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bad9190612114565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1b9190612114565b601780546001600160a01b039283166001600160a01b03199091161790556016541663f305d7194730610c62816001600160a01b03165f9081526001602052604090205490565b5f80610c755f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cdb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d00919061212f565b505060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610d55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d79919061215a565b506017805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610dbc5760405162461bcd60e51b81526004016105d090611f44565b601754600160a01b900460ff1615610e2f5760405162461bcd60e51b815260206004820152603060248201527f43616e6e6f7420616464206561726c792062757965727320616674657220747260448201526f18591a5b99c81a5cc8195b98589b195960821b60648201526084016105d0565b5f5b8151811015610845575f6001600160a01b0316828281518110610e5657610e56612100565b60200260200101516001600160a01b031603610ead5760405162461bcd60e51b8152602060048201526016602482015275496e76616c69642077616c6c6574206164647265737360501b60448201526064016105d0565b600160065f848481518110610ec457610ec4612100565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff021916908315150217905550818181518110610f1357610f13612100565b60200260200101516001600160a01b03167fa4d858c941b40b3b35e06f007c32b16a2b9e03e32319c913b86243cc396cb90d60405160405180910390a2600101610e31565b335f9081526005602052604081205460ff1615610f875760405162461bcd60e51b81526004016105d090612092565b6001600160a01b0383165f9081526005602052604090205460ff1615610fbf5760405162461bcd60e51b81526004016105d0906120c9565b6105e4338484611264565b5f546001600160a01b03163314610ff35760405162461bcd60e51b81526004016105d090611f44565b5f5b8151811015610845575f60065f84848151811061101457611014612100565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ff5565b5f546001600160a01b031633146110765760405162461bcd60e51b81526004016105d090611f44565b5f5b8151811015610845575f60045f84848151811061109757611097612100565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101611078565b6007546001600160a01b0316336001600160a01b0316146110ef575f80fd5b600a5481111580156111035750600b548111155b61110b575f80fd5b600a819055600b55565b6007546001600160a01b0316336001600160a01b031614611134575f80fd5b4761113e81611b53565b50565b6001600160a01b0383166111a35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d0565b6001600160a01b0382166112045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d0565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d0565b6001600160a01b03821661132a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d0565b5f811161138b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d0565b6001600160a01b0383165f9081526005602052604090205460ff16156113c35760405162461bcd60e51b81526004016105d090612092565b6001600160a01b0382165f9081526005602052604090205460ff16156113fb5760405162461bcd60e51b81526004016105d0906120c9565b5f80546001600160a01b0385811691161480159061142657505f546001600160a01b03848116911614155b1561186e576001600160a01b0384165f9081526004602052604090205460ff1615801561146b57506001600160a01b0383165f9081526004602052604090205460ff16155b611473575f80fd5b60115460ff16801561149257506017546001600160a01b038581169116145b80156114ac57506016546001600160a01b03848116911614155b80156114d057506001600160a01b0383165f9081526003602052604090205460ff16155b15611556576001600160a01b0383165f9081526006602052604090205460ff166115565760405162461bcd60e51b815260206004820152603160248201527f4f6e6c79206561726c79206275796572732063616e20707572636861736520646044820152707572696e67206561726c7920706861736560781b60648201526084016105d0565b6010545f0361158e5761158b6064611585600c546010541161157a5760085461157e565b600a545b8590611b8a565b90611c0f565b90505b601054156115b3576115b06064611585600f5485611b8a90919063ffffffff16565b90505b6017546001600160a01b0385811691161480156115de57506016546001600160a01b03848116911614155b801561160257506001600160a01b0383165f9081526003602052604090205460ff16155b15611705576012548211156116595760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105d0565b6013548261167b856001600160a01b03165f9081526001602052604090205490565b6116859190612179565b11156116d35760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105d0565b6116ee6064611585600c546010541161157a5760085461157e565b601080549192505f6116ff8361218c565b91905055505b6017546001600160a01b03848116911614801561172b57506001600160a01b0384163014155b15611758576117556064611585600d546010541161174b5760095461157e565b600b548590611b8a565b90505b305f90815260016020526040902054601754600160a81b900460ff1615801561178e57506017546001600160a01b038581169116145b80156117a35750601754600160b01b900460ff165b80156117b0575060145481115b80156117bf5750600e54601054115b1561186c576019544311156117d3575f6018555b6003601854106118255760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016105d0565b61184261183d8461183884601554611c50565b611c50565b6119e3565b4780156118525761185247611b53565b60188054905f6118618361218c565b909155505043601955505b505b80156118e657305f9081526001602052604090205461188d9082611c64565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118dd9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546119089083611cc2565b6001600160a01b0385165f9081526001602052604090205561194b61192d8383611cc2565b6001600160a01b0385165f9081526001602052604090205490611c64565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119948585611cc2565b60405190815260200160405180910390a350505050565b5f81848411156119ce5760405162461bcd60e51b81526004016105d09190611d2f565b505f6119da84866121a4565b95945050505050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a2957611a29612100565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa49190612114565b81600181518110611ab757611ab7612100565b6001600160a01b039283166020918202929092010152601654611add9130911684611141565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b159085905f908690309042906004016121b7565b5f604051808303815f87803b158015611b2c575f80fd5b505af1158015611b3e573d5f803e3d5ffd5b50506017805460ff60a81b1916905550505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610845573d5f803e3d5ffd5b5f825f03611b9957505f6105e8565b5f611ba4838561207b565b905082611bb18583612228565b14611c085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d0565b9392505050565b5f611c0883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d03565b5f818311611c5e5782611c08565b50919050565b5f80611c708385612179565b905083811015611c085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d0565b5f611c0883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119ab565b5f8183611d235760405162461bcd60e51b81526004016105d09190611d2f565b505f6119da8486612228565b5f602080835283518060208501525f5b81811015611d5b57858101830151858201604001528201611d3f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113e575f80fd5b8035611d9a81611d7b565b919050565b5f8060408385031215611db0575f80fd5b8235611dbb81611d7b565b946020939093013593505050565b5f805f60608486031215611ddb575f80fd5b8335611de681611d7b565b92506020840135611df681611d7b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611e2c575f80fd5b823567ffffffffffffffff80821115611e43575f80fd5b818501915085601f830112611e56575f80fd5b813581811115611e6857611e68611e07565b8060051b604051601f19603f83011681018181108582111715611e8d57611e8d611e07565b604052918252848201925083810185019188831115611eaa575f80fd5b938501935b82851015611ecf57611ec085611d8f565b84529385019392850192611eaf565b98975050505050505050565b5f60208284031215611eeb575f80fd5b8135611c0881611d7b565b5f8060408385031215611f07575f80fd5b8235611f1281611d7b565b91506020830135611f2281611d7b565b809150509250929050565b5f60208284031215611f3d575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611fc757815f1904821115611fad57611fad611f79565b80851615611fba57918102915b93841c9390800290611f92565b509250929050565b5f82611fdd575060016105e8565b81611fe957505f6105e8565b8160018114611fff576002811461200957612025565b60019150506105e8565b60ff84111561201a5761201a611f79565b50506001821b6105e8565b5060208310610133831016604e8410600b8410161715612048575081810a6105e8565b6120528383611f8d565b805f190482111561206557612065611f79565b029392505050565b5f611c0860ff841683611fcf565b80820281158282048414176105e8576105e8611f79565b60208082526019908201527f53656e646572206164647265737320697320626c6f636b656400000000000000604082015260600190565b6020808252601c908201527f526563697069656e74206164647265737320697320626c6f636b656400000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612124575f80fd5b8151611c0881611d7b565b5f805f60608486031215612141575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561216a575f80fd5b81518015158114611c08575f80fd5b808201808211156105e8576105e8611f79565b5f6001820161219d5761219d611f79565b5060010190565b818103818111156105e8576105e8611f79565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156122075784516001600160a01b0316835293830193918301916001016121e2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261224257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122098ee36e9bf82d6fa7361ac9ed1cbfd6ffe80ab66f2c0296c0155ac76f934131b64736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
-----Decoded View---------------
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode Sourcemap
3630:11485:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6316:83;;;;;;;;;;-1:-1:-1;6386:5:0;;;;;;;;;;;;;;;;;6316:83;;;;;;;:::i;:::-;;;;;;;;7311:244;;;;;;;;;;-1:-1:-1;7311:244:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7311:244:0;1162:187:1;4996:52:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4996:52:0;1354:177:1;12060:119:0;;;;;;;;;;;;;:::i;:::-;;6593:95;;;;;;;;;;;;;:::i;7563:469::-;;;;;;;;;;-1:-1:-1;7563:469:0;;;;;:::i;:::-;;:::i;6502:83::-;;;;;;;;;;-1:-1:-1;6502:83:0;;4597:1;2139:36:1;;2127:2;2112:18;6502:83:0;1997:184:1;13423:194:0;;;;;;;;;;;;;:::i;14569:348::-;;;;;;;;;;;;;:::i;12287:167::-;;;;;;;;;;-1:-1:-1;12287:167:0;;;;;:::i;:::-;;:::i;6696:119::-;;;;;;;;;;-1:-1:-1;6696:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6789:18:0;6762:7;6789:18;;;:9;:18;;;;;;;6696:119;2713:148;;;;;;;;;;;;;:::i;11893:159::-;;;;;;;;;;;;;:::i;13312:103::-;;;;;;;;;;-1:-1:-1;13312:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;13387:20:0;13363:4;13387:20;;;:12;:20;;;;;;;;;13312:103;4807:54;;;;;;;;;;;;;;;;13625:673;;;;;;;;;;;;;:::i;2499:79::-;;;;;;;;;;-1:-1:-1;2537:7:0;2564:6;2499:79;;-1:-1:-1;;;;;2564:6:0;;;3842:51:1;;3830:2;3815:18;2499:79:0;3696:203:1;4868:56:0;;;;;;;;;;;;;;;;12729:384;;;;;;;;;;-1:-1:-1;12729:384:0;;;;;:::i;:::-;;:::i;6407:87::-;;;;;;;;;;-1:-1:-1;6479:7:0;;;;;;;;;;;;-1:-1:-1;;;6479:7:0;;;;6407:87;;6823:329;;;;;;;;;;-1:-1:-1;6823:329:0;;;;;:::i;:::-;;:::i;12638:83::-;;;;;;;;;;-1:-1:-1;12638:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;12706:7:0;12685:4;12706:7;;;:4;:7;;;;;;;;;12638:83;4931:58;;;;;;;;;;;;;;;;13121:183;;;;;;;;;;-1:-1:-1;13121:183:0;;;;;:::i;:::-;;:::i;12462:168::-;;;;;;;;;;-1:-1:-1;12462:168:0;;;;;:::i;:::-;;:::i;7160:143::-;;;;;;;;;;-1:-1:-1;7160:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7268:18:0;;;7241:7;7268:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7160:143;14306:218;;;;;;;;;;-1:-1:-1;14306:218:0;;;;;:::i;:::-;;:::i;14925:187::-;;;;;;;;;;;;;:::i;7311:244::-;336:10;7386:4;7412:31;;;:17;:31;;;;;;;;7411:32;7403:72;;;;-1:-1:-1;;;7403:72:0;;4684:2:1;7403:72:0;;;4666:21:1;4723:2;4703:18;;;4696:30;4762:29;4742:18;;;4735:57;4809:18;;7403:72:0;;;;;;;;;7486:39;336:10;7509:7;7518:6;7486:8;:39::i;:::-;-1:-1:-1;7543:4:0;7311:244;;;;;:::o;12060:119::-;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;12133:1:::1;12118:12;:16:::0;;;12150:21:::1;::::0;1500:25:1;;;12150:21:0::1;::::0;1488:2:1;1473:18;12150:21:0::1;;;;;;;;12060:119::o:0;6593:95::-;6646:7;4653:13;4597:1;4653:2;:13;:::i;:::-;4640:26;;:10;:26;:::i;:::-;6666:14;;6593:95;:::o;7563:469::-;-1:-1:-1;;;;;7687:25:0;;7661:4;7687:25;;;:17;:25;;;;;;;;7686:26;7678:64;;;;-1:-1:-1;;;7678:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7762:28:0;;;;;;:17;:28;;;;;;;;7761:29;7753:70;;;;-1:-1:-1;;;7753:70:0;;;;;;;:::i;:::-;7834:36;7844:6;7852:9;7863:6;7834:9;:36::i;:::-;7881:121;7890:6;336:10;7912:89;7950:6;7912:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7912:19:0;;;;;;:11;:19;;;;;;;;336:10;7912:33;;;;;;;;;;:37;:89::i;:::-;7881:8;:121::i;:::-;-1:-1:-1;8020:4:0;7563:469;;;;;:::o;13423:194::-;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;13480:17:::1;::::0;::::1;;13472:62;;;::::0;-1:-1:-1;;;13472:62:0;;7984:2:1;13472:62:0::1;::::0;::::1;7966:21:1::0;;;8003:18;;;7996:30;8062:34;8042:18;;;8035:62;8114:18;;13472:62:0::1;7782:356:1::0;13472:62:0::1;13545:17;:25:::0;;-1:-1:-1;;13545:25:0::1;::::0;;13586:23:::1;::::0;::::1;::::0;13565:5:::1;::::0;13586:23:::1;13423:194::o:0;14569:348::-;14633:10;;-1:-1:-1;;;;;14633:10:0;336;-1:-1:-1;;;;;14619:24:0;;14611:33;;;;;;14694:4;14655:20;6789:18;;;:9;:18;;;;;;14714:14;;14711:73;;14742:30;14759:12;14742:16;:30::i;:::-;14813:21;14848:12;;14845:65;;14874:24;14887:10;14874:12;:24::i;:::-;14600:317;;14569:348::o;12287:167::-;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;12364:6:::1;12359:88;12380:5;:12;12376:1;:16;12359:88;;;12431:4;12414;:14;12419:5;12425:1;12419:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12414:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12414:14:0;:21;;-1:-1:-1;;12414:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12394:3:0::1;12359:88;;2713:148:::0;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;2820:1:::1;2804:6:::0;;2783:40:::1;::::0;-1:-1:-1;;;;;2804:6:0;;::::1;::::0;2783:40:::1;::::0;2820:1;;2783:40:::1;2851:1;2834:19:::0;;-1:-1:-1;;;;;;2834:19:0::1;::::0;;2713:148::o;11893:159::-;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;4653:13:::1;4597:1;4653:2;:13;:::i;:::-;4640:26;::::0;:10:::1;:26;:::i;:::-;11946:12;:22:::0;4653:13:::1;4597:1;4653:2;:13;:::i;:::-;4640:26;::::0;:10:::1;:26;:::i;:::-;11979:14;:22:::0;12017:27:::1;4653:13;4597:1;4653:2;:13;:::i;:::-;4640:26;::::0;:10:::1;:26;:::i;:::-;12017:27;::::0;1500:25:1;;;1488:2;1473:18;12017:27:0::1;1354:177:1::0;13625:673:0;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;13691:11:::1;::::0;-1:-1:-1;;;13691:11:0;::::1;;;13690:12;13682:47;;;::::0;-1:-1:-1;;;13682:47:0;;8477:2:1;13682:47:0::1;::::0;::::1;8459:21:1::0;8516:2;8496:18;;;8489:30;8555:25;8535:18;;;8528:53;8598:18;;13682:47:0::1;8275:347:1::0;13682:47:0::1;13740:15;:80:::0;;-1:-1:-1;;;;;;13740:80:0::1;13777:42;13740:80:::0;;::::1;::::0;;;13831:58:::1;::::0;13848:4:::1;::::0;4653:13:::1;4597:1;4653:2;:13;:::i;:::-;4640:26;::::0;:10:::1;:26;:::i;13831:58::-;13934:15;;;;;;;;;-1:-1:-1::0;;;;;13934:15:0::1;-1:-1:-1::0;;;;;13934:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13916:55:0::1;;13980:4;13987:15;;;;;;;;;-1:-1:-1::0;;;;;13987:15:0::1;-1:-1:-1::0;;;;;13987:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13916:94;::::0;-1:-1:-1;;;;;;13916:94:0::1;::::0;;;;;;-1:-1:-1;;;;;9113:15:1;;;13916:94:0::1;::::0;::::1;9095:34:1::0;9165:15;;9145:18;;;9138:43;9030:18;;13916:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13900:13;:110:::0;;-1:-1:-1;;;;;13900:110:0;;::::1;-1:-1:-1::0;;;;;;13900:110:0;;::::1;;::::0;;14021:15:::1;::::0;::::1;:31;14060:21;14091:4;14097:24;14091:4:::0;-1:-1:-1;;;;;6789:18:0;6762:7;6789:18;;;:9;:18;;;;;;;6696:119;14097:24:::1;14122:1;14124::::0;14126:7:::1;2537::::0;2564:6;-1:-1:-1;;;;;2564:6:0;;2499:79;14126:7:::1;14021:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14021:129:0;;;-1:-1:-1;;;;;9551:15:1;;;14021:129:0::1;::::0;::::1;9533:34:1::0;9583:18;;;9576:34;;;;9626:18;;;9619:34;;;;9669:18;;;9662:34;9733:15;;;9712:19;;;9705:44;14134:15:0::1;9765:19:1::0;;;9758:35;9467:19;;14021:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14168:13:0::1;::::0;14199:15:::1;::::0;14161:71:::1;::::0;-1:-1:-1;;;14161:71:0;;-1:-1:-1;;;;;14199:15:0;;::::1;14161:71;::::0;::::1;10289:51:1::0;-1:-1:-1;;10356:18:1;;;10349:34;14168:13:0;::::1;::::0;-1:-1:-1;14161:29:0::1;::::0;10262:18:1;;14161:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14243:11:0::1;:18:::0;;-1:-1:-1;;;;14272:18:0;-1:-1:-1;;;14272:18:0;;;13625:673::o;12729:384::-;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;12810:11:::1;::::0;-1:-1:-1;;;12810:11:0;::::1;;;12809:12;12801:73;;;::::0;-1:-1:-1;;;12801:73:0;;10878:2:1;12801:73:0::1;::::0;::::1;10860:21:1::0;10917:2;10897:18;;;10890:30;10956:34;10936:18;;;10929:62;-1:-1:-1;;;11007:18:1;;;11000:46;11063:19;;12801:73:0::1;10676:412:1::0;12801:73:0::1;12890:6;12885:221;12906:7;:14;12902:1;:18;12885:221;;;12972:1;-1:-1:-1::0;;;;;12950:24:0::1;:7;12958:1;12950:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;12950:24:0::1;::::0;12942:59:::1;;;::::0;-1:-1:-1;;;12942:59:0;;11295:2:1;12942:59:0::1;::::0;::::1;11277:21:1::0;11334:2;11314:18;;;11307:30;-1:-1:-1;;;11353:18:1;;;11346:52;11415:18;;12942:59:0::1;11093:346:1::0;12942:59:0::1;13043:4;13016:12;:24;13029:7;13037:1;13029:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13016:24:0::1;-1:-1:-1::0;;;;;13016:24:0::1;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13083:7;13091:1;13083:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13067:27:0::1;;;;;;;;;;;12922:3;;12885:221;;6823:329:::0;336:10;6901:4;6927:31;;;:17;:31;;;;;;;;6926:32;6918:70;;;;-1:-1:-1;;;6918:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7008:28:0;;;;;;:17;:28;;;;;;;;7007:29;6999:70;;;;-1:-1:-1;;;6999:70:0;;;;;;;:::i;:::-;7080:42;336:10;7104:9;7115:6;7080:9;:42::i;13121:183::-;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;13201:6:::1;13196:101;13217:7;:14;13213:1;:18;13196:101;;;13280:5;13253:12;:24;13266:7;13274:1;13266:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13253:24:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13253:24:0;:32;;-1:-1:-1;;13253:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13233:3:0::1;13196:101;;12462:168:::0;2626:6;;-1:-1:-1;;;;;2626:6:0;336:10;2626:22;2618:67;;;;-1:-1:-1;;;2618:67:0;;;;;;;:::i;:::-;12541:6:::1;12536:87;12557:6;:13;12553:1;:17;12536:87;;;12608:5;12590:4;:15;12595:6;12602:1;12595:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12590:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12590:15:0;:23;;-1:-1:-1;;12590:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12572:3:0::1;12536:87;;14306:218:::0;14381:10;;-1:-1:-1;;;;;14381:10:0;336;-1:-1:-1;;;;;14367:24:0;;14359:33;;;;;;14418:12;;14409:7;:21;;:47;;;;;14443:13;;14434:7;:22;;14409:47;14401:56;;;;;;14466:12;:20;;;14495:13;:21;14306:218::o;14925:187::-;14989:10;;-1:-1:-1;;;;;14989:10:0;336;-1:-1:-1;;;;;14975:24:0;;14967:33;;;;;;15040:21;15072:32;15040:21;15072:12;:32::i;:::-;14956:156;14925:187::o;8040:335::-;-1:-1:-1;;;;;8133:19:0;;8125:68;;;;-1:-1:-1;;;8125:68:0;;11646:2:1;8125:68:0;;;11628:21:1;11685:2;11665:18;;;11658:30;11724:34;11704:18;;;11697:62;-1:-1:-1;;;11775:18:1;;;11768:34;11819:19;;8125:68:0;11444:400:1;8125:68:0;-1:-1:-1;;;;;8212:21:0;;8204:68;;;;-1:-1:-1;;;8204:68:0;;12051:2:1;8204:68:0;;;12033:21:1;12090:2;12070:18;;;12063:30;12129:34;12109:18;;;12102:62;-1:-1:-1;;;12180:18:1;;;12173:32;12222:19;;8204:68:0;11849:398:1;8204:68:0;-1:-1:-1;;;;;8283:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8335:32;;1500:25:1;;;8335:32:0;;1473:18:1;8335:32:0;;;;;;;8040:335;;;:::o;8383:2905::-;-1:-1:-1;;;;;8471:18:0;;8463:68;;;;-1:-1:-1;;;8463:68:0;;12454:2:1;8463:68:0;;;12436:21:1;12493:2;12473:18;;;12466:30;12532:34;12512:18;;;12505:62;-1:-1:-1;;;12583:18:1;;;12576:35;12628:19;;8463:68:0;12252:401:1;8463:68:0;-1:-1:-1;;;;;8550:16:0;;8542:64;;;;-1:-1:-1;;;8542:64:0;;12860:2:1;8542:64:0;;;12842:21:1;12899:2;12879:18;;;12872:30;12938:34;12918:18;;;12911:62;-1:-1:-1;;;12989:18:1;;;12982:33;13032:19;;8542:64:0;12658:399:1;8542:64:0;8634:1;8625:6;:10;8617:64;;;;-1:-1:-1;;;8617:64:0;;13264:2:1;8617:64:0;;;13246:21:1;13303:2;13283:18;;;13276:30;13342:34;13322:18;;;13315:62;-1:-1:-1;;;13393:18:1;;;13386:39;13442:19;;8617:64:0;13062:405:1;8617:64:0;-1:-1:-1;;;;;8701:23:0;;;;;;:17;:23;;;;;;;;8700:24;8692:62;;;;-1:-1:-1;;;8692:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8774:21:0;;;;;;:17;:21;;;;;;;;8773:22;8765:63;;;;-1:-1:-1;;;8765:63:0;;;;;;;:::i;:::-;8839:17;2564:6;;-1:-1:-1;;;;;8873:15:0;;;2564:6;;8873:15;;;;:32;;-1:-1:-1;2537:7:0;2564:6;-1:-1:-1;;;;;8892:13:0;;;2564:6;;8892:13;;8873:32;8869:2063;;;-1:-1:-1;;;;;8931:10:0;;;;;;:4;:10;;;;;;;;8930:11;:24;;;;-1:-1:-1;;;;;;8946:8:0;;;;;;:4;:8;;;;;;;;8945:9;8930:24;8922:33;;;;;;9048:17;;;;:42;;;;-1:-1:-1;9077:13:0;;-1:-1:-1;;;;;9069:21:0;;;9077:13;;9069:21;9048:42;:76;;;;-1:-1:-1;9108:15:0;;-1:-1:-1;;;;;9094:30:0;;;9108:15;;9094:30;;9048:76;:103;;;;-1:-1:-1;;;;;;9129:22:0;;;;;;:18;:22;;;;;;;;9128:23;9048:103;9044:222;;;-1:-1:-1;;;;;9180:16:0;;;;;;:12;:16;;;;;;;;9172:78;;;;-1:-1:-1;;;9172:78:0;;13674:2:1;9172:78:0;;;13656:21:1;13713:2;13693:18;;;13686:30;13752:34;13732:18;;;13725:62;-1:-1:-1;;;13803:18:1;;;13796:47;13860:19;;9172:78:0;13472:413:1;9172:78:0;9285:9;;9296:1;9285:12;9282:139;;9329:76;9401:3;9329:67;9351:15;;9341:9;;:25;9340:55;;9381:14;;9340:55;;;9368:12;;9340:55;9329:6;;:10;:67::i;:::-;:71;;:76::i;:::-;9317:88;;9282:139;9438:9;;:11;9435:95;;9481:33;9510:3;9481:24;9492:12;;9481:6;:10;;:24;;;;:::i;:33::-;9469:45;;9435:95;9558:13;;-1:-1:-1;;;;;9550:21:0;;;9558:13;;9550:21;:55;;;;-1:-1:-1;9589:15:0;;-1:-1:-1;;;;;9575:30:0;;;9589:15;;9575:30;;9550:55;:83;;;;-1:-1:-1;;;;;;9611:22:0;;;;;;:18;:22;;;;;;;;9609:24;9550:83;9546:420;;;9673:12;;9663:6;:22;;9655:60;;;;-1:-1:-1;;;9655:60:0;;14092:2:1;9655:60:0;;;14074:21:1;14131:2;14111:18;;;14104:30;14170:27;14150:18;;;14143:55;14215:18;;9655:60:0;13890:349:1;9655:60:0;9768:14;;9758:6;9742:13;9752:2;-1:-1:-1;;;;;6789:18:0;6762:7;6789:18;;;:9;:18;;;;;;;6696:119;9742:13;:22;;;;:::i;:::-;:40;;9734:79;;;;-1:-1:-1;;;9734:79:0;;14576:2:1;9734:79:0;;;14558:21:1;14615:2;14595:18;;;14588:30;14654:28;14634:18;;;14627:56;14700:18;;9734:79:0;14374:350:1;9734:79:0;9844:76;9916:3;9844:67;9866:15;;9856:9;;:25;9855:55;;9896:14;;9855:55;;9844:76;9939:9;:11;;9832:88;;-1:-1:-1;9939:9:0;:11;;;:::i;:::-;;;;;;9546:420;9991:13;;-1:-1:-1;;;;;9985:19:0;;;9991:13;;9985:19;:43;;;;-1:-1:-1;;;;;;10008:20:0;;10023:4;10008:20;;9985:43;9982:174;;;10061:79;10136:3;10061:70;10083:16;;10073:9;;:26;10072:58;;10115:15;;10072:58;;;10101:13;;10061:6;;:10;:70::i;:79::-;10049:91;;9982:174;10221:4;10172:28;6789:18;;;:9;:18;;;;;;10247:6;;-1:-1:-1;;;10247:6:0;;;;10246:7;:30;;;;-1:-1:-1;10263:13:0;;-1:-1:-1;;;;;10257:19:0;;;10263:13;;10257:19;10246:30;:45;;;;-1:-1:-1;10280:11:0;;-1:-1:-1;;;10280:11:0;;;;10246:45;:89;;;;;10318:17;;10295:20;:40;10246:89;:123;;;;;10351:18;;10339:9;;:30;10246:123;10242:679;;;10409:13;;10394:12;:28;10390:90;;;10459:1;10447:9;:13;10390:90;10518:1;10506:9;;:13;10498:49;;;;-1:-1:-1;;;10498:49:0;;15071:2:1;10498:49:0;;;15053:21:1;15110:2;15090:18;;;15083:30;15149:25;15129:18;;;15122:53;15192:18;;10498:49:0;14869:347:1;10498:49:0;10566:69;10583:51;10587:6;10595:38;10599:20;10621:11;;10595:3;:38::i;:::-;10583:3;:51::i;:::-;10566:16;:69::i;:::-;10683:21;10727:22;;10723:106;;10774:35;10787:21;10774:12;:35::i;:::-;10847:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10893:12:0;10877:13;:28;-1:-1:-1;10242:679:0;8907:2025;8869:2063;10947:11;;10944:161;;11015:4;10997:24;;;;:9;:24;;;;;;:39;;11026:9;10997:28;:39::i;:::-;10990:4;10972:24;;;;:9;:24;;;;;;;:64;;;;11054:39;;-1:-1:-1;;;;;11054:39:0;;;;;;;11083:9;1500:25:1;;1488:2;1473:18;;1354:177;11054:39:0;;;;;;;;10944:161;-1:-1:-1;;;;;11131:15:0;;;;;;:9;:15;;;;;;:27;;11151:6;11131:19;:27::i;:::-;-1:-1:-1;;;;;11115:15:0;;;;;;:9;:15;;;;;:43;11183:40;11201:21;:6;11212:9;11201:10;:21::i;:::-;-1:-1:-1;;;;;11183:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11169:13:0;;;;;;;:9;:13;;;;;:54;;;;11239:41;;;11258:21;:6;11269:9;11258:10;:21::i;:::-;11239:41;;1500:25:1;;;1488:2;1473:18;11239:41:0;;;;;;;8452:2836;8383:2905;;;:::o;1393:190::-;1479:7;1515:12;1507:6;;;;1499:29;;;;-1:-1:-1;;;1499:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1539:9:0;1551:5;1555:1;1551;:5;:::i;:::-;1539:17;1393:190;-1:-1:-1;;;;;1393:190:0:o;11402:483::-;5546:6;:13;;-1:-1:-1;;;;5546:13:0;-1:-1:-1;;;5546:13:0;;;11504:16:::1;::::0;;11518:1:::1;11504:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11504:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11504:16:0::1;11480:40;;11549:4;11531;11536:1;11531:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11531:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11575:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11575:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11531:7;;11575:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11565:4;11570:1;11565:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11565:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11640:15:::1;::::0;11608:62:::1;::::0;11625:4:::1;::::0;11640:15:::1;11658:11:::0;11608:8:::1;:62::i;:::-;11681:15;::::0;:196:::1;::::0;-1:-1:-1;;;11681:196:0;;-1:-1:-1;;;;;11681:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11762:11;;11681:15:::1;::::0;11804:4;;11831::::1;::::0;11851:15:::1;::::0;11681:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5582:6:0;:14;;-1:-1:-1;;;;5582:14:0;;;-1:-1:-1;;;;11402:483:0:o;12187:92::-;12244:10;;:27;;-1:-1:-1;;;;;12244:10:0;;;;:27;;;;;12264:6;;12244:10;:27;:10;:27;12264:6;12244:10;:27;;;;;;;;;;;;;;;;;;;1591:246;1649:7;1673:1;1678;1673:6;1669:47;;-1:-1:-1;1703:1:0;1696:8;;1669:47;1726:9;1738:5;1742:1;1738;:5;:::i;:::-;1726:17;-1:-1:-1;1771:1:0;1762:5;1766:1;1726:17;1762:5;:::i;:::-;:10;1754:56;;;;-1:-1:-1;;;1754:56:0;;16763:2:1;1754:56:0;;;16745:21:1;16802:2;16782:18;;;16775:30;16841:34;16821:18;;;16814:62;-1:-1:-1;;;16892:18:1;;;16885:31;16933:19;;1754:56:0;16561:397:1;1754:56:0;1828:1;1591:246;-1:-1:-1;;;1591:246:0:o;1845:132::-;1903:7;1930:39;1934:1;1937;1930:39;;;;;;;;;;;;;;;;;:3;:39::i;11296:98::-;11353:7;11380:1;11378;:3;11377:9;;11385:1;11377:9;;;-1:-1:-1;11383:1:0;11296:98;-1:-1:-1;11296:98:0:o;1062:179::-;1120:7;;1152:5;1156:1;1152;:5;:::i;:::-;1140:17;;1181:1;1176;:6;;1168:46;;;;-1:-1:-1;;;1168:46:0;;17165:2:1;1168:46:0;;;17147:21:1;17204:2;17184:18;;;17177:30;17243:29;17223:18;;;17216:57;17290:18;;1168:46:0;16963:351:1;1249:136:0;1307:7;1334:43;1338:1;1341;1334:43;;;;;;;;;;;;;;;;;:3;:43::i;1985:189::-;2071:7;2106:12;2099:5;2091:28;;;;-1:-1:-1;;;2091:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2130:9:0;2142:5;2146:1;2142;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:180::-;4356:6;4409:2;4397:9;4388:7;4384:23;4380:32;4377:52;;;4425:1;4422;4415:12;4377:52;-1:-1:-1;4448:23:1;;4297:180;-1:-1:-1;4297:180:1:o;4838:356::-;5040:2;5022:21;;;5059:18;;;5052:30;5118:34;5113:2;5098:18;;5091:62;5185:2;5170:18;;4838:356::o;5389:127::-;5450:10;5445:3;5441:20;5438:1;5431:31;5481:4;5478:1;5471:15;5505:4;5502:1;5495:15;5521:416;5610:1;5647:5;5610:1;5661:270;5682:7;5672:8;5669:21;5661:270;;;5741:4;5737:1;5733:6;5729:17;5723:4;5720:27;5717:53;;;5750:18;;:::i;:::-;5800:7;5790:8;5786:22;5783:55;;;5820:16;;;;5783:55;5899:22;;;;5859:15;;;;5661:270;;;5665:3;5521:416;;;;;:::o;5942:806::-;5991:5;6021:8;6011:80;;-1:-1:-1;6062:1:1;6076:5;;6011:80;6110:4;6100:76;;-1:-1:-1;6147:1:1;6161:5;;6100:76;6192:4;6210:1;6205:59;;;;6278:1;6273:130;;;;6185:218;;6205:59;6235:1;6226:10;;6249:5;;;6273:130;6310:3;6300:8;6297:17;6294:43;;;6317:18;;:::i;:::-;-1:-1:-1;;6373:1:1;6359:16;;6388:5;;6185:218;;6487:2;6477:8;6474:16;6468:3;6462:4;6459:13;6455:36;6449:2;6439:8;6436:16;6431:2;6425:4;6422:12;6418:35;6415:77;6412:159;;;-1:-1:-1;6524:19:1;;;6556:5;;6412:159;6603:34;6628:8;6622:4;6603:34;:::i;:::-;6673:6;6669:1;6665:6;6661:19;6652:7;6649:32;6646:58;;;6684:18;;:::i;:::-;6722:20;;5942:806;-1:-1:-1;;;5942:806:1:o;6753:140::-;6811:5;6840:47;6881:4;6871:8;6867:19;6861:4;6840:47;:::i;6898:168::-;6971:9;;;7002;;7019:15;;;7013:22;;6999:37;6989:71;;7040:18;;:::i;7071:349::-;7273:2;7255:21;;;7312:2;7292:18;;;7285:30;7351:27;7346:2;7331:18;;7324:55;7411:2;7396:18;;7071:349::o;7425:352::-;7627:2;7609:21;;;7666:2;7646:18;;;7639:30;7705;7700:2;7685:18;;7678:58;7768:2;7753:18;;7425:352::o;8143:127::-;8204:10;8199:3;8195:20;8192:1;8185:31;8235:4;8232:1;8225:15;8259:4;8256:1;8249:15;8627:251;8697:6;8750:2;8738:9;8729:7;8725:23;8721:32;8718:52;;;8766:1;8763;8756:12;8718:52;8798:9;8792:16;8817:31;8842:5;8817:31;:::i;9804:306::-;9892:6;9900;9908;9961:2;9949:9;9940:7;9936:23;9932:32;9929:52;;;9977:1;9974;9967:12;9929:52;10006:9;10000:16;9990:26;;10056:2;10045:9;10041:18;10035:25;10025:35;;10100:2;10089:9;10085:18;10079:25;10069:35;;9804:306;;;;;:::o;10394:277::-;10461:6;10514:2;10502:9;10493:7;10489:23;10485:32;10482:52;;;10530:1;10527;10520:12;10482:52;10562:9;10556:16;10615:5;10608:13;10601:21;10594:5;10591:32;10581:60;;10637:1;10634;10627:12;14244:125;14309:9;;;14330:10;;;14327:36;;;14343:18;;:::i;14729:135::-;14768:3;14789:17;;;14786:43;;14809:18;;:::i;:::-;-1:-1:-1;14856:1:1;14845:13;;14729:135::o;15221:128::-;15288:9;;;15309:11;;;15306:37;;;15323:18;;:::i;15354:980::-;15616:4;15664:3;15653:9;15649:19;15695:6;15684:9;15677:25;15721:2;15759:6;15754:2;15743:9;15739:18;15732:34;15802:3;15797:2;15786:9;15782:18;15775:31;15826:6;15861;15855:13;15892:6;15884;15877:22;15930:3;15919:9;15915:19;15908:26;;15969:2;15961:6;15957:15;15943:29;;15990:1;16000:195;16014:6;16011:1;16008:13;16000:195;;;16079:13;;-1:-1:-1;;;;;16075:39:1;16063:52;;16170:15;;;;16135:12;;;;16111:1;16029:9;16000:195;;;-1:-1:-1;;;;;;;16251:32:1;;;;16246:2;16231:18;;16224:60;-1:-1:-1;;;16315:3:1;16300:19;16293:35;16212:3;15354:980;-1:-1:-1;;;15354:980:1:o;16339:217::-;16379:1;16405;16395:132;;16449:10;16444:3;16440:20;16437:1;16430:31;16484:4;16481:1;16474:15;16512:4;16509:1;16502:15;16395:132;-1:-1:-1;16541:9:1;;16339:217::o
Swarm Source
ipfs://98ee36e9bf82d6fa7361ac9ed1cbfd6ffe80ab66f2c0296c0155ac76f934131b
Loading...
Loading
Loading...
Loading

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.