Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 18 from a total of 18 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Set Trading | 15625274 | 1260 days ago | IN | 0 ETH | 0.00056214 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625274 | 1260 days ago | IN | 0 ETH | 0.0011747 | ||||
| Approve | 15625270 | 1260 days ago | IN | 0 ETH | 0.00099799 | ||||
| Approve | 15625264 | 1260 days ago | IN | 0 ETH | 0.00091848 | ||||
| Approve | 15625264 | 1260 days ago | IN | 0 ETH | 0.0009893 | ||||
| Approve | 15625264 | 1260 days ago | IN | 0 ETH | 0.0009893 | ||||
| Approve | 15625259 | 1260 days ago | IN | 0 ETH | 0.00082448 | ||||
| Set Trading | 15625256 | 1260 days ago | IN | 0 ETH | 0.00046345 | ||||
| Transfer | 15625255 | 1260 days ago | IN | 0 ETH | 0.00031843 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
RunKwonRun
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-09-27
*/
/**
*Submitted for verification at Etherscan.io on 2022-09-26
*/
// SPDX-License-Identifier: Unlicensed
/**
Tax: 3% Buy
*/
pragma solidity ^0.8.7;
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
);
}
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);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
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 IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
contract RunKwonRun is Context, IERC20, Ownable {
using SafeMath for uint256;
string private constant _name = "RUN KWON RUN";//
string private constant _symbol = "RUN";//
uint8 private constant _decimals = 9;
mapping(address => uint256) private _rOwned;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
uint256 private constant MAX = ~uint256(0);
uint256 private constant _tTotal = 100000000000 * 10**9;
uint256 private _rTotal = (MAX - (MAX % _tTotal));
uint256 private _tFeeTotal;
//Buy Fee
uint256 private _redisFeeOnBuy = 0;//
uint256 private _taxFeeOnBuy = 3;//
//Sell Fee
uint256 private _redisFeeOnSell = 0;//
uint256 private _taxFeeOnSell = 3;//
//Original Fee
uint256 private _redisFee = _redisFeeOnSell;
uint256 private _taxFee = _taxFeeOnSell;
uint256 private _previousredisFee = _redisFee;
uint256 private _previoustaxFee = _taxFee;
mapping(address => bool) public bots;
mapping(address => uint256) private cooldown;
address payable private _developmentAddress = payable(0xCaA0Ce7904e3Eb815Aa8ef53d1997E3dCC6151fB);
address payable private _marketingAddress = payable(0xCaA0Ce7904e3Eb815Aa8ef53d1997E3dCC6151fB);
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = true;
uint256 public _maxTxAmount = 1000000000 * 10**9; //
uint256 public _maxWalletSize = 2000000000 * 10**9; //
uint256 public _swapTokensAtAmount = 1000000000 * 10**9; //
event MaxTxAmountUpdated(uint256 _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor() {
_rOwned[_msgSender()] = _rTotal;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_developmentAddress] = true;
_isExcludedFromFee[_marketingAddress] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return tokenFromReflection(_rOwned[account]);
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function tokenFromReflection(uint256 rAmount)
private
view
returns (uint256)
{
require(
rAmount <= _rTotal,
"Amount must be less than total reflections"
);
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function removeAllFee() private {
if (_redisFee == 0 && _taxFee == 0) return;
_previousredisFee = _redisFee;
_previoustaxFee = _taxFee;
_redisFee = 0;
_taxFee = 0;
}
function restoreAllFee() private {
_redisFee = _previousredisFee;
_taxFee = _previoustaxFee;
}
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");
if (from != owner() && to != owner()) {
//Trade start check
if (!tradingOpen) {
require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
}
require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
if(to != uniswapV2Pair) {
require(balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
if(contractTokenBalance >= _maxTxAmount)
{
contractTokenBalance = _maxTxAmount;
}
if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
swapTokensForEth(contractTokenBalance);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
bool takeFee = true;
//Transfer Tokens
if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
takeFee = false;
} else {
//Set Fee for Buys
if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
_redisFee = _redisFeeOnBuy;
_taxFee = _taxFeeOnBuy;
}
//Set Fee for Sells
if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
_redisFee = _redisFeeOnSell;
_taxFee = _taxFeeOnSell;
}
}
_tokenTransfer(from, to, amount, takeFee);
}
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 sendETHToFee(uint256 amount) private {
_developmentAddress.transfer(amount.div(2));
_marketingAddress.transfer(amount.div(2));
}
function setTrading(bool _tradingOpen) public onlyOwner {
tradingOpen = _tradingOpen;
}
function manualswap() external {
require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
uint256 contractBalance = balanceOf(address(this));
swapTokensForEth(contractBalance);
}
function manualsend() external {
require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
function _tokenTransfer(
address sender,
address recipient,
uint256 amount,
bool takeFee
) private {
if (!takeFee) removeAllFee();
_transferStandard(sender, recipient, amount);
if (!takeFee) restoreAllFee();
}
function _transferStandard(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tTeam
) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeTeam(tTeam);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _takeTeam(uint256 tTeam) private {
uint256 currentRate = _getRate();
uint256 rTeam = tTeam.mul(currentRate);
_rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
receive() external payable {}
function _getValues(uint256 tAmount)
private
view
returns (
uint256,
uint256,
uint256,
uint256,
uint256,
uint256
)
{
(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
_getTValues(tAmount, _redisFee, _taxFee);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
_getRValues(tAmount, tFee, tTeam, currentRate);
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
}
function _getTValues(
uint256 tAmount,
uint256 redisFee,
uint256 taxFee
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 tFee = tAmount.mul(redisFee).div(100);
uint256 tTeam = tAmount.mul(taxFee).div(100);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
return (tTransferAmount, tFee, tTeam);
}
function _getRValues(
uint256 tAmount,
uint256 tFee,
uint256 tTeam,
uint256 currentRate
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTeam = tTeam.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
//Set minimum tokens required to swap.
function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
_swapTokensAtAmount = swapTokensAtAmount;
}
//Set minimum tokens required to swap.
function toggleSwap(bool _swapEnabled) public onlyOwner {
swapEnabled = _swapEnabled;
}
//Can Increase Max Limits after renounce . Cannot Lower
function increaseLimits(uint256 maxTxAmount_, uint256 maxWalletSize_) public {
require(_msgSender() == _developmentAddress);
require(maxTxAmount_ > _maxTxAmount && maxTxAmount_ <= totalSupply(), "Out of range");
require(maxWalletSize_ > _maxWalletSize && maxWalletSize_ <= totalSupply(), "Out of range");
_maxTxAmount = maxTxAmount_;
_maxWalletSize = maxWalletSize_;
}
function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
for(uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromFee[accounts[i]] = excluded;
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize_","type":"uint256"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405268056bc75e2d631000006000196200001d91906200083a565b6000196200002c9190620007c1565b6005556000600755600360085560006009556003600a55600954600b55600a54600c55600b54600d55600c54600e5573caa0ce7904e3eb815aa8ef53d1997e3dcc6151fb601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073caa0ce7904e3eb815aa8ef53d1997e3dcc6151fb601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550670de0b6b3a7640000601555671bc16d674ec80000601655670de0b6b3a76400006017553480156200016c57600080fd5b5060006200017f620006db60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506005546001600062000234620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031357600080fd5b505afa15801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e919062000723565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000723565b6040518363ffffffff1660e01b81526004016200040b92919062000777565b602060405180830381600087803b1580156200042657600080fd5b505af11580156200043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000461919062000723565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620004b7620006e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000664620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d63100000604051620006cc9190620007a4565b60405180910390a350620008ef565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200071d81620008d5565b92915050565b6000602082840312156200073c576200073b620008d0565b5b60006200074c848285016200070c565b91505092915050565b6200076081620007fc565b82525050565b620007718162000830565b82525050565b60006040820190506200078e600083018562000755565b6200079d602083018462000755565b9392505050565b6000602082019050620007bb600083018462000766565b92915050565b6000620007ce8262000830565b9150620007db8362000830565b925082821015620007f157620007f062000872565b5b828203905092915050565b6000620008098262000810565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008478262000830565b9150620008548362000830565b925082620008675762000866620008a1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008e081620007fc565b8114620008ec57600080fd5b50565b6138d780620008ff6000396000f3fe60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610527578063c492f0461461053e578063dd62ed3e14610567578063f2fde38b146105a457610171565b806398a5c31514610484578063a9059cbb146104ad578063bfd79284146104ea57610171565b806378f8484b146103865780637d1db4a5146103af5780638da5cb5b146103da5780638f70ccf7146104055780638f9a55c01461042e57806395d89b411461045957610171565b8063313ce56711610123578063313ce5671461029c57806349bd5a5e146102c75780636d8aa8f8146102f25780636fc3eaec1461031b57806370a0823114610332578063715018a61461036f57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd146102345780632fd689e31461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612980565b61060a565b6040516101d59190612dfa565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612e15565b60405180910390f35b34801561021557600080fd5b5061021e61064e565b60405161022b9190613032565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061292d565b61065f565b6040516102689190612dfa565b60405180910390f35b34801561027d57600080fd5b50610286610738565b6040516102939190613032565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be91906130a7565b60405180910390f35b3480156102d357600080fd5b506102dc610747565b6040516102e99190612ddf565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612a20565b61076d565b005b34801561032757600080fd5b5061033061081f565b005b34801561033e57600080fd5b5061035960048036038101906103549190612893565b6108f0565b6040516103669190613032565b60405180910390f35b34801561037b57600080fd5b50610384610941565b005b34801561039257600080fd5b506103ad60048036038101906103a89190612a7a565b610a94565b005b3480156103bb57600080fd5b506103c4610bb5565b6040516103d19190613032565b60405180910390f35b3480156103e657600080fd5b506103ef610bbb565b6040516103fc9190612ddf565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612a20565b610be4565b005b34801561043a57600080fd5b50610443610c95565b6040516104509190613032565b60405180910390f35b34801561046557600080fd5b5061046e610c9b565b60405161047b9190612e30565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612a4d565b610cd8565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190612980565b610d77565b6040516104e19190612dfa565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612893565b610d95565b60405161051e9190612dfa565b60405180910390f35b34801561053357600080fd5b5061053c610db5565b005b34801561054a57600080fd5b50610565600480360381019061056091906129c0565b610e8e565b005b34801561057357600080fd5b5061058e600480360381019061058991906128ed565b610fc8565b60405161059b9190613032565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612893565b61104f565b005b60606040518060400160405280600c81526020017f52554e204b574f4e2052554e0000000000000000000000000000000000000000815250905090565b600061061e610617611211565b8484611219565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061066c8484846113e4565b61072d84610678611211565b6107288560405180606001604052806028815260200161387a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a9092919063ffffffff16565b611219565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610775611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990612f72565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610860611211565b73ffffffffffffffffffffffffffffffffffffffff1614806108d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108be611211565b73ffffffffffffffffffffffffffffffffffffffff16145b6108df57600080fd5b60004790506108ed81611cce565b50565b600061093a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc9565b9050919050565b610949611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad5611211565b73ffffffffffffffffffffffffffffffffffffffff1614610af557600080fd5b60155482118015610b0d5750610b0961064e565b8211155b610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612ff2565b60405180910390fd5b60165481118015610b645750610b6061064e565b8111155b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612ff2565b60405180910390fd5b81601581905550806016819055505050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bec611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612f72565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600381526020017f52554e0000000000000000000000000000000000000000000000000000000000815250905090565b610ce0611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612f72565b60405180910390fd5b8060178190555050565b6000610d8b610d84611211565b84846113e4565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df6611211565b73ffffffffffffffffffffffffffffffffffffffff161480610e6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e54611211565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7557600080fd5b6000610e80306108f0565b9050610e8b81611e37565b50565b610e96611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f72565b60405180910390fd5b60005b83839050811015610fc2578160046000868685818110610f4957610f486133a3565b5b9050602002016020810190610f5e9190612893565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fba906132fc565b915050610f26565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611057611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612ef2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190613032565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612fb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612e52565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612f92565b60405180910390fd5b61150f610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610bbb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119695760148054906101000a900460ff1661160a5761159c610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612e72565b60405180910390fd5b5b60155481111561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612eb2565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612f12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117e05760165481611794846108f0565b61179e9190613117565b11156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612fd2565b60405180910390fd5b5b60006117eb306108f0565b90506000601754821015905060155482106118065760155491505b8080156118205750601460159054906101000a900460ff16155b801561187a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118925750601460169054906101000a900460ff165b80156118e85750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193e5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119665761194c82611e37565b600047905060008111156119645761196347611cce565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ac35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ad15760009050611c58565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b9457600754600b81905550600854600c819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5757600954600b81905550600a54600c819055505b5b611c64848484846120bf565b50505050565b6000838311158290611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca99190612e30565b60405180910390fd5b5060008385611cc191906131f8565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d1e6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d49573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d9a6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc5573d6000803e3d6000fd5b5050565b6000600554821115611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612e92565b60405180910390fd5b6000611e1a612136565b9050611e2f81846120ec90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6f57611e6e6133d2565b5b604051908082528060200260200182016040528015611e9d5781602001602082028036833780820191505090505b5090503081600081518110611eb557611eb46133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5757600080fd5b505afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906128c0565b81600181518110611fa357611fa26133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200a30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206e95949392919061304d565b600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120cd576120cc612161565b5b6120d88484846121a4565b806120e6576120e561236f565b5b50505050565b600061212e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612383565b905092915050565b60008060006121436123e6565b9150915061215a81836120ec90919063ffffffff16565b9250505090565b6000600b5414801561217557506000600c54145b1561217f576121a2565b600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806121b687612448565b95509550955095509550955061221486600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b090919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a985600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f581612558565b6122ff8483612615565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161235c9190613032565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080831182906123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19190612e30565b60405180910390fd5b50600083856123d9919061316d565b9050809150509392505050565b60008060006005549050600068056bc75e2d63100000905061241c68056bc75e2d631000006005546120ec90919063ffffffff16565b82101561243b5760055468056bc75e2d63100000935093505050612444565b81819350935050505b9091565b60008060008060008060008060006124658a600b54600c5461264f565b9250925092506000612475612136565b905060008060006124888e8787876126e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6a565b905092915050565b60008082846125099190613117565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590612f32565b60405180910390fd5b8091505092915050565b6000612562612136565b90506000612579828461276e90919063ffffffff16565b90506125cd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61262a826005546124b090919063ffffffff16565b600581905550612645816006546124fa90919063ffffffff16565b6006819055505050565b60008060008061267b606461266d888a61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126a56064612697888b61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126ce826126c0858c6124b090919063ffffffff16565b6124b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126fe858961276e90919063ffffffff16565b90506000612715868961276e90919063ffffffff16565b9050600061272c878961276e90919063ffffffff16565b905060006127558261274785876124b090919063ffffffff16565b6124b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561278157600090506127e3565b6000828461278f919061319e565b905082848261279e919061316d565b146127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d590612f52565b60405180910390fd5b809150505b92915050565b6000813590506127f881613834565b92915050565b60008151905061280d81613834565b92915050565b60008083601f84011261282957612828613406565b5b8235905067ffffffffffffffff81111561284657612845613401565b5b6020830191508360208202830111156128625761286161340b565b5b9250929050565b6000813590506128788161384b565b92915050565b60008135905061288d81613862565b92915050565b6000602082840312156128a9576128a8613415565b5b60006128b7848285016127e9565b91505092915050565b6000602082840312156128d6576128d5613415565b5b60006128e4848285016127fe565b91505092915050565b6000806040838503121561290457612903613415565b5b6000612912858286016127e9565b9250506020612923858286016127e9565b9150509250929050565b60008060006060848603121561294657612945613415565b5b6000612954868287016127e9565b9350506020612965868287016127e9565b92505060406129768682870161287e565b9150509250925092565b6000806040838503121561299757612996613415565b5b60006129a5858286016127e9565b92505060206129b68582860161287e565b9150509250929050565b6000806000604084860312156129d9576129d8613415565b5b600084013567ffffffffffffffff8111156129f7576129f6613410565b5b612a0386828701612813565b93509350506020612a1686828701612869565b9150509250925092565b600060208284031215612a3657612a35613415565b5b6000612a4484828501612869565b91505092915050565b600060208284031215612a6357612a62613415565b5b6000612a718482850161287e565b91505092915050565b60008060408385031215612a9157612a90613415565b5b6000612a9f8582860161287e565b9250506020612ab08582860161287e565b9150509250929050565b6000612ac68383612ad2565b60208301905092915050565b612adb8161322c565b82525050565b612aea8161322c565b82525050565b6000612afb826130d2565b612b0581856130f5565b9350612b10836130c2565b8060005b83811015612b41578151612b288882612aba565b9750612b33836130e8565b925050600181019050612b14565b5085935050505092915050565b612b578161323e565b82525050565b612b6681613281565b82525050565b612b7581613293565b82525050565b6000612b86826130dd565b612b908185613106565b9350612ba08185602086016132c9565b612ba98161341a565b840191505092915050565b6000612bc1602383613106565b9150612bcc8261342b565b604082019050919050565b6000612be4603f83613106565b9150612bef8261347a565b604082019050919050565b6000612c07602a83613106565b9150612c12826134c9565b604082019050919050565b6000612c2a601c83613106565b9150612c3582613518565b602082019050919050565b6000612c4d602683613106565b9150612c5882613541565b604082019050919050565b6000612c70602283613106565b9150612c7b82613590565b604082019050919050565b6000612c93602383613106565b9150612c9e826135df565b604082019050919050565b6000612cb6601b83613106565b9150612cc18261362e565b602082019050919050565b6000612cd9602183613106565b9150612ce482613657565b604082019050919050565b6000612cfc602083613106565b9150612d07826136a6565b602082019050919050565b6000612d1f602983613106565b9150612d2a826136cf565b604082019050919050565b6000612d42602583613106565b9150612d4d8261371e565b604082019050919050565b6000612d65602383613106565b9150612d708261376d565b604082019050919050565b6000612d88600c83613106565b9150612d93826137bc565b602082019050919050565b6000612dab602483613106565b9150612db6826137e5565b604082019050919050565b612dca8161326a565b82525050565b612dd981613274565b82525050565b6000602082019050612df46000830184612ae1565b92915050565b6000602082019050612e0f6000830184612b4e565b92915050565b6000602082019050612e2a6000830184612b5d565b92915050565b60006020820190508181036000830152612e4a8184612b7b565b905092915050565b60006020820190508181036000830152612e6b81612bb4565b9050919050565b60006020820190508181036000830152612e8b81612bd7565b9050919050565b60006020820190508181036000830152612eab81612bfa565b9050919050565b60006020820190508181036000830152612ecb81612c1d565b9050919050565b60006020820190508181036000830152612eeb81612c40565b9050919050565b60006020820190508181036000830152612f0b81612c63565b9050919050565b60006020820190508181036000830152612f2b81612c86565b9050919050565b60006020820190508181036000830152612f4b81612ca9565b9050919050565b60006020820190508181036000830152612f6b81612ccc565b9050919050565b60006020820190508181036000830152612f8b81612cef565b9050919050565b60006020820190508181036000830152612fab81612d12565b9050919050565b60006020820190508181036000830152612fcb81612d35565b9050919050565b60006020820190508181036000830152612feb81612d58565b9050919050565b6000602082019050818103600083015261300b81612d7b565b9050919050565b6000602082019050818103600083015261302b81612d9e565b9050919050565b60006020820190506130476000830184612dc1565b92915050565b600060a0820190506130626000830188612dc1565b61306f6020830187612b6c565b81810360408301526130818186612af0565b90506130906060830185612ae1565b61309d6080830184612dc1565b9695505050505050565b60006020820190506130bc6000830184612dd0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131228261326a565b915061312d8361326a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161613345565b5b828201905092915050565b60006131788261326a565b91506131838361326a565b92508261319357613192613374565b5b828204905092915050565b60006131a98261326a565b91506131b48361326a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ed576131ec613345565b5b828202905092915050565b60006132038261326a565b915061320e8361326a565b92508282101561322157613220613345565b5b828203905092915050565b60006132378261324a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061328c826132a5565b9050919050565b600061329e8261326a565b9050919050565b60006132b0826132b7565b9050919050565b60006132c28261324a565b9050919050565b60005b838110156132e75780820151818401526020810190506132cc565b838111156132f6576000848401525b50505050565b60006133078261326a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561333a57613339613345565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7574206f662072616e67650000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61383d8161322c565b811461384857600080fd5b50565b6138548161323e565b811461385f57600080fd5b50565b61386b8161326a565b811461387657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fb2d4afdaa4e8399f17a2c128ff425502d65b9e5ddbb6237dc9cbc160b6a90a964736f6c63430008070033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610527578063c492f0461461053e578063dd62ed3e14610567578063f2fde38b146105a457610171565b806398a5c31514610484578063a9059cbb146104ad578063bfd79284146104ea57610171565b806378f8484b146103865780637d1db4a5146103af5780638da5cb5b146103da5780638f70ccf7146104055780638f9a55c01461042e57806395d89b411461045957610171565b8063313ce56711610123578063313ce5671461029c57806349bd5a5e146102c75780636d8aa8f8146102f25780636fc3eaec1461031b57806370a0823114610332578063715018a61461036f57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd146102345780632fd689e31461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612980565b61060a565b6040516101d59190612dfa565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612e15565b60405180910390f35b34801561021557600080fd5b5061021e61064e565b60405161022b9190613032565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061292d565b61065f565b6040516102689190612dfa565b60405180910390f35b34801561027d57600080fd5b50610286610738565b6040516102939190613032565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be91906130a7565b60405180910390f35b3480156102d357600080fd5b506102dc610747565b6040516102e99190612ddf565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612a20565b61076d565b005b34801561032757600080fd5b5061033061081f565b005b34801561033e57600080fd5b5061035960048036038101906103549190612893565b6108f0565b6040516103669190613032565b60405180910390f35b34801561037b57600080fd5b50610384610941565b005b34801561039257600080fd5b506103ad60048036038101906103a89190612a7a565b610a94565b005b3480156103bb57600080fd5b506103c4610bb5565b6040516103d19190613032565b60405180910390f35b3480156103e657600080fd5b506103ef610bbb565b6040516103fc9190612ddf565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612a20565b610be4565b005b34801561043a57600080fd5b50610443610c95565b6040516104509190613032565b60405180910390f35b34801561046557600080fd5b5061046e610c9b565b60405161047b9190612e30565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612a4d565b610cd8565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190612980565b610d77565b6040516104e19190612dfa565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612893565b610d95565b60405161051e9190612dfa565b60405180910390f35b34801561053357600080fd5b5061053c610db5565b005b34801561054a57600080fd5b50610565600480360381019061056091906129c0565b610e8e565b005b34801561057357600080fd5b5061058e600480360381019061058991906128ed565b610fc8565b60405161059b9190613032565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612893565b61104f565b005b60606040518060400160405280600c81526020017f52554e204b574f4e2052554e0000000000000000000000000000000000000000815250905090565b600061061e610617611211565b8484611219565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061066c8484846113e4565b61072d84610678611211565b6107288560405180606001604052806028815260200161387a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a9092919063ffffffff16565b611219565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610775611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990612f72565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610860611211565b73ffffffffffffffffffffffffffffffffffffffff1614806108d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108be611211565b73ffffffffffffffffffffffffffffffffffffffff16145b6108df57600080fd5b60004790506108ed81611cce565b50565b600061093a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc9565b9050919050565b610949611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad5611211565b73ffffffffffffffffffffffffffffffffffffffff1614610af557600080fd5b60155482118015610b0d5750610b0961064e565b8211155b610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612ff2565b60405180910390fd5b60165481118015610b645750610b6061064e565b8111155b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612ff2565b60405180910390fd5b81601581905550806016819055505050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bec611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612f72565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600381526020017f52554e0000000000000000000000000000000000000000000000000000000000815250905090565b610ce0611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612f72565b60405180910390fd5b8060178190555050565b6000610d8b610d84611211565b84846113e4565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df6611211565b73ffffffffffffffffffffffffffffffffffffffff161480610e6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e54611211565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7557600080fd5b6000610e80306108f0565b9050610e8b81611e37565b50565b610e96611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f72565b60405180910390fd5b60005b83839050811015610fc2578160046000868685818110610f4957610f486133a3565b5b9050602002016020810190610f5e9190612893565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fba906132fc565b915050610f26565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611057611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612ef2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190613032565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612fb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612e52565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612f92565b60405180910390fd5b61150f610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610bbb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119695760148054906101000a900460ff1661160a5761159c610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612e72565b60405180910390fd5b5b60155481111561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612eb2565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612f12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117e05760165481611794846108f0565b61179e9190613117565b11156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612fd2565b60405180910390fd5b5b60006117eb306108f0565b90506000601754821015905060155482106118065760155491505b8080156118205750601460159054906101000a900460ff16155b801561187a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118925750601460169054906101000a900460ff165b80156118e85750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193e5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119665761194c82611e37565b600047905060008111156119645761196347611cce565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ac35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ad15760009050611c58565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b9457600754600b81905550600854600c819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5757600954600b81905550600a54600c819055505b5b611c64848484846120bf565b50505050565b6000838311158290611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca99190612e30565b60405180910390fd5b5060008385611cc191906131f8565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d1e6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d49573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d9a6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc5573d6000803e3d6000fd5b5050565b6000600554821115611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612e92565b60405180910390fd5b6000611e1a612136565b9050611e2f81846120ec90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6f57611e6e6133d2565b5b604051908082528060200260200182016040528015611e9d5781602001602082028036833780820191505090505b5090503081600081518110611eb557611eb46133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5757600080fd5b505afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906128c0565b81600181518110611fa357611fa26133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200a30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206e95949392919061304d565b600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120cd576120cc612161565b5b6120d88484846121a4565b806120e6576120e561236f565b5b50505050565b600061212e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612383565b905092915050565b60008060006121436123e6565b9150915061215a81836120ec90919063ffffffff16565b9250505090565b6000600b5414801561217557506000600c54145b1561217f576121a2565b600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806121b687612448565b95509550955095509550955061221486600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b090919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a985600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f581612558565b6122ff8483612615565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161235c9190613032565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080831182906123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19190612e30565b60405180910390fd5b50600083856123d9919061316d565b9050809150509392505050565b60008060006005549050600068056bc75e2d63100000905061241c68056bc75e2d631000006005546120ec90919063ffffffff16565b82101561243b5760055468056bc75e2d63100000935093505050612444565b81819350935050505b9091565b60008060008060008060008060006124658a600b54600c5461264f565b9250925092506000612475612136565b905060008060006124888e8787876126e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6a565b905092915050565b60008082846125099190613117565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590612f32565b60405180910390fd5b8091505092915050565b6000612562612136565b90506000612579828461276e90919063ffffffff16565b90506125cd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61262a826005546124b090919063ffffffff16565b600581905550612645816006546124fa90919063ffffffff16565b6006819055505050565b60008060008061267b606461266d888a61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126a56064612697888b61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126ce826126c0858c6124b090919063ffffffff16565b6124b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126fe858961276e90919063ffffffff16565b90506000612715868961276e90919063ffffffff16565b9050600061272c878961276e90919063ffffffff16565b905060006127558261274785876124b090919063ffffffff16565b6124b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561278157600090506127e3565b6000828461278f919061319e565b905082848261279e919061316d565b146127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d590612f52565b60405180910390fd5b809150505b92915050565b6000813590506127f881613834565b92915050565b60008151905061280d81613834565b92915050565b60008083601f84011261282957612828613406565b5b8235905067ffffffffffffffff81111561284657612845613401565b5b6020830191508360208202830111156128625761286161340b565b5b9250929050565b6000813590506128788161384b565b92915050565b60008135905061288d81613862565b92915050565b6000602082840312156128a9576128a8613415565b5b60006128b7848285016127e9565b91505092915050565b6000602082840312156128d6576128d5613415565b5b60006128e4848285016127fe565b91505092915050565b6000806040838503121561290457612903613415565b5b6000612912858286016127e9565b9250506020612923858286016127e9565b9150509250929050565b60008060006060848603121561294657612945613415565b5b6000612954868287016127e9565b9350506020612965868287016127e9565b92505060406129768682870161287e565b9150509250925092565b6000806040838503121561299757612996613415565b5b60006129a5858286016127e9565b92505060206129b68582860161287e565b9150509250929050565b6000806000604084860312156129d9576129d8613415565b5b600084013567ffffffffffffffff8111156129f7576129f6613410565b5b612a0386828701612813565b93509350506020612a1686828701612869565b9150509250925092565b600060208284031215612a3657612a35613415565b5b6000612a4484828501612869565b91505092915050565b600060208284031215612a6357612a62613415565b5b6000612a718482850161287e565b91505092915050565b60008060408385031215612a9157612a90613415565b5b6000612a9f8582860161287e565b9250506020612ab08582860161287e565b9150509250929050565b6000612ac68383612ad2565b60208301905092915050565b612adb8161322c565b82525050565b612aea8161322c565b82525050565b6000612afb826130d2565b612b0581856130f5565b9350612b10836130c2565b8060005b83811015612b41578151612b288882612aba565b9750612b33836130e8565b925050600181019050612b14565b5085935050505092915050565b612b578161323e565b82525050565b612b6681613281565b82525050565b612b7581613293565b82525050565b6000612b86826130dd565b612b908185613106565b9350612ba08185602086016132c9565b612ba98161341a565b840191505092915050565b6000612bc1602383613106565b9150612bcc8261342b565b604082019050919050565b6000612be4603f83613106565b9150612bef8261347a565b604082019050919050565b6000612c07602a83613106565b9150612c12826134c9565b604082019050919050565b6000612c2a601c83613106565b9150612c3582613518565b602082019050919050565b6000612c4d602683613106565b9150612c5882613541565b604082019050919050565b6000612c70602283613106565b9150612c7b82613590565b604082019050919050565b6000612c93602383613106565b9150612c9e826135df565b604082019050919050565b6000612cb6601b83613106565b9150612cc18261362e565b602082019050919050565b6000612cd9602183613106565b9150612ce482613657565b604082019050919050565b6000612cfc602083613106565b9150612d07826136a6565b602082019050919050565b6000612d1f602983613106565b9150612d2a826136cf565b604082019050919050565b6000612d42602583613106565b9150612d4d8261371e565b604082019050919050565b6000612d65602383613106565b9150612d708261376d565b604082019050919050565b6000612d88600c83613106565b9150612d93826137bc565b602082019050919050565b6000612dab602483613106565b9150612db6826137e5565b604082019050919050565b612dca8161326a565b82525050565b612dd981613274565b82525050565b6000602082019050612df46000830184612ae1565b92915050565b6000602082019050612e0f6000830184612b4e565b92915050565b6000602082019050612e2a6000830184612b5d565b92915050565b60006020820190508181036000830152612e4a8184612b7b565b905092915050565b60006020820190508181036000830152612e6b81612bb4565b9050919050565b60006020820190508181036000830152612e8b81612bd7565b9050919050565b60006020820190508181036000830152612eab81612bfa565b9050919050565b60006020820190508181036000830152612ecb81612c1d565b9050919050565b60006020820190508181036000830152612eeb81612c40565b9050919050565b60006020820190508181036000830152612f0b81612c63565b9050919050565b60006020820190508181036000830152612f2b81612c86565b9050919050565b60006020820190508181036000830152612f4b81612ca9565b9050919050565b60006020820190508181036000830152612f6b81612ccc565b9050919050565b60006020820190508181036000830152612f8b81612cef565b9050919050565b60006020820190508181036000830152612fab81612d12565b9050919050565b60006020820190508181036000830152612fcb81612d35565b9050919050565b60006020820190508181036000830152612feb81612d58565b9050919050565b6000602082019050818103600083015261300b81612d7b565b9050919050565b6000602082019050818103600083015261302b81612d9e565b9050919050565b60006020820190506130476000830184612dc1565b92915050565b600060a0820190506130626000830188612dc1565b61306f6020830187612b6c565b81810360408301526130818186612af0565b90506130906060830185612ae1565b61309d6080830184612dc1565b9695505050505050565b60006020820190506130bc6000830184612dd0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131228261326a565b915061312d8361326a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161613345565b5b828201905092915050565b60006131788261326a565b91506131838361326a565b92508261319357613192613374565b5b828204905092915050565b60006131a98261326a565b91506131b48361326a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ed576131ec613345565b5b828202905092915050565b60006132038261326a565b915061320e8361326a565b92508282101561322157613220613345565b5b828203905092915050565b60006132378261324a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061328c826132a5565b9050919050565b600061329e8261326a565b9050919050565b60006132b0826132b7565b9050919050565b60006132c28261324a565b9050919050565b60005b838110156132e75780820151818401526020810190506132cc565b838111156132f6576000848401525b50505050565b60006133078261326a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561333a57613339613345565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7574206f662072616e67650000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61383d8161322c565b811461384857600080fd5b50565b6138548161323e565b811461385f57600080fd5b50565b61386b8161326a565b811461387657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fb2d4afdaa4e8399f17a2c128ff425502d65b9e5ddbb6237dc9cbc160b6a90a964736f6c63430008070033
Deployed Bytecode Sourcemap
4161:13375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6752:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7684:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5574:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7032:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7886:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5884:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6940:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5622:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16696:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12781:235;;;;;;;;;;;;;:::i;:::-;;7136:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1634:148;;;;;;;;;;;;;:::i;:::-;;16870:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5766:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1418:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12426:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5824:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6844:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16504:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7283:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5268:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12536:236;;;;;;;;;;;;;:::i;:::-;;17299:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7491:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1791:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6752:83;6789:13;6822:5;;;;;;;;;;;;;;;;;6815:12;;6752:83;:::o;7684:193::-;7786:4;7808:39;7817:12;:10;:12::i;:::-;7831:7;7840:6;7808:8;:39::i;:::-;7865:4;7858:11;;7684:193;;;;:::o;5574:41::-;;;;;;;;;;;;;:::o;7032:95::-;7085:7;4720:20;7105:14;;7032:95;:::o;7886:446::-;8018:4;8035:36;8045:6;8053:9;8064:6;8035:9;:36::i;:::-;8082:220;8105:6;8126:12;:10;:12::i;:::-;8153:138;8209:6;8153:138;;;;;;;;;;;;;;;;;:11;:19;8165:6;8153:19;;;;;;;;;;;;;;;:33;8173:12;:10;:12::i;:::-;8153:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8082:8;:220::i;:::-;8320:4;8313:11;;7886:446;;;;;:::o;5884:55::-;;;;:::o;6940:83::-;6981:5;4393:1;6999:16;;6940:83;:::o;5622:28::-;;;;;;;;;;;;;:::o;16696:101::-;1556:12;:10;:12::i;:::-;1546:22;;:6;;;;;;;;;;:22;;;1538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16777:12:::1;16763:11;;:26;;;;;;;;;;;;;;;;;;16696:101:::0;:::o;12781:235::-;12847:19;;;;;;;;;;;12831:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12886:17;;;;;;;;;;;12870:33;;:12;:10;:12::i;:::-;:33;;;12831:72;12823:81;;;;;;12915:26;12944:21;12915:50;;12976:32;12989:18;12976:12;:32::i;:::-;12812:204;12781:235::o;7136:138::-;7202:7;7229:37;7249:7;:16;7257:7;7249:16;;;;;;;;;;;;;;;;7229:19;:37::i;:::-;7222:44;;7136:138;;;:::o;1634:148::-;1556:12;:10;:12::i;:::-;1546:22;;:6;;;;;;;;;;:22;;;1538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1741:1:::1;1704:40;;1725:6;::::0;::::1;;;;;;;;1704:40;;;;;;;;;;;;1772:1;1755:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1634:148::o:0;16870:420::-;16982:19;;;;;;;;;;;16966:35;;:12;:10;:12::i;:::-;:35;;;16958:44;;;;;;17036:12;;17021;:27;:60;;;;;17068:13;:11;:13::i;:::-;17052:12;:29;;17021:60;17013:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17134:14;;17117;:31;:66;;;;;17170:13;:11;:13::i;:::-;17152:14;:31;;17117:66;17109:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17228:12;17213;:27;;;;17268:14;17251;:31;;;;16870:420;;:::o;5766:48::-;;;;:::o;1418:79::-;1456:7;1483:6;;;;;;;;;;;1476:13;;1418:79;:::o;12426:101::-;1556:12;:10;:12::i;:::-;1546:22;;:6;;;;;;;;;;:22;;;1538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12507:12:::1;12493:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;12426:101:::0;:::o;5824:50::-;;;;:::o;6844:87::-;6883:13;6916:7;;;;;;;;;;;;;;;;;6909:14;;6844:87;:::o;16504:139::-;1556:12;:10;:12::i;:::-;1546:22;;:6;;;;;;;;;;:22;;;1538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16617:18:::1;16595:19;:40;;;;16504:139:::0;:::o;7283:199::-;7388:4;7410:42;7420:12;:10;:12::i;:::-;7434:9;7445:6;7410:9;:42::i;:::-;7470:4;7463:11;;7283:199;;;;:::o;5268:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12536:236::-;12602:19;;;;;;;;;;;12586:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12641:17;;;;;;;;;;;12625:33;;:12;:10;:12::i;:::-;:33;;;12586:72;12578:81;;;;;;12670:23;12696:24;12714:4;12696:9;:24::i;:::-;12670:50;;12731:33;12748:15;12731:16;:33::i;:::-;12567:205;12536:236::o;17299:234::-;1556:12;:10;:12::i;:::-;1546:22;;:6;;;;;;;;;;:22;;;1538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17416:9:::1;17412:114;17435:8;;:15;;17431:1;:19;17412:114;;;17506:8;17472:18;:31;17491:8;;17500:1;17491:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17472:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17452:3;;;;;:::i;:::-;;;;17412:114;;;;17299:234:::0;;;:::o;7491:184::-;7608:7;7640:11;:18;7652:5;7640:18;;;;;;;;;;;;;;;:27;7659:7;7640:27;;;;;;;;;;;;;;;;7633:34;;7491:184;;;;:::o;1791:244::-;1556:12;:10;:12::i;:::-;1546:22;;:6;;;;;;;;;;:22;;;1538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1900:1:::1;1880:22;;:8;:22;;;;1872:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1990:8;1961:38;;1982:6;::::0;::::1;;;;;;;;1961:38;;;;;;;;;;;;2019:8;2010:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1791:244:::0;:::o;204:98::-;257:7;284:10;277:17;;204:98;:::o;9029:369::-;9173:1;9156:19;;:5;:19;;;;9148:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9254:1;9235:21;;:7;:21;;;;9227:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9336:6;9306:11;:18;9318:5;9306:18;;;;;;;;;;;;;;;:27;9325:7;9306:27;;;;;;;;;;;;;;;:36;;;;9374:7;9358:32;;9367:5;9358:32;;;9383:6;9358:32;;;;;;:::i;:::-;;;;;;;;9029:369;;;:::o;9407:2349::-;9545:1;9529:18;;:4;:18;;;;9521:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9622:1;9608:16;;:2;:16;;;;9600:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9692:1;9683:6;:10;9675:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9765:7;:5;:7::i;:::-;9757:15;;:4;:15;;;;:32;;;;;9782:7;:5;:7::i;:::-;9776:13;;:2;:13;;;;9757:32;9753:1271;;;9847:11;;;;;;;;;;9842:144;;9895:7;:5;:7::i;:::-;9887:15;;:4;:15;;;9879:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9842:144;10021:12;;10011:6;:22;;10003:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10092:4;:10;10097:4;10092:10;;;;;;;;;;;;;;;;;;;;;;;;;10091:11;:24;;;;;10107:4;:8;10112:2;10107:8;;;;;;;;;;;;;;;;;;;;;;;;;10106:9;10091:24;10083:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10185:13;;;;;;;;;;;10179:19;;:2;:19;;;10176:147;;10253:14;;10243:6;10227:13;10237:2;10227:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10219:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10176:147;10340:28;10371:24;10389:4;10371:9;:24::i;:::-;10340:55;;10410:12;10449:19;;10425:20;:43;;10410:58;;10513:12;;10489:20;:36;10486:124;;10582:12;;10559:35;;10486:124;10631:7;:18;;;;;10643:6;;;;;;;;;;;10642:7;10631:18;:43;;;;;10661:13;;;;;;;;;;;10653:21;;:4;:21;;;;10631:43;:58;;;;;10678:11;;;;;;;;;;;10631:58;:87;;;;;10694:18;:24;10713:4;10694:24;;;;;;;;;;;;;;;;;;;;;;;;;10693:25;10631:87;:114;;;;;10723:18;:22;10742:2;10723:22;;;;;;;;;;;;;;;;;;;;;;;;;10722:23;10631:114;10627:386;;;10766:38;10783:20;10766:16;:38::i;:::-;10823:26;10852:21;10823:50;;10917:1;10896:18;:22;10892:106;;;10943:35;10956:21;10943:12;:35::i;:::-;10892:106;10747:266;10627:386;9791:1233;;9753:1271;11037:12;11052:4;11037:19;;11102:18;:24;11121:4;11102:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11130:18;:22;11149:2;11130:22;;;;;;;;;;;;;;;;;;;;;;;;;11102:50;11101:102;;;;11166:13;;;;;;;;;;;11158:21;;:4;:21;;;;:44;;;;;11189:13;;;;;;;;;;;11183:19;;:2;:19;;;;11158:44;11101:102;11097:597;;;11230:5;11220:15;;11097:597;;;11314:13;;;;;;;;;;;11306:21;;:4;:21;;;:55;;;;;11345:15;;;;;;;;;;;11331:30;;:2;:30;;;;11306:55;11303:162;;;11394:14;;11382:9;:26;;;;11437:12;;11427:7;:22;;;;11303:162;11525:13;;;;;;;;;;;11519:19;;:2;:19;;;:55;;;;;11558:15;;;;;;;;;;;11542:32;;:4;:32;;;;11519:55;11515:165;;;11607:15;;11595:9;:27;;;;11651:13;;11641:7;:23;;;;11515:165;11097:597;11707:41;11722:4;11728:2;11732:6;11740:7;11707:14;:41::i;:::-;9510:2246;9407:2349;;;:::o;2403:224::-;2523:7;2556:1;2551;:6;;2559:12;2543:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2583:9;2599:1;2595;:5;;;;:::i;:::-;2583:17;;2618:1;2611:8;;;2403:224;;;;;:::o;12257:160::-;12314:19;;;;;;;;;;;:28;;:43;12343:13;12354:1;12343:6;:10;;:13;;;;:::i;:::-;12314:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12368:17;;;;;;;;;;;:26;;:41;12395:13;12406:1;12395:6;:10;;:13;;;;:::i;:::-;12368:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12257:160;:::o;8341:323::-;8436:7;8494;;8483;:18;;8461:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8582:19;8604:10;:8;:10::i;:::-;8582:32;;8632:24;8644:11;8632:7;:11;;:24;;;;:::i;:::-;8625:31;;;8341:323;;;:::o;11765:483::-;6046:4;6037:6;;:13;;;;;;;;;;;;;;;;;;11843:21:::1;11881:1;11867:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11843:40;;11912:4;11894;11899:1;11894:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11938:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11928:4;11933:1;11928:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11971:62;11988:4;12003:15;;;;;;;;;;;12021:11;11971:8;:62::i;:::-;12044:15;;;;;;;;;;;:66;;;12125:11;12151:1;12167:4;12194;12214:15;12044:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11832:416;6082:5:::0;6073:6;;:14;;;;;;;;;;;;;;;;;;11765:483;:::o;13031:282::-;13187:7;13182:28;;13196:14;:12;:14::i;:::-;13182:28;13221:44;13239:6;13247:9;13258:6;13221:17;:44::i;:::-;13281:7;13276:29;;13290:15;:13;:15::i;:::-;13276:29;13031:282;;;;:::o;2891:132::-;2949:7;2976:39;2980:1;2983;2976:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2969:46;;2891:132;;;;:::o;16009:167::-;16051:7;16072:15;16089;16108:19;:17;:19::i;:::-;16071:56;;;;16148:20;16160:7;16148;:11;;:20;;;;:::i;:::-;16141:27;;;;16009:167;:::o;8673:221::-;8733:1;8720:9;;:14;:30;;;;;8749:1;8738:7;;:12;8720:30;8716:43;;;8752:7;;8716:43;8792:9;;8772:17;:29;;;;8830:7;;8812:15;:25;;;;8863:1;8851:9;:13;;;;8885:1;8875:7;:11;;;;8673:221;:::o;13322:610::-;13469:15;13499:23;13537:12;13564:23;13602:12;13629:13;13656:19;13667:7;13656:10;:19::i;:::-;13454:221;;;;;;;;;;;;13704:28;13724:7;13704;:15;13712:6;13704:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13686:7;:15;13694:6;13686:15;;;;;;;;;;;;;;;:46;;;;13764:39;13787:15;13764:7;:18;13772:9;13764:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13743:7;:18;13751:9;13743:18;;;;;;;;;;;;;;;:60;;;;13814:16;13824:5;13814:9;:16::i;:::-;13841:23;13853:4;13859;13841:11;:23::i;:::-;13897:9;13880:44;;13889:6;13880:44;;;13908:15;13880:44;;;;;;:::i;:::-;;;;;;;;13443:489;;;;;;13322:610;;;:::o;8903:117::-;8959:17;;8947:9;:29;;;;8997:15;;8987:7;:25;;;;8903:117::o;3032:223::-;3152:7;3184:1;3180;:5;3187:12;3172:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3211:9;3227:1;3223;:5;;;;:::i;:::-;3211:17;;3246:1;3239:8;;;3032:223;;;;;:::o;16185:260::-;16236:7;16245;16265:15;16283:7;;16265:25;;16301:15;4720:20;16301:25;;16351:20;4720;16351:7;;:11;;:20;;;;:::i;:::-;16341:7;:30;16337:61;;;16381:7;;4720:20;16373:25;;;;;;;;16337:61;16420:7;16429;16412:25;;;;;;16185:260;;;:::o;14355:618::-;14455:7;14477;14499;14521;14543;14565;14601:23;14626:12;14640:13;14670:40;14682:7;14691:9;;14702:7;;14670:11;:40::i;:::-;14600:110;;;;;;14721:19;14743:10;:8;:10::i;:::-;14721:32;;14765:15;14782:23;14807:12;14836:46;14848:7;14857:4;14863:5;14870:11;14836;:46::i;:::-;14764:118;;;;;;14904:7;14913:15;14930:4;14936:15;14953:4;14959:5;14896:69;;;;;;;;;;;;;;;;;;;14355:618;;;;;;;:::o;2258:136::-;2316:7;2343:43;2347:1;2350;2343:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2336:50;;2258:136;;;;:::o;2070:179::-;2128:7;2148:9;2164:1;2160;:5;;;;:::i;:::-;2148:17;;2189:1;2184;:6;;2176:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2240:1;2233:8;;;2070:179;;;;:::o;13941:211::-;13994:19;14016:10;:8;:10::i;:::-;13994:32;;14037:13;14053:22;14063:11;14053:5;:9;;:22;;;;:::i;:::-;14037:38;;14111:33;14138:5;14111:7;:22;14127:4;14111:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14086:7;:22;14102:4;14086:22;;;;;;;;;;;;;;;:58;;;;13983:169;;13941:211;:::o;14161:147::-;14239:17;14251:4;14239:7;;:11;;:17;;;;:::i;:::-;14229:7;:27;;;;14280:20;14295:4;14280:10;;:14;;:20;;;;:::i;:::-;14267:10;:33;;;;14161:147;;:::o;14982:472::-;15151:7;15173;15195;15230:12;15245:30;15271:3;15245:21;15257:8;15245:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15230:45;;15286:13;15302:28;15326:3;15302:19;15314:6;15302:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15286:44;;15341:23;15367:28;15389:5;15367:17;15379:4;15367:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15341:54;;15417:15;15434:4;15440:5;15409:37;;;;;;;;;14982:472;;;;;;;:::o;15463:537::-;15657:7;15679;15701;15736:15;15754:24;15766:11;15754:7;:11;;:24;;;;:::i;:::-;15736:42;;15789:12;15804:21;15813:11;15804:4;:8;;:21;;;;:::i;:::-;15789:36;;15836:13;15852:22;15862:11;15852:5;:9;;:22;;;;:::i;:::-;15836:38;;15885:23;15911:28;15933:5;15911:17;15923:4;15911:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15885:54;;15961:7;15970:15;15987:4;15953:39;;;;;;;;;;15463:537;;;;;;;;:::o;2636:246::-;2694:7;2723:1;2718;:6;2714:47;;;2748:1;2741:8;;;;2714:47;2771:9;2787:1;2783;:5;;;;:::i;:::-;2771:17;;2816:1;2811;2807;:5;;;;:::i;:::-;:10;2799:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2873:1;2866:8;;;2636:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:323::-;4213:6;4262:2;4250:9;4241:7;4237:23;4233:32;4230:119;;;4268:79;;:::i;:::-;4230:119;4388:1;4413:50;4455:7;4446:6;4435:9;4431:22;4413:50;:::i;:::-;4403:60;;4359:114;4157:323;;;;:::o;4486:329::-;4545:6;4594:2;4582:9;4573:7;4569:23;4565:32;4562:119;;;4600:79;;:::i;:::-;4562:119;4720:1;4745:53;4790:7;4781:6;4770:9;4766:22;4745:53;:::i;:::-;4735:63;;4691:117;4486:329;;;;:::o;4821:474::-;4889:6;4897;4946:2;4934:9;4925:7;4921:23;4917:32;4914:119;;;4952:79;;:::i;:::-;4914:119;5072:1;5097:53;5142:7;5133:6;5122:9;5118:22;5097:53;:::i;:::-;5087:63;;5043:117;5199:2;5225:53;5270:7;5261:6;5250:9;5246:22;5225:53;:::i;:::-;5215:63;;5170:118;4821:474;;;;;:::o;5301:179::-;5370:10;5391:46;5433:3;5425:6;5391:46;:::i;:::-;5469:4;5464:3;5460:14;5446:28;;5301:179;;;;:::o;5486:108::-;5563:24;5581:5;5563:24;:::i;:::-;5558:3;5551:37;5486:108;;:::o;5600:118::-;5687:24;5705:5;5687:24;:::i;:::-;5682:3;5675:37;5600:118;;:::o;5754:732::-;5873:3;5902:54;5950:5;5902:54;:::i;:::-;5972:86;6051:6;6046:3;5972:86;:::i;:::-;5965:93;;6082:56;6132:5;6082:56;:::i;:::-;6161:7;6192:1;6177:284;6202:6;6199:1;6196:13;6177:284;;;6278:6;6272:13;6305:63;6364:3;6349:13;6305:63;:::i;:::-;6298:70;;6391:60;6444:6;6391:60;:::i;:::-;6381:70;;6237:224;6224:1;6221;6217:9;6212:14;;6177:284;;;6181:14;6477:3;6470:10;;5878:608;;;5754:732;;;;:::o;6492:109::-;6573:21;6588:5;6573:21;:::i;:::-;6568:3;6561:34;6492:109;;:::o;6607:183::-;6720:63;6777:5;6720:63;:::i;:::-;6715:3;6708:76;6607:183;;:::o;6796:147::-;6891:45;6930:5;6891:45;:::i;:::-;6886:3;6879:58;6796:147;;:::o;6949:364::-;7037:3;7065:39;7098:5;7065:39;:::i;:::-;7120:71;7184:6;7179:3;7120:71;:::i;:::-;7113:78;;7200:52;7245:6;7240:3;7233:4;7226:5;7222:16;7200:52;:::i;:::-;7277:29;7299:6;7277:29;:::i;:::-;7272:3;7268:39;7261:46;;7041:272;6949:364;;;;:::o;7319:366::-;7461:3;7482:67;7546:2;7541:3;7482:67;:::i;:::-;7475:74;;7558:93;7647:3;7558:93;:::i;:::-;7676:2;7671:3;7667:12;7660:19;;7319:366;;;:::o;7691:::-;7833:3;7854:67;7918:2;7913:3;7854:67;:::i;:::-;7847:74;;7930:93;8019:3;7930:93;:::i;:::-;8048:2;8043:3;8039:12;8032:19;;7691:366;;;:::o;8063:::-;8205:3;8226:67;8290:2;8285:3;8226:67;:::i;:::-;8219:74;;8302:93;8391:3;8302:93;:::i;:::-;8420:2;8415:3;8411:12;8404:19;;8063:366;;;:::o;8435:::-;8577:3;8598:67;8662:2;8657:3;8598:67;:::i;:::-;8591:74;;8674:93;8763:3;8674:93;:::i;:::-;8792:2;8787:3;8783:12;8776:19;;8435:366;;;:::o;8807:::-;8949:3;8970:67;9034:2;9029:3;8970:67;:::i;:::-;8963:74;;9046:93;9135:3;9046:93;:::i;:::-;9164:2;9159:3;9155:12;9148:19;;8807:366;;;:::o;9179:::-;9321:3;9342:67;9406:2;9401:3;9342:67;:::i;:::-;9335:74;;9418:93;9507:3;9418:93;:::i;:::-;9536:2;9531:3;9527:12;9520:19;;9179:366;;;:::o;9551:::-;9693:3;9714:67;9778:2;9773:3;9714:67;:::i;:::-;9707:74;;9790:93;9879:3;9790:93;:::i;:::-;9908:2;9903:3;9899:12;9892:19;;9551:366;;;:::o;9923:::-;10065:3;10086:67;10150:2;10145:3;10086:67;:::i;:::-;10079:74;;10162:93;10251:3;10162:93;:::i;:::-;10280:2;10275:3;10271:12;10264:19;;9923:366;;;:::o;10295:::-;10437:3;10458:67;10522:2;10517:3;10458:67;:::i;:::-;10451:74;;10534:93;10623:3;10534:93;:::i;:::-;10652:2;10647:3;10643:12;10636:19;;10295:366;;;:::o;10667:::-;10809:3;10830:67;10894:2;10889:3;10830:67;:::i;:::-;10823:74;;10906:93;10995:3;10906:93;:::i;:::-;11024:2;11019:3;11015:12;11008:19;;10667:366;;;:::o;11039:::-;11181:3;11202:67;11266:2;11261:3;11202:67;:::i;:::-;11195:74;;11278:93;11367:3;11278:93;:::i;:::-;11396:2;11391:3;11387:12;11380:19;;11039:366;;;:::o;11411:::-;11553:3;11574:67;11638:2;11633:3;11574:67;:::i;:::-;11567:74;;11650:93;11739:3;11650:93;:::i;:::-;11768:2;11763:3;11759:12;11752:19;;11411:366;;;:::o;11783:::-;11925:3;11946:67;12010:2;12005:3;11946:67;:::i;:::-;11939:74;;12022:93;12111:3;12022:93;:::i;:::-;12140:2;12135:3;12131:12;12124:19;;11783:366;;;:::o;12155:::-;12297:3;12318:67;12382:2;12377:3;12318:67;:::i;:::-;12311:74;;12394:93;12483:3;12394:93;:::i;:::-;12512:2;12507:3;12503:12;12496:19;;12155:366;;;:::o;12527:::-;12669:3;12690:67;12754:2;12749:3;12690:67;:::i;:::-;12683:74;;12766:93;12855:3;12766:93;:::i;:::-;12884:2;12879:3;12875:12;12868:19;;12527:366;;;:::o;12899:118::-;12986:24;13004:5;12986:24;:::i;:::-;12981:3;12974:37;12899:118;;:::o;13023:112::-;13106:22;13122:5;13106:22;:::i;:::-;13101:3;13094:35;13023:112;;:::o;13141:222::-;13234:4;13272:2;13261:9;13257:18;13249:26;;13285:71;13353:1;13342:9;13338:17;13329:6;13285:71;:::i;:::-;13141:222;;;;:::o;13369:210::-;13456:4;13494:2;13483:9;13479:18;13471:26;;13507:65;13569:1;13558:9;13554:17;13545:6;13507:65;:::i;:::-;13369:210;;;;:::o;13585:274::-;13704:4;13742:2;13731:9;13727:18;13719:26;;13755:97;13849:1;13838:9;13834:17;13825:6;13755:97;:::i;:::-;13585:274;;;;:::o;13865:313::-;13978:4;14016:2;14005:9;14001:18;13993:26;;14065:9;14059:4;14055:20;14051:1;14040:9;14036:17;14029:47;14093:78;14166:4;14157:6;14093:78;:::i;:::-;14085:86;;13865:313;;;;:::o;14184:419::-;14350:4;14388:2;14377:9;14373:18;14365:26;;14437:9;14431:4;14427:20;14423:1;14412:9;14408:17;14401:47;14465:131;14591:4;14465:131;:::i;:::-;14457:139;;14184:419;;;:::o;14609:::-;14775:4;14813:2;14802:9;14798:18;14790:26;;14862:9;14856:4;14852:20;14848:1;14837:9;14833:17;14826:47;14890:131;15016:4;14890:131;:::i;:::-;14882:139;;14609:419;;;:::o;15034:::-;15200:4;15238:2;15227:9;15223:18;15215:26;;15287:9;15281:4;15277:20;15273:1;15262:9;15258:17;15251:47;15315:131;15441:4;15315:131;:::i;:::-;15307:139;;15034:419;;;:::o;15459:::-;15625:4;15663:2;15652:9;15648:18;15640:26;;15712:9;15706:4;15702:20;15698:1;15687:9;15683:17;15676:47;15740:131;15866:4;15740:131;:::i;:::-;15732:139;;15459:419;;;:::o;15884:::-;16050:4;16088:2;16077:9;16073:18;16065:26;;16137:9;16131:4;16127:20;16123:1;16112:9;16108:17;16101:47;16165:131;16291:4;16165:131;:::i;:::-;16157:139;;15884:419;;;:::o;16309:::-;16475:4;16513:2;16502:9;16498:18;16490:26;;16562:9;16556:4;16552:20;16548:1;16537:9;16533:17;16526:47;16590:131;16716:4;16590:131;:::i;:::-;16582:139;;16309:419;;;:::o;16734:::-;16900:4;16938:2;16927:9;16923:18;16915:26;;16987:9;16981:4;16977:20;16973:1;16962:9;16958:17;16951:47;17015:131;17141:4;17015:131;:::i;:::-;17007:139;;16734:419;;;:::o;17159:::-;17325:4;17363:2;17352:9;17348:18;17340:26;;17412:9;17406:4;17402:20;17398:1;17387:9;17383:17;17376:47;17440:131;17566:4;17440:131;:::i;:::-;17432:139;;17159:419;;;:::o;17584:::-;17750:4;17788:2;17777:9;17773:18;17765:26;;17837:9;17831:4;17827:20;17823:1;17812:9;17808:17;17801:47;17865:131;17991:4;17865:131;:::i;:::-;17857:139;;17584:419;;;:::o;18009:::-;18175:4;18213:2;18202:9;18198:18;18190:26;;18262:9;18256:4;18252:20;18248:1;18237:9;18233:17;18226:47;18290:131;18416:4;18290:131;:::i;:::-;18282:139;;18009:419;;;:::o;18434:::-;18600:4;18638:2;18627:9;18623:18;18615:26;;18687:9;18681:4;18677:20;18673:1;18662:9;18658:17;18651:47;18715:131;18841:4;18715:131;:::i;:::-;18707:139;;18434:419;;;:::o;18859:::-;19025:4;19063:2;19052:9;19048:18;19040:26;;19112:9;19106:4;19102:20;19098:1;19087:9;19083:17;19076:47;19140:131;19266:4;19140:131;:::i;:::-;19132:139;;18859:419;;;:::o;19284:::-;19450:4;19488:2;19477:9;19473:18;19465:26;;19537:9;19531:4;19527:20;19523:1;19512:9;19508:17;19501:47;19565:131;19691:4;19565:131;:::i;:::-;19557:139;;19284:419;;;:::o;19709:::-;19875:4;19913:2;19902:9;19898:18;19890:26;;19962:9;19956:4;19952:20;19948:1;19937:9;19933:17;19926:47;19990:131;20116:4;19990:131;:::i;:::-;19982:139;;19709:419;;;:::o;20134:::-;20300:4;20338:2;20327:9;20323:18;20315:26;;20387:9;20381:4;20377:20;20373:1;20362:9;20358:17;20351:47;20415:131;20541:4;20415:131;:::i;:::-;20407:139;;20134:419;;;:::o;20559:222::-;20652:4;20690:2;20679:9;20675:18;20667:26;;20703:71;20771:1;20760:9;20756:17;20747:6;20703:71;:::i;:::-;20559:222;;;;:::o;20787:831::-;21050:4;21088:3;21077:9;21073:19;21065:27;;21102:71;21170:1;21159:9;21155:17;21146:6;21102:71;:::i;:::-;21183:80;21259:2;21248:9;21244:18;21235:6;21183:80;:::i;:::-;21310:9;21304:4;21300:20;21295:2;21284:9;21280:18;21273:48;21338:108;21441:4;21432:6;21338:108;:::i;:::-;21330:116;;21456:72;21524:2;21513:9;21509:18;21500:6;21456:72;:::i;:::-;21538:73;21606:3;21595:9;21591:19;21582:6;21538:73;:::i;:::-;20787:831;;;;;;;;:::o;21624:214::-;21713:4;21751:2;21740:9;21736:18;21728:26;;21764:67;21828:1;21817:9;21813:17;21804:6;21764:67;:::i;:::-;21624:214;;;;:::o;21925:132::-;21992:4;22015:3;22007:11;;22045:4;22040:3;22036:14;22028:22;;21925:132;;;:::o;22063:114::-;22130:6;22164:5;22158:12;22148:22;;22063:114;;;:::o;22183:99::-;22235:6;22269:5;22263:12;22253:22;;22183:99;;;:::o;22288:113::-;22358:4;22390;22385:3;22381:14;22373:22;;22288:113;;;:::o;22407:184::-;22506:11;22540:6;22535:3;22528:19;22580:4;22575:3;22571:14;22556:29;;22407:184;;;;:::o;22597:169::-;22681:11;22715:6;22710:3;22703:19;22755:4;22750:3;22746:14;22731:29;;22597:169;;;;:::o;22772:305::-;22812:3;22831:20;22849:1;22831:20;:::i;:::-;22826:25;;22865:20;22883:1;22865:20;:::i;:::-;22860:25;;23019:1;22951:66;22947:74;22944:1;22941:81;22938:107;;;23025:18;;:::i;:::-;22938:107;23069:1;23066;23062:9;23055:16;;22772:305;;;;:::o;23083:185::-;23123:1;23140:20;23158:1;23140:20;:::i;:::-;23135:25;;23174:20;23192:1;23174:20;:::i;:::-;23169:25;;23213:1;23203:35;;23218:18;;:::i;:::-;23203:35;23260:1;23257;23253:9;23248:14;;23083:185;;;;:::o;23274:348::-;23314:7;23337:20;23355:1;23337:20;:::i;:::-;23332:25;;23371:20;23389:1;23371:20;:::i;:::-;23366:25;;23559:1;23491:66;23487:74;23484:1;23481:81;23476:1;23469:9;23462:17;23458:105;23455:131;;;23566:18;;:::i;:::-;23455:131;23614:1;23611;23607:9;23596:20;;23274:348;;;;:::o;23628:191::-;23668:4;23688:20;23706:1;23688:20;:::i;:::-;23683:25;;23722:20;23740:1;23722:20;:::i;:::-;23717:25;;23761:1;23758;23755:8;23752:34;;;23766:18;;:::i;:::-;23752:34;23811:1;23808;23804:9;23796:17;;23628:191;;;;:::o;23825:96::-;23862:7;23891:24;23909:5;23891:24;:::i;:::-;23880:35;;23825:96;;;:::o;23927:90::-;23961:7;24004:5;23997:13;23990:21;23979:32;;23927:90;;;:::o;24023:126::-;24060:7;24100:42;24093:5;24089:54;24078:65;;24023:126;;;:::o;24155:77::-;24192:7;24221:5;24210:16;;24155:77;;;:::o;24238:86::-;24273:7;24313:4;24306:5;24302:16;24291:27;;24238:86;;;:::o;24330:152::-;24406:9;24439:37;24470:5;24439:37;:::i;:::-;24426:50;;24330:152;;;:::o;24488:121::-;24546:9;24579:24;24597:5;24579:24;:::i;:::-;24566:37;;24488:121;;;:::o;24615:126::-;24665:9;24698:37;24729:5;24698:37;:::i;:::-;24685:50;;24615:126;;;:::o;24747:113::-;24797:9;24830:24;24848:5;24830:24;:::i;:::-;24817:37;;24747:113;;;:::o;24866:307::-;24934:1;24944:113;24958:6;24955:1;24952:13;24944:113;;;25043:1;25038:3;25034:11;25028:18;25024:1;25019:3;25015:11;25008:39;24980:2;24977:1;24973:10;24968:15;;24944:113;;;25075:6;25072:1;25069:13;25066:101;;;25155:1;25146:6;25141:3;25137:16;25130:27;25066:101;24915:258;24866:307;;;:::o;25179:233::-;25218:3;25241:24;25259:5;25241:24;:::i;:::-;25232:33;;25287:66;25280:5;25277:77;25274:103;;;25357:18;;:::i;:::-;25274:103;25404:1;25397:5;25393:13;25386:20;;25179:233;;;:::o;25418:180::-;25466:77;25463:1;25456:88;25563:4;25560:1;25553:15;25587:4;25584:1;25577:15;25604:180;25652:77;25649:1;25642:88;25749:4;25746:1;25739:15;25773:4;25770:1;25763:15;25790:180;25838:77;25835:1;25828:88;25935:4;25932:1;25925:15;25959:4;25956:1;25949:15;25976:180;26024:77;26021:1;26014:88;26121:4;26118:1;26111:15;26145:4;26142:1;26135:15;26162:117;26271:1;26268;26261:12;26285:117;26394:1;26391;26384:12;26408:117;26517:1;26514;26507:12;26531:117;26640:1;26637;26630:12;26654:117;26763:1;26760;26753:12;26777:102;26818:6;26869:2;26865:7;26860:2;26853:5;26849:14;26845:28;26835:38;;26777:102;;;:::o;26885:222::-;27025:34;27021:1;27013:6;27009:14;27002:58;27094:5;27089:2;27081:6;27077:15;27070:30;26885:222;:::o;27113:250::-;27253:34;27249:1;27241:6;27237:14;27230:58;27322:33;27317:2;27309:6;27305:15;27298:58;27113:250;:::o;27369:229::-;27509:34;27505:1;27497:6;27493:14;27486:58;27578:12;27573:2;27565:6;27561:15;27554:37;27369:229;:::o;27604:178::-;27744:30;27740:1;27732:6;27728:14;27721:54;27604:178;:::o;27788:225::-;27928:34;27924:1;27916:6;27912:14;27905:58;27997:8;27992:2;27984:6;27980:15;27973:33;27788:225;:::o;28019:221::-;28159:34;28155:1;28147:6;28143:14;28136:58;28228:4;28223:2;28215:6;28211:15;28204:29;28019:221;:::o;28246:222::-;28386:34;28382:1;28374:6;28370:14;28363:58;28455:5;28450:2;28442:6;28438:15;28431:30;28246:222;:::o;28474:177::-;28614:29;28610:1;28602:6;28598:14;28591:53;28474:177;:::o;28657:220::-;28797:34;28793:1;28785:6;28781:14;28774:58;28866:3;28861:2;28853:6;28849:15;28842:28;28657:220;:::o;28883:182::-;29023:34;29019:1;29011:6;29007:14;29000:58;28883:182;:::o;29071:228::-;29211:34;29207:1;29199:6;29195:14;29188:58;29280:11;29275:2;29267:6;29263:15;29256:36;29071:228;:::o;29305:224::-;29445:34;29441:1;29433:6;29429:14;29422:58;29514:7;29509:2;29501:6;29497:15;29490:32;29305:224;:::o;29535:222::-;29675:34;29671:1;29663:6;29659:14;29652:58;29744:5;29739:2;29731:6;29727:15;29720:30;29535:222;:::o;29763:162::-;29903:14;29899:1;29891:6;29887:14;29880:38;29763:162;:::o;29931:223::-;30071:34;30067:1;30059:6;30055:14;30048:58;30140:6;30135:2;30127:6;30123:15;30116:31;29931:223;:::o;30160:122::-;30233:24;30251:5;30233:24;:::i;:::-;30226:5;30223:35;30213:63;;30272:1;30269;30262:12;30213:63;30160:122;:::o;30288:116::-;30358:21;30373:5;30358:21;:::i;:::-;30351:5;30348:32;30338:60;;30394:1;30391;30384:12;30338:60;30288:116;:::o;30410:122::-;30483:24;30501:5;30483:24;:::i;:::-;30476:5;30473:35;30463:63;;30522:1;30519;30512:12;30463:63;30410:122;:::o
Swarm Source
ipfs://fb2d4afdaa4e8399f17a2c128ff425502d65b9e5ddbb6237dc9cbc160b6a90a9
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.