BEP-20
Source Code
Overview
Max Total Supply
5,000,000,000BDOGITO
Holders
22,988
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
82.119644018330575817 BDOGITOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
BDOGITO
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2024-08-21
*/
/* SPDX-License-Identifier: MIT */
pragma solidity 0.8.21;
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
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);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
library Address {
function sendValue(address payable recipient, uint256 amount) internal returns(bool){
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
return success;
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this;
return msg.data;
}
}
abstract 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;
}
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
uint256 currentAllowance = _allowances[sender][_msgSender()];
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
}
_transfer(sender, recipient, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
function _mintOnce(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
contract BDOGITO is ERC20, Ownable {
using Address for address payable;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
mapping (address => bool) private _isExcludedFromFees;
mapping (address => bool) private _isExcludedFromTradingRestrictions;
mapping (address => bool) private _isFrozen;
bool public tradingEnabled = false;
uint256 public feeOnBuy;
uint256 public feeOnSell;
uint256 public feeOnTransfer;
address public feeReceiver;
uint256 public swapTokensAtAmount;
bool private swapping;
bool public swapEnabled;
event ExcludeFromFees(address indexed account, bool isExcluded);
event ExcludeFromTradingRestrictions(address indexed account, bool isExcluded);
event WalletFrozen(address indexed account, bool isFrozen);
event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);
constructor () ERC20("BULLDOGITO", "BDOGITO")
{
address router = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
address pinkLock = 0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = _uniswapV2Pair;
_approve(address(this), address(uniswapV2Router), type(uint256).max);
feeOnBuy = 5;
feeOnSell = 5;
feeOnTransfer = 0;
feeReceiver = 0x556601D2198A73eaC231024f7bAeEd979d7f7Feb;
_isExcludedFromFees[owner()] = true;
_isExcludedFromFees[address(0xdead)] = true;
_isExcludedFromFees[address(this)] = true;
_isExcludedFromFees[pinkLock] = true;
_isExcludedFromTradingRestrictions[owner()] = true;
_isExcludedFromTradingRestrictions[address(this)] = true;
_mintOnce(owner(), 5e9 * (10 ** decimals()));
swapTokensAtAmount = totalSupply() / 100_000;
swapEnabled = true;
}
receive() external payable {}
function creator() public pure returns (string memory) {
return "t.me/pixswap";
}
function enableTrading(bool _enabled) external onlyOwner {
tradingEnabled = _enabled;
}
function excludeFromTradingRestrictions(address account, bool excluded) external onlyOwner {
_isExcludedFromTradingRestrictions[account] = excluded;
emit ExcludeFromTradingRestrictions(account, excluded);
}
function isExcludedFromTradingRestrictions(address account) public view returns(bool) {
return _isExcludedFromTradingRestrictions[account];
}
function freezeWallet(address account, bool frozen) external onlyOwner {
_isFrozen[account] = frozen;
emit WalletFrozen(account, frozen);
}
function isWalletFrozen(address account) public view returns(bool) {
return _isFrozen[account];
}
function _transfer(address from,address to,uint256 amount) internal override {
require(from != address(0), "CSLT: transfer from the zero address");
require(to != address(0), "CSLT: transfer to the zero address");
require(tradingEnabled || _isExcludedFromTradingRestrictions[from] || _isExcludedFromTradingRestrictions[to], "CSLT: Trading is not enabled");
require(!_isFrozen[from], "CSLT: Sender's wallet is frozen");
require(!_isFrozen[to], "CSLT: Recipient's wallet is frozen");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= swapTokensAtAmount;
if (canSwap &&
!swapping &&
to == uniswapV2Pair &&
feeOnBuy + feeOnSell > 0 &&
!_isExcludedFromFees[from] &&
swapEnabled
) {
swapping = true;
swapAndSendFee(contractTokenBalance);
swapping = false;
}
uint256 _totalFees;
if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
_totalFees = 0;
} else if (from == uniswapV2Pair) {
_totalFees = feeOnBuy;
} else if (to == uniswapV2Pair) {
_totalFees = feeOnSell;
} else {
_totalFees = feeOnTransfer;
}
if (_totalFees > 0) {
uint256 fees = (amount * _totalFees) / 100;
amount = amount - fees;
super._transfer(from, address(this), fees);
}
super._transfer(from, to, amount);
}
function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{
require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply");
swapTokensAtAmount = newAmount;
swapEnabled = _swapEnabled;
emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
}
function swapAndSendFee(uint256 tokenAmount) private {
uint256 initialBalance = address(this).balance;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
) {} catch {
return;
}
uint256 newBalance = address(this).balance - initialBalance;
payable(feeReceiver).sendValue(newBalance);
emit SwapAndSendFee(tokenAmount, newBalance);
}
}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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromTradingRestrictions","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isFrozen","type":"bool"}],"name":"WalletFrozen","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromTradingRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"frozen","type":"bool"}],"name":"freezeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromTradingRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWalletFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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
60806040525f600b5f6101000a81548160ff02191690831515021790555034801562000029575f80fd5b506040518060400160405280600a81526020017f42554c4c444f4749544f000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f42444f4749544f000000000000000000000000000000000000000000000000008152508160039081620000a7919062000cb0565b508060049081620000b9919062000cb0565b5050505f620000cd620006f760201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f7310ed43c718714eb63d5aa57b78b54704e256024e90505f73407993575c91ce7643a4d4ccacc9a98c36ee1bbe90505f8290505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020f919062000df9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000275573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029b919062000df9565b6040518363ffffffff1660e01b8152600401620002ba92919062000e3a565b6020604051808303815f875af1158015620002d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fd919062000df9565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003d33060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620006fe60201b60201c565b6005600c819055506005600d819055505f600e8190555073556601d2198a73eac231024f7baeed979d7f7feb600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f62000453620008c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f620005b8620008c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006ac62000670620008c960201b60201c565b62000680620008f160201b60201c565b600a6200068e919062000fee565b64012a05f200620006a091906200103e565b620008f960201b60201c565b620186a0620006c062000a4360201b60201c565b620006cc9190620010b5565b6010819055506001601160016101000a81548160ff02191690831515021790555050505050620012f8565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200076f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007669062001170565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d79062001204565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620008bc919062001235565b60405180910390a3505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200096a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000961906200129e565b60405180910390fd5b8060025f8282546200097d9190620012be565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620009d19190620012be565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a37919062001235565b60405180910390a35050565b5f600254905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ac857607f821691505b60208210810362000ade5762000add62000a83565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b05565b62000b4e868362000b05565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b9862000b9262000b8c8462000b66565b62000b6f565b62000b66565b9050919050565b5f819050919050565b62000bb38362000b78565b62000bcb62000bc28262000b9f565b84845462000b11565b825550505050565b5f90565b62000be162000bd3565b62000bee81848462000ba8565b505050565b5b8181101562000c155762000c095f8262000bd7565b60018101905062000bf4565b5050565b601f82111562000c645762000c2e8162000ae4565b62000c398462000af6565b8101602085101562000c49578190505b62000c6162000c588562000af6565b83018262000bf3565b50505b505050565b5f82821c905092915050565b5f62000c865f198460080262000c69565b1980831691505092915050565b5f62000ca0838362000c75565b9150826002028217905092915050565b62000cbb8262000a4c565b67ffffffffffffffff81111562000cd75762000cd662000a56565b5b62000ce3825462000ab0565b62000cf082828562000c19565b5f60209050601f83116001811462000d26575f841562000d11578287015190505b62000d1d858262000c93565b86555062000d8c565b601f19841662000d368662000ae4565b5f5b8281101562000d5f5784890151825560018201915060208501945060208101905062000d38565b8683101562000d7f578489015162000d7b601f89168262000c75565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dc38262000d98565b9050919050565b62000dd58162000db7565b811462000de0575f80fd5b50565b5f8151905062000df38162000dca565b92915050565b5f6020828403121562000e115762000e1062000d94565b5b5f62000e208482850162000de3565b91505092915050565b62000e348162000db7565b82525050565b5f60408201905062000e4f5f83018562000e29565b62000e5e602083018462000e29565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000eef5780860481111562000ec75762000ec662000e65565b5b600185161562000ed75780820291505b808102905062000ee78562000e92565b945062000ea7565b94509492505050565b5f8262000f09576001905062000fdb565b8162000f18575f905062000fdb565b816001811462000f31576002811462000f3c5762000f72565b600191505062000fdb565b60ff84111562000f515762000f5062000e65565b5b8360020a91508482111562000f6b5762000f6a62000e65565b5b5062000fdb565b5060208310610133831016604e8410600b841016171562000fac5782820a90508381111562000fa65762000fa562000e65565b5b62000fdb565b62000fbb848484600162000e9e565b9250905081840481111562000fd55762000fd462000e65565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000ffa8262000b66565b9150620010078362000fe2565b9250620010367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ef8565b905092915050565b5f6200104a8262000b66565b9150620010578362000b66565b9250828202620010678162000b66565b9150828204841483151762001081576200108062000e65565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620010c18262000b66565b9150620010ce8362000b66565b925082620010e157620010e062001088565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62001158602483620010ec565b91506200116582620010fc565b604082019050919050565b5f6020820190508181035f83015262001189816200114a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f620011ec602283620010ec565b9150620011f98262001190565b604082019050919050565b5f6020820190508181035f8301526200121d81620011de565b9050919050565b6200122f8162000b66565b82525050565b5f6020820190506200124a5f83018462001224565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001286601f83620010ec565b9150620012938262001250565b602082019050919050565b5f6020820190508181035f830152620012b78162001278565b9050919050565b5f620012ca8262000b66565b9150620012d78362000b66565b9250828201905080821115620012f257620012f162000e65565b5b92915050565b6133ae80620013065f395ff3fe6080604052600436106101d0575f3560e01c806370a08231116100f6578063b1fde9f811610094578063dd62ed3e11610063578063dd62ed3e14610695578063e2f45605146106d1578063f275f64b146106fb578063f2fde38b14610723576101d7565b8063b1fde9f8146105dd578063b27e04d814610605578063b3f0067414610641578063bb8c3ee01461066b576101d7565b806395583b07116100d057806395583b07146104ff57806395d89b411461053b578063a457c2d714610565578063a9059cbb146105a1576101d7565b806370a0823114610483578063715018a6146104bf5780638da5cb5b146104d5576101d7565b806323b872dd1161016e5780634ada218b1161013d5780634ada218b146103dd578063533020bb1461040757806365048d081461042f5780636ddd171314610459576101d7565b806323b872dd14610311578063313ce5671461034d578063395093511461037757806349bd5a5e146103b3576101d7565b80630fa1eeab116101aa5780630fa1eeab1461026b5780631694505e1461029557806318160ddd146102bf5780631a247b03146102e9576101d7565b806302d05d3f146101db57806306fdde0314610205578063095ea7b31461022f576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef61074b565b6040516101fc919061238f565b60405180910390f35b348015610210575f80fd5b50610219610788565b604051610226919061238f565b60405180910390f35b34801561023a575f80fd5b5061025560048036038101906102509190612440565b610818565b6040516102629190612498565b60405180910390f35b348015610276575f80fd5b5061027f610835565b60405161028c91906124c0565b60405180910390f35b3480156102a0575f80fd5b506102a961083b565b6040516102b69190612534565b60405180910390f35b3480156102ca575f80fd5b506102d3610860565b6040516102e091906124c0565b60405180910390f35b3480156102f4575f80fd5b5061030f600480360381019061030a9190612577565b610869565b005b34801561031c575f80fd5b50610337600480360381019061033291906125b5565b6109a5565b6040516103449190612498565b60405180910390f35b348015610358575f80fd5b50610361610abf565b60405161036e9190612620565b60405180910390f35b348015610382575f80fd5b5061039d60048036038101906103989190612440565b610ac7565b6040516103aa9190612498565b60405180910390f35b3480156103be575f80fd5b506103c7610b6e565b6040516103d49190612648565b60405180910390f35b3480156103e8575f80fd5b506103f1610b93565b6040516103fe9190612498565b60405180910390f35b348015610412575f80fd5b5061042d60048036038101906104289190612577565b610ba5565b005b34801561043a575f80fd5b50610443610ce1565b60405161045091906124c0565b60405180910390f35b348015610464575f80fd5b5061046d610ce7565b60405161047a9190612498565b60405180910390f35b34801561048e575f80fd5b506104a960048036038101906104a49190612661565b610cfa565b6040516104b691906124c0565b60405180910390f35b3480156104ca575f80fd5b506104d3610d3f565b005b3480156104e0575f80fd5b506104e9610e92565b6040516104f69190612648565b60405180910390f35b34801561050a575f80fd5b5061052560048036038101906105209190612661565b610eba565b6040516105329190612498565b60405180910390f35b348015610546575f80fd5b5061054f610f0c565b60405161055c919061238f565b60405180910390f35b348015610570575f80fd5b5061058b60048036038101906105869190612440565b610f9c565b6040516105989190612498565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c29190612440565b611082565b6040516105d49190612498565b60405180910390f35b3480156105e8575f80fd5b5061060360048036038101906105fe919061268c565b61109f565b005b348015610610575f80fd5b5061062b60048036038101906106269190612661565b6111ea565b6040516106389190612498565b60405180910390f35b34801561064c575f80fd5b5061065561123c565b6040516106629190612648565b60405180910390f35b348015610676575f80fd5b5061067f611261565b60405161068c91906124c0565b60405180910390f35b3480156106a0575f80fd5b506106bb60048036038101906106b691906126ca565b611267565b6040516106c891906124c0565b60405180910390f35b3480156106dc575f80fd5b506106e56112e9565b6040516106f291906124c0565b60405180910390f35b348015610706575f80fd5b50610721600480360381019061071c9190612708565b6112ef565b005b34801561072e575f80fd5b5061074960048036038101906107449190612661565b6113a1565b005b60606040518060400160405280600c81526020017f742e6d652f706978737761700000000000000000000000000000000000000000815250905090565b60606003805461079790612760565b80601f01602080910402602001604051908101604052809291908181526020018280546107c390612760565b801561080e5780601f106107e55761010080835404028352916020019161080e565b820191905f5260205f20905b8154815290600101906020018083116107f157829003601f168201915b5050505050905090565b5f61082b610824611563565b848461156a565b6001905092915050565b600e5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b610871611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f6906127da565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f146176e3b93081cc2d7cc8ebb5fba70413c75ae61c11db0a55087ac83d011f13826040516109999190612498565b60405180910390a25050565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109ed611563565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610aa85782811015610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90612868565b60405180910390fd5b610aa785610a9f611563565b85840361156a565b5b610ab385858561172d565b60019150509392505050565b5f6012905090565b5f610b64610ad3611563565b848460015f610ae0611563565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b5f91906128b3565b61156a565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900460ff1681565b610bad611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906127da565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fd17e29b9185a00800171e680c627983f284cdf937b14ea98ef64d9b44a72f2fc82604051610cd59190612498565b60405180910390a25050565b600d5481565b601160019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d47611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b606060048054610f1b90612760565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4790612760565b8015610f925780601f10610f6957610100808354040283529160200191610f92565b820191905f5260205f20905b815481529060010190602001808311610f7557829003601f168201915b5050505050905090565b5f8060015f610fa9611563565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a90612956565b60405180910390fd5b61107761106e611563565b8585840361156a565b600191505092915050565b5f61109561108e611563565b848461172d565b6001905092915050565b6110a7611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c906127da565b60405180910390fd5b620f4240611141610860565b61114b91906129a1565b821161118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390612a67565b60405180910390fd5b8160108190555080601160016101000a81548160ff0219169083151502179055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1456010546040516111de91906124c0565b60405180910390a15050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6112f7611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c906127da565b60405180910390fd5b80600b5f6101000a81548160ff02191690831515021790555050565b6113a9611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612af5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf90612b83565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90612c11565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172091906124c0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290612c9f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180090612d2d565b60405180910390fd5b600b5f9054906101000a900460ff1680611869575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806118ba575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6118f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f090612d95565b60405180910390fd5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a90612dfd565b60405180910390fd5b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0490612e8b565b60405180910390fd5b5f8103611a2457611a1f83835f611d46565b611d41565b5f611a2e30610cfa565b90505f6010548210159050808015611a52575060115f9054906101000a900460ff16155b8015611aaa575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac457505f600d54600c54611ac291906128b3565b115b8015611b17575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b2f5750601160019054906101000a900460ff165b15611b7157600160115f6101000a81548160ff021916908315150217905550611b5782611fa5565b5f60115f6101000a81548160ff0219169083151502179055505b5f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c0d575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611c23575060115f9054906101000a900460ff165b15611c30575f9050611cf4565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611c8e57600c549050611cf3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611cec57600d549050611cf2565b600e5490505b5b5b5f811115611d32575f60648286611d0b9190612ea9565b611d1591906129a1565b90508085611d239190612eea565b9450611d30873083611d46565b505b611d3d868686611d46565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90612f8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e199061301b565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c906130a9565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f3391906128b3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9791906124c0565b60405180910390a350505050565b5f4790505f600267ffffffffffffffff811115611fc557611fc46130c7565b5b604051908082528060200260200182016040528015611ff35781602001602082028036833780820191505090505b50905030815f8151811061200a576120096130f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120d29190613135565b816001815181106120e6576120e56130f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401612182959493929190613250565b5f604051808303815f87803b158015612199575f80fd5b505af19250505080156121aa575060015b6121b557505061224c565b5f82476121c29190612eea565b905061220e81600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661224f90919063ffffffff16565b507f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b84826040516122409291906132a8565b60405180910390a15050505b50565b5f81471015612293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228a90613319565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff16836040516122b890613364565b5f6040518083038185875af1925050503d805f81146122f2576040519150601f19603f3d011682016040523d82523d5f602084013e6122f7565b606091505b505090508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561233c578082015181840152602081019050612321565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61236182612305565b61236b818561230f565b935061237b81856020860161231f565b61238481612347565b840191505092915050565b5f6020820190508181035f8301526123a78184612357565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123dc826123b3565b9050919050565b6123ec816123d2565b81146123f6575f80fd5b50565b5f81359050612407816123e3565b92915050565b5f819050919050565b61241f8161240d565b8114612429575f80fd5b50565b5f8135905061243a81612416565b92915050565b5f8060408385031215612456576124556123af565b5b5f612463858286016123f9565b92505060206124748582860161242c565b9150509250929050565b5f8115159050919050565b6124928161247e565b82525050565b5f6020820190506124ab5f830184612489565b92915050565b6124ba8161240d565b82525050565b5f6020820190506124d35f8301846124b1565b92915050565b5f819050919050565b5f6124fc6124f76124f2846123b3565b6124d9565b6123b3565b9050919050565b5f61250d826124e2565b9050919050565b5f61251e82612503565b9050919050565b61252e81612514565b82525050565b5f6020820190506125475f830184612525565b92915050565b6125568161247e565b8114612560575f80fd5b50565b5f813590506125718161254d565b92915050565b5f806040838503121561258d5761258c6123af565b5b5f61259a858286016123f9565b92505060206125ab85828601612563565b9150509250929050565b5f805f606084860312156125cc576125cb6123af565b5b5f6125d9868287016123f9565b93505060206125ea868287016123f9565b92505060406125fb8682870161242c565b9150509250925092565b5f60ff82169050919050565b61261a81612605565b82525050565b5f6020820190506126335f830184612611565b92915050565b612642816123d2565b82525050565b5f60208201905061265b5f830184612639565b92915050565b5f60208284031215612676576126756123af565b5b5f612683848285016123f9565b91505092915050565b5f80604083850312156126a2576126a16123af565b5b5f6126af8582860161242c565b92505060206126c085828601612563565b9150509250929050565b5f80604083850312156126e0576126df6123af565b5b5f6126ed858286016123f9565b92505060206126fe858286016123f9565b9150509250929050565b5f6020828403121561271d5761271c6123af565b5b5f61272a84828501612563565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061277757607f821691505b60208210810361278a57612789612733565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127c460208361230f565b91506127cf82612790565b602082019050919050565b5f6020820190508181035f8301526127f1816127b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61285260288361230f565b915061285d826127f8565b604082019050919050565b5f6020820190508181035f83015261287f81612846565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128bd8261240d565b91506128c88361240d565b92508282019050808211156128e0576128df612886565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61294060258361230f565b915061294b826128e6565b604082019050919050565b5f6020820190508181035f83015261296d81612934565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129ab8261240d565b91506129b68361240d565b9250826129c6576129c5612974565b5b828204905092915050565b7f43534c543a2053776170546f6b656e734174416d6f756e74206d7573742062655f8201527f2067726561746572207468616e20302e3030303125206f6620746f74616c207360208201527f7570706c79000000000000000000000000000000000000000000000000000000604082015250565b5f612a5160458361230f565b9150612a5c826129d1565b606082019050919050565b5f6020820190508181035f830152612a7e81612a45565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612adf60268361230f565b9150612aea82612a85565b604082019050919050565b5f6020820190508181035f830152612b0c81612ad3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b6d60248361230f565b9150612b7882612b13565b604082019050919050565b5f6020820190508181035f830152612b9a81612b61565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bfb60228361230f565b9150612c0682612ba1565b604082019050919050565b5f6020820190508181035f830152612c2881612bef565b9050919050565b7f43534c543a207472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c8960248361230f565b9150612c9482612c2f565b604082019050919050565b5f6020820190508181035f830152612cb681612c7d565b9050919050565b7f43534c543a207472616e7366657220746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1760228361230f565b9150612d2282612cbd565b604082019050919050565b5f6020820190508181035f830152612d4481612d0b565b9050919050565b7f43534c543a2054726164696e67206973206e6f7420656e61626c6564000000005f82015250565b5f612d7f601c8361230f565b9150612d8a82612d4b565b602082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f43534c543a2053656e64657227732077616c6c65742069732066726f7a656e005f82015250565b5f612de7601f8361230f565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b7f43534c543a20526563697069656e7427732077616c6c65742069732066726f7a5f8201527f656e000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7560228361230f565b9150612e8082612e1b565b604082019050919050565b5f6020820190508181035f830152612ea281612e69565b9050919050565b5f612eb38261240d565b9150612ebe8361240d565b9250828202612ecc8161240d565b91508282048414831517612ee357612ee2612886565b5b5092915050565b5f612ef48261240d565b9150612eff8361240d565b9250828203905081811115612f1757612f16612886565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7760258361230f565b9150612f8282612f1d565b604082019050919050565b5f6020820190508181035f830152612fa481612f6b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300560238361230f565b915061301082612fab565b604082019050919050565b5f6020820190508181035f83015261303281612ff9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61309360268361230f565b915061309e82613039565b604082019050919050565b5f6020820190508181035f8301526130c081613087565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061312f816123e3565b92915050565b5f6020828403121561314a576131496123af565b5b5f61315784828501613121565b91505092915050565b5f819050919050565b5f61318361317e61317984613160565b6124d9565b61240d565b9050919050565b61319381613169565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131cb816123d2565b82525050565b5f6131dc83836131c2565b60208301905092915050565b5f602082019050919050565b5f6131fe82613199565b61320881856131a3565b9350613213836131b3565b805f5b8381101561324357815161322a88826131d1565b9750613235836131e8565b925050600181019050613216565b5085935050505092915050565b5f60a0820190506132635f8301886124b1565b613270602083018761318a565b818103604083015261328281866131f4565b90506132916060830185612639565b61329e60808301846124b1565b9695505050505050565b5f6040820190506132bb5f8301856124b1565b6132c860208301846124b1565b9392505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613303601d8361230f565b915061330e826132cf565b602082019050919050565b5f6020820190508181035f830152613330816132f7565b9050919050565b5f81905092915050565b50565b5f61334f5f83613337565b915061335a82613341565b5f82019050919050565b5f61336e82613344565b915081905091905056fea26469706673582212209b5219096be86603aef706913d5848abd074d1ad5f0aa034b942151853db8d2a64736f6c63430008150033
Deployed Bytecode
0x6080604052600436106101d0575f3560e01c806370a08231116100f6578063b1fde9f811610094578063dd62ed3e11610063578063dd62ed3e14610695578063e2f45605146106d1578063f275f64b146106fb578063f2fde38b14610723576101d7565b8063b1fde9f8146105dd578063b27e04d814610605578063b3f0067414610641578063bb8c3ee01461066b576101d7565b806395583b07116100d057806395583b07146104ff57806395d89b411461053b578063a457c2d714610565578063a9059cbb146105a1576101d7565b806370a0823114610483578063715018a6146104bf5780638da5cb5b146104d5576101d7565b806323b872dd1161016e5780634ada218b1161013d5780634ada218b146103dd578063533020bb1461040757806365048d081461042f5780636ddd171314610459576101d7565b806323b872dd14610311578063313ce5671461034d578063395093511461037757806349bd5a5e146103b3576101d7565b80630fa1eeab116101aa5780630fa1eeab1461026b5780631694505e1461029557806318160ddd146102bf5780631a247b03146102e9576101d7565b806302d05d3f146101db57806306fdde0314610205578063095ea7b31461022f576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef61074b565b6040516101fc919061238f565b60405180910390f35b348015610210575f80fd5b50610219610788565b604051610226919061238f565b60405180910390f35b34801561023a575f80fd5b5061025560048036038101906102509190612440565b610818565b6040516102629190612498565b60405180910390f35b348015610276575f80fd5b5061027f610835565b60405161028c91906124c0565b60405180910390f35b3480156102a0575f80fd5b506102a961083b565b6040516102b69190612534565b60405180910390f35b3480156102ca575f80fd5b506102d3610860565b6040516102e091906124c0565b60405180910390f35b3480156102f4575f80fd5b5061030f600480360381019061030a9190612577565b610869565b005b34801561031c575f80fd5b50610337600480360381019061033291906125b5565b6109a5565b6040516103449190612498565b60405180910390f35b348015610358575f80fd5b50610361610abf565b60405161036e9190612620565b60405180910390f35b348015610382575f80fd5b5061039d60048036038101906103989190612440565b610ac7565b6040516103aa9190612498565b60405180910390f35b3480156103be575f80fd5b506103c7610b6e565b6040516103d49190612648565b60405180910390f35b3480156103e8575f80fd5b506103f1610b93565b6040516103fe9190612498565b60405180910390f35b348015610412575f80fd5b5061042d60048036038101906104289190612577565b610ba5565b005b34801561043a575f80fd5b50610443610ce1565b60405161045091906124c0565b60405180910390f35b348015610464575f80fd5b5061046d610ce7565b60405161047a9190612498565b60405180910390f35b34801561048e575f80fd5b506104a960048036038101906104a49190612661565b610cfa565b6040516104b691906124c0565b60405180910390f35b3480156104ca575f80fd5b506104d3610d3f565b005b3480156104e0575f80fd5b506104e9610e92565b6040516104f69190612648565b60405180910390f35b34801561050a575f80fd5b5061052560048036038101906105209190612661565b610eba565b6040516105329190612498565b60405180910390f35b348015610546575f80fd5b5061054f610f0c565b60405161055c919061238f565b60405180910390f35b348015610570575f80fd5b5061058b60048036038101906105869190612440565b610f9c565b6040516105989190612498565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c29190612440565b611082565b6040516105d49190612498565b60405180910390f35b3480156105e8575f80fd5b5061060360048036038101906105fe919061268c565b61109f565b005b348015610610575f80fd5b5061062b60048036038101906106269190612661565b6111ea565b6040516106389190612498565b60405180910390f35b34801561064c575f80fd5b5061065561123c565b6040516106629190612648565b60405180910390f35b348015610676575f80fd5b5061067f611261565b60405161068c91906124c0565b60405180910390f35b3480156106a0575f80fd5b506106bb60048036038101906106b691906126ca565b611267565b6040516106c891906124c0565b60405180910390f35b3480156106dc575f80fd5b506106e56112e9565b6040516106f291906124c0565b60405180910390f35b348015610706575f80fd5b50610721600480360381019061071c9190612708565b6112ef565b005b34801561072e575f80fd5b5061074960048036038101906107449190612661565b6113a1565b005b60606040518060400160405280600c81526020017f742e6d652f706978737761700000000000000000000000000000000000000000815250905090565b60606003805461079790612760565b80601f01602080910402602001604051908101604052809291908181526020018280546107c390612760565b801561080e5780601f106107e55761010080835404028352916020019161080e565b820191905f5260205f20905b8154815290600101906020018083116107f157829003601f168201915b5050505050905090565b5f61082b610824611563565b848461156a565b6001905092915050565b600e5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b610871611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f6906127da565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f146176e3b93081cc2d7cc8ebb5fba70413c75ae61c11db0a55087ac83d011f13826040516109999190612498565b60405180910390a25050565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109ed611563565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610aa85782811015610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90612868565b60405180910390fd5b610aa785610a9f611563565b85840361156a565b5b610ab385858561172d565b60019150509392505050565b5f6012905090565b5f610b64610ad3611563565b848460015f610ae0611563565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b5f91906128b3565b61156a565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900460ff1681565b610bad611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906127da565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fd17e29b9185a00800171e680c627983f284cdf937b14ea98ef64d9b44a72f2fc82604051610cd59190612498565b60405180910390a25050565b600d5481565b601160019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d47611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b606060048054610f1b90612760565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4790612760565b8015610f925780601f10610f6957610100808354040283529160200191610f92565b820191905f5260205f20905b815481529060010190602001808311610f7557829003601f168201915b5050505050905090565b5f8060015f610fa9611563565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a90612956565b60405180910390fd5b61107761106e611563565b8585840361156a565b600191505092915050565b5f61109561108e611563565b848461172d565b6001905092915050565b6110a7611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c906127da565b60405180910390fd5b620f4240611141610860565b61114b91906129a1565b821161118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390612a67565b60405180910390fd5b8160108190555080601160016101000a81548160ff0219169083151502179055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1456010546040516111de91906124c0565b60405180910390a15050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6112f7611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c906127da565b60405180910390fd5b80600b5f6101000a81548160ff02191690831515021790555050565b6113a9611563565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612af5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf90612b83565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90612c11565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172091906124c0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290612c9f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180090612d2d565b60405180910390fd5b600b5f9054906101000a900460ff1680611869575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806118ba575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6118f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f090612d95565b60405180910390fd5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a90612dfd565b60405180910390fd5b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0490612e8b565b60405180910390fd5b5f8103611a2457611a1f83835f611d46565b611d41565b5f611a2e30610cfa565b90505f6010548210159050808015611a52575060115f9054906101000a900460ff16155b8015611aaa575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac457505f600d54600c54611ac291906128b3565b115b8015611b17575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b2f5750601160019054906101000a900460ff165b15611b7157600160115f6101000a81548160ff021916908315150217905550611b5782611fa5565b5f60115f6101000a81548160ff0219169083151502179055505b5f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c0d575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611c23575060115f9054906101000a900460ff165b15611c30575f9050611cf4565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611c8e57600c549050611cf3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611cec57600d549050611cf2565b600e5490505b5b5b5f811115611d32575f60648286611d0b9190612ea9565b611d1591906129a1565b90508085611d239190612eea565b9450611d30873083611d46565b505b611d3d868686611d46565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90612f8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e199061301b565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c906130a9565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f3391906128b3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9791906124c0565b60405180910390a350505050565b5f4790505f600267ffffffffffffffff811115611fc557611fc46130c7565b5b604051908082528060200260200182016040528015611ff35781602001602082028036833780820191505090505b50905030815f8151811061200a576120096130f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120d29190613135565b816001815181106120e6576120e56130f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401612182959493929190613250565b5f604051808303815f87803b158015612199575f80fd5b505af19250505080156121aa575060015b6121b557505061224c565b5f82476121c29190612eea565b905061220e81600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661224f90919063ffffffff16565b507f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b84826040516122409291906132a8565b60405180910390a15050505b50565b5f81471015612293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228a90613319565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff16836040516122b890613364565b5f6040518083038185875af1925050503d805f81146122f2576040519150601f19603f3d011682016040523d82523d5f602084013e6122f7565b606091505b505090508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561233c578082015181840152602081019050612321565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61236182612305565b61236b818561230f565b935061237b81856020860161231f565b61238481612347565b840191505092915050565b5f6020820190508181035f8301526123a78184612357565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123dc826123b3565b9050919050565b6123ec816123d2565b81146123f6575f80fd5b50565b5f81359050612407816123e3565b92915050565b5f819050919050565b61241f8161240d565b8114612429575f80fd5b50565b5f8135905061243a81612416565b92915050565b5f8060408385031215612456576124556123af565b5b5f612463858286016123f9565b92505060206124748582860161242c565b9150509250929050565b5f8115159050919050565b6124928161247e565b82525050565b5f6020820190506124ab5f830184612489565b92915050565b6124ba8161240d565b82525050565b5f6020820190506124d35f8301846124b1565b92915050565b5f819050919050565b5f6124fc6124f76124f2846123b3565b6124d9565b6123b3565b9050919050565b5f61250d826124e2565b9050919050565b5f61251e82612503565b9050919050565b61252e81612514565b82525050565b5f6020820190506125475f830184612525565b92915050565b6125568161247e565b8114612560575f80fd5b50565b5f813590506125718161254d565b92915050565b5f806040838503121561258d5761258c6123af565b5b5f61259a858286016123f9565b92505060206125ab85828601612563565b9150509250929050565b5f805f606084860312156125cc576125cb6123af565b5b5f6125d9868287016123f9565b93505060206125ea868287016123f9565b92505060406125fb8682870161242c565b9150509250925092565b5f60ff82169050919050565b61261a81612605565b82525050565b5f6020820190506126335f830184612611565b92915050565b612642816123d2565b82525050565b5f60208201905061265b5f830184612639565b92915050565b5f60208284031215612676576126756123af565b5b5f612683848285016123f9565b91505092915050565b5f80604083850312156126a2576126a16123af565b5b5f6126af8582860161242c565b92505060206126c085828601612563565b9150509250929050565b5f80604083850312156126e0576126df6123af565b5b5f6126ed858286016123f9565b92505060206126fe858286016123f9565b9150509250929050565b5f6020828403121561271d5761271c6123af565b5b5f61272a84828501612563565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061277757607f821691505b60208210810361278a57612789612733565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127c460208361230f565b91506127cf82612790565b602082019050919050565b5f6020820190508181035f8301526127f1816127b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61285260288361230f565b915061285d826127f8565b604082019050919050565b5f6020820190508181035f83015261287f81612846565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128bd8261240d565b91506128c88361240d565b92508282019050808211156128e0576128df612886565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61294060258361230f565b915061294b826128e6565b604082019050919050565b5f6020820190508181035f83015261296d81612934565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129ab8261240d565b91506129b68361240d565b9250826129c6576129c5612974565b5b828204905092915050565b7f43534c543a2053776170546f6b656e734174416d6f756e74206d7573742062655f8201527f2067726561746572207468616e20302e3030303125206f6620746f74616c207360208201527f7570706c79000000000000000000000000000000000000000000000000000000604082015250565b5f612a5160458361230f565b9150612a5c826129d1565b606082019050919050565b5f6020820190508181035f830152612a7e81612a45565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612adf60268361230f565b9150612aea82612a85565b604082019050919050565b5f6020820190508181035f830152612b0c81612ad3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b6d60248361230f565b9150612b7882612b13565b604082019050919050565b5f6020820190508181035f830152612b9a81612b61565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bfb60228361230f565b9150612c0682612ba1565b604082019050919050565b5f6020820190508181035f830152612c2881612bef565b9050919050565b7f43534c543a207472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c8960248361230f565b9150612c9482612c2f565b604082019050919050565b5f6020820190508181035f830152612cb681612c7d565b9050919050565b7f43534c543a207472616e7366657220746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1760228361230f565b9150612d2282612cbd565b604082019050919050565b5f6020820190508181035f830152612d4481612d0b565b9050919050565b7f43534c543a2054726164696e67206973206e6f7420656e61626c6564000000005f82015250565b5f612d7f601c8361230f565b9150612d8a82612d4b565b602082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f43534c543a2053656e64657227732077616c6c65742069732066726f7a656e005f82015250565b5f612de7601f8361230f565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b7f43534c543a20526563697069656e7427732077616c6c65742069732066726f7a5f8201527f656e000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7560228361230f565b9150612e8082612e1b565b604082019050919050565b5f6020820190508181035f830152612ea281612e69565b9050919050565b5f612eb38261240d565b9150612ebe8361240d565b9250828202612ecc8161240d565b91508282048414831517612ee357612ee2612886565b5b5092915050565b5f612ef48261240d565b9150612eff8361240d565b9250828203905081811115612f1757612f16612886565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7760258361230f565b9150612f8282612f1d565b604082019050919050565b5f6020820190508181035f830152612fa481612f6b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300560238361230f565b915061301082612fab565b604082019050919050565b5f6020820190508181035f83015261303281612ff9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61309360268361230f565b915061309e82613039565b604082019050919050565b5f6020820190508181035f8301526130c081613087565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061312f816123e3565b92915050565b5f6020828403121561314a576131496123af565b5b5f61315784828501613121565b91505092915050565b5f819050919050565b5f61318361317e61317984613160565b6124d9565b61240d565b9050919050565b61319381613169565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131cb816123d2565b82525050565b5f6131dc83836131c2565b60208301905092915050565b5f602082019050919050565b5f6131fe82613199565b61320881856131a3565b9350613213836131b3565b805f5b8381101561324357815161322a88826131d1565b9750613235836131e8565b925050600181019050613216565b5085935050505092915050565b5f60a0820190506132635f8301886124b1565b613270602083018761318a565b818103604083015261328281866131f4565b90506132916060830185612639565b61329e60808301846124b1565b9695505050505050565b5f6040820190506132bb5f8301856124b1565b6132c860208301846124b1565b9392505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613303601d8361230f565b915061330e826132cf565b602082019050919050565b5f6020820190508181035f830152613330816132f7565b9050919050565b5f81905092915050565b50565b5f61334f5f83613337565b915061335a82613341565b5f82019050919050565b5f61336e82613344565b915081905091905056fea26469706673582212209b5219096be86603aef706913d5848abd074d1ad5f0aa034b942151853db8d2a64736f6c63430008150033
Deployed Bytecode Sourcemap
7821:5977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10091:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3732:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4646:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8286:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7905:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4053:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10303:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4823:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3952:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5404:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7953:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8178:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10703:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8252:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8434:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2921:148;;;;;;;;;;;;;:::i;:::-;;2707:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10873:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3840:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5627:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4304:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12734:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10540:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8324:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8221:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4487:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8360:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10194:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3077:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10091:95;10131:13;10157:21;;;;;;;;;;;;;;;;;;;10091:95;:::o;3732:100::-;3786:13;3819:5;3812:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3732:100;:::o;4646:169::-;4729:4;4746:39;4755:12;:10;:12::i;:::-;4769:7;4778:6;4746:8;:39::i;:::-;4803:4;4796:11;;4646:169;;;;:::o;8286:29::-;;;;:::o;7905:41::-;;;;;;;;;;;;;:::o;4053:108::-;4114:7;4141:12;;4134:19;;4053:108;:::o;10303:229::-;2844:12;:10;:12::i;:::-;2834:22;;:6;;;;;;;;;;;:22;;;2826:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10451:8:::1;10405:34;:43;10440:7;10405:43;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;10506:7;10475:49;;;10515:8;10475:49;;;;;;:::i;:::-;;;;;;;;10303:229:::0;;:::o;4823:573::-;4963:4;4980:24;5007:11;:19;5019:6;5007:19;;;;;;;;;;;;;;;:33;5027:12;:10;:12::i;:::-;5007:33;;;;;;;;;;;;;;;;4980:60;;5075:17;5055:16;:37;5051:265;;5137:6;5117:16;:26;;5109:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5232:57;5241:6;5249:12;:10;:12::i;:::-;5282:6;5263:16;:25;5232:8;:57::i;:::-;5051:265;5328:36;5338:6;5346:9;5357:6;5328:9;:36::i;:::-;5384:4;5377:11;;;4823:573;;;;;:::o;3952:93::-;4010:5;4035:2;4028:9;;3952:93;:::o;5404:215::-;5492:4;5509:80;5518:12;:10;:12::i;:::-;5532:7;5578:10;5541:11;:25;5553:12;:10;:12::i;:::-;5541:25;;;;;;;;;;;;;;;:34;5567:7;5541:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5509:8;:80::i;:::-;5607:4;5600:11;;5404:215;;;;:::o;7953:29::-;;;;;;;;;;;;;:::o;8178:34::-;;;;;;;;;;;;;:::o;10703:162::-;2844:12;:10;:12::i;:::-;2834:22;;:6;;;;;;;;;;;:22;;;2826:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10806:6:::1;10785:9;:18;10795:7;10785:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10841:7;10828:29;;;10850:6;10828:29;;;;;;:::i;:::-;;;;;;;;10703:162:::0;;:::o;8252:25::-;;;;:::o;8434:26::-;;;;;;;;;;;;;:::o;4169:127::-;4243:7;4270:9;:18;4280:7;4270:18;;;;;;;;;;;;;;;;4263:25;;4169:127;;;:::o;2921:148::-;2844:12;:10;:12::i;:::-;2834:22;;:6;;;;;;;;;;;:22;;;2826:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3028:1:::1;2991:40;;3012:6;;;;;;;;;;;2991:40;;;;;;;;;;;;3059:1;3042:6;;:19;;;;;;;;;;;;;;;;;;2921:148::o:0;2707:79::-;2745:7;2772:6;;;;;;;;;;;2765:13;;2707:79;:::o;10873:111::-;10934:4;10958:9;:18;10968:7;10958:18;;;;;;;;;;;;;;;;;;;;;;;;;10951:25;;10873:111;;;:::o;3840:104::-;3896:13;3929:7;3922:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3840:104;:::o;5627:413::-;5720:4;5737:24;5764:11;:25;5776:12;:10;:12::i;:::-;5764:25;;;;;;;;;;;;;;;:34;5790:7;5764:34;;;;;;;;;;;;;;;;5737:61;;5837:15;5817:16;:35;;5809:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5930:67;5939:12;:10;:12::i;:::-;5953:7;5981:15;5962:16;:34;5930:8;:67::i;:::-;6028:4;6021:11;;;5627:413;;;;:::o;4304:175::-;4390:4;4407:42;4417:12;:10;:12::i;:::-;4431:9;4442:6;4407:9;:42::i;:::-;4467:4;4460:11;;4304:175;;;;:::o;12734:366::-;2844:12;:10;:12::i;:::-;2834:22;;:6;;;;;;;;;;;:22;;;2826:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12868:9:::1;12852:13;:11;:13::i;:::-;:25;;;;:::i;:::-;12840:9;:37;12832:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;12983:9;12962:18;:30;;;;13017:12;13003:11;;:26;;;;;;;;;;;;;;;;;;13047:45;13073:18;;13047:45;;;;;;:::i;:::-;;;;;;;;12734:366:::0;;:::o;10540:155::-;10620:4;10644:34;:43;10679:7;10644:43;;;;;;;;;;;;;;;;;;;;;;;;;10637:50;;10540:155;;;:::o;8324:27::-;;;;;;;;;;;;;:::o;8221:24::-;;;;:::o;4487:151::-;4576:7;4603:11;:18;4615:5;4603:18;;;;;;;;;;;;;;;:27;4622:7;4603:27;;;;;;;;;;;;;;;;4596:34;;4487:151;;;;:::o;8360:34::-;;;;:::o;10194:101::-;2844:12;:10;:12::i;:::-;2834:22;;:6;;;;;;;;;;;:22;;;2826:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10279:8:::1;10262:14;;:25;;;;;;;;;;;;;;;;;;10194:101:::0;:::o;3077:244::-;2844:12;:10;:12::i;:::-;2834:22;;:6;;;;;;;;;;;:22;;;2826:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3186:1:::1;3166:22;;:8;:22;;::::0;3158:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3276:8;3247:38;;3268:6;;;;;;;;;;;3247:38;;;;;;;;;;;;3305:8;3296:6;;:17;;;;;;;;;;;;;;;;;;3077:244:::0;:::o;2149:98::-;2202:7;2229:10;2222:17;;2149:98;:::o;7434:380::-;7587:1;7570:19;;:5;:19;;;7562:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7668:1;7649:21;;:7;:21;;;7641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7752:6;7722:11;:18;7734:5;7722:18;;;;;;;;;;;;;;;:27;7741:7;7722:27;;;;;;;;;;;;;;;:36;;;;7790:7;7774:32;;7783:5;7774:32;;;7799:6;7774:32;;;;;;:::i;:::-;;;;;;;;7434:380;;;:::o;10992:1734::-;11105:1;11089:18;;:4;:18;;;11081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11181:1;11167:16;;:2;:16;;;11159:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11243:14;;;;;;;;;;;:58;;;;11261:34;:40;11296:4;11261:40;;;;;;;;;;;;;;;;;;;;;;;;;11243:58;:100;;;;11305:34;:38;11340:2;11305:38;;;;;;;;;;;;;;;;;;;;;;;;;11243:100;11235:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;11396:9;:15;11406:4;11396:15;;;;;;;;;;;;;;;;;;;;;;;;;11395:16;11387:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11467:9;:13;11477:2;11467:13;;;;;;;;;;;;;;;;;;;;;;;;;11466:14;11458:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11546:1;11536:6;:11;11532:93;;11564:28;11580:4;11586:2;11590:1;11564:15;:28::i;:::-;11607:7;;11532:93;11637:28;11668:24;11686:4;11668:9;:24::i;:::-;11637:55;;11705:12;11744:18;;11720:20;:42;;11705:57;;11779:7;:33;;;;;11804:8;;;;;;;;;;;11803:9;11779:33;:69;;;;;11835:13;;;;;;;;;;;11829:19;;:2;:19;;;11779:69;:110;;;;;11888:1;11876:9;;11865:8;;:20;;;;:::i;:::-;:24;11779:110;:153;;;;;11907:19;:25;11927:4;11907:25;;;;;;;;;;;;;;;;;;;;;;;;;11906:26;11779:153;:181;;;;;11949:11;;;;;;;;;;;11779:181;11775:330;;;11998:4;11987:8;;:15;;;;;;;;;;;;;;;;;;12019:36;12034:20;12019:14;:36::i;:::-;12088:5;12077:8;;:16;;;;;;;;;;;;;;;;;;11775:330;12117:18;12150:19;:25;12170:4;12150:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;12179:19;:23;12199:2;12179:23;;;;;;;;;;;;;;;;;;;;;;;;;12150:52;:64;;;;12206:8;;;;;;;;;;;12150:64;12146:332;;;12244:1;12231:14;;12146:332;;;12275:13;;;;;;;;;;;12267:21;;:4;:21;;;12263:215;;12318:8;;12305:21;;12263:215;;;12354:13;;;;;;;;;;;12348:19;;:2;:19;;;12344:134;;12398:9;;12384:23;;12344:134;;;12453:13;;12440:26;;12344:134;12263:215;12146:332;12507:1;12494:10;:14;12490:183;;;12525:12;12564:3;12550:10;12541:6;:19;;;;:::i;:::-;12540:27;;;;:::i;:::-;12525:42;;12600:4;12591:6;:13;;;;:::i;:::-;12582:22;;12619:42;12635:4;12649;12656;12619:15;:42::i;:::-;12510:163;12490:183;12685:33;12701:4;12707:2;12711:6;12685:15;:33::i;:::-;11070:1656;;;10992:1734;;;;:::o;6048:614::-;6206:1;6188:20;;:6;:20;;;6180:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6290:1;6269:23;;:9;:23;;;6261:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6345:21;6369:9;:17;6379:6;6369:17;;;;;;;;;;;;;;;;6345:41;;6422:6;6405:13;:23;;6397:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6543:6;6527:13;:22;6507:9;:17;6517:6;6507:17;;;;;;;;;;;;;;;:42;;;;6595:6;6571:9;:20;6581:9;6571:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6636:9;6619:35;;6628:6;6619:35;;;6647:6;6619:35;;;;;;:::i;:::-;;;;;;;;6169:493;6048:614;;;:::o;13108:687::-;13172:22;13197:21;13172:46;;13231:21;13269:1;13255:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13231:40;;13300:4;13282;13287:1;13282:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13326:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13316:4;13321:1;13316:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;13365:15;;;;;;;;;;;:66;;;13446:11;13472:1;13488:4;13515;13535:15;13365:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13361:243;;13586:7;;;;13361:243;13616:18;13661:14;13637:21;:38;;;;:::i;:::-;13616:59;;13688:42;13719:10;13696:11;;;;;;;;;;;13688:30;;;;:42;;;;:::i;:::-;;13748:39;13763:11;13776:10;13748:39;;;;;;;:::i;:::-;;;;;;;;13161:634;;;13108:687;;:::o;1843:266::-;1922:4;1971:6;1946:21;:31;;1938:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2025:12;2043:9;:14;;2065:6;2043:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2024:52;;;2094:7;2087:14;;;1843:266;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:151::-;4219:9;4252:37;4283:5;4252:37;:::i;:::-;4239:50;;4144:151;;;:::o;4301:181::-;4413:62;4469:5;4413:62;:::i;:::-;4408:3;4401:75;4301:181;;:::o;4488:272::-;4606:4;4644:2;4633:9;4629:18;4621:26;;4657:96;4750:1;4739:9;4735:17;4726:6;4657:96;:::i;:::-;4488:272;;;;:::o;4766:116::-;4836:21;4851:5;4836:21;:::i;:::-;4829:5;4826:32;4816:60;;4872:1;4869;4862:12;4816:60;4766:116;:::o;4888:133::-;4931:5;4969:6;4956:20;4947:29;;4985:30;5009:5;4985:30;:::i;:::-;4888:133;;;;:::o;5027:468::-;5092:6;5100;5149:2;5137:9;5128:7;5124:23;5120:32;5117:119;;;5155:79;;:::i;:::-;5117:119;5275:1;5300:53;5345:7;5336:6;5325:9;5321:22;5300:53;:::i;:::-;5290:63;;5246:117;5402:2;5428:50;5470:7;5461:6;5450:9;5446:22;5428:50;:::i;:::-;5418:60;;5373:115;5027:468;;;;;:::o;5501:619::-;5578:6;5586;5594;5643:2;5631:9;5622:7;5618:23;5614:32;5611:119;;;5649:79;;:::i;:::-;5611:119;5769:1;5794:53;5839:7;5830:6;5819:9;5815:22;5794:53;:::i;:::-;5784:63;;5740:117;5896:2;5922:53;5967:7;5958:6;5947:9;5943:22;5922:53;:::i;:::-;5912:63;;5867:118;6024:2;6050:53;6095:7;6086:6;6075:9;6071:22;6050:53;:::i;:::-;6040:63;;5995:118;5501:619;;;;;:::o;6126:86::-;6161:7;6201:4;6194:5;6190:16;6179:27;;6126:86;;;:::o;6218:112::-;6301:22;6317:5;6301:22;:::i;:::-;6296:3;6289:35;6218:112;;:::o;6336:214::-;6425:4;6463:2;6452:9;6448:18;6440:26;;6476:67;6540:1;6529:9;6525:17;6516:6;6476:67;:::i;:::-;6336:214;;;;:::o;6556:118::-;6643:24;6661:5;6643:24;:::i;:::-;6638:3;6631:37;6556:118;;:::o;6680:222::-;6773:4;6811:2;6800:9;6796:18;6788:26;;6824:71;6892:1;6881:9;6877:17;6868:6;6824:71;:::i;:::-;6680:222;;;;:::o;6908:329::-;6967:6;7016:2;7004:9;6995:7;6991:23;6987:32;6984:119;;;7022:79;;:::i;:::-;6984:119;7142:1;7167:53;7212:7;7203:6;7192:9;7188:22;7167:53;:::i;:::-;7157:63;;7113:117;6908:329;;;;:::o;7243:468::-;7308:6;7316;7365:2;7353:9;7344:7;7340:23;7336:32;7333:119;;;7371:79;;:::i;:::-;7333:119;7491:1;7516:53;7561:7;7552:6;7541:9;7537:22;7516:53;:::i;:::-;7506:63;;7462:117;7618:2;7644:50;7686:7;7677:6;7666:9;7662:22;7644:50;:::i;:::-;7634:60;;7589:115;7243:468;;;;;:::o;7717:474::-;7785:6;7793;7842:2;7830:9;7821:7;7817:23;7813:32;7810:119;;;7848:79;;:::i;:::-;7810:119;7968:1;7993:53;8038:7;8029:6;8018:9;8014:22;7993:53;:::i;:::-;7983:63;;7939:117;8095:2;8121:53;8166:7;8157:6;8146:9;8142:22;8121:53;:::i;:::-;8111:63;;8066:118;7717:474;;;;;:::o;8197:323::-;8253:6;8302:2;8290:9;8281:7;8277:23;8273:32;8270:119;;;8308:79;;:::i;:::-;8270:119;8428:1;8453:50;8495:7;8486:6;8475:9;8471:22;8453:50;:::i;:::-;8443:60;;8399:114;8197:323;;;;:::o;8526:180::-;8574:77;8571:1;8564:88;8671:4;8668:1;8661:15;8695:4;8692:1;8685:15;8712:320;8756:6;8793:1;8787:4;8783:12;8773:22;;8840:1;8834:4;8830:12;8861:18;8851:81;;8917:4;8909:6;8905:17;8895:27;;8851:81;8979:2;8971:6;8968:14;8948:18;8945:38;8942:84;;8998:18;;:::i;:::-;8942:84;8763:269;8712:320;;;:::o;9038:182::-;9178:34;9174:1;9166:6;9162:14;9155:58;9038:182;:::o;9226:366::-;9368:3;9389:67;9453:2;9448:3;9389:67;:::i;:::-;9382:74;;9465:93;9554:3;9465:93;:::i;:::-;9583:2;9578:3;9574:12;9567:19;;9226:366;;;:::o;9598:419::-;9764:4;9802:2;9791:9;9787:18;9779:26;;9851:9;9845:4;9841:20;9837:1;9826:9;9822:17;9815:47;9879:131;10005:4;9879:131;:::i;:::-;9871:139;;9598:419;;;:::o;10023:227::-;10163:34;10159:1;10151:6;10147:14;10140:58;10232:10;10227:2;10219:6;10215:15;10208:35;10023:227;:::o;10256:366::-;10398:3;10419:67;10483:2;10478:3;10419:67;:::i;:::-;10412:74;;10495:93;10584:3;10495:93;:::i;:::-;10613:2;10608:3;10604:12;10597:19;;10256:366;;;:::o;10628:419::-;10794:4;10832:2;10821:9;10817:18;10809:26;;10881:9;10875:4;10871:20;10867:1;10856:9;10852:17;10845:47;10909:131;11035:4;10909:131;:::i;:::-;10901:139;;10628:419;;;:::o;11053:180::-;11101:77;11098:1;11091:88;11198:4;11195:1;11188:15;11222:4;11219:1;11212:15;11239:191;11279:3;11298:20;11316:1;11298:20;:::i;:::-;11293:25;;11332:20;11350:1;11332:20;:::i;:::-;11327:25;;11375:1;11372;11368:9;11361:16;;11396:3;11393:1;11390:10;11387:36;;;11403:18;;:::i;:::-;11387:36;11239:191;;;;:::o;11436:224::-;11576:34;11572:1;11564:6;11560:14;11553:58;11645:7;11640:2;11632:6;11628:15;11621:32;11436:224;:::o;11666:366::-;11808:3;11829:67;11893:2;11888:3;11829:67;:::i;:::-;11822:74;;11905:93;11994:3;11905:93;:::i;:::-;12023:2;12018:3;12014:12;12007:19;;11666:366;;;:::o;12038:419::-;12204:4;12242:2;12231:9;12227:18;12219:26;;12291:9;12285:4;12281:20;12277:1;12266:9;12262:17;12255:47;12319:131;12445:4;12319:131;:::i;:::-;12311:139;;12038:419;;;:::o;12463:180::-;12511:77;12508:1;12501:88;12608:4;12605:1;12598:15;12632:4;12629:1;12622:15;12649:185;12689:1;12706:20;12724:1;12706:20;:::i;:::-;12701:25;;12740:20;12758:1;12740:20;:::i;:::-;12735:25;;12779:1;12769:35;;12784:18;;:::i;:::-;12769:35;12826:1;12823;12819:9;12814:14;;12649:185;;;;:::o;12840:293::-;12980:34;12976:1;12968:6;12964:14;12957:58;13049:34;13044:2;13036:6;13032:15;13025:59;13118:7;13113:2;13105:6;13101:15;13094:32;12840:293;:::o;13139:366::-;13281:3;13302:67;13366:2;13361:3;13302:67;:::i;:::-;13295:74;;13378:93;13467:3;13378:93;:::i;:::-;13496:2;13491:3;13487:12;13480:19;;13139:366;;;:::o;13511:419::-;13677:4;13715:2;13704:9;13700:18;13692:26;;13764:9;13758:4;13754:20;13750:1;13739:9;13735:17;13728:47;13792:131;13918:4;13792:131;:::i;:::-;13784:139;;13511:419;;;:::o;13936:225::-;14076:34;14072:1;14064:6;14060:14;14053:58;14145:8;14140:2;14132:6;14128:15;14121:33;13936:225;:::o;14167:366::-;14309:3;14330:67;14394:2;14389:3;14330:67;:::i;:::-;14323:74;;14406:93;14495:3;14406:93;:::i;:::-;14524:2;14519:3;14515:12;14508:19;;14167:366;;;:::o;14539:419::-;14705:4;14743:2;14732:9;14728:18;14720:26;;14792:9;14786:4;14782:20;14778:1;14767:9;14763:17;14756:47;14820:131;14946:4;14820:131;:::i;:::-;14812:139;;14539:419;;;:::o;14964:223::-;15104:34;15100:1;15092:6;15088:14;15081:58;15173:6;15168:2;15160:6;15156:15;15149:31;14964:223;:::o;15193:366::-;15335:3;15356:67;15420:2;15415:3;15356:67;:::i;:::-;15349:74;;15432:93;15521:3;15432:93;:::i;:::-;15550:2;15545:3;15541:12;15534:19;;15193:366;;;:::o;15565:419::-;15731:4;15769:2;15758:9;15754:18;15746:26;;15818:9;15812:4;15808:20;15804:1;15793:9;15789:17;15782:47;15846:131;15972:4;15846:131;:::i;:::-;15838:139;;15565:419;;;:::o;15990:221::-;16130:34;16126:1;16118:6;16114:14;16107:58;16199:4;16194:2;16186:6;16182:15;16175:29;15990:221;:::o;16217:366::-;16359:3;16380:67;16444:2;16439:3;16380:67;:::i;:::-;16373:74;;16456:93;16545:3;16456:93;:::i;:::-;16574:2;16569:3;16565:12;16558:19;;16217:366;;;:::o;16589:419::-;16755:4;16793:2;16782:9;16778:18;16770:26;;16842:9;16836:4;16832:20;16828:1;16817:9;16813:17;16806:47;16870:131;16996:4;16870:131;:::i;:::-;16862:139;;16589:419;;;:::o;17014:223::-;17154:34;17150:1;17142:6;17138:14;17131:58;17223:6;17218:2;17210:6;17206:15;17199:31;17014:223;:::o;17243:366::-;17385:3;17406:67;17470:2;17465:3;17406:67;:::i;:::-;17399:74;;17482:93;17571:3;17482:93;:::i;:::-;17600:2;17595:3;17591:12;17584:19;;17243:366;;;:::o;17615:419::-;17781:4;17819:2;17808:9;17804:18;17796:26;;17868:9;17862:4;17858:20;17854:1;17843:9;17839:17;17832:47;17896:131;18022:4;17896:131;:::i;:::-;17888:139;;17615:419;;;:::o;18040:221::-;18180:34;18176:1;18168:6;18164:14;18157:58;18249:4;18244:2;18236:6;18232:15;18225:29;18040:221;:::o;18267:366::-;18409:3;18430:67;18494:2;18489:3;18430:67;:::i;:::-;18423:74;;18506:93;18595:3;18506:93;:::i;:::-;18624:2;18619:3;18615:12;18608:19;;18267:366;;;:::o;18639:419::-;18805:4;18843:2;18832:9;18828:18;18820:26;;18892:9;18886:4;18882:20;18878:1;18867:9;18863:17;18856:47;18920:131;19046:4;18920:131;:::i;:::-;18912:139;;18639:419;;;:::o;19064:178::-;19204:30;19200:1;19192:6;19188:14;19181:54;19064:178;:::o;19248:366::-;19390:3;19411:67;19475:2;19470:3;19411:67;:::i;:::-;19404:74;;19487:93;19576:3;19487:93;:::i;:::-;19605:2;19600:3;19596:12;19589:19;;19248:366;;;:::o;19620:419::-;19786:4;19824:2;19813:9;19809:18;19801:26;;19873:9;19867:4;19863:20;19859:1;19848:9;19844:17;19837:47;19901:131;20027:4;19901:131;:::i;:::-;19893:139;;19620:419;;;:::o;20045:181::-;20185:33;20181:1;20173:6;20169:14;20162:57;20045:181;:::o;20232:366::-;20374:3;20395:67;20459:2;20454:3;20395:67;:::i;:::-;20388:74;;20471:93;20560:3;20471:93;:::i;:::-;20589:2;20584:3;20580:12;20573:19;;20232:366;;;:::o;20604:419::-;20770:4;20808:2;20797:9;20793:18;20785:26;;20857:9;20851:4;20847:20;20843:1;20832:9;20828:17;20821:47;20885:131;21011:4;20885:131;:::i;:::-;20877:139;;20604:419;;;:::o;21029:221::-;21169:34;21165:1;21157:6;21153:14;21146:58;21238:4;21233:2;21225:6;21221:15;21214:29;21029:221;:::o;21256:366::-;21398:3;21419:67;21483:2;21478:3;21419:67;:::i;:::-;21412:74;;21495:93;21584:3;21495:93;:::i;:::-;21613:2;21608:3;21604:12;21597:19;;21256:366;;;:::o;21628:419::-;21794:4;21832:2;21821:9;21817:18;21809:26;;21881:9;21875:4;21871:20;21867:1;21856:9;21852:17;21845:47;21909:131;22035:4;21909:131;:::i;:::-;21901:139;;21628:419;;;:::o;22053:410::-;22093:7;22116:20;22134:1;22116:20;:::i;:::-;22111:25;;22150:20;22168:1;22150:20;:::i;:::-;22145:25;;22205:1;22202;22198:9;22227:30;22245:11;22227:30;:::i;:::-;22216:41;;22406:1;22397:7;22393:15;22390:1;22387:22;22367:1;22360:9;22340:83;22317:139;;22436:18;;:::i;:::-;22317:139;22101:362;22053:410;;;;:::o;22469:194::-;22509:4;22529:20;22547:1;22529:20;:::i;:::-;22524:25;;22563:20;22581:1;22563:20;:::i;:::-;22558:25;;22607:1;22604;22600:9;22592:17;;22631:1;22625:4;22622:11;22619:37;;;22636:18;;:::i;:::-;22619:37;22469:194;;;;:::o;22669:224::-;22809:34;22805:1;22797:6;22793:14;22786:58;22878:7;22873:2;22865:6;22861:15;22854:32;22669:224;:::o;22899:366::-;23041:3;23062:67;23126:2;23121:3;23062:67;:::i;:::-;23055:74;;23138:93;23227:3;23138:93;:::i;:::-;23256:2;23251:3;23247:12;23240:19;;22899:366;;;:::o;23271:419::-;23437:4;23475:2;23464:9;23460:18;23452:26;;23524:9;23518:4;23514:20;23510:1;23499:9;23495:17;23488:47;23552:131;23678:4;23552:131;:::i;:::-;23544:139;;23271:419;;;:::o;23696:222::-;23836:34;23832:1;23824:6;23820:14;23813:58;23905:5;23900:2;23892:6;23888:15;23881:30;23696:222;:::o;23924:366::-;24066:3;24087:67;24151:2;24146:3;24087:67;:::i;:::-;24080:74;;24163:93;24252:3;24163:93;:::i;:::-;24281:2;24276:3;24272:12;24265:19;;23924:366;;;:::o;24296:419::-;24462:4;24500:2;24489:9;24485:18;24477:26;;24549:9;24543:4;24539:20;24535:1;24524:9;24520:17;24513:47;24577:131;24703:4;24577:131;:::i;:::-;24569:139;;24296:419;;;:::o;24721:225::-;24861:34;24857:1;24849:6;24845:14;24838:58;24930:8;24925:2;24917:6;24913:15;24906:33;24721:225;:::o;24952:366::-;25094:3;25115:67;25179:2;25174:3;25115:67;:::i;:::-;25108:74;;25191:93;25280:3;25191:93;:::i;:::-;25309:2;25304:3;25300:12;25293:19;;24952:366;;;:::o;25324:419::-;25490:4;25528:2;25517:9;25513:18;25505:26;;25577:9;25571:4;25567:20;25563:1;25552:9;25548:17;25541:47;25605:131;25731:4;25605:131;:::i;:::-;25597:139;;25324:419;;;:::o;25749:180::-;25797:77;25794:1;25787:88;25894:4;25891:1;25884:15;25918:4;25915:1;25908:15;25935:180;25983:77;25980:1;25973:88;26080:4;26077:1;26070:15;26104:4;26101:1;26094:15;26121:143;26178:5;26209:6;26203:13;26194:22;;26225:33;26252:5;26225:33;:::i;:::-;26121:143;;;;:::o;26270:351::-;26340:6;26389:2;26377:9;26368:7;26364:23;26360:32;26357:119;;;26395:79;;:::i;:::-;26357:119;26515:1;26540:64;26596:7;26587:6;26576:9;26572:22;26540:64;:::i;:::-;26530:74;;26486:128;26270:351;;;;:::o;26627:85::-;26672:7;26701:5;26690:16;;26627:85;;;:::o;26718:158::-;26776:9;26809:61;26827:42;26836:32;26862:5;26836:32;:::i;:::-;26827:42;:::i;:::-;26809:61;:::i;:::-;26796:74;;26718:158;;;:::o;26882:147::-;26977:45;27016:5;26977:45;:::i;:::-;26972:3;26965:58;26882:147;;:::o;27035:114::-;27102:6;27136:5;27130:12;27120:22;;27035:114;;;:::o;27155:184::-;27254:11;27288:6;27283:3;27276:19;27328:4;27323:3;27319:14;27304:29;;27155:184;;;;:::o;27345:132::-;27412:4;27435:3;27427:11;;27465:4;27460:3;27456:14;27448:22;;27345:132;;;:::o;27483:108::-;27560:24;27578:5;27560:24;:::i;:::-;27555:3;27548:37;27483:108;;:::o;27597:179::-;27666:10;27687:46;27729:3;27721:6;27687:46;:::i;:::-;27765:4;27760:3;27756:14;27742:28;;27597:179;;;;:::o;27782:113::-;27852:4;27884;27879:3;27875:14;27867:22;;27782:113;;;:::o;27931:732::-;28050:3;28079:54;28127:5;28079:54;:::i;:::-;28149:86;28228:6;28223:3;28149:86;:::i;:::-;28142:93;;28259:56;28309:5;28259:56;:::i;:::-;28338:7;28369:1;28354:284;28379:6;28376:1;28373:13;28354:284;;;28455:6;28449:13;28482:63;28541:3;28526:13;28482:63;:::i;:::-;28475:70;;28568:60;28621:6;28568:60;:::i;:::-;28558:70;;28414:224;28401:1;28398;28394:9;28389:14;;28354:284;;;28358:14;28654:3;28647:10;;28055:608;;;27931:732;;;;:::o;28669:831::-;28932:4;28970:3;28959:9;28955:19;28947:27;;28984:71;29052:1;29041:9;29037:17;29028:6;28984:71;:::i;:::-;29065:80;29141:2;29130:9;29126:18;29117:6;29065:80;:::i;:::-;29192:9;29186:4;29182:20;29177:2;29166:9;29162:18;29155:48;29220:108;29323:4;29314:6;29220:108;:::i;:::-;29212:116;;29338:72;29406:2;29395:9;29391:18;29382:6;29338:72;:::i;:::-;29420:73;29488:3;29477:9;29473:19;29464:6;29420:73;:::i;:::-;28669:831;;;;;;;;:::o;29506:332::-;29627:4;29665:2;29654:9;29650:18;29642:26;;29678:71;29746:1;29735:9;29731:17;29722:6;29678:71;:::i;:::-;29759:72;29827:2;29816:9;29812:18;29803:6;29759:72;:::i;:::-;29506:332;;;;;:::o;29844:179::-;29984:31;29980:1;29972:6;29968:14;29961:55;29844:179;:::o;30029:366::-;30171:3;30192:67;30256:2;30251:3;30192:67;:::i;:::-;30185:74;;30268:93;30357:3;30268:93;:::i;:::-;30386:2;30381:3;30377:12;30370:19;;30029:366;;;:::o;30401:419::-;30567:4;30605:2;30594:9;30590:18;30582:26;;30654:9;30648:4;30644:20;30640:1;30629:9;30625:17;30618:47;30682:131;30808:4;30682:131;:::i;:::-;30674:139;;30401:419;;;:::o;30826:147::-;30927:11;30964:3;30949:18;;30826:147;;;;:::o;30979:114::-;;:::o;31099:398::-;31258:3;31279:83;31360:1;31355:3;31279:83;:::i;:::-;31272:90;;31371:93;31460:3;31371:93;:::i;:::-;31489:1;31484:3;31480:11;31473:18;;31099:398;;;:::o;31503:379::-;31687:3;31709:147;31852:3;31709:147;:::i;:::-;31702:154;;31873:3;31866:10;;31503:379;;;:::o
Swarm Source
ipfs://9b5219096be86603aef706913d5848abd074d1ad5f0aa034b942151853db8d2a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)