Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 oSHIBA
Holders
46
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000007219 oSHIBAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ERC20ORDINALSHIBA
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-03 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.15; 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; } } interface ERC20 { function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) external onlyOwner { require(adr != owner, "OWNER cant be unauthorized"); authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function renounceOwnership() external onlyOwner { authorizations[owner] = false; owner = address(0); } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ERC20ORDINALSHIBA is ERC20, Auth { using SafeMath for uint256; address immutable WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string public constant name = "Ordinal Shiba"; string public constant symbol = "oSHIBA"; uint8 public constant decimals = 9; uint256 public constant totalSupply = 100 * 10**9 * 10**decimals; uint256 public _maxTxAmount = totalSupply / 100; uint256 public _maxWalletToken = totalSupply / 100; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isWalletLimitExempt; uint256 public marketingFee = 7; uint256 public operationsFee = 1; uint256 public totalFee = marketingFee + operationsFee; uint256 public constant feeDenominator = 100; uint256 buyMultiplier = 125; uint256 sellMultiplier = 350; uint256 transferMultiplier = 300; address public marketingFeeReceiver; address public operationsFeeReceiver; IDEXRouter public router; address public immutable pair; bool public tradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = totalSupply / 500; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; marketingFeeReceiver = 0x7eDD2BD94D80F3F93bfb7a46F6A3a7cBb63e645D; operationsFeeReceiver = msg.sender; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[ZERO] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[DEAD] = true; balanceOf[msg.sender] = totalSupply; emit Transfer(address(0), msg.sender, totalSupply); } receive() external payable { } function getOwner() external view override returns (address) { return owner; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner { require(maxWallPercent_base1000 >= 5,"Cannot set max wallet less than 0.5%"); _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000; } function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner { require(maxTXPercentage_base1000 >= 5,"Cannot set max transaction less than 0.5%"); _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen,"trading not open yet"); } if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) { require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached"); } require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded"); if(shouldSwapBack()){ swapBack(); } balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); balanceOf[recipient] = balanceOf[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); balanceOf[recipient] = balanceOf[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { if(amount == 0 || totalFee == 0){ return amount; } uint256 multiplier = transferMultiplier; if(recipient == pair) { multiplier = sellMultiplier; } else if(sender == pair) { multiplier = buyMultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); if(feeAmount > 0){ balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && balanceOf[address(this)] >= swapThreshold; } function clearStuckBalance(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; uint256 amountToClear = ( amountETH * amountPercentage ) / 100; payable(msg.sender).transfer(amountToClear); } function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function openTrading() external onlyOwner { tradingOpen = true; } function swapBack() internal swapping { address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( swapThreshold, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee; uint256 amountETHoperations = (amountETH * operationsFee) / totalFee; (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(operationsFeeReceiver).call{value: amountETHoperations}(""); } function manage_FeeExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isFeeExempt[addresses[i]] = status; } } function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isTxLimitExempt[addresses[i]] = status; } } function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isWalletLimitExempt[addresses[i]] = status; } } function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized { sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; } function setFeeReceivers(address _marketingFeeReceiver, address _operationsFeeReceiver ) external onlyOwner { marketingFeeReceiver = _marketingFeeReceiver; operationsFeeReceiver = _operationsFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner { swapEnabled = _enabled; swapThreshold = totalSupply / _denominator; } function getCirculatingSupply() public view returns (uint256) { return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_operationsFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526064620000146009600a6200054b565b620000259064174876e80062000563565b62000031919062000585565b6002556064620000446009600a6200054b565b620000559064174876e80062000563565b62000061919062000585565b600355600760098190556001600a8190556200007d91620005a8565b600b55607d600c5561015e600d5561012c600e556011805461ffff60a01b1916600160a81b1790556101f4620000b66009600a6200054b565b620000c79064174876e80062000563565b620000d3919062000585565b601255348015620000e357600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560118054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001909190620005c3565b6001600160a01b039081166080526011546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002079190620005c3565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027f9190620005c3565b6001600160a01b0390811660a05230600081815260056020908152604080832060115490951683529381528382206000199055600f8054737edd2bd94d80f3f93bfb7a46f6a3a7cbb63e645d6001600160a01b0319918216179091556010805433921682179055825260068152838220805460ff1990811660019081179092556007835285842080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805482168317905560089092528483208054831682179055928252928120805484168317905561dead90527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054909216179055620003ba6009600a6200054b565b620003cb9064174876e80062000563565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200040e6009600a6200054b565b6200041f9064174876e80062000563565b60405190815260200160405180910390a3620005ee565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200048d57816000190482111562000471576200047162000436565b808516156200047f57918102915b93841c939080029062000451565b509250929050565b600082620004a65750600162000545565b81620004b55750600062000545565b8160018114620004ce5760028114620004d957620004f9565b600191505062000545565b60ff841115620004ed57620004ed62000436565b50506001821b62000545565b5060208310610133831016604e8410600b84101617156200051e575081810a62000545565b6200052a83836200044c565b806000190482111562000541576200054162000436565b0290505b92915050565b60006200055c60ff84168362000495565b9392505050565b600081600019048311821515161562000580576200058062000436565b500290565b600082620005a357634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005be57620005be62000436565b500190565b600060208284031215620005d657600080fd5b81516001600160a01b03811681146200055c57600080fd5b60805160a0516121d562000630600039600081816106b6015281816113b801528181611741015281816119df0152611a130152600061180b01526121d56000f3fe6080604052600436106102695760003560e01c806370a0823111610144578063b6a5d7de116100b6578063df20fd491161007a578063df20fd49146107c3578063e96fada2146107e3578063f0b37c0414610803578063f887ea4014610823578063fe9fbb8014610843578063ffb54a991461086357600080fd5b8063b6a5d7de146106f8578063bd9ab53714610718578063c867d60b14610738578063c9567bf914610768578063dd62ed3e1461077d57600080fd5b8063893d20e811610108578063893d20e8146106045780638b42507f1461062257806395d89b4114610652578063a4b45c0014610684578063a8aa1b31146106a4578063a9059cbb146106d857600080fd5b806370a0823114610576578063715018a6146105a357806377b54bad146105b857806378109e54146105d85780637d1db4a5146105ee57600080fd5b80631df4ccfc116101dd5780633f4218e0116101a15780633f4218e0146104af5780634be9d869146104df578063571ac8b0146104ff5780636b67c4df1461051f5780636ce46bc3146105355780636ddd17131461055557600080fd5b80631df4ccfc1461040e57806323b872dd146104245780632b112e49146104445780632f54bf6e14610459578063313ce5671461048857600080fd5b8063090896be1161022f578063090896be1461035e57806309302dc614610374578063095ea7b314610394578063180b0d7e146103c457806318160ddd146103d95780631da1db5e146103ee57600080fd5b806210868314610275578062bff4461461029757806303382cbb146102b75780630445b667146102f457806306fdde031461031857600080fd5b3661027057005b600080fd5b34801561028157600080fd5b50610295610290366004611cb8565b610884565b005b3480156102a357600080fd5b506102956102b2366004611cb8565b610948565b3480156102c357600080fd5b506010546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561030057600080fd5b5061030a60125481565b6040519081526020016102eb565b34801561032457600080fd5b506103516040518060400160405280600d81526020016c4f7264696e616c20536869626160981b81525081565b6040516102eb9190611d3e565b34801561036a57600080fd5b5061030a600a5481565b34801561038057600080fd5b5061029561038f366004611d93565b6109fd565b3480156103a057600080fd5b506103b46103af366004611dc8565b610abd565b60405190151581526020016102eb565b3480156103d057600080fd5b5061030a606481565b3480156103e557600080fd5b5061030a610b2a565b3480156103fa57600080fd5b50610295610409366004611d93565b610b48565b34801561041a57600080fd5b5061030a600b5481565b34801561043057600080fd5b506103b461043f366004611df2565b610bbb565b34801561045057600080fd5b5061030a610c7d565b34801561046557600080fd5b506103b4610474366004611e2e565b6000546001600160a01b0391821691161490565b34801561049457600080fd5b5061049d600981565b60405160ff90911681526020016102eb565b3480156104bb57600080fd5b506103b46104ca366004611e2e565b60066020526000908152604090205460ff1681565b3480156104eb57600080fd5b506102956104fa366004611cb8565b610d05565b34801561050b57600080fd5b506103b461051a366004611e2e565b610dba565b34801561052b57600080fd5b5061030a60095481565b34801561054157600080fd5b50610295610550366004611e49565b610dc8565b34801561056157600080fd5b506011546103b490600160a81b900460ff1681565b34801561058257600080fd5b5061030a610591366004611e2e565b60046020526000908152604090205481565b3480156105af57600080fd5b50610295610dfe565b3480156105c457600080fd5b506103b46105d3366004611dc8565b610e58565b3480156105e457600080fd5b5061030a60035481565b3480156105fa57600080fd5b5061030a60025481565b34801561061057600080fd5b506000546001600160a01b03166102d7565b34801561062e57600080fd5b506103b461063d366004611e2e565b60076020526000908152604090205460ff1681565b34801561065e57600080fd5b50610351604051806040016040528060068152602001656f534849424160d01b81525081565b34801561069057600080fd5b5061029561069f366004611e75565b610f67565b3480156106b057600080fd5b506102d77f000000000000000000000000000000000000000000000000000000000000000081565b3480156106e457600080fd5b506103b46106f3366004611dc8565b610fbf565b34801561070457600080fd5b50610295610713366004611e2e565b610fcc565b34801561072457600080fd5b50610295610733366004611d93565b61101d565b34801561074457600080fd5b506103b4610753366004611e2e565b60086020526000908152604090205460ff1681565b34801561077457600080fd5b506102956110e3565b34801561078957600080fd5b5061030a610798366004611e75565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506102956107de366004611ea8565b611122565b3480156107ef57600080fd5b50600f546102d7906001600160a01b031681565b34801561080f57600080fd5b5061029561081e366004611e2e565b611190565b34801561082f57600080fd5b506011546102d7906001600160a01b031681565b34801561084f57600080fd5b506103b461085e366004611e2e565b611239565b34801561086f57600080fd5b506011546103b490600160a01b900460ff1681565b61088d33611239565b6108b25760405162461bcd60e51b81526004016108a990611ec6565b60405180910390fd5b6101f582106108d35760405162461bcd60e51b81526004016108a990611eeb565b60005b828110156109425781600860008686858181106108f5576108f5611f30565b905060200201602081019061090a9190611e2e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561093b81611f5c565b90506108d6565b50505050565b61095133611239565b61096d5760405162461bcd60e51b81526004016108a990611ec6565b6101f5821061098e5760405162461bcd60e51b81526004016108a990611eeb565b60005b828110156109425781600660008686858181106109b0576109b0611f30565b90506020020160208101906109c59190611e2e565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109f681611f5c565b9050610991565b6000546001600160a01b03163314610a275760405162461bcd60e51b81526004016108a990611f75565b6005811015610a845760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b60648201526084016108a9565b6103e881610a946009600a612079565b610aa39064174876e800612088565b610aad9190612088565b610ab791906120a7565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b189086815260200190565b60405180910390a35060015b92915050565b610b366009600a612079565b610b459064174876e800612088565b81565b6000546001600160a01b03163314610b725760405162461bcd60e51b81526004016108a990611f75565b4760006064610b818484612088565b610b8b91906120a7565b604051909150339082156108fc029083906000818181858888f19350505050158015610942573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610c68576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610c43918490611257565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610c73848484611291565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610cdd6009600a612079565b610cec9064174876e800612088565b610cf691906120c9565b610d0091906120c9565b905090565b610d0e33611239565b610d2a5760405162461bcd60e51b81526004016108a990611ec6565b6101f58210610d4b5760405162461bcd60e51b81526004016108a990611eeb565b60005b82811015610942578160076000868685818110610d6d57610d6d611f30565b9050602002016020810190610d829190611e2e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610db381611f5c565b9050610d4e565b6000610b2482600019610abd565b610dd133611239565b610ded5760405162461bcd60e51b81526004016108a990611ec6565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610e285760405162461bcd60e51b81526004016108a990611f75565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610e835760405162461bcd60e51b81526004016108a990611f75565b81600003610ef6576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef391906120e0565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906120f9565b6000546001600160a01b03163314610f915760405162461bcd60e51b81526004016108a990611f75565b600f80546001600160a01b039384166001600160a01b03199182161790915560108054929093169116179055565b6000610c76338484611291565b6000546001600160a01b03163314610ff65760405162461bcd60e51b81526004016108a990611f75565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146110475760405162461bcd60e51b81526004016108a990611f75565b60058110156110aa5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b60648201526084016108a9565b6103e8816110ba6009600a612079565b6110c99064174876e800612088565b6110d39190612088565b6110dd91906120a7565b60025550565b6000546001600160a01b0316331461110d5760405162461bcd60e51b81526004016108a990611f75565b6011805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461114c5760405162461bcd60e51b81526004016108a990611f75565b6011805460ff60a81b1916600160a81b84151502179055806111706009600a612079565b61117f9064174876e800612088565b61118991906120a7565b6012555050565b6000546001600160a01b031633146111ba5760405162461bcd60e51b81526004016108a990611f75565b6000546001600160a01b03908116908216036112185760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108a9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000818484111561127b5760405162461bcd60e51b81526004016108a99190611d3e565b50600061128884866120c9565b95945050505050565b60135460009060ff16156112b1576112aa84848461164e565b9050610c76565b6001600160a01b03841660009081526001602052604090205460ff161580156112f357506001600160a01b03831660009081526001602052604090205460ff16155b1561134857601154600160a01b900460ff166113485760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a9565b6001600160a01b03841660009081526001602052604090205460ff1615801561138a57506001600160a01b03841660009081526008602052604090205460ff16155b80156113af57506001600160a01b03831660009081526008602052604090205460ff16155b80156113ed57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611467576003546001600160a01b038416600090815260046020526040902054611419908490612116565b11156114675760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108a9565b6002548211158061149057506001600160a01b03841660009081526007602052604090205460ff165b806114b357506001600160a01b03831660009081526007602052604090205460ff165b6114f75760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108a9565b6114ff611734565b1561150c5761150c6117a7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526004909152919091205461155e918490611257565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff16806115ab57506001600160a01b03841660009081526006602052604090205460ff165b6115bf576115ba8584866119b7565b6115c1565b825b6001600160a01b0385166000908152600460205260409020549091506115e79082611b14565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061163b9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461169f918490611257565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116ce9083611b14565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117229086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611772575060135460ff16155b80156117875750601154600160a81b900460ff165b8015610d0057505060125430600090815260046020526040902054101590565b6013805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117e9576117e9611f30565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061183d5761183d611f30565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac94791611887919060009086903090429060040161212e565b600060405180830381600087803b1580156118a157600080fd5b505af11580156118b5573d6000803e3d6000fd5b5050600b54600954479350600092506118ce9084612088565b6118d891906120a7565b90506000600b54600a54846118ed9190612088565b6118f791906120a7565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611949576040519150601f19603f3d011682016040523d82523d6000602084013e61194e565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461199e576040519150601f19603f3d011682016040523d82523d6000602084013e6119a3565b606091505b50506013805460ff19169055505050505050565b60008215806119c65750600b54155b156119d2575081610c76565b600e546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603611a115750600d54611a4f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611a4f5750600c545b6000611a84611a5f606480612088565b611a7e84611a78600b548a611b7390919063ffffffff16565b90611b73565b90611bf5565b90508015611b005730600090815260046020526040902054611aa69082611b14565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611af79085815260200190565b60405180910390a35b611b0a8582611c37565b9695505050505050565b600080611b218385612116565b905083811015610c765760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108a9565b600082600003611b8557506000610b24565b6000611b918385612088565b905082611b9e85836120a7565b14610c765760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a9565b6000610c7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c79565b6000610c7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611257565b60008183611c9a5760405162461bcd60e51b81526004016108a99190611d3e565b50600061128884866120a7565b8015158114611cb557600080fd5b50565b600080600060408486031215611ccd57600080fd5b833567ffffffffffffffff80821115611ce557600080fd5b818601915086601f830112611cf957600080fd5b813581811115611d0857600080fd5b8760208260051b8501011115611d1d57600080fd5b60209283019550935050840135611d3381611ca7565b809150509250925092565b600060208083528351808285015260005b81811015611d6b57858101830151858201604001528201611d4f565b81811115611d7d576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215611da557600080fd5b5035919050565b80356001600160a01b0381168114611dc357600080fd5b919050565b60008060408385031215611ddb57600080fd5b611de483611dac565b946020939093013593505050565b600080600060608486031215611e0757600080fd5b611e1084611dac565b9250611e1e60208501611dac565b9150604084013590509250925092565b600060208284031215611e4057600080fd5b610c7682611dac565b600080600060608486031215611e5e57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e8857600080fd5b611e9183611dac565b9150611e9f60208401611dac565b90509250929050565b60008060408385031215611ebb57600080fd5b8235611de481611ca7565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f6e57611f6e611f46565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115611fd0578160001904821115611fb657611fb6611f46565b80851615611fc357918102915b93841c9390800290611f9a565b509250929050565b600082611fe757506001610b24565b81611ff457506000610b24565b816001811461200a576002811461201457612030565b6001915050610b24565b60ff84111561202557612025611f46565b50506001821b610b24565b5060208310610133831016604e8410600b8410161715612053575081810a610b24565b61205d8383611f95565b806000190482111561207157612071611f46565b029392505050565b6000610c7660ff841683611fd8565b60008160001904831182151516156120a2576120a2611f46565b500290565b6000826120c457634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156120db576120db611f46565b500390565b6000602082840312156120f257600080fd5b5051919050565b60006020828403121561210b57600080fd5b8151610c7681611ca7565b6000821982111561212957612129611f46565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561217e5784516001600160a01b031683529383019391830191600101612159565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204d0f6012c2c832e02af05d17718c288c8f4a64eeae6334b4581400deb1aaa78a64736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106102695760003560e01c806370a0823111610144578063b6a5d7de116100b6578063df20fd491161007a578063df20fd49146107c3578063e96fada2146107e3578063f0b37c0414610803578063f887ea4014610823578063fe9fbb8014610843578063ffb54a991461086357600080fd5b8063b6a5d7de146106f8578063bd9ab53714610718578063c867d60b14610738578063c9567bf914610768578063dd62ed3e1461077d57600080fd5b8063893d20e811610108578063893d20e8146106045780638b42507f1461062257806395d89b4114610652578063a4b45c0014610684578063a8aa1b31146106a4578063a9059cbb146106d857600080fd5b806370a0823114610576578063715018a6146105a357806377b54bad146105b857806378109e54146105d85780637d1db4a5146105ee57600080fd5b80631df4ccfc116101dd5780633f4218e0116101a15780633f4218e0146104af5780634be9d869146104df578063571ac8b0146104ff5780636b67c4df1461051f5780636ce46bc3146105355780636ddd17131461055557600080fd5b80631df4ccfc1461040e57806323b872dd146104245780632b112e49146104445780632f54bf6e14610459578063313ce5671461048857600080fd5b8063090896be1161022f578063090896be1461035e57806309302dc614610374578063095ea7b314610394578063180b0d7e146103c457806318160ddd146103d95780631da1db5e146103ee57600080fd5b806210868314610275578062bff4461461029757806303382cbb146102b75780630445b667146102f457806306fdde031461031857600080fd5b3661027057005b600080fd5b34801561028157600080fd5b50610295610290366004611cb8565b610884565b005b3480156102a357600080fd5b506102956102b2366004611cb8565b610948565b3480156102c357600080fd5b506010546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561030057600080fd5b5061030a60125481565b6040519081526020016102eb565b34801561032457600080fd5b506103516040518060400160405280600d81526020016c4f7264696e616c20536869626160981b81525081565b6040516102eb9190611d3e565b34801561036a57600080fd5b5061030a600a5481565b34801561038057600080fd5b5061029561038f366004611d93565b6109fd565b3480156103a057600080fd5b506103b46103af366004611dc8565b610abd565b60405190151581526020016102eb565b3480156103d057600080fd5b5061030a606481565b3480156103e557600080fd5b5061030a610b2a565b3480156103fa57600080fd5b50610295610409366004611d93565b610b48565b34801561041a57600080fd5b5061030a600b5481565b34801561043057600080fd5b506103b461043f366004611df2565b610bbb565b34801561045057600080fd5b5061030a610c7d565b34801561046557600080fd5b506103b4610474366004611e2e565b6000546001600160a01b0391821691161490565b34801561049457600080fd5b5061049d600981565b60405160ff90911681526020016102eb565b3480156104bb57600080fd5b506103b46104ca366004611e2e565b60066020526000908152604090205460ff1681565b3480156104eb57600080fd5b506102956104fa366004611cb8565b610d05565b34801561050b57600080fd5b506103b461051a366004611e2e565b610dba565b34801561052b57600080fd5b5061030a60095481565b34801561054157600080fd5b50610295610550366004611e49565b610dc8565b34801561056157600080fd5b506011546103b490600160a81b900460ff1681565b34801561058257600080fd5b5061030a610591366004611e2e565b60046020526000908152604090205481565b3480156105af57600080fd5b50610295610dfe565b3480156105c457600080fd5b506103b46105d3366004611dc8565b610e58565b3480156105e457600080fd5b5061030a60035481565b3480156105fa57600080fd5b5061030a60025481565b34801561061057600080fd5b506000546001600160a01b03166102d7565b34801561062e57600080fd5b506103b461063d366004611e2e565b60076020526000908152604090205460ff1681565b34801561065e57600080fd5b50610351604051806040016040528060068152602001656f534849424160d01b81525081565b34801561069057600080fd5b5061029561069f366004611e75565b610f67565b3480156106b057600080fd5b506102d77f0000000000000000000000003cbdd54467652fdb15dc587ed3a2cee4276cdfdb81565b3480156106e457600080fd5b506103b46106f3366004611dc8565b610fbf565b34801561070457600080fd5b50610295610713366004611e2e565b610fcc565b34801561072457600080fd5b50610295610733366004611d93565b61101d565b34801561074457600080fd5b506103b4610753366004611e2e565b60086020526000908152604090205460ff1681565b34801561077457600080fd5b506102956110e3565b34801561078957600080fd5b5061030a610798366004611e75565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506102956107de366004611ea8565b611122565b3480156107ef57600080fd5b50600f546102d7906001600160a01b031681565b34801561080f57600080fd5b5061029561081e366004611e2e565b611190565b34801561082f57600080fd5b506011546102d7906001600160a01b031681565b34801561084f57600080fd5b506103b461085e366004611e2e565b611239565b34801561086f57600080fd5b506011546103b490600160a01b900460ff1681565b61088d33611239565b6108b25760405162461bcd60e51b81526004016108a990611ec6565b60405180910390fd5b6101f582106108d35760405162461bcd60e51b81526004016108a990611eeb565b60005b828110156109425781600860008686858181106108f5576108f5611f30565b905060200201602081019061090a9190611e2e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561093b81611f5c565b90506108d6565b50505050565b61095133611239565b61096d5760405162461bcd60e51b81526004016108a990611ec6565b6101f5821061098e5760405162461bcd60e51b81526004016108a990611eeb565b60005b828110156109425781600660008686858181106109b0576109b0611f30565b90506020020160208101906109c59190611e2e565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109f681611f5c565b9050610991565b6000546001600160a01b03163314610a275760405162461bcd60e51b81526004016108a990611f75565b6005811015610a845760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b60648201526084016108a9565b6103e881610a946009600a612079565b610aa39064174876e800612088565b610aad9190612088565b610ab791906120a7565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b189086815260200190565b60405180910390a35060015b92915050565b610b366009600a612079565b610b459064174876e800612088565b81565b6000546001600160a01b03163314610b725760405162461bcd60e51b81526004016108a990611f75565b4760006064610b818484612088565b610b8b91906120a7565b604051909150339082156108fc029083906000818181858888f19350505050158015610942573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610c68576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610c43918490611257565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610c73848484611291565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610cdd6009600a612079565b610cec9064174876e800612088565b610cf691906120c9565b610d0091906120c9565b905090565b610d0e33611239565b610d2a5760405162461bcd60e51b81526004016108a990611ec6565b6101f58210610d4b5760405162461bcd60e51b81526004016108a990611eeb565b60005b82811015610942578160076000868685818110610d6d57610d6d611f30565b9050602002016020810190610d829190611e2e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610db381611f5c565b9050610d4e565b6000610b2482600019610abd565b610dd133611239565b610ded5760405162461bcd60e51b81526004016108a990611ec6565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610e285760405162461bcd60e51b81526004016108a990611f75565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610e835760405162461bcd60e51b81526004016108a990611f75565b81600003610ef6576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef391906120e0565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906120f9565b6000546001600160a01b03163314610f915760405162461bcd60e51b81526004016108a990611f75565b600f80546001600160a01b039384166001600160a01b03199182161790915560108054929093169116179055565b6000610c76338484611291565b6000546001600160a01b03163314610ff65760405162461bcd60e51b81526004016108a990611f75565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146110475760405162461bcd60e51b81526004016108a990611f75565b60058110156110aa5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b60648201526084016108a9565b6103e8816110ba6009600a612079565b6110c99064174876e800612088565b6110d39190612088565b6110dd91906120a7565b60025550565b6000546001600160a01b0316331461110d5760405162461bcd60e51b81526004016108a990611f75565b6011805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461114c5760405162461bcd60e51b81526004016108a990611f75565b6011805460ff60a81b1916600160a81b84151502179055806111706009600a612079565b61117f9064174876e800612088565b61118991906120a7565b6012555050565b6000546001600160a01b031633146111ba5760405162461bcd60e51b81526004016108a990611f75565b6000546001600160a01b03908116908216036112185760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108a9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000818484111561127b5760405162461bcd60e51b81526004016108a99190611d3e565b50600061128884866120c9565b95945050505050565b60135460009060ff16156112b1576112aa84848461164e565b9050610c76565b6001600160a01b03841660009081526001602052604090205460ff161580156112f357506001600160a01b03831660009081526001602052604090205460ff16155b1561134857601154600160a01b900460ff166113485760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a9565b6001600160a01b03841660009081526001602052604090205460ff1615801561138a57506001600160a01b03841660009081526008602052604090205460ff16155b80156113af57506001600160a01b03831660009081526008602052604090205460ff16155b80156113ed57507f0000000000000000000000003cbdd54467652fdb15dc587ed3a2cee4276cdfdb6001600160a01b0316836001600160a01b031614155b15611467576003546001600160a01b038416600090815260046020526040902054611419908490612116565b11156114675760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108a9565b6002548211158061149057506001600160a01b03841660009081526007602052604090205460ff165b806114b357506001600160a01b03831660009081526007602052604090205460ff165b6114f75760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108a9565b6114ff611734565b1561150c5761150c6117a7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526004909152919091205461155e918490611257565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff16806115ab57506001600160a01b03841660009081526006602052604090205460ff165b6115bf576115ba8584866119b7565b6115c1565b825b6001600160a01b0385166000908152600460205260409020549091506115e79082611b14565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061163b9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461169f918490611257565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116ce9083611b14565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117229086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000003cbdd54467652fdb15dc587ed3a2cee4276cdfdb1614801590611772575060135460ff16155b80156117875750601154600160a81b900460ff165b8015610d0057505060125430600090815260046020526040902054101590565b6013805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117e9576117e9611f30565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061183d5761183d611f30565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac94791611887919060009086903090429060040161212e565b600060405180830381600087803b1580156118a157600080fd5b505af11580156118b5573d6000803e3d6000fd5b5050600b54600954479350600092506118ce9084612088565b6118d891906120a7565b90506000600b54600a54846118ed9190612088565b6118f791906120a7565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611949576040519150601f19603f3d011682016040523d82523d6000602084013e61194e565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461199e576040519150601f19603f3d011682016040523d82523d6000602084013e6119a3565b606091505b50506013805460ff19169055505050505050565b60008215806119c65750600b54155b156119d2575081610c76565b600e546001600160a01b037f0000000000000000000000003cbdd54467652fdb15dc587ed3a2cee4276cdfdb811690841603611a115750600d54611a4f565b7f0000000000000000000000003cbdd54467652fdb15dc587ed3a2cee4276cdfdb6001600160a01b0316856001600160a01b031603611a4f5750600c545b6000611a84611a5f606480612088565b611a7e84611a78600b548a611b7390919063ffffffff16565b90611b73565b90611bf5565b90508015611b005730600090815260046020526040902054611aa69082611b14565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611af79085815260200190565b60405180910390a35b611b0a8582611c37565b9695505050505050565b600080611b218385612116565b905083811015610c765760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108a9565b600082600003611b8557506000610b24565b6000611b918385612088565b905082611b9e85836120a7565b14610c765760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a9565b6000610c7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c79565b6000610c7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611257565b60008183611c9a5760405162461bcd60e51b81526004016108a99190611d3e565b50600061128884866120a7565b8015158114611cb557600080fd5b50565b600080600060408486031215611ccd57600080fd5b833567ffffffffffffffff80821115611ce557600080fd5b818601915086601f830112611cf957600080fd5b813581811115611d0857600080fd5b8760208260051b8501011115611d1d57600080fd5b60209283019550935050840135611d3381611ca7565b809150509250925092565b600060208083528351808285015260005b81811015611d6b57858101830151858201604001528201611d4f565b81811115611d7d576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215611da557600080fd5b5035919050565b80356001600160a01b0381168114611dc357600080fd5b919050565b60008060408385031215611ddb57600080fd5b611de483611dac565b946020939093013593505050565b600080600060608486031215611e0757600080fd5b611e1084611dac565b9250611e1e60208501611dac565b9150604084013590509250925092565b600060208284031215611e4057600080fd5b610c7682611dac565b600080600060608486031215611e5e57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e8857600080fd5b611e9183611dac565b9150611e9f60208401611dac565b90509250929050565b60008060408385031215611ebb57600080fd5b8235611de481611ca7565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f6e57611f6e611f46565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115611fd0578160001904821115611fb657611fb6611f46565b80851615611fc357918102915b93841c9390800290611f9a565b509250929050565b600082611fe757506001610b24565b81611ff457506000610b24565b816001811461200a576002811461201457612030565b6001915050610b24565b60ff84111561202557612025611f46565b50506001821b610b24565b5060208310610133831016604e8410600b8410161715612053575081810a610b24565b61205d8383611f95565b806000190482111561207157612071611f46565b029392505050565b6000610c7660ff841683611fd8565b60008160001904831182151516156120a2576120a2611f46565b500290565b6000826120c457634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156120db576120db611f46565b500390565b6000602082840312156120f257600080fd5b5051919050565b60006020828403121561210b57600080fd5b8151610c7681611ca7565b6000821982111561212957612129611f46565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561217e5784516001600160a01b031683529383019391830191600101612159565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204d0f6012c2c832e02af05d17718c288c8f4a64eeae6334b4581400deb1aaa78a64736f6c634300080f0033
Deployed Bytecode Sourcemap
3405:9631:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11947:311;;;;;;;;;;-1:-1:-1;11947:311:0;;;;;:::i;:::-;;:::i;:::-;;11333:295;;;;;;;;;;-1:-1:-1;11333:295:0;;;;;:::i;:::-;;:::i;4630:36::-;;;;;;;;;;-1:-1:-1;4630:36:0;;;;-1:-1:-1;;;;;4630:36:0;;;;;;-1:-1:-1;;;;;1056:32:1;;;1038:51;;1026:2;1011:18;4630:36:0;;;;;;;;4821:48;;;;;;;;;;;;;;;;;;;1246:25:1;;;1234:2;1219:18;4821:48:0;1100:177:1;3666:45:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3666:45:0;;;;;;;;;;;;:::i;4321:32::-;;;;;;;;;;;;;;;;6972:261;;;;;;;;;;-1:-1:-1;6972:261:0;;;;;:::i;:::-;;:::i;6076:216::-;;;;;;;;;;-1:-1:-1;6076:216:0;;;;;:::i;:::-;;:::i;:::-;;;2671:14:1;;2664:22;2646:41;;2634:2;2619:18;6076:216:0;2506:187:1;4421:44:0;;;;;;;;;;;;4462:3;4421:44;;3808:64;;;;;;;;;;;;;:::i;9912:259::-;;;;;;;;;;-1:-1:-1;9912:259:0;;;;;:::i;:::-;;:::i;4360:54::-;;;;;;;;;;;;;;;;6594:370;;;;;;;;;;-1:-1:-1;6594:370:0;;;;;:::i;:::-;;:::i;12896:137::-;;;;;;;;;;;;;:::i;2570:103::-;;;;;;;;;;-1:-1:-1;2570:103:0;;;;;:::i;:::-;2625:4;2660:5;-1:-1:-1;;;;;2649:16:0;;;2660:5;;2649:16;;2570:103;3765:34;;;;;;;;;;;;3798:1;3765:34;;;;;3394:4:1;3382:17;;;3364:36;;3352:2;3337:18;3765:34:0;3222:184:1;4116:44:0;;;;;;;;;;-1:-1:-1;4116:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11636:303;;;;;;;;;;-1:-1:-1;11636:303:0;;;;;:::i;:::-;;:::i;6300:122::-;;;;;;;;;;-1:-1:-1;6300:122:0;;;;;:::i;:::-;;:::i;4283:31::-;;;;;;;;;;;;;;;;12266:199;;;;;;;;;;-1:-1:-1;12266:199:0;;;;;:::i;:::-;;:::i;4784:30::-;;;;;;;;;;-1:-1:-1;4784:30:0;;;;-1:-1:-1;;;4784:30:0;;;;;;3994:45;;;;;;;;;;-1:-1:-1;3994:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2796:125;;;;;;;;;;;;;:::i;10179:286::-;;;;;;;;;;-1:-1:-1;10179:286:0;;;;;:::i;:::-;;:::i;3935:50::-;;;;;;;;;;;;;;;;3881:47;;;;;;;;;;;;;;;;5851:78;;;;;;;;;;-1:-1:-1;5903:7:0;5921:5;-1:-1:-1;;;;;5921:5:0;5851:78;;4167:48;;;;;;;;;;-1:-1:-1;4167:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3718:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3718:40:0;;;;;12473:228;;;;;;;;;;-1:-1:-1;12473:228:0;;;;;:::i;:::-;;:::i;4706:29::-;;;;;;;;;;;;;;;6430:156;;;;;;;;;;-1:-1:-1;6430:156:0;;;;;:::i;:::-;;:::i;2299:94::-;;;;;;;;;;-1:-1:-1;2299:94:0;;;;;:::i;:::-;;:::i;7241:262::-;;;;;;;;;;-1:-1:-1;7241:262:0;;;;;:::i;:::-;;:::i;4222:52::-;;;;;;;;;;-1:-1:-1;4222:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10473:79;;;;;;;;;;;;;:::i;5935:133::-;;;;;;;;;;-1:-1:-1;5935:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6037:19:0;;;6019:7;6037:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5935:133;12709:179;;;;;;;;;;-1:-1:-1;12709:179:0;;;;;:::i;:::-;;:::i;4588:35::-;;;;;;;;;;-1:-1:-1;4588:35:0;;;;-1:-1:-1;;;;;4588:35:0;;;2401:161;;;;;;;;;;-1:-1:-1;2401:161:0;;;;;:::i;:::-;;:::i;4675:24::-;;;;;;;;;;-1:-1:-1;4675:24:0;;;;-1:-1:-1;;;;;4675:24:0;;;2681:107;;;;;;;;;;-1:-1:-1;2681:107:0;;;;;:::i;:::-;;:::i;4744:31::-;;;;;;;;;;-1:-1:-1;4744:31:0;;;;-1:-1:-1;;;4744:31:0;;;;;;11947:311;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;;;;;;;;;12082:3:::1;12063:22:::0;::::1;12055:71;;;;-1:-1:-1::0;;;12055:71:0::1;;;;;;;:::i;:::-;12142:9;12137:114;12155:20:::0;;::::1;12137:114;;;12233:6;12197:19;:33;12217:9;;12227:1;12217:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12197:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12197:33:0;:42;;-1:-1:-1;;12197:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12177:3:::1;::::0;::::1;:::i;:::-;;;12137:114;;;;11947:311:::0;;;:::o;11333:295::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;11460:3:::1;11441:22:::0;::::1;11433:71;;;;-1:-1:-1::0;;;11433:71:0::1;;;;;;;:::i;:::-;11520:9;11515:106;11533:20:::0;;::::1;11515:106;;;11603:6;11575:11;:25;11587:9;;11597:1;11587:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11575:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11575:25:0;:34;;-1:-1:-1;;11575:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11555:3:::1;::::0;::::1;:::i;:::-;;;11515:106;;6972:261:::0;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;7108:1:::1;7081:23;:28;;7073:76;;;::::0;-1:-1:-1;;;7073:76:0;;6223:2:1;7073:76:0::1;::::0;::::1;6205:21:1::0;6262:2;6242:18;;;6235:30;6301:34;6281:18;;;6274:62;-1:-1:-1;;;6352:18:1;;;6345:34;6396:19;;7073:76:0::1;6021:400:1::0;7073:76:0::1;7221:4;7193:23:::0;3860:12:::1;3798:1;3860:2;:12;:::i;:::-;3846:26;::::0;:11:::1;:26;:::i;:::-;7179:37;;;;:::i;:::-;7178:47;;;;:::i;:::-;7160:15;:65:::0;-1:-1:-1;6972:261:0:o;6076:216::-;6180:10;6151:4;6168:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6168:32:0;;;;;;;;;;:41;;;6225:37;6151:4;;6168:32;;6225:37;;;;6203:6;1246:25:1;;1234:2;1219:18;;1100:177;6225:37:0;;;;;;;;-1:-1:-1;6280:4:0;6076:216;;;;;:::o;3808:64::-;3860:12;3798:1;3860:2;:12;:::i;:::-;3846:26;;:11;:26;:::i;:::-;3808:64;:::o;9912:259::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;10015:21:::1;9995:17;10106:3;10073:28;10085:16:::0;10015:21;10073:28:::1;:::i;:::-;10071:38;;;;:::i;:::-;10120:43;::::0;10047:62;;-1:-1:-1;10128:10:0::1;::::0;10120:43;::::1;;;::::0;10047:62;;10120:43:::1;::::0;;;10047:62;10128:10;10120:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;6594:370:::0;-1:-1:-1;;;;;6714:19:0;;6694:4;6714:19;;;:11;:19;;;;;;;;6734:10;6714:31;;;;;;;;-1:-1:-1;;6714:52:0;6711:186;;6816:69;;;;;;;;;;;-1:-1:-1;;;6816:69:0;;;;;;;;-1:-1:-1;;;;;6816:19:0;;-1:-1:-1;6816:19:0;;;:11;:19;;;;;6836:10;6816:31;;;;;;;;;;:69;;6852:6;;6816:35;:69::i;:::-;-1:-1:-1;;;;;6782:19:0;;;;;;:11;:19;;;;;;;;6802:10;6782:31;;;;;;;:103;6711:186;6916:40;6930:6;6938:9;6949:6;6916:13;:40::i;:::-;6909:47;;6594:370;;;;;;:::o;12896:137::-;13009:9;:15;;;;3542:42;12949:7;12991:15;;;;;12949:7;;13009:15;3860:12;3798:1;3860:2;:12;:::i;:::-;3846:26;;:11;:26;:::i;:::-;12977:29;;;;:::i;:::-;:47;;;;:::i;:::-;12969:56;;12896:137;:::o;11636:303::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;11767:3:::1;11748:22:::0;::::1;11740:71;;;;-1:-1:-1::0;;;11740:71:0::1;;;;;;;:::i;:::-;11827:9;11822:110;11840:20:::0;;::::1;11822:110;;;11914:6;11882:15;:29;11898:9;;11908:1;11898:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11882:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11882:29:0;:38;;-1:-1:-1;;11882:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11862:3:::1;::::0;::::1;:::i;:::-;;;11822:110;;6300:122:::0;6355:4;6379:35;6387:7;-1:-1:-1;;6379:7:0;:35::i;12266:199::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;12366:14:::1;:22:::0;;;;12399:13:::1;:20:::0;;;;12430:18:::1;:27:::0;12266:199::o;2796:125::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;2879:5:::1;2870::::0;;-1:-1:-1;;;;;2870:5:0::1;2855:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;2855:29:0::1;::::0;;2895:18;;-1:-1:-1;;;;;;2895:18:0::1;::::0;;2796:125::o;10179:286::-;10270:12;2660:5;;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;10298:6:::1;10308:1;10298:11:::0;10295:95:::1;;10334:44;::::0;-1:-1:-1;;;10334:44:0;;10372:4:::1;10334:44;::::0;::::1;1038:51:1::0;-1:-1:-1;;;;;10334:29:0;::::1;::::0;::::1;::::0;1011:18:1;;10334:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10325:53;;10295:95;10409:48;::::0;-1:-1:-1;;;10409:48:0;;10438:10:::1;10409:48;::::0;::::1;8697:51:1::0;8764:18;;;8757:34;;;-1:-1:-1;;;;;10409:28:0;::::1;::::0;::::1;::::0;8670:18:1;;10409:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12473:228::-:0;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;12592:20:::1;:44:::0;;-1:-1:-1;;;;;12592:44:0;;::::1;-1:-1:-1::0;;;;;;12592:44:0;;::::1;;::::0;;;12647:21:::1;:46:::0;;;;;::::1;::::0;::::1;;::::0;;12473:228::o;6430:156::-;6510:4;6534:44;6548:10;6560:9;6571:6;6534:13;:44::i;2299:94::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2359:19:0::1;;::::0;;;2381:4:::1;2359:19;::::0;;;;;;;:26;;-1:-1:-1;;2359:26:0::1;::::0;;::::1;::::0;;2299:94::o;7241:262::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;7375:1:::1;7347:24;:29;;7339:82;;;::::0;-1:-1:-1;;;7339:82:0;;9254:2:1;7339:82:0::1;::::0;::::1;9236:21:1::0;9293:2;9273:18;;;9266:30;9332:34;9312:18;;;9305:62;-1:-1:-1;;;9383:18:1;;;9376:39;9432:19;;7339:82:0::1;9052:405:1::0;7339:82:0::1;7491:4;7462:24:::0;3860:12:::1;3798:1;3860:2;:12;:::i;:::-;3846:26;::::0;:11:::1;:26;:::i;:::-;7448:38;;;;:::i;:::-;7447:48;;;;:::i;:::-;7432:12;:63:::0;-1:-1:-1;7241:262:0:o;10473:79::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;10526:11:::1;:18:::0;;-1:-1:-1;;;;10526:18:0::1;-1:-1:-1::0;;;10526:18:0::1;::::0;;10473:79::o;12709:179::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;12805:11:::1;:22:::0;;-1:-1:-1;;;;12805:22:0::1;-1:-1:-1::0;;;12805:22:0;::::1;;;;::::0;;12868:12;3860::::1;3798:1;3860:2;:12;:::i;:::-;3846:26;::::0;:11:::1;:26;:::i;:::-;12854;;;;:::i;:::-;12838:13;:42:::0;-1:-1:-1;;12709:179:0:o;2401:161::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;2480:5:::1;::::0;-1:-1:-1;;;;;2480:5:0;;::::1;2473:12:::0;;::::1;::::0;2465:51:::1;;;::::0;-1:-1:-1;;;2465:51:0;;9664:2:1;2465:51:0::1;::::0;::::1;9646:21:1::0;9703:2;9683:18;;;9676:30;9742:28;9722:18;;;9715:56;9788:18;;2465:51:0::1;9462:350:1::0;2465:51:0::1;-1:-1:-1::0;;;;;2527:19:0::1;2549:5;2527:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2527:27:0::1;::::0;;2401:161::o;2681:107::-;-1:-1:-1;;;;;2761:19:0;2737:4;2761:19;;;:14;:19;;;;;;;;;2681:107::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;7511:1115::-;7623:6;;7603:4;;7623:6;;7620:63;;;7639:41;7654:6;7662:9;7673:6;7639:14;:41::i;:::-;7632:48;;;;7620:63;-1:-1:-1;;;;;7699:22:0;;;;;;:14;:22;;;;;;;;7698:23;:53;;;;-1:-1:-1;;;;;;7726:25:0;;;;;;:14;:25;;;;;;;;7725:26;7698:53;7695:127;;;7775:11;;-1:-1:-1;;;7775:11:0;;;;7767:43;;;;-1:-1:-1;;;7767:43:0;;10019:2:1;7767:43:0;;;10001:21:1;10058:2;10038:18;;;10031:30;-1:-1:-1;;;10077:18:1;;;10070:50;10137:18;;7767:43:0;9817:344:1;7767:43:0;-1:-1:-1;;;;;7839:22:0;;;;;;:14;:22;;;;;;;;7838:23;:55;;;;-1:-1:-1;;;;;;7866:27:0;;;;;;:19;:27;;;;;;;;7865:28;7838:55;:90;;;;-1:-1:-1;;;;;;7898:30:0;;;;;;:19;:30;;;;;;;;7897:31;7838:90;:111;;;;;7945:4;-1:-1:-1;;;;;7932:17:0;:9;-1:-1:-1;;;;;7932:17:0;;;7838:111;7834:230;;;8009:15;;-1:-1:-1;;;;;7975:20:0;;;;;;:9;:20;;;;;;:29;;7998:6;;7975:29;:::i;:::-;7974:50;;7966:86;;;;-1:-1:-1;;;7966:86:0;;10501:2:1;7966:86:0;;;10483:21:1;10540:2;10520:18;;;10513:30;10579:26;10559:18;;;10552:54;10623:18;;7966:86:0;10299:348:1;7966:86:0;8099:12;;8089:6;:22;;8088:51;;;-1:-1:-1;;;;;;8116:23:0;;;;;;:15;:23;;;;;;;;8088:51;:81;;;-1:-1:-1;;;;;;8143:26:0;;;;;;:15;:26;;;;;;;;8088:81;8080:115;;;;-1:-1:-1;;;8080:115:0;;10854:2:1;8080:115:0;;;10836:21:1;10893:2;10873:18;;;10866:30;-1:-1:-1;;;10912:18:1;;;10905:51;10973:18;;8080:115:0;10652:345:1;8080:115:0;8211:16;:14;:16::i;:::-;8208:35;;;8230:10;:8;:10::i;:::-;8275:53;;;;;;;;;;;-1:-1:-1;;;8275:53:0;;;;;;;;-1:-1:-1;;;;;8275:17:0;;-1:-1:-1;8275:17:0;;;:9;:17;;;;;;;;:53;;8297:6;;8275:21;:53::i;:::-;-1:-1:-1;;;;;8255:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8367:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;8390:22:0;;;;;;:11;:22;;;;;;;;8367:45;8366:93;;8425:34;8433:6;8441;8449:9;8425:7;:34::i;:::-;8366:93;;;8416:6;8366:93;-1:-1:-1;;;;;8495:20:0;;;;;;:9;:20;;;;;;8341:118;;-1:-1:-1;8495:40:0;;8341:118;8495:24;:40::i;:::-;-1:-1:-1;;;;;8472:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8553:43;;;;;;;;;;8581:14;1246:25:1;;1234:2;1219:18;;1100:177;8553:43:0;;;;;;;;-1:-1:-1;8614:4:0;;7511:1115;-1:-1:-1;;;;7511:1115:0:o;8638:330::-;8768:53;;;;;;;;;;;-1:-1:-1;;;8768:53:0;;;;;;;;-1:-1:-1;;;;;8768:17:0;;8731:4;8768:17;;;:9;:17;;;;;;;:53;;8790:6;;8768:21;:53::i;:::-;-1:-1:-1;;;;;8748:17:0;;;;;;;:9;:17;;;;;;:73;;;;8855:20;;;;;;;:32;;8880:6;8855:24;:32::i;:::-;-1:-1:-1;;;;;8832:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8903:35;;;;;;;;;;8931:6;1246:25:1;;1234:2;1219:18;;1100:177;8903:35:0;;;;;;;;-1:-1:-1;8956:4:0;8638:330;;;;;:::o;9707:197::-;9756:4;9780:10;-1:-1:-1;;;;;9794:4:0;9780:18;;;;;:38;;-1:-1:-1;9812:6:0;;;;9811:7;9780:38;:62;;;;-1:-1:-1;9831:11:0;;-1:-1:-1;;;9831:11:0;;;;9780:62;:116;;;;-1:-1:-1;;9883:13:0;;9873:4;9855:24;;;;:9;:24;;;;;;:41;;;9707:197::o;10560:765::-;4916:6;:13;;-1:-1:-1;;4916:13:0;4925:4;4916:13;;;10635:16:::1;::::0;;10649:1:::1;10635:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10635:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10635:16:0::1;10611:40;;10680:4;10662;10667:1;10662:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;10662:23:0::1;;;-1:-1:-1::0;;;;;10662:23:0::1;;;::::0;::::1;10706:4;10696;10701:1;10696:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10696:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;10723:6:::1;::::0;10795:13:::1;::::0;10723:189:::1;::::0;-1:-1:-1;;;10723:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;10795:13;10723:6:::1;::::0;10839:4;;10866::::1;::::0;10886:15:::1;::::0;10723:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11037:8:0::1;::::0;11021:12:::1;::::0;10945:21:::1;::::0;-1:-1:-1;10925:17:0::1;::::0;-1:-1:-1;11009:24:0::1;::::0;10945:21;11009:24:::1;:::i;:::-;11008:37;;;;:::i;:::-;10979:66;;11056:27;11116:8;;11099:13;;11087:9;:25;;;;:::i;:::-;11086:38;;;;:::i;:::-;11166:20;::::0;11158:65:::1;::::0;11056:68;;-1:-1:-1;11138:15:0::1;::::0;-1:-1:-1;;;;;11166:20:0;;::::1;::::0;11200:18;;11138:15;11158:65;11138:15;11158:65;11200:18;11166:20;11158:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;11258:21:0::1;::::0;11250:67:::1;::::0;11137:86;;-1:-1:-1;;;;;;11258:21:0::1;::::0;11293:19;;11250:67:::1;::::0;;;11293:19;11258:21;11250:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4934:6:0;:14;;-1:-1:-1;;4934:14:0;;;-1:-1:-1;;;;;;10560:765:0:o;8976:723::-;9062:7;9085:11;;;:28;;-1:-1:-1;9100:8:0;;:13;9085:28;9082:72;;;-1:-1:-1;9136:6:0;9129:13;;9082:72;9187:18;;-1:-1:-1;;;;;9234:4:0;9221:17;;;;;;9218:154;;-1:-1:-1;9268:14:0;;9218:154;;;9313:4;-1:-1:-1;;;;;9303:14:0;:6;-1:-1:-1;;;;;9303:14:0;;9300:72;;-1:-1:-1;9347:13:0;;9300:72;9384:17;9404:62;9445:20;4462:3;;9445:20;:::i;:::-;9404:36;9429:10;9404:20;9415:8;;9404:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;9384:82;-1:-1:-1;9482:13:0;;9479:172;;9556:4;9538:24;;;;:9;:24;;;;;;:39;;9567:9;9538:28;:39::i;:::-;9529:4;9511:24;;;;:9;:24;;;;;;;:66;;;;9597:42;;-1:-1:-1;;;;;9597:42:0;;;;;;;9629:9;1246:25:1;;1234:2;1219:18;;1100:177;9597:42:0;;;;;;;;9479:172;9670:21;:6;9681:9;9670:10;:21::i;:::-;9663:28;8976:723;-1:-1:-1;;;;;;8976:723:0:o;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;12531:2:1;199:46:0;;;12513:21:1;12570:2;12550:18;;;12543:30;12609:29;12589:18;;;12582:57;12656:18;;199:46:0;12329:351:1;620:250:0;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;12887:2:1;785:56:0;;;12869:21:1;12926:2;12906:18;;;12899:30;12965:34;12945:18;;;12938:62;-1:-1:-1;;;13016:18:1;;;13009:31;13057:19;;785:56:0;12685:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:750::-;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;383:18;424:2;416:6;413:14;410:34;;;440:1;437;430:12;410:34;478:6;467:9;463:22;453:32;;523:7;516:4;512:2;508:13;504:27;494:55;;545:1;542;535:12;494:55;585:2;572:16;611:2;603:6;600:14;597:34;;;627:1;624;617:12;597:34;682:7;675:4;665:6;662:1;658:14;654:2;650:23;646:34;643:47;640:67;;;703:1;700;693:12;640:67;734:4;726:13;;;;-1:-1:-1;758:6:1;-1:-1:-1;;799:20:1;;786:34;829:28;786:34;829:28;:::i;:::-;876:5;866:15;;;137:750;;;;;:::o;1282:597::-;1394:4;1423:2;1452;1441:9;1434:21;1484:6;1478:13;1527:6;1522:2;1511:9;1507:18;1500:34;1552:1;1562:140;1576:6;1573:1;1570:13;1562:140;;;1671:14;;;1667:23;;1661:30;1637:17;;;1656:2;1633:26;1626:66;1591:10;;1562:140;;;1720:6;1717:1;1714:13;1711:91;;;1790:1;1785:2;1776:6;1765:9;1761:22;1757:31;1750:42;1711:91;-1:-1:-1;1863:2:1;1842:15;-1:-1:-1;;1838:29:1;1823:45;;;;1870:2;1819:54;;1282:597;-1:-1:-1;;;1282:597:1:o;1884:180::-;1943:6;1996:2;1984:9;1975:7;1971:23;1967:32;1964:52;;;2012:1;2009;2002:12;1964:52;-1:-1:-1;2035:23:1;;1884:180;-1:-1:-1;1884:180:1:o;2069:173::-;2137:20;;-1:-1:-1;;;;;2186:31:1;;2176:42;;2166:70;;2232:1;2229;2222:12;2166:70;2069:173;;;:::o;2247:254::-;2315:6;2323;2376:2;2364:9;2355:7;2351:23;2347:32;2344:52;;;2392:1;2389;2382:12;2344:52;2415:29;2434:9;2415:29;:::i;:::-;2405:39;2491:2;2476:18;;;;2463:32;;-1:-1:-1;;;2247:254:1:o;2698:328::-;2775:6;2783;2791;2844:2;2832:9;2823:7;2819:23;2815:32;2812:52;;;2860:1;2857;2850:12;2812:52;2883:29;2902:9;2883:29;:::i;:::-;2873:39;;2931:38;2965:2;2954:9;2950:18;2931:38;:::i;:::-;2921:48;;3016:2;3005:9;3001:18;2988:32;2978:42;;2698:328;;;;;:::o;3031:186::-;3090:6;3143:2;3131:9;3122:7;3118:23;3114:32;3111:52;;;3159:1;3156;3149:12;3111:52;3182:29;3201:9;3182:29;:::i;3411:316::-;3488:6;3496;3504;3557:2;3545:9;3536:7;3532:23;3528:32;3525:52;;;3573:1;3570;3563:12;3525:52;-1:-1:-1;;3596:23:1;;;3666:2;3651:18;;3638:32;;-1:-1:-1;3717:2:1;3702:18;;;3689:32;;3411:316;-1:-1:-1;3411:316:1:o;3732:260::-;3800:6;3808;3861:2;3849:9;3840:7;3836:23;3832:32;3829:52;;;3877:1;3874;3867:12;3829:52;3900:29;3919:9;3900:29;:::i;:::-;3890:39;;3948:38;3982:2;3971:9;3967:18;3948:38;:::i;:::-;3938:48;;3732:260;;;;;:::o;3997:309::-;4062:6;4070;4123:2;4111:9;4102:7;4098:23;4094:32;4091:52;;;4139:1;4136;4129:12;4091:52;4178:9;4165:23;4197:28;4219:5;4197:28;:::i;4537:335::-;4739:2;4721:21;;;4778:2;4758:18;;;4751:30;-1:-1:-1;;;4812:2:1;4797:18;;4790:41;4863:2;4848:18;;4537:335::o;4877:401::-;5079:2;5061:21;;;5118:2;5098:18;;;5091:30;5157:34;5152:2;5137:18;;5130:62;-1:-1:-1;;;5223:2:1;5208:18;;5201:35;5268:3;5253:19;;4877:401::o;5283:127::-;5344:10;5339:3;5335:20;5332:1;5325:31;5375:4;5372:1;5365:15;5399:4;5396:1;5389:15;5415:127;5476:10;5471:3;5467:20;5464:1;5457:31;5507:4;5504:1;5497:15;5531:4;5528:1;5521:15;5547:135;5586:3;5607:17;;;5604:43;;5627:18;;:::i;:::-;-1:-1:-1;5674:1:1;5663:13;;5547:135::o;5687:329::-;5889:2;5871:21;;;5928:1;5908:18;;;5901:29;-1:-1:-1;;;5961:2:1;5946:18;;5939:36;6007:2;5992:18;;5687:329::o;6426:422::-;6515:1;6558:5;6515:1;6572:270;6593:7;6583:8;6580:21;6572:270;;;6652:4;6648:1;6644:6;6640:17;6634:4;6631:27;6628:53;;;6661:18;;:::i;:::-;6711:7;6701:8;6697:22;6694:55;;;6731:16;;;;6694:55;6810:22;;;;6770:15;;;;6572:270;;;6576:3;6426:422;;;;;:::o;6853:806::-;6902:5;6932:8;6922:80;;-1:-1:-1;6973:1:1;6987:5;;6922:80;7021:4;7011:76;;-1:-1:-1;7058:1:1;7072:5;;7011:76;7103:4;7121:1;7116:59;;;;7189:1;7184:130;;;;7096:218;;7116:59;7146:1;7137:10;;7160:5;;;7184:130;7221:3;7211:8;7208:17;7205:43;;;7228:18;;:::i;:::-;-1:-1:-1;;7284:1:1;7270:16;;7299:5;;7096:218;;7398:2;7388:8;7385:16;7379:3;7373:4;7370:13;7366:36;7360:2;7350:8;7347:16;7342:2;7336:4;7333:12;7329:35;7326:77;7323:159;;;-1:-1:-1;7435:19:1;;;7467:5;;7323:159;7514:34;7539:8;7533:4;7514:34;:::i;:::-;7584:6;7580:1;7576:6;7572:19;7563:7;7560:32;7557:58;;;7595:18;;:::i;:::-;7633:20;;6853:806;-1:-1:-1;;;6853:806:1:o;7664:140::-;7722:5;7751:47;7792:4;7782:8;7778:19;7772:4;7751:47;:::i;7809:168::-;7849:7;7915:1;7911;7907:6;7903:14;7900:1;7897:21;7892:1;7885:9;7878:17;7874:45;7871:71;;;7922:18;;:::i;:::-;-1:-1:-1;7962:9:1;;7809:168::o;7982:217::-;8022:1;8048;8038:132;;8092:10;8087:3;8083:20;8080:1;8073:31;8127:4;8124:1;8117:15;8155:4;8152:1;8145:15;8038:132;-1:-1:-1;8184:9:1;;7982:217::o;8204:125::-;8244:4;8272:1;8269;8266:8;8263:34;;;8277:18;;:::i;:::-;-1:-1:-1;8314:9:1;;8204:125::o;8334:184::-;8404:6;8457:2;8445:9;8436:7;8432:23;8428:32;8425:52;;;8473:1;8470;8463:12;8425:52;-1:-1:-1;8496:16:1;;8334:184;-1:-1:-1;8334:184:1:o;8802:245::-;8869:6;8922:2;8910:9;8901:7;8897:23;8893:32;8890:52;;;8938:1;8935;8928:12;8890:52;8970:9;8964:16;8989:28;9011:5;8989:28;:::i;10166:128::-;10206:3;10237:1;10233:6;10230:1;10227:13;10224:39;;;10243:18;;:::i;:::-;-1:-1:-1;10279:9:1;;10166:128::o;11134:980::-;11396:4;11444:3;11433:9;11429:19;11475:6;11464:9;11457:25;11501:2;11539:6;11534:2;11523:9;11519:18;11512:34;11582:3;11577:2;11566:9;11562:18;11555:31;11606:6;11641;11635:13;11672:6;11664;11657:22;11710:3;11699:9;11695:19;11688:26;;11749:2;11741:6;11737:15;11723:29;;11770:1;11780:195;11794:6;11791:1;11788:13;11780:195;;;11859:13;;-1:-1:-1;;;;;11855:39:1;11843:52;;11950:15;;;;11915:12;;;;11891:1;11809:9;11780:195;;;-1:-1:-1;;;;;;;12031:32:1;;;;12026:2;12011:18;;12004:60;-1:-1:-1;;;12095:3:1;12080:19;12073:35;11992:3;11134:980;-1:-1:-1;;;11134:980:1:o
Swarm Source
ipfs://4d0f6012c2c832e02af05d17718c288c8f4a64eeae6334b4581400deb1aaa78a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.