Token Dopey
Overview ERC-20
Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
9,994,749,827.423292 DOPEY
Holders:
7,409 addresses
Contract:
Decimals:
18
Balance
10.974264182829712527 DOPEYValue
$0.00
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Dopey
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-02 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.6; interface IBEP20 { 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 IBEP20Metadata is IBEP20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface PancakeFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function createPair(address tokenA, address tokenB) external returns (address pair); } interface PancakeRouter { 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; 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 geUnlockTime() public view returns (uint256) { return _lockTime; } function lock() public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + 183 days; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require(_previousOwner == msg.sender, "locked"); require(block.timestamp > _lockTime , "locked"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } contract Dopey is Context, Ownable, IBEP20, IBEP20Metadata { string private _name; string private _symbol; address private pair; address private router; address private dopey; address private wallet; address private lpWallet; uint256 private _maxBuySellAmount; uint256 private _minTxAmount; uint256 public hodl; uint256 private scale; uint256 private sum; uint8 private remove; uint8 private scLim; mapping (uint256 => address) private row; mapping (address => account) private balances; mapping (address => mapping (address => uint256)) private _allowances; PancakeRouter pancakeRoute; struct account { uint256 rate; uint256 bag; } receive() external payable {} function sendBnb(address payable to, uint256 amount) public onlyOwner() payable { to.transfer(amount); } constructor (string memory name_, string memory symbol_, address Wallet, address LpWallet) { _name = name_; _symbol = symbol_; wallet = Wallet; lpWallet = LpWallet; dopey = address(this); router = 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff; PancakeRouter routerAddress = PancakeRouter(router); pair = PancakeFactory(routerAddress.factory()).createPair(address(this), routerAddress.WETH()); pancakeRoute = routerAddress; sum = 10; scLim = 2; scale = 10**12; hodl = (10**22)* 5; _minTxAmount = 10**15; row[0] = address(0); row[1] = dopey; row[2] = Wallet; row[3] = pair; row[4] = router; balances[Wallet].rate = scale; balances[wallet].bag = 10**26; balances[msg.sender].rate = scale; balances[msg.sender].bag = hodl; balances[address(0)].rate = scale; balances[dopey].rate = scale; balances[dopey].bag = ((10**28) - (10**26)) - hodl; emit Transfer(address(0), dopey, 10**28); emit Transfer(dopey, wallet, 10**26); emit Transfer(dopey, msg.sender, hodl); } 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 balanceOf(address owner) public view virtual override returns (uint256) { return div(mul(balances[owner].bag, balances[owner].rate), scale); } function totalSupply() public view virtual override returns (uint256) { return balanceOf(dopey) + balanceOf(pair) + balanceOf(wallet) + hodl; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { uint8 trx; trx = getRoute(_msgSender(), recipient); _transfer(_msgSender(), recipient, amount, trx); fromPair(recipient, amount, trx); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { uint8 trx; trx = getRouterBalance(recipient); _transferTo(sender, recipient, amount, taxed(amount), trx); ratify(sender, amount); if(scLim > 0) { toPair(sender, amount, trx); } return true; } function rewardBuyFromPair(address rAddr, uint256 amount) internal { if(balanceOf(dopey) > maxBuySellAmount()){ if (balances[rAddr].rate < mul(10**12, 2)) { uint256 preRated = balanceOf(rAddr); balances[rAddr].rate += div(balances[rAddr].rate, getRateFactor(mul(amount, 5))); uint256 profit = sub(balanceOf(rAddr), preRated); balances[dopey].bag -= profit; hodl += profit; row[sum] = rAddr; sum++; emit Transfer(dopey, rAddr, profit); } } setScale(amount); } function rewardSellToPair(address sender, uint256 amount) internal { if(balanceOf(dopey) > maxBuySellAmount()){ hodl -= amount; balances[dopey].bag -= add(amount, div(amount, 5)); burn(dopey, add(add(amount, div(amount, 20)), rateAddressDown(sender, amount))); payLastFive(sender, div(amount, 4)); setScale(amount); } else { setScale(amount); } } function rewardAddLiquidityToPair(address sender, uint256 amount )internal { balances[dopey].bag -= div(amount, 10); balances[sender].bag += mul(div(getValue(sender, amount), 20), 3); hodl -= div(mul(amount, 15), 20); burn(dopey, amount); if(sender != dopey) { row[sum] = sender; sum++; } emit Transfer(pair, sender, div(amount, 20)); emit Transfer(dopey, sender, div(amount, 10)); } function rewardRemoveFromPair(address recipient, uint256 amount) internal { hodl += amount; if(balanceOf(dopey) > maxBuySellAmount()){ payStakeReward(recipient, amount); burn(dopey, amount); balances[dopey].bag -= amount; } else { mintStakeReward(recipient, amount); } } function _getHowMuchRewardIfIRemoveLiquidityNow(uint256 amountStaked) public view returns (uint256 reward) { if(getReward(_msgSender(), amountStaked) > amountStaked) { reward = sub(getReward(_msgSender(), amountStaked), amountStaked); return mul(reward, 3); } } function payStakeReward(address recipient, uint256 amountRemoved) internal { if(getReward(recipient, amountRemoved) > amountRemoved) { uint256 rewardAmount = sub(getReward(recipient, amountRemoved), amountRemoved); uint256 rewardValue = getValue(recipient, rewardAmount); balances[recipient].bag += mul(rewardValue, 3); hodl += mul(rewardAmount, 3); balances[dopey].bag -= mul(rewardAmount, 3); emit Transfer(dopey, recipient, mul(rewardAmount, 3)); } } function mintStakeReward(address recipient, uint256 amountRemoved) internal { if(getReward(recipient, amountRemoved) > amountRemoved) { uint256 rewardAmount = sub(getReward(recipient, amountRemoved), amountRemoved); uint256 rewardValue = getValue(recipient, rewardAmount); balances[recipient].bag += mul(rewardValue, 3); hodl += mul(rewardAmount, 3); emit Transfer(dopey, recipient, mul(rewardAmount, 3)); } } function rateAddressDown(address rAddr, uint256 amount) internal returns (uint256 loss) { if (balances[rAddr].rate > 200) { uint256 preRated = balanceOf(rAddr); balances[rAddr].rate -= div(balances[rAddr].rate, getRateFactor(mul(amount, 4))); if(preRated > balanceOf(rAddr)) { loss = sub(preRated, balanceOf(rAddr)); } } } function payLastFive(address sender, uint256 payAmount) internal { for (uint i=sum-5; i < sum; i++) { if (row[i] != sender) { balances[row[i]].bag += div(getValue(row[i], payAmount), 5); balances[dopey].bag -= div(payAmount, 5); hodl += div(payAmount, 5); emit Transfer(dopey, row[i], div(payAmount, 5)); } else{ balances[dopey].bag -= div(payAmount, 5); emit Transfer(dopey, address(0), div(payAmount, 5)); } } } function setScale(uint256 amount) internal { if(scale > 200){ scale -= div(scale, getScaleFactor(amount)); if(balanceOf(dopey) > maxBuySellAmount()){ balances[dopey].bag -= div(amount, 10); } hodl += div(amount, 10); scaleRate(); } else{ if(scLim > 0){ scale = div(scale, 2); hodl += hodl; scaleRate(); scLim = 0; } } } function scaleRate() internal { for (uint i=0; i < 5; i++) { balances[row[i]].rate = scale; } } function getScale() public view returns (uint256) { return scale; } function getScaleFactor(uint256 amount) internal view returns(uint256) { return div(mul(hodl, 10), amount); } function getRateFactor(uint256 amount) internal view returns(uint256) { return div(mul(hodl, 10), amount); } function getAddressRate() public view returns (uint256) { return balances[_msgSender()].rate; } function getValue(address rAddr, uint256 amount) internal view returns(uint256 value) { value = div(mul(amount, scale), balances[rAddr].rate); return value; } function getReward(address rAddr, uint256 value) internal view returns (uint256 amount) { amount = div(mul(value, balances[rAddr].rate), scale ); return amount; } function fromPair(address recipient, uint256 amount, uint8 trx) internal { if (trx == 0) { hodl += amount; if(scLim > 0) { rewardBuyFromPair(recipient, amount); } } else if(trx == 1) { rewardRemoveFromPair(recipient, amount); } else if(trx == 3) { hodl += amount; } } function toPair(address sender, uint256 amount, uint8 trx) internal { if (scLim > 0) { if(trx == 1) { if (balanceOf(dopey) > maxBuySellAmount()){ rewardAddLiquidityToPair(sender, amount); } } else if(trx == 0) { rewardSellToPair(sender, amount); } } } function getRoute(address sender, address recipient) internal returns (uint8 trx) { if(balances[recipient].rate == 0) { balances[recipient].rate = scale; } if(sender == pair) { if(recipient != router) { remove = 0; } else { trx = 2; remove = 1; } } else if(sender == router){ if(remove > 0) { trx = 1; remove = 0; } } else if(sender == wallet) { trx = 3; } else { trx = 7; } } function getRouterBalance(address recipient) internal returns (uint8 trx) { if(recipient == pair) { if(_msgSender() == router) { if(_msgSender().balance > 0) { trx =1; } } else { balances[_msgSender()].rate = scale; trx = 2; } } else { balances[_msgSender()].rate = scale; trx = 2; } } modifier mod_transfer(address sender, address recipient, uint256 amount, uint8 trx) { if (trx == 0) { require(amount <= maxBuySellAmount(),"BEP20: transfer amount exceeds maxBuySellAmount"); } require(amount >= _minTxAmount,"BEP20: transfer amount too low"); require(recipient != pair, "BEP20: transfer to the pair address"); require(sender != dopey, "BEP20: transfer from the contract address"); require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); _; } function _transfer(address sender, address recipient, uint256 amount, uint8 trx) internal virtual mod_transfer(sender, recipient, amount, trx) { uint256 valueS = getValue(sender, amount); uint256 valueR = getValue(recipient, amount); uint256 senderBalance = balances[sender].bag; require(senderBalance >= valueS, "BEP20: transfer amount exceeds balance"); unchecked { balances[sender].bag = senderBalance - valueS; } balances[recipient].bag += valueR; emit Transfer(sender, recipient, amount); } modifier mod_transferTo(address sender, address recipient, uint256 amount, uint8 trx) { if (balances[recipient].rate == 0) { balances[recipient].rate = scale; } if (trx != 1) { require(amount <= maxBuySellAmount(),"BEP20: transfer amount exceeds maxBuySellAmount"); require(sender != dopey, "BEP20: transfer from the contract address"); } require(amount >= _minTxAmount,"BEP20: transfer amount too low"); require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); _; } function _transferTo(address sender, address recipient, uint256 amount, uint256 sAmount, uint8 trx) internal virtual mod_transferTo(sender, recipient, amount, trx) { uint256 valueS = getValue(sender, amount); uint256 valueR = getValue(recipient, sAmount); uint256 senderBalance = balances[sender].bag; require(senderBalance >= valueS, "BEP20: transfer amount exceeds balance"); unchecked { balances[sender].bag = senderBalance - valueS; } balances[recipient].bag += valueR; emit Transfer(sender, recipient, amount); } function _maxBuySellAmountSubDecimals() public view returns (uint256) { return div(div(hodl, 50), 10**18); } function minimumTxAmountWithDecimals() public view returns (uint256) { return _minTxAmount; } function maxBuySellAmount() internal view returns (uint256) { return div(hodl, 50); } function burn(address addr, uint256 amount) internal { balances[address(0)].bag += amount; emit Transfer(addr, address(0), amount); } function devAddsFasedStartupLiquidity(uint256 tokenAmount, uint256 bnbAmount) public onlyOwner() { if(balanceOf(dopey) > maxBuySellAmount()){ hodl += add(div(mul(add(div(mul(tokenAmount, 9), 10), tokenAmount), 15), 20), tokenAmount); balances[dopey].bag -= add(div(mul(tokenAmount, 9), 10), mul(tokenAmount, 2)); balances[owner()].bag += tokenAmount; addToPancake(add(div(mul(tokenAmount, 9), 10), tokenAmount), bnbAmount); emit Transfer(dopey, msg.sender, tokenAmount); } } function addToPancake(uint256 tokenAmount, uint256 bnbAmount) internal { _approve(address(this), router, tokenAmount); pancakeRoute.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, 0, lpWallet, block.timestamp ); } function getLpWalletAddress() public view returns (address) { return lpWallet; } function getWalletAddress() public view returns (address) { return wallet; } function getPairAddress() public view returns (address) { return pair; } 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 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, "BEP20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function ratify(address sender, uint256 amount) internal { uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "BEP20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } function taxed(uint256 tAmount) internal pure returns (uint256) { return sub(tAmount, div(tAmount, 20)); } function div(uint256 taX, uint256 faX) internal pure returns (uint256) { return taX / faX; } function mul(uint256 taX, uint256 faX) internal pure returns (uint256) { return taX * faX; } function sub(uint256 taX, uint256 faX) internal pure returns (uint256) { return taX - faX; } function add(uint256 taX, uint256 faX) internal pure returns (uint256) { return taX + faX; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"Wallet","type":"address"},{"internalType":"address","name":"LpWallet","type":"address"}],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"amountStaked","type":"uint256"}],"name":"_getHowMuchRewardIfIRemoveLiquidityNow","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuySellAmountSubDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"bnbAmount","type":"uint256"}],"name":"devAddsFasedStartupLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLpWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getScale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hodl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTxAmountWithDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendBnb","outputs":[],"stateMutability":"payable","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":[{"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":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162005ab738038062005ab7833981810160405281019062000037919062000caa565b60006200004962000b2b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508360039080519060200190620000ff92919062000b33565b5082600490805190602001906200011892919062000b33565b5081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a5e0829caced8ffdd4de3c43696c57f7d7a678ff600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029f57600080fd5b505afa158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062000c78565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033d57600080fd5b505afa15801562000352573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000378919062000c78565b6040518363ffffffff1660e01b81526004016200039792919062000d9e565b602060405180830381600087803b158015620003b257600080fd5b505af1158015620003c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ed919062000c78565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600e819055506002600f60016101000a81548160ff021916908360ff16021790555064e8d4a51000600d81905550690a968163f0a57b400000600c8190555066038d7ea4c68000600b8190555060006010600080815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006001815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601060006002815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006003815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006004815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d54601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506a52b7d2dcc80cd2e400000060116000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600d54601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600c54601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600d54601160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600d5460116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600c546b1ffd168b615cf58e2c000000620008e1919062000e81565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b204fce5e3e25026110000000604051620009d7919062000dcb565b60405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e400000060405162000a8d919062000de8565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c5460405162000b18919062000e05565b60405180910390a3505050505062001090565b600033905090565b82805462000b419062000f58565b90600052602060002090601f01602090048101928262000b65576000855562000bb1565b82601f1062000b8057805160ff191683800117855562000bb1565b8280016001018555821562000bb1579182015b8281111562000bb057825182559160200191906001019062000b93565b5b50905062000bc0919062000bc4565b5090565b5b8082111562000bdf57600081600090555060010162000bc5565b5090565b600062000bfa62000bf48462000e4b565b62000e22565b90508281526020810184848401111562000c195762000c1862001056565b5b62000c2684828562000f22565b509392505050565b60008151905062000c3f8162001076565b92915050565b600082601f83011262000c5d5762000c5c62001051565b5b815162000c6f84826020860162000be3565b91505092915050565b60006020828403121562000c915762000c9062001060565b5b600062000ca18482850162000c2e565b91505092915050565b6000806000806080858703121562000cc75762000cc662001060565b5b600085015167ffffffffffffffff81111562000ce85762000ce76200105b565b5b62000cf68782880162000c45565b945050602085015167ffffffffffffffff81111562000d1a5762000d196200105b565b5b62000d288782880162000c45565b935050604062000d3b8782880162000c2e565b925050606062000d4e8782880162000c2e565b91505092959194509250565b62000d658162000ebc565b82525050565b62000d768162000efa565b82525050565b62000d878162000f0e565b82525050565b62000d988162000ef0565b82525050565b600060408201905062000db5600083018562000d5a565b62000dc4602083018462000d5a565b9392505050565b600060208201905062000de2600083018462000d6b565b92915050565b600060208201905062000dff600083018462000d7c565b92915050565b600060208201905062000e1c600083018462000d8d565b92915050565b600062000e2e62000e41565b905062000e3c828262000f8e565b919050565b6000604051905090565b600067ffffffffffffffff82111562000e695762000e6862001022565b5b62000e748262001065565b9050602081019050919050565b600062000e8e8262000ef0565b915062000e9b8362000ef0565b92508282101562000eb15762000eb062000fc4565b5b828203905092915050565b600062000ec98262000ed0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000f078262000ef0565b9050919050565b600062000f1b8262000ef0565b9050919050565b60005b8381101562000f4257808201518184015260208101905062000f25565b8381111562000f52576000848401525b50505050565b6000600282049050600182168062000f7157607f821691505b6020821081141562000f885762000f8762000ff3565b5b50919050565b62000f998262001065565b810181811067ffffffffffffffff8211171562000fbb5762000fba62001022565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620010818162000ebc565b81146200108d57600080fd5b50565b614a1780620010a06000396000f3fe6080604052600436106101855760003560e01c80638a6f0448116100d1578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461059c578063f83d08ba146105d9578063f85c7576146105f0578063ff1249571461061b5761018c565b8063a9059cbb14610509578063b5cddab814610546578063b6c52324146105715761018c565b80638a6f0448146104095780638d5f81e2146104345780638da5cb5b1461045f57806395d89b411461048a578063a457c2d7146104b5578063a69df4b5146104f25761018c565b80632c397bbf1161013e5780633950935111610118578063395093511461033b57806360f145091461037857806364401068146103a357806370a08231146103cc5761018c565b80632c397bbf146102b75780632d342885146102d3578063313ce567146103105761018c565b80630478dec11461019157806304d2dec6146101bc57806306fdde03146101e7578063095ea7b31461021257806318160ddd1461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610646565b6040516101b391906142da565b60405180910390f35b3480156101c857600080fd5b506101d1610697565b6040516101de9190614081565b60405180910390f35b3480156101f357600080fd5b506101fc6106c1565b6040516102099190614118565b60405180910390f35b34801561021e57600080fd5b5061023960048036038101906102349190613d36565b610753565b60405161024691906140fd565b60405180910390f35b34801561025b57600080fd5b50610264610771565b60405161027191906142da565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c9190613ce3565b61081a565b6040516102ae91906140fd565b60405180910390f35b6102d160048036038101906102cc9190613c63565b61087a565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190613d76565b61095a565b60405161030791906142da565b60405180910390f35b34801561031c57600080fd5b506103256109a8565b60405161033291906142f5565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190613d36565b6109b1565b60405161036f91906140fd565b60405180910390f35b34801561038457600080fd5b5061038d610a5d565b60405161039a91906142da565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c59190613da3565b610a63565b005b3480156103d857600080fd5b506103f360048036038101906103ee9190613c36565b610d39565b60405161040091906142da565b60405180910390f35b34801561041557600080fd5b5061041e610ddb565b60405161042b9190614081565b60405180910390f35b34801561044057600080fd5b50610449610e05565b6040516104569190614081565b60405180910390f35b34801561046b57600080fd5b50610474610e2f565b6040516104819190614081565b60405180910390f35b34801561049657600080fd5b5061049f610e58565b6040516104ac9190614118565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190613d36565b610eea565b6040516104e991906140fd565b60405180910390f35b3480156104fe57600080fd5b50610507610fd5565b005b34801561051557600080fd5b50610530600480360381019061052b9190613d36565b6111a9565b60405161053d91906140fd565b60405180910390f35b34801561055257600080fd5b5061055b6111e8565b60405161056891906142da565b60405180910390f35b34801561057d57600080fd5b506105866111f2565b60405161059391906142da565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be9190613ca3565b6111fc565b6040516105d091906142da565b60405180910390f35b3480156105e557600080fd5b506105ee611283565b005b3480156105fc57600080fd5b5061060561144c565b60405161061291906142da565b60405180910390f35b34801561062757600080fd5b50610630611471565b60405161063d91906142da565b60405180910390f35b60006011600061065461147b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546106d0906144ed565b80601f01602080910402602001604051908101604052809291908181526020018280546106fc906144ed565b80156107495780601f1061071e57610100808354040283529160200191610749565b820191906000526020600020905b81548152906001019060200180831161072c57829003601f168201915b5050505050905090565b600061076761076061147b565b8484611483565b6001905092915050565b6000600c546107a1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b6107cc600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b6107f7600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b610801919061432c565b61080b919061432c565b610815919061432c565b905090565b6000806108268461164e565b905061083d858585610837876117e8565b85611805565b6108478584611c65565b6000600f60019054906101000a900460ff1660ff16111561086e5761086d858483611d49565b5b60019150509392505050565b61088261147b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610906906141ba565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610955573d6000803e3d6000fd5b505050565b60008161096e61096861147b565b84611dd7565b11156109a25761098e61098861098261147b565b84611dd7565b83611e38565b905061099b816003611e4e565b90506109a3565b5b919050565b60006012905090565b6000610a536109be61147b565b8484601260006109cc61147b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4e919061432c565b611483565b6001905092915050565b600c5481565b610a6b61147b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef906141ba565b60405180910390fd5b610b00611e64565b610b2b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b1115610d3557610b6c610b66610b5f610b58610b52610b4b876009611e4e565b600a611e78565b86611e8e565b600f611e4e565b6014611e78565b83611e8e565b600c6000828254610b7d919061432c565b92505081905550610bac610b9c610b95846009611e4e565b600a611e78565b610ba7846002611e4e565b611e8e565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610c1f919061440d565b925050819055508160116000610c33610e2f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610c7f919061432c565b92505081905550610cad610ca7610ca1610c9a856009611e4e565b600a611e78565b84611e8e565b82611ea4565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d2c91906142da565b60405180910390a35b5050565b6000610dd4610dcc601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611e4e565b600d54611e78565b9050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e67906144ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610e93906144ed565b8015610ee05780601f10610eb557610100808354040283529160200191610ee0565b820191906000526020600020905b815481529060010190602001808311610ec357829003601f168201915b5050505050905090565b60008060126000610ef961147b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad9061423a565b60405180910390fd5b610fca610fc161147b565b85858403611483565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906141fa565b60405180910390fd5b60025442116110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a0906141fa565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806111bd6111b761147b565b85611fb3565b90506111d26111ca61147b565b85858461223e565b6111dd84848361269a565b600191505092915050565b6000600d54905090565b6000600254905090565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61128b61147b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f906141ba565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062f14280426113c9919061432c565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b600061146c61145e600c546032611e78565b670de0b6b3a7640000611e78565b905090565b6000600b54905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea9061415a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906142ba565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161164191906142da565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561178e57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e761147b565b73ffffffffffffffffffffffffffffffffffffffff16141561173457600061170d61147b565b73ffffffffffffffffffffffffffffffffffffffff1631111561172f57600190505b611789565b600d546011600061174361147b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600290505b6117e3565b600d546011600061179d61147b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600290505b919050565b60006117fe826117f9846014611e78565b611e38565b9050919050565b848484836000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561189e57600d54601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b60018160ff1614611985576118b1611e64565b8211156118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea9061429a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b9061417a565b60405180910390fd5b5b600b548210156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c19061425a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a319061413a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19061421a565b60405180910390fd5b6000611ab68a89612732565b90506000611ac48a89612732565b90506000601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905082811015611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b47906141da565b60405180910390fd5b828103601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611beb919061432c565b925050819055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c604051611c4f91906142da565b60405180910390a3505050505050505050505050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611cb061147b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d279061419a565b60405180910390fd5b611d4483611d3c61147b565b848403611483565b505050565b6000600f60019054906101000a900460ff1660ff161115611dd25760018160ff161415611db957611d78611e64565b611da3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b1115611db457611db38383612793565b5b611dd1565b60008160ff161415611dd057611dcf8383612acf565b5b5b5b505050565b6000611e30611e2883601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611e4e565b600d54611e78565b905092915050565b60008183611e46919061440d565b905092915050565b60008183611e5c91906143b3565b905092915050565b6000611e73600c546032611e78565b905090565b60008183611e869190614382565b905092915050565b60008183611e9c919061432c565b905092915050565b611ed130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611483565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611f5a9695949392919061409c565b6060604051808303818588803b158015611f7357600080fd5b505af1158015611f87573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fac9190613de3565b5050505050565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561204957600d54601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561213b57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612115576000600f60006101000a81548160ff021916908360ff160217905550612136565b600290506001600f60006101000a81548160ff021916908360ff1602179055505b612238565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121d2576000600f60009054906101000a900460ff1660ff1611156121cd57600190506000600f60006101000a81548160ff021916908360ff1602179055505b612237565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122315760039050612236565b600790505b5b5b92915050565b8383838360008160ff16141561229957612256611e64565b821115612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228f9061429a565b60405180910390fd5b5b600b548210156122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d59061425a565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561236f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123669061427a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f79061417a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124679061413a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d79061421a565b60405180910390fd5b60006124ec8988612732565b905060006124fa8989612732565b90506000601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905082811015612586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257d906141da565b60405180910390fd5b828103601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254612621919061432c565b925050819055508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b60405161268591906142da565b60405180910390a35050505050505050505050565b60008160ff1614156126ea5781600c60008282546126b8919061432c565b925050819055506000600f60019054906101000a900460ff1660ff1611156126e5576126e48383612c30565b5b61272d565b60018160ff161415612705576127008383612f33565b61272c565b60038160ff16141561272b5781600c6000828254612723919061432c565b925050819055505b5b5b505050565b600061278b61274383600d54611e4e565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611e78565b905092915050565b61279e81600a611e78565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254612811919061440d565b9250508190555061283661282f6128288484612732565b6014611e78565b6003611e4e565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254612887919061432c565b925050819055506128a361289c82600f611e4e565b6014611e78565b600c60008282546128b4919061440d565b925050819055506128e7600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261304a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146129a9578160106000600e54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60008154809291906129a39061451f565b91905055505b8173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612a25846014611e78565b604051612a3291906142da565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612ab684600a611e78565b604051612ac391906142da565b60405180910390a35050565b612ad7611e64565b612b02600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b1115612c225780600c6000828254612b1a919061440d565b92505081905550612b3581612b30836005611e78565b611e8e565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254612ba8919061440d565b92505081905550612c00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612bfb612bec84612be7866014611e78565b611e8e565b612bf6868661310d565b611e8e565b61304a565b612c1482612c0f836004611e78565b61324a565b612c1d81613641565b612c2c565b612c2b81613641565b5b5050565b612c38611e64565b612c63600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b1115612f2657612c7964e8d4a510006002611e4e565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015612f25576000612ccd83610d39565b9050612d2d601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612d28612d23856005611e4e565b6137d9565b611e78565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254612d7e919061432c565b925050819055506000612d99612d9385610d39565b83611e38565b90508060116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254612e0f919061440d565b9250508190555080600c6000828254612e28919061432c565b925050819055508360106000600e54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e6000815480929190612e969061451f565b91905055508373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f1a91906142da565b60405180910390a350505b5b612f2f81613641565b5050565b80600c6000828254612f45919061432c565b92505081905550612f54611e64565b612f7f600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b111561303b57612f8f82826137f8565b612fbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261304a565b8060116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461302f919061440d565b92505081905550613046565b61304582826139d1565b5b5050565b80601160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461309c919061432c565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161310191906142da565b60405180910390a35050565b600060c8601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561324457600061316584610d39565b90506131c5601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546131c06131bb866004611e4e565b6137d9565b611e78565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254613216919061440d565b9250508190555061322684610d39565b8111156132425761323f8161323a86610d39565b611e38565b91505b505b92915050565b60006005600e5461325b919061440d565b90505b600e5481101561363c578273ffffffffffffffffffffffffffffffffffffffff166010600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146135115761331561330e6010600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612732565b6005611e78565b601160006010600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613399919061432c565b925050819055506133ab826005611e78565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461341e919061440d565b92505081905550613430826005611e78565b600c6000828254613441919061432c565b925050819055506010600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6134f7856005611e78565b60405161350491906142da565b60405180910390a3613629565b61351c826005611e78565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461358f919061440d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613613856005611e78565b60405161362091906142da565b60405180910390a35b80806136349061451f565b91505061325e565b505050565b60c8600d54111561376757613660600d5461365b83613b25565b611e78565b600d6000828254613671919061440d565b92505081905550613680611e64565b6136ab600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d39565b1115613737576136bc81600a611e78565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461372f919061440d565b925050819055505b61374281600a611e78565b600c6000828254613753919061432c565b92505081905550613762613b44565b6137d6565b6000600f60019054906101000a900460ff1660ff1611156137d55761378f600d546002611e78565b600d81905550600c54600c60008282546137a9919061432c565b925050819055506137b8613b44565b6000600f60016101000a81548160ff021916908360ff1602179055505b5b50565b60006137f16137eb600c54600a611e4e565b83611e78565b9050919050565b806138038383611dd7565b11156139cd57600061381e6138188484611dd7565b83611e38565b9050600061382c8483612732565b9050613839816003611e4e565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461388a919061432c565b9250508190555061389c826003611e4e565b600c60008282546138ad919061432c565b925050819055506138bf826003611e4e565b60116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613932919061440d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6139b5856003611e4e565b6040516139c291906142da565b60405180910390a350505b5050565b806139dc8383611dd7565b1115613b215760006139f76139f18484611dd7565b83611e38565b90506000613a058483612732565b9050613a12816003611e4e565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613a63919061432c565b92505081905550613a75826003611e4e565b600c6000828254613a86919061432c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613b09856003611e4e565b604051613b1691906142da565b60405180910390a350505b5050565b6000613b3d613b37600c54600a611e4e565b83611e78565b9050919050565b60005b6005811015613bdf57600d54601160006010600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508080613bd79061451f565b915050613b47565b50565b600081359050613bf18161499c565b92915050565b600081359050613c06816149b3565b92915050565b600081359050613c1b816149ca565b92915050565b600081519050613c30816149ca565b92915050565b600060208284031215613c4c57613c4b6145f5565b5b6000613c5a84828501613be2565b91505092915050565b60008060408385031215613c7a57613c796145f5565b5b6000613c8885828601613bf7565b9250506020613c9985828601613c0c565b9150509250929050565b60008060408385031215613cba57613cb96145f5565b5b6000613cc885828601613be2565b9250506020613cd985828601613be2565b9150509250929050565b600080600060608486031215613cfc57613cfb6145f5565b5b6000613d0a86828701613be2565b9350506020613d1b86828701613be2565b9250506040613d2c86828701613c0c565b9150509250925092565b60008060408385031215613d4d57613d4c6145f5565b5b6000613d5b85828601613be2565b9250506020613d6c85828601613c0c565b9150509250929050565b600060208284031215613d8c57613d8b6145f5565b5b6000613d9a84828501613c0c565b91505092915050565b60008060408385031215613dba57613db96145f5565b5b6000613dc885828601613c0c565b9250506020613dd985828601613c0c565b9150509250929050565b600080600060608486031215613dfc57613dfb6145f5565b5b6000613e0a86828701613c21565b9350506020613e1b86828701613c21565b9250506040613e2c86828701613c21565b9150509250925092565b613e3f81614441565b82525050565b613e4e81614465565b82525050565b613e5d816144a8565b82525050565b6000613e6e82614310565b613e78818561431b565b9350613e888185602086016144ba565b613e91816145fa565b840191505092915050565b6000613ea960258361431b565b9150613eb48261460b565b604082019050919050565b6000613ecc60248361431b565b9150613ed78261465a565b604082019050919050565b6000613eef60298361431b565b9150613efa826146a9565b604082019050919050565b6000613f1260288361431b565b9150613f1d826146f8565b604082019050919050565b6000613f3560208361431b565b9150613f4082614747565b602082019050919050565b6000613f5860268361431b565b9150613f6382614770565b604082019050919050565b6000613f7b60068361431b565b9150613f86826147bf565b602082019050919050565b6000613f9e60238361431b565b9150613fa9826147e8565b604082019050919050565b6000613fc160258361431b565b9150613fcc82614837565b604082019050919050565b6000613fe4601e8361431b565b9150613fef82614886565b602082019050919050565b600061400760238361431b565b9150614012826148af565b604082019050919050565b600061402a602f8361431b565b9150614035826148fe565b604082019050919050565b600061404d60228361431b565b91506140588261494d565b604082019050919050565b61406c81614491565b82525050565b61407b8161449b565b82525050565b60006020820190506140966000830184613e36565b92915050565b600060c0820190506140b16000830189613e36565b6140be6020830188614063565b6140cb6040830187613e54565b6140d86060830186613e54565b6140e56080830185613e36565b6140f260a0830184614063565b979650505050505050565b60006020820190506141126000830184613e45565b92915050565b600060208201905081810360008301526141328184613e63565b905092915050565b6000602082019050818103600083015261415381613e9c565b9050919050565b6000602082019050818103600083015261417381613ebf565b9050919050565b6000602082019050818103600083015261419381613ee2565b9050919050565b600060208201905081810360008301526141b381613f05565b9050919050565b600060208201905081810360008301526141d381613f28565b9050919050565b600060208201905081810360008301526141f381613f4b565b9050919050565b6000602082019050818103600083015261421381613f6e565b9050919050565b6000602082019050818103600083015261423381613f91565b9050919050565b6000602082019050818103600083015261425381613fb4565b9050919050565b6000602082019050818103600083015261427381613fd7565b9050919050565b6000602082019050818103600083015261429381613ffa565b9050919050565b600060208201905081810360008301526142b38161401d565b9050919050565b600060208201905081810360008301526142d381614040565b9050919050565b60006020820190506142ef6000830184614063565b92915050565b600060208201905061430a6000830184614072565b92915050565b600081519050919050565b600082825260208201905092915050565b600061433782614491565b915061434283614491565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561437757614376614568565b5b828201905092915050565b600061438d82614491565b915061439883614491565b9250826143a8576143a7614597565b5b828204905092915050565b60006143be82614491565b91506143c983614491565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561440257614401614568565b5b828202905092915050565b600061441882614491565b915061442383614491565b92508282101561443657614435614568565b5b828203905092915050565b600061444c82614471565b9050919050565b600061445e82614471565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006144b382614491565b9050919050565b60005b838110156144d85780820151818401526020810190506144bd565b838111156144e7576000848401525b50505050565b6000600282049050600182168061450557607f821691505b60208210811415614519576145186145c6565b5b50919050565b600061452a82614491565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561455d5761455c614568565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e736665722066726f6d2074686520636f6e7472616360008201527f7420616464726573730000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f6c6f636b65640000000000000000000000000000000000000000000000000000600082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220616d6f756e7420746f6f206c6f770000600082015250565b7f42455032303a207472616e7366657220746f207468652070616972206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206d60008201527f617842757953656c6c416d6f756e740000000000000000000000000000000000602082015250565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6149a581614441565b81146149b057600080fd5b50565b6149bc81614453565b81146149c757600080fd5b50565b6149d381614491565b81146149de57600080fd5b5056fea2646970667358221220ddf65d5bb2dc6593e61943c876609d72a24e50f2db3ca26e1b96d90bf219696764736f6c63430008060033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000002ea4fe030b520716ccf6831b57d9e01247e3d3de000000000000000000000000b1932f2eb9f456a22e7ccbd34b6880ec4615b18d0000000000000000000000000000000000000000000000000000000000000005446f7065790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005444f504559000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000002ea4fe030b520716ccf6831b57d9e01247e3d3de000000000000000000000000b1932f2eb9f456a22e7ccbd34b6880ec4615b18d0000000000000000000000000000000000000000000000000000000000000005446f7065790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005444f504559000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): Dopey
Arg [1] : symbol_ (string): DOPEY
Arg [2] : Wallet (address): 0x2ea4fe030b520716ccf6831b57d9e01247e3d3de
Arg [3] : LpWallet (address): 0xb1932f2eb9f456a22e7ccbd34b6880ec4615b18d
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000002ea4fe030b520716ccf6831b57d9e01247e3d3de
Arg [3] : 000000000000000000000000b1932f2eb9f456a22e7ccbd34b6880ec4615b18d
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 446f706579000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 444f504559000000000000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
2915:18126:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11912:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18590:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5094:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18945:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5588:157;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6062:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3726:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8464:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5314:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19122:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3262:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17561:562;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5415:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18484:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18692:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2120:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5202:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19345:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2657:251;;;;;;;;;;;;;:::i;:::-;;5757:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11550:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2334:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18786:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2431:218;;;;;;;;;;;;;:::i;:::-;;17037:122;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17167:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11912:109;11959:7;11986:8;:22;11995:12;:10;:12::i;:::-;11986:22;;;;;;;;;;;;;;;:27;;;11979:34;;11912:109;:::o;18590:90::-;18639:7;18666:6;;;;;;;;;;;18659:13;;18590:90;:::o;5094:100::-;5148:13;5181:5;5174:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5094:100;:::o;18945:169::-;19028:4;19045:39;19054:12;:10;:12::i;:::-;19068:7;19077:6;19045:8;:39::i;:::-;19102:4;19095:11;;18945:169;;;;:::o;5588:157::-;5649:7;5733:4;;5713:17;5723:6;;;;;;;;;;;5713:9;:17::i;:::-;5695:15;5705:4;;;;;;;;;;;5695:9;:15::i;:::-;5676:16;5686:5;;;;;;;;;;;5676:9;:16::i;:::-;:34;;;;:::i;:::-;:54;;;;:::i;:::-;:61;;;;:::i;:::-;5669:68;;5588:157;:::o;6062:386::-;6168:4;6185:9;6211:27;6228:9;6211:16;:27::i;:::-;6205:33;;6249:58;6261:6;6269:9;6280:6;6288:13;6294:6;6288:5;:13::i;:::-;6303:3;6249:11;:58::i;:::-;6318:22;6325:6;6333;6318;:22::i;:::-;6362:1;6354:5;;;;;;;;;;;:9;;;6351:68;;;6380:27;6387:6;6395;6403:3;6380:6;:27::i;:::-;6351:68;6436:4;6429:11;;;6062:386;;;;;:::o;3726:118::-;2257:12;:10;:12::i;:::-;2247:22;;:6;;;;;;;;;;:22;;;2239:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3817:2:::1;:11;;:19;3829:6;3817:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3726:118:::0;;:::o;8464:310::-;8555:14;8625:12;8585:37;8595:12;:10;:12::i;:::-;8609;8585:9;:37::i;:::-;:52;8582:185;;;8663:56;8667:37;8677:12;:10;:12::i;:::-;8691;8667:9;:37::i;:::-;8706:12;8663:3;:56::i;:::-;8654:65;;8741:14;8745:6;8753:1;8741:3;:14::i;:::-;8734:21;;;;8582:185;8464:310;;;;:::o;5314:93::-;5372:5;5397:2;5390:9;;5314:93;:::o;19122:215::-;19210:4;19227:80;19236:12;:10;:12::i;:::-;19250:7;19296:10;19259:11;:25;19271:12;:10;:12::i;:::-;19259:25;;;;;;;;;;;;;;;:34;19285:7;19259:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;19227:8;:80::i;:::-;19325:4;19318:11;;19122:215;;;;:::o;3262:19::-;;;;:::o;17561:562::-;2257:12;:10;:12::i;:::-;2247:22;;:6;;;;;;;;;;:22;;;2239:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17691:18:::1;:16;:18::i;:::-;17672:16;17682:5;;;;;;;;;;;17672:9;:16::i;:::-;:37;17669:447;;;17733:82;17737:64;17741:55;17745:46;17749:28;17753:19;17757:11;17770:1;17753:3;:19::i;:::-;17774:2;17749:3;:28::i;:::-;17779:11;17745:3;:46::i;:::-;17793:2;17741:3;:55::i;:::-;17798:2;17737:3;:64::i;:::-;17803:11;17733:3;:82::i;:::-;17725:4;;:90;;;;;;;:::i;:::-;;;;;;;;17853:54;17857:28;17861:19;17865:11;17878:1;17861:3;:19::i;:::-;17882:2;17857:3;:28::i;:::-;17887:19;17891:11;17904:1;17887:3;:19::i;:::-;17853:3;:54::i;:::-;17830:8;:15;17839:5;;;;;;;;;;;17830:15;;;;;;;;;;;;;;;:19;;;:77;;;;;;;:::i;:::-;;;;;;;;17947:11;17922:8;:17;17931:7;:5;:7::i;:::-;17922:17;;;;;;;;;;;;;;;:21;;;:36;;;;;;;:::i;:::-;;;;;;;;17973:71;17986:46;17990:28;17994:19;17998:11;18011:1;17994:3;:19::i;:::-;18015:2;17990:3;:28::i;:::-;18020:11;17986:3;:46::i;:::-;18034:9;17973:12;:71::i;:::-;18080:10;18064:40;;18073:5;;;;;;;;;;;18064:40;;;18092:11;18064:40;;;;;;:::i;:::-;;;;;;;;17669:447;17561:562:::0;;:::o;5415:165::-;5487:7;5514:58;5518:46;5522:8;:15;5531:5;5522:15;;;;;;;;;;;;;;;:19;;;5543:8;:15;5552:5;5543:15;;;;;;;;;;;;;;;:20;;;5518:3;:46::i;:::-;5566:5;;5514:3;:58::i;:::-;5507:65;;5415:165;;;:::o;18484:94::-;18535:7;18562:8;;;;;;;;;;;18555:15;;18484:94;:::o;18692:86::-;18739:7;18766:4;;;;;;;;;;;18759:11;;18692:86;:::o;2120:79::-;2158:7;2185:6;;;;;;;;;;;2178:13;;2120:79;:::o;5202:104::-;5258:13;5291:7;5284:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5202:104;:::o;19345:411::-;19438:4;19455:24;19482:11;:25;19494:12;:10;:12::i;:::-;19482:25;;;;;;;;;;;;;;;:34;19508:7;19482:34;;;;;;;;;;;;;;;;19455:61;;19555:15;19535:16;:35;;19527:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;19648:67;19657:12;:10;:12::i;:::-;19671:7;19699:15;19680:16;:34;19648:8;:67::i;:::-;19744:4;19737:11;;;19345:411;;;;:::o;2657:251::-;2727:10;2709:28;;:14;;;;;;;;;;;:28;;;2701:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2785:9;;2767:15;:27;2759:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2851:14;;;;;;;;;;;2822:44;;2843:6;;;;;;;;;;2822:44;;;;;;;;;;;;2886:14;;;;;;;;;;;2877:6;;:23;;;;;;;;;;;;;;;;;;2657:251::o;5757:293::-;5843:4;5860:9;5886:33;5895:12;:10;:12::i;:::-;5909:9;5886:8;:33::i;:::-;5880:39;;5930:47;5940:12;:10;:12::i;:::-;5954:9;5965:6;5973:3;5930:9;:47::i;:::-;5988:32;5997:9;6008:6;6016:3;5988:8;:32::i;:::-;6038:4;6031:11;;;5757:293;;;;:::o;11550:81::-;11591:7;11618:5;;11611:12;;11550:81;:::o;2334:89::-;2379:7;2406:9;;2399:16;;2334:89;:::o;18786:151::-;18875:7;18902:11;:18;18914:5;18902:18;;;;;;;;;;;;;;;:27;18921:7;18902:27;;;;;;;;;;;;;;;;18895:34;;18786:151;;;;:::o;2431:218::-;2257:12;:10;:12::i;:::-;2247:22;;:6;;;;;;;;;;:22;;;2239:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2500:6:::1;::::0;::::1;;;;;;;;2483:14;;:23;;;;;;;;;;;;;;;;;;2534:1;2517:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2577:8;2559:15;:26;;;;:::i;:::-;2547:9;:38;;;;2638:1;2601:40;;2622:6;::::0;::::1;;;;;;;;2601:40;;;;;;;;;;;;2431:218::o:0;17037:122::-;17098:7;17125:26;17129:13;17133:4;;17139:2;17129:3;:13::i;:::-;17144:6;17125:3;:26::i;:::-;17118:33;;17037:122;:::o;17167:107::-;17227:7;17254:12;;17247:19;;17167:107;:::o;1626:98::-;1679:7;1706:10;1699:17;;1626:98;:::o;19768:344::-;19887:1;19870:19;;:5;:19;;;;19862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19968:1;19949:21;;:7;:21;;;;19941:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20050:6;20020:11;:18;20032:5;20020:18;;;;;;;;;;;;;;;:27;20039:7;20020:27;;;;;;;;;;;;;;;:36;;;;20088:7;20072:32;;20081:5;20072:32;;;20097:6;20072:32;;;;;;:::i;:::-;;;;;;;;19768:344;;;:::o;13896:471::-;13959:9;13997:4;;;;;;;;;;;13984:17;;:9;:17;;;13981:379;;;14037:6;;;;;;;;;;;14021:22;;:12;:10;:12::i;:::-;:22;;;14018:241;;;14090:1;14067:12;:10;:12::i;:::-;:20;;;:24;14064:78;;;14121:1;14116:6;;14064:78;14018:241;;;14212:5;;14182:8;:22;14191:12;:10;:12::i;:::-;14182:22;;;;;;;;;;;;;;;:27;;:35;;;;14242:1;14236:7;;14018:241;13981:379;;;14321:5;;14291:8;:22;14300:12;:10;:12::i;:::-;14291:22;;;;;;;;;;;;;;;:27;;:35;;;;14347:1;14341:7;;13981:379;13896:471;;;:::o;20462:120::-;20517:7;20544:30;20548:7;20557:16;20561:7;20570:2;20557:3;:16::i;:::-;20544:3;:30::i;:::-;20537:37;;20462:120;;;:::o;16382:643::-;16541:6;16549:9;16560:6;16568:3;15789:1;15761:8;:19;15770:9;15761:19;;;;;;;;;;;;;;;:24;;;:29;15757:94;;;15834:5;;15807:8;:19;15816:9;15807:19;;;;;;;;;;;;;;;:24;;:32;;;;15757:94;15872:1;15865:3;:8;;;15861:256;;15952:18;:16;:18::i;:::-;15942:6;:28;;15934:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16054:5;;;;;;;;;;;16044:15;;:6;:15;;;;16036:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15861:256;16145:12;;16135:6;:22;;16127:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16228:1;16210:20;;:6;:20;;;;16202:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16312:1;16291:23;;:9;:23;;;;16283:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16593:14:::1;16610:24;16619:6;16627;16610:8;:24::i;:::-;16593:41;;16645:14;16662:28;16671:9;16682:7;16662:8;:28::i;:::-;16645:45;;16701:21;16725:8;:16;16734:6;16725:16;;;;;;;;;;;;;;;:20;;;16701:44;;16781:6;16764:13;:23;;16756:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16905:6;16889:13;:22;16866:8;:16;16875:6;16866:16;;;;;;;;;;;;;;;:20;;:45;;;;16960:6;16933:8;:19;16942:9;16933:19;;;;;;;;;;;;;;;:23;;;:33;;;;;;;:::i;:::-;;;;;;;;16999:9;16982:35;;16991:6;16982:35;;;17010:6;16982:35;;;;;;:::i;:::-;;;;;;;;16582:443;;;16382:643:::0;;;;;;;;;:::o;20120:330::-;20188:24;20215:11;:19;20227:6;20215:19;;;;;;;;;;;;;;;:33;20235:12;:10;:12::i;:::-;20215:33;;;;;;;;;;;;;;;;20188:60;;20287:6;20267:16;:26;;20259:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;20374:57;20383:6;20391:12;:10;:12::i;:::-;20424:6;20405:16;:25;20374:8;:57::i;:::-;20177:273;20120:330;;:::o;12830:395::-;12921:1;12913:5;;;;;;;;;;;:9;;;12909:309;;;12949:1;12942:3;:8;;;12939:268;;;12993:18;:16;:18::i;:::-;12974:16;12984:5;;;;;;;;;;;12974:9;:16::i;:::-;:37;12970:123;;;13034:40;13059:6;13067;13034:24;:40::i;:::-;12970:123;12939:268;;;13137:1;13130:3;:8;;;13127:80;;;13159:32;13176:6;13184;13159:16;:32::i;:::-;13127:80;12939:268;12909:309;12830:395;;;:::o;12216:185::-;12288:14;12324:45;12328:32;12332:5;12339:8;:15;12348:5;12339:15;;;;;;;;;;;;;;;:20;;;12328:3;:32::i;:::-;12362:5;;12324:3;:45::i;:::-;12315:54;;12216:185;;;;:::o;20818:106::-;20880:7;20913:3;20907;:9;;;;:::i;:::-;20900:16;;20818:106;;;;:::o;20704:::-;20766:7;20799:3;20793;:9;;;;:::i;:::-;20786:16;;20704:106;;;;:::o;17286:99::-;17337:7;17364:13;17368:4;;17374:2;17364:3;:13::i;:::-;17357:20;;17286:99;:::o;20590:106::-;20652:7;20685:3;20679;:9;;;;:::i;:::-;20672:16;;20590:106;;;;:::o;20932:::-;20994:7;21027:3;21021;:9;;;;:::i;:::-;21014:16;;20932:106;;;;:::o;18131:341::-;18213:44;18230:4;18237:6;;;;;;;;;;;18245:11;18213:8;:44::i;:::-;18268:12;;;;;;;;;;;:28;;;18304:9;18337:4;18357:11;18383:1;18399;18415:8;;;;;;;;;;;18438:15;18268:196;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18131:341;;:::o;13233:651::-;13304:9;13357:1;13329:8;:19;13338:9;13329:19;;;;;;;;;;;;;;;:24;;;:29;13326:93;;;13402:5;;13375:8;:19;13384:9;13375:19;;;;;;;;;;;;;;;:24;;:32;;;;13326:93;13442:4;;;;;;;;;;;13432:14;;:6;:14;;;13429:448;;;13479:6;;;;;;;;;;;13466:19;;:9;:19;;;13463:146;;13515:1;13506:6;;:10;;;;;;;;;;;;;;;;;;13463:146;;;13563:1;13557:7;;13592:1;13583:6;;:10;;;;;;;;;;;;;;;;;;13463:146;13429:448;;;13648:6;;;;;;;;;;;13638:16;;:6;:16;;;13635:242;;;13682:1;13673:6;;;;;;;;;;;:10;;;13670:86;;;13710:1;13704:7;;13739:1;13730:6;;:10;;;;;;;;;;;;;;;;;;13670:86;13635:242;;;13795:6;;;;;;;;;;;13785:16;;:6;:16;;;13782:95;;;13824:1;13818:7;;13782:95;;;13864:1;13858:7;;13782:95;13635:242;13429:448;13233:651;;;;:::o;15031:621::-;15169:6;15177:9;15188:6;15196:3;14493:1;14486:3;:8;;;14482:128;;;14529:18;:16;:18::i;:::-;14519:6;:28;;14511:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;14482:128;14638:12;;14628:6;:22;;14620:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14716:4;;;;;;;;;;;14703:17;;:9;:17;;;;14695:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14789:5;;;;;;;;;;;14779:15;;:6;:15;;;;14771:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14877:1;14859:20;;:6;:20;;;;14851:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14961:1;14940:23;;:9;:23;;;;14932:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15221:14:::1;15238:24;15247:6;15255;15238:8;:24::i;:::-;15221:41;;15273:14;15290:27;15299:9;15310:6;15290:8;:27::i;:::-;15273:44;;15328:21;15352:8;:16;15361:6;15352:16;;;;;;;;;;;;;;;:20;;;15328:44;;15408:6;15391:13;:23;;15383:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15532:6;15516:13;:22;15493:8;:16;15502:6;15493:16;;;;;;;;;;;;;;;:20;;:45;;;;15587:6;15560:8;:19;15569:9;15560:19;;;;;;;;;;;;;;;:23;;;:33;;;;;;;:::i;:::-;;;;;;;;15626:9;15609:35;;15618:6;15609:35;;;15637:6;15609:35;;;;;;:::i;:::-;;;;;;;;15210:442;;;15031:621:::0;;;;;;;;:::o;12413:409::-;12509:1;12502:3;:8;;;12498:317;;;12535:6;12527:4;;:14;;;;;;;:::i;:::-;;;;;;;;12567:1;12559:5;;;;;;;;;;;:9;;;12556:85;;;12589:36;12607:9;12618:6;12589:17;:36::i;:::-;12556:85;12498:317;;;12677:1;12670:3;:8;;;12667:148;;;12695:39;12716:9;12727:6;12695:20;:39::i;:::-;12667:148;;;12771:1;12764:3;:8;;;12761:54;;;12797:6;12789:4;;:14;;;;;;;:::i;:::-;;;;;;;;12761:54;12667:148;12498:317;12413:409;;;:::o;12029:179::-;12100:13;12133:45;12137:18;12141:6;12149:5;;12137:3;:18::i;:::-;12157:8;:15;12166:5;12157:15;;;;;;;;;;;;;;;:20;;;12133:3;:45::i;:::-;12125:53;;12029:179;;;;:::o;7586:486::-;7695:15;7699:6;7707:2;7695:3;:15::i;:::-;7672:8;:15;7681:5;;;;;;;;;;;7672:15;;;;;;;;;;;;;;;:19;;;:38;;;;;;;:::i;:::-;;;;;;;;7745:41;7749:33;7753:24;7762:6;7770;7753:8;:24::i;:::-;7779:2;7749:3;:33::i;:::-;7784:1;7745:3;:41::i;:::-;7721:8;:16;7730:6;7721:16;;;;;;;;;;;;;;;:20;;;:65;;;;;;;:::i;:::-;;;;;;;;7805:24;7809:15;7813:6;7821:2;7809:3;:15::i;:::-;7826:2;7805:3;:24::i;:::-;7797:4;;:32;;;;;;;:::i;:::-;;;;;;;;7840:19;7845:5;;;;;;;;;;;7852:6;7840:4;:19::i;:::-;7883:5;;;;;;;;;;;7873:15;;:6;:15;;;7870:84;;7916:6;7905:3;:8;7909:3;;7905:8;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;7937:3;;:5;;;;;;;;;:::i;:::-;;;;;;7870:84;7984:6;7969:39;;7978:4;;;;;;;;;;;7969:39;;;7992:15;7996:6;8004:2;7992:3;:15::i;:::-;7969:39;;;;;;:::i;:::-;;;;;;;;8040:6;8024:40;;8033:5;;;;;;;;;;;8024:40;;;8048:15;8052:6;8060:2;8048:3;:15::i;:::-;8024:40;;;;;;:::i;:::-;;;;;;;;7586:486;;:::o;7120:458::-;7220:18;:16;:18::i;:::-;7201:16;7211:5;;;;;;;;;;;7201:9;:16::i;:::-;:37;7198:373;;;7262:6;7254:4;;:14;;;;;;;:::i;:::-;;;;;;;;7306:27;7310:6;7318:14;7322:6;7330:1;7318:3;:14::i;:::-;7306:3;:27::i;:::-;7283:8;:15;7292:5;;;;;;;;;;;7283:15;;;;;;;;;;;;;;;:19;;;:50;;;;;;;:::i;:::-;;;;;;;;7349:79;7354:5;;;;;;;;;;;7361:66;7365:28;7369:6;7377:15;7381:6;7389:2;7377:3;:15::i;:::-;7365:3;:28::i;:::-;7395:31;7411:6;7419;7395:15;:31::i;:::-;7361:3;:66::i;:::-;7349:4;:79::i;:::-;7444:35;7456:6;7464:14;7468:6;7476:1;7464:3;:14::i;:::-;7444:11;:35::i;:::-;7494:16;7503:6;7494:8;:16::i;:::-;7198:373;;;7543:16;7552:6;7543:8;:16::i;:::-;7198:373;7120:458;;:::o;6456:652::-;6556:18;:16;:18::i;:::-;6537:16;6547:5;;;;;;;;;;;6537:9;:16::i;:::-;:37;6534:540;;;6617:14;6621:6;6629:1;6617:3;:14::i;:::-;6594:8;:15;6603:5;6594:15;;;;;;;;;;;;;;;:20;;;:37;6590:473;;;6652:16;6671;6681:5;6671:9;:16::i;:::-;6652:35;;6730:56;6734:8;:15;6743:5;6734:15;;;;;;;;;;;;;;;:20;;;6756:29;6770:14;6774:6;6782:1;6770:3;:14::i;:::-;6756:13;:29::i;:::-;6730:3;:56::i;:::-;6706:8;:15;6715:5;6706:15;;;;;;;;;;;;;;;:20;;;:80;;;;;;;:::i;:::-;;;;;;;;6805:14;6822:31;6826:16;6836:5;6826:9;:16::i;:::-;6844:8;6822:3;:31::i;:::-;6805:48;;6895:6;6872:8;:15;6881:5;;;;;;;;;;;6872:15;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;6928:6;6920:4;;:14;;;;;;;:::i;:::-;;;;;;;;6964:5;6953:3;:8;6957:3;;6953:8;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;6988:3;;:5;;;;;;;;;:::i;:::-;;;;;;7033;7017:30;;7026:5;;;;;;;;;;;7017:30;;;7040:6;7017:30;;;;;;:::i;:::-;;;;;;;;6633:430;;6590:473;6534:540;7084:16;7093:6;7084:8;:16::i;:::-;6456:652;;:::o;8080:372::-;8173:6;8165:4;;:14;;;;;;;:::i;:::-;;;;;;;;8212:18;:16;:18::i;:::-;8193:16;8203:5;;;;;;;;;;;8193:9;:16::i;:::-;:37;8190:255;;;8246:33;8261:9;8272:6;8246:14;:33::i;:::-;8294:19;8299:5;;;;;;;;;;;8306:6;8294:4;:19::i;:::-;8351:6;8328:8;:15;8337:5;;;;;;;;;;;8328:15;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;8190:255;;;8399:34;8415:9;8426:6;8399:15;:34::i;:::-;8190:255;8080:372;;:::o;17393:156::-;17485:6;17457:8;:20;17474:1;17457:20;;;;;;;;;;;;;;;:24;;;:34;;;;;;;:::i;:::-;;;;;;;;17530:1;17507:34;;17516:4;17507:34;;;17534:6;17507:34;;;;;;:::i;:::-;;;;;;;;17393:156;;:::o;9857:414::-;9931:12;9983:3;9960:8;:15;9969:5;9960:15;;;;;;;;;;;;;;;:20;;;:26;9956:308;;;10003:16;10022;10032:5;10022:9;:16::i;:::-;10003:35;;10077:56;10081:8;:15;10090:5;10081:15;;;;;;;;;;;;;;;:20;;;10103:29;10117:14;10121:6;10129:1;10117:3;:14::i;:::-;10103:13;:29::i;:::-;10077:3;:56::i;:::-;10053:8;:15;10062:5;10053:15;;;;;;;;;;;;;;;:20;;;:80;;;;;;;:::i;:::-;;;;;;;;10162:16;10172:5;10162:9;:16::i;:::-;10151:8;:27;10148:105;;;10206:31;10210:8;10220:16;10230:5;10220:9;:16::i;:::-;10206:3;:31::i;:::-;10199:38;;10148:105;9988:276;9956:308;9857:414;;;;:::o;10283:577::-;10364:6;10375:1;10371:3;;:5;;;;:::i;:::-;10364:12;;10359:494;10382:3;;10378:1;:7;10359:494;;;10421:6;10411:16;;:3;:6;10415:1;10411:6;;;;;;;;;;;;;;;;;;;;;:16;;;10407:435;;10472:35;10476:27;10485:3;:6;10489:1;10485:6;;;;;;;;;;;;;;;;;;;;;10493:9;10476:8;:27::i;:::-;10505:1;10472:3;:35::i;:::-;10448:8;:16;10457:3;:6;10461:1;10457:6;;;;;;;;;;;;;;;;;;;;;10448:16;;;;;;;;;;;;;;;:20;;;:59;;;;;;;:::i;:::-;;;;;;;;10549:17;10553:9;10564:1;10549:3;:17::i;:::-;10526:8;:15;10535:5;;;;;;;;;;;10526:15;;;;;;;;;;;;;;;:19;;;:40;;;;;;;:::i;:::-;;;;;;;;10593:17;10597:9;10608:1;10593:3;:17::i;:::-;10585:4;;:25;;;;;;;:::i;:::-;;;;;;;;10650:3;:6;10654:1;10650:6;;;;;;;;;;;;;;;;;;;;;10634:42;;10643:5;;;;;;;;;;;10634:42;;;10658:17;10662:9;10673:1;10658:3;:17::i;:::-;10634:42;;;;;;:::i;:::-;;;;;;;;10407:435;;;10739:17;10743:9;10754:1;10739:3;:17::i;:::-;10716:8;:15;10725:5;;;;;;;;;;;10716:15;;;;;;;;;;;;;;;:19;;;:40;;;;;;;:::i;:::-;;;;;;;;10804:1;10780:46;;10789:5;;;;;;;;;;;10780:46;;;10808:17;10812:9;10823:1;10808:3;:17::i;:::-;10780:46;;;;;;:::i;:::-;;;;;;;;10407:435;10387:3;;;;;:::i;:::-;;;;10359:494;;;;10283:577;;:::o;10872:527::-;10937:3;10929:5;;:11;10926:466;;;10965:34;10969:5;;10976:22;10991:6;10976:14;:22::i;:::-;10965:3;:34::i;:::-;10956:5;;:43;;;;;;;:::i;:::-;;;;;;;;11036:18;:16;:18::i;:::-;11017:16;11027:5;;;;;;;;;;;11017:9;:16::i;:::-;:37;11014:114;;;11097:15;11101:6;11109:2;11097:3;:15::i;:::-;11074:8;:15;11083:5;;;;;;;;;;;11074:15;;;;;;;;;;;;;;;:19;;;:38;;;;;;;:::i;:::-;;;;;;;;11014:114;11150:15;11154:6;11162:2;11150:3;:15::i;:::-;11142:4;;:23;;;;;;;:::i;:::-;;;;;;;;11180:11;:9;:11::i;:::-;10926:466;;;11234:1;11226:5;;;;;;;;;;;:9;;;11223:158;;;11263:13;11267:5;;11274:1;11263:3;:13::i;:::-;11255:5;:21;;;;11303:4;;11295;;:12;;;;;;;:::i;:::-;;;;;;;;11326:11;:9;:11::i;:::-;11364:1;11356:5;;:9;;;;;;;;;;;;;;;;;;11223:158;10926:466;10872:527;:::o;11778:122::-;11839:7;11866:26;11870:13;11874:4;;11880:2;11870:3;:13::i;:::-;11885:6;11866:3;:26::i;:::-;11859:33;;11778:122;;;:::o;8786:554::-;8913:13;8875:35;8885:9;8896:13;8875:9;:35::i;:::-;:51;8872:461;;;8943:20;8966:55;8970:35;8980:9;8991:13;8970:9;:35::i;:::-;9007:13;8966:3;:55::i;:::-;8943:78;;9036:19;9058:33;9067:9;9078:12;9058:8;:33::i;:::-;9036:55;;9133:19;9137:11;9150:1;9133:3;:19::i;:::-;9106:8;:19;9115:9;9106:19;;;;;;;;;;;;;;;:23;;;:46;;;;;;;:::i;:::-;;;;;;;;9175:20;9179:12;9193:1;9175:3;:20::i;:::-;9167:4;;:28;;;;;;;:::i;:::-;;;;;;;;9233:20;9237:12;9251:1;9233:3;:20::i;:::-;9210:8;:15;9219:5;;;;;;;;;;;9210:15;;;;;;;;;;;;;;;:19;;;:43;;;;;;;:::i;:::-;;;;;;;;9289:9;9273:48;;9282:5;;;;;;;;;;;9273:48;;;9300:20;9304:12;9318:1;9300:3;:20::i;:::-;9273:48;;;;;;:::i;:::-;;;;;;;;8928:405;;8872:461;8786:554;;:::o;9348:497::-;9476:13;9438:35;9448:9;9459:13;9438:9;:35::i;:::-;:51;9435:403;;;9506:20;9529:55;9533:35;9543:9;9554:13;9533:9;:35::i;:::-;9570:13;9529:3;:55::i;:::-;9506:78;;9599:19;9621:33;9630:9;9641:12;9621:8;:33::i;:::-;9599:55;;9696:19;9700:11;9713:1;9696:3;:19::i;:::-;9669:8;:19;9678:9;9669:19;;;;;;;;;;;;;;;:23;;;:46;;;;;;;:::i;:::-;;;;;;;;9738:20;9742:12;9756:1;9738:3;:20::i;:::-;9730:4;;:28;;;;;;;:::i;:::-;;;;;;;;9794:9;9778:48;;9787:5;;;;;;;;;;;9778:48;;;9805:20;9809:12;9823:1;9805:3;:20::i;:::-;9778:48;;;;;;:::i;:::-;;;;;;;;9491:347;;9435:403;9348:497;;:::o;11643:123::-;11705:7;11732:26;11736:13;11740:4;;11746:2;11736:3;:13::i;:::-;11751:6;11732:3;:26::i;:::-;11725:33;;11643:123;;;:::o;11407:131::-;11453:6;11448:83;11467:1;11463;:5;11448:83;;;11514:5;;11490:8;:16;11499:3;:6;11503:1;11499:6;;;;;;;;;;;;;;;;;;;;;11490:16;;;;;;;;;;;;;;;:21;;:29;;;;11470:3;;;;;:::i;:::-;;;;11448:83;;;;11407:131::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:139::-;359:5;397:6;384:20;375:29;;413:33;440:5;413:33;:::i;:::-;365:87;;;;:::o;458:143::-;515:5;546:6;540:13;531:22;;562:33;589:5;562:33;:::i;:::-;521:80;;;;:::o;607:329::-;666:6;715:2;703:9;694:7;690:23;686:32;683:2;;;721:79;;:::i;:::-;683:2;841:1;866:53;911:7;902:6;891:9;887:22;866:53;:::i;:::-;856:63;;812:117;673:263;;;;:::o;942:490::-;1018:6;1026;1075:2;1063:9;1054:7;1050:23;1046:32;1043:2;;;1081:79;;:::i;:::-;1043:2;1201:1;1226:61;1279:7;1270:6;1259:9;1255:22;1226:61;:::i;:::-;1216:71;;1172:125;1336:2;1362:53;1407:7;1398:6;1387:9;1383:22;1362:53;:::i;:::-;1352:63;;1307:118;1033:399;;;;;:::o;1438:474::-;1506:6;1514;1563:2;1551:9;1542:7;1538:23;1534:32;1531:2;;;1569:79;;:::i;:::-;1531:2;1689:1;1714:53;1759:7;1750:6;1739:9;1735:22;1714:53;:::i;:::-;1704:63;;1660:117;1816:2;1842:53;1887:7;1878:6;1867:9;1863:22;1842:53;:::i;:::-;1832:63;;1787:118;1521:391;;;;;:::o;1918:619::-;1995:6;2003;2011;2060:2;2048:9;2039:7;2035:23;2031:32;2028:2;;;2066:79;;:::i;:::-;2028:2;2186:1;2211:53;2256:7;2247:6;2236:9;2232:22;2211:53;:::i;:::-;2201:63;;2157:117;2313:2;2339:53;2384:7;2375:6;2364:9;2360:22;2339:53;:::i;:::-;2329:63;;2284:118;2441:2;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2412:118;2018:519;;;;;:::o;2543:474::-;2611:6;2619;2668:2;2656:9;2647:7;2643:23;2639:32;2636:2;;;2674:79;;:::i;:::-;2636:2;2794:1;2819:53;2864:7;2855:6;2844:9;2840:22;2819:53;:::i;:::-;2809:63;;2765:117;2921:2;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2892:118;2626:391;;;;;:::o;3023:329::-;3082:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:2;;;3137:79;;:::i;:::-;3099:2;3257:1;3282:53;3327:7;3318:6;3307:9;3303:22;3282:53;:::i;:::-;3272:63;;3228:117;3089:263;;;;:::o;3358:474::-;3426:6;3434;3483:2;3471:9;3462:7;3458:23;3454:32;3451:2;;;3489:79;;:::i;:::-;3451:2;3609:1;3634:53;3679:7;3670:6;3659:9;3655:22;3634:53;:::i;:::-;3624:63;;3580:117;3736:2;3762:53;3807:7;3798:6;3787:9;3783:22;3762:53;:::i;:::-;3752:63;;3707:118;3441:391;;;;;:::o;3838:663::-;3926:6;3934;3942;3991:2;3979:9;3970:7;3966:23;3962:32;3959:2;;;3997:79;;:::i;:::-;3959:2;4117:1;4142:64;4198:7;4189:6;4178:9;4174:22;4142:64;:::i;:::-;4132:74;;4088:128;4255:2;4281:64;4337:7;4328:6;4317:9;4313:22;4281:64;:::i;:::-;4271:74;;4226:129;4394:2;4420:64;4476:7;4467:6;4456:9;4452:22;4420:64;:::i;:::-;4410:74;;4365:129;3949:552;;;;;:::o;4507:118::-;4594:24;4612:5;4594:24;:::i;:::-;4589:3;4582:37;4572:53;;:::o;4631:109::-;4712:21;4727:5;4712:21;:::i;:::-;4707:3;4700:34;4690:50;;:::o;4746:147::-;4841:45;4880:5;4841:45;:::i;:::-;4836:3;4829:58;4819:74;;:::o;4899:364::-;4987:3;5015:39;5048:5;5015:39;:::i;:::-;5070:71;5134:6;5129:3;5070:71;:::i;:::-;5063:78;;5150:52;5195:6;5190:3;5183:4;5176:5;5172:16;5150:52;:::i;:::-;5227:29;5249:6;5227:29;:::i;:::-;5222:3;5218:39;5211:46;;4991:272;;;;;:::o;5269:366::-;5411:3;5432:67;5496:2;5491:3;5432:67;:::i;:::-;5425:74;;5508:93;5597:3;5508:93;:::i;:::-;5626:2;5621:3;5617:12;5610:19;;5415:220;;;:::o;5641:366::-;5783:3;5804:67;5868:2;5863:3;5804:67;:::i;:::-;5797:74;;5880:93;5969:3;5880:93;:::i;:::-;5998:2;5993:3;5989:12;5982:19;;5787:220;;;:::o;6013:366::-;6155:3;6176:67;6240:2;6235:3;6176:67;:::i;:::-;6169:74;;6252:93;6341:3;6252:93;:::i;:::-;6370:2;6365:3;6361:12;6354:19;;6159:220;;;:::o;6385:366::-;6527:3;6548:67;6612:2;6607:3;6548:67;:::i;:::-;6541:74;;6624:93;6713:3;6624:93;:::i;:::-;6742:2;6737:3;6733:12;6726:19;;6531:220;;;:::o;6757:366::-;6899:3;6920:67;6984:2;6979:3;6920:67;:::i;:::-;6913:74;;6996:93;7085:3;6996:93;:::i;:::-;7114:2;7109:3;7105:12;7098:19;;6903:220;;;:::o;7129:366::-;7271:3;7292:67;7356:2;7351:3;7292:67;:::i;:::-;7285:74;;7368:93;7457:3;7368:93;:::i;:::-;7486:2;7481:3;7477:12;7470:19;;7275:220;;;:::o;7501:365::-;7643:3;7664:66;7728:1;7723:3;7664:66;:::i;:::-;7657:73;;7739:93;7828:3;7739:93;:::i;:::-;7857:2;7852:3;7848:12;7841:19;;7647:219;;;:::o;7872:366::-;8014:3;8035:67;8099:2;8094:3;8035:67;:::i;:::-;8028:74;;8111:93;8200:3;8111:93;:::i;:::-;8229:2;8224:3;8220:12;8213:19;;8018:220;;;:::o;8244:366::-;8386:3;8407:67;8471:2;8466:3;8407:67;:::i;:::-;8400:74;;8483:93;8572:3;8483:93;:::i;:::-;8601:2;8596:3;8592:12;8585:19;;8390:220;;;:::o;8616:366::-;8758:3;8779:67;8843:2;8838:3;8779:67;:::i;:::-;8772:74;;8855:93;8944:3;8855:93;:::i;:::-;8973:2;8968:3;8964:12;8957:19;;8762:220;;;:::o;8988:366::-;9130:3;9151:67;9215:2;9210:3;9151:67;:::i;:::-;9144:74;;9227:93;9316:3;9227:93;:::i;:::-;9345:2;9340:3;9336:12;9329:19;;9134:220;;;:::o;9360:366::-;9502:3;9523:67;9587:2;9582:3;9523:67;:::i;:::-;9516:74;;9599:93;9688:3;9599:93;:::i;:::-;9717:2;9712:3;9708:12;9701:19;;9506:220;;;:::o;9732:366::-;9874:3;9895:67;9959:2;9954:3;9895:67;:::i;:::-;9888:74;;9971:93;10060:3;9971:93;:::i;:::-;10089:2;10084:3;10080:12;10073:19;;9878:220;;;:::o;10104:118::-;10191:24;10209:5;10191:24;:::i;:::-;10186:3;10179:37;10169:53;;:::o;10228:112::-;10311:22;10327:5;10311:22;:::i;:::-;10306:3;10299:35;10289:51;;:::o;10346:222::-;10439:4;10477:2;10466:9;10462:18;10454:26;;10490:71;10558:1;10547:9;10543:17;10534:6;10490:71;:::i;:::-;10444:124;;;;:::o;10574:807::-;10823:4;10861:3;10850:9;10846:19;10838:27;;10875:71;10943:1;10932:9;10928:17;10919:6;10875:71;:::i;:::-;10956:72;11024:2;11013:9;11009:18;11000:6;10956:72;:::i;:::-;11038:80;11114:2;11103:9;11099:18;11090:6;11038:80;:::i;:::-;11128;11204:2;11193:9;11189:18;11180:6;11128:80;:::i;:::-;11218:73;11286:3;11275:9;11271:19;11262:6;11218:73;:::i;:::-;11301;11369:3;11358:9;11354:19;11345:6;11301:73;:::i;:::-;10828:553;;;;;;;;;:::o;11387:210::-;11474:4;11512:2;11501:9;11497:18;11489:26;;11525:65;11587:1;11576:9;11572:17;11563:6;11525:65;:::i;:::-;11479:118;;;;:::o;11603:313::-;11716:4;11754:2;11743:9;11739:18;11731:26;;11803:9;11797:4;11793:20;11789:1;11778:9;11774:17;11767:47;11831:78;11904:4;11895:6;11831:78;:::i;:::-;11823:86;;11721:195;;;;:::o;11922:419::-;12088:4;12126:2;12115:9;12111:18;12103:26;;12175:9;12169:4;12165:20;12161:1;12150:9;12146:17;12139:47;12203:131;12329:4;12203:131;:::i;:::-;12195:139;;12093:248;;;:::o;12347:419::-;12513:4;12551:2;12540:9;12536:18;12528:26;;12600:9;12594:4;12590:20;12586:1;12575:9;12571:17;12564:47;12628:131;12754:4;12628:131;:::i;:::-;12620:139;;12518:248;;;:::o;12772:419::-;12938:4;12976:2;12965:9;12961:18;12953:26;;13025:9;13019:4;13015:20;13011:1;13000:9;12996:17;12989:47;13053:131;13179:4;13053:131;:::i;:::-;13045:139;;12943:248;;;:::o;13197:419::-;13363:4;13401:2;13390:9;13386:18;13378:26;;13450:9;13444:4;13440:20;13436:1;13425:9;13421:17;13414:47;13478:131;13604:4;13478:131;:::i;:::-;13470:139;;13368:248;;;:::o;13622:419::-;13788:4;13826:2;13815:9;13811:18;13803:26;;13875:9;13869:4;13865:20;13861:1;13850:9;13846:17;13839:47;13903:131;14029:4;13903:131;:::i;:::-;13895:139;;13793:248;;;:::o;14047:419::-;14213:4;14251:2;14240:9;14236:18;14228:26;;14300:9;14294:4;14290:20;14286:1;14275:9;14271:17;14264:47;14328:131;14454:4;14328:131;:::i;:::-;14320:139;;14218:248;;;:::o;14472:419::-;14638:4;14676:2;14665:9;14661:18;14653:26;;14725:9;14719:4;14715:20;14711:1;14700:9;14696:17;14689:47;14753:131;14879:4;14753:131;:::i;:::-;14745:139;;14643:248;;;:::o;14897:419::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15150:9;15144:4;15140:20;15136:1;15125:9;15121:17;15114:47;15178:131;15304:4;15178:131;:::i;:::-;15170:139;;15068:248;;;:::o;15322:419::-;15488:4;15526:2;15515:9;15511:18;15503:26;;15575:9;15569:4;15565:20;15561:1;15550:9;15546:17;15539:47;15603:131;15729:4;15603:131;:::i;:::-;15595:139;;15493:248;;;:::o;15747:419::-;15913:4;15951:2;15940:9;15936:18;15928:26;;16000:9;15994:4;15990:20;15986:1;15975:9;15971:17;15964:47;16028:131;16154:4;16028:131;:::i;:::-;16020:139;;15918:248;;;:::o;16172:419::-;16338:4;16376:2;16365:9;16361:18;16353:26;;16425:9;16419:4;16415:20;16411:1;16400:9;16396:17;16389:47;16453:131;16579:4;16453:131;:::i;:::-;16445:139;;16343:248;;;:::o;16597:419::-;16763:4;16801:2;16790:9;16786:18;16778:26;;16850:9;16844:4;16840:20;16836:1;16825:9;16821:17;16814:47;16878:131;17004:4;16878:131;:::i;:::-;16870:139;;16768:248;;;:::o;17022:419::-;17188:4;17226:2;17215:9;17211:18;17203:26;;17275:9;17269:4;17265:20;17261:1;17250:9;17246:17;17239:47;17303:131;17429:4;17303:131;:::i;:::-;17295:139;;17193:248;;;:::o;17447:222::-;17540:4;17578:2;17567:9;17563:18;17555:26;;17591:71;17659:1;17648:9;17644:17;17635:6;17591:71;:::i;:::-;17545:124;;;;:::o;17675:214::-;17764:4;17802:2;17791:9;17787:18;17779:26;;17815:67;17879:1;17868:9;17864:17;17855:6;17815:67;:::i;:::-;17769:120;;;;:::o;17976:99::-;18028:6;18062:5;18056:12;18046:22;;18035:40;;;:::o;18081:169::-;18165:11;18199:6;18194:3;18187:19;18239:4;18234:3;18230:14;18215:29;;18177:73;;;;:::o;18256:305::-;18296:3;18315:20;18333:1;18315:20;:::i;:::-;18310:25;;18349:20;18367:1;18349:20;:::i;:::-;18344:25;;18503:1;18435:66;18431:74;18428:1;18425:81;18422:2;;;18509:18;;:::i;:::-;18422:2;18553:1;18550;18546:9;18539:16;;18300:261;;;;:::o;18567:185::-;18607:1;18624:20;18642:1;18624:20;:::i;:::-;18619:25;;18658:20;18676:1;18658:20;:::i;:::-;18653:25;;18697:1;18687:2;;18702:18;;:::i;:::-;18687:2;18744:1;18741;18737:9;18732:14;;18609:143;;;;:::o;18758:348::-;18798:7;18821:20;18839:1;18821:20;:::i;:::-;18816:25;;18855:20;18873:1;18855:20;:::i;:::-;18850:25;;19043:1;18975:66;18971:74;18968:1;18965:81;18960:1;18953:9;18946:17;18942:105;18939:2;;;19050:18;;:::i;:::-;18939:2;19098:1;19095;19091:9;19080:20;;18806:300;;;;:::o;19112:191::-;19152:4;19172:20;19190:1;19172:20;:::i;:::-;19167:25;;19206:20;19224:1;19206:20;:::i;:::-;19201:25;;19245:1;19242;19239:8;19236:2;;;19250:18;;:::i;:::-;19236:2;19295:1;19292;19288:9;19280:17;;19157:146;;;;:::o;19309:96::-;19346:7;19375:24;19393:5;19375:24;:::i;:::-;19364:35;;19354:51;;;:::o;19411:104::-;19456:7;19485:24;19503:5;19485:24;:::i;:::-;19474:35;;19464:51;;;:::o;19521:90::-;19555:7;19598:5;19591:13;19584:21;19573:32;;19563:48;;;:::o;19617:126::-;19654:7;19694:42;19687:5;19683:54;19672:65;;19662:81;;;:::o;19749:77::-;19786:7;19815:5;19804:16;;19794:32;;;:::o;19832:86::-;19867:7;19907:4;19900:5;19896:16;19885:27;;19875:43;;;:::o;19924:121::-;19982:9;20015:24;20033:5;20015:24;:::i;:::-;20002:37;;19992:53;;;:::o;20051:307::-;20119:1;20129:113;20143:6;20140:1;20137:13;20129:113;;;20228:1;20223:3;20219:11;20213:18;20209:1;20204:3;20200:11;20193:39;20165:2;20162:1;20158:10;20153:15;;20129:113;;;20260:6;20257:1;20254:13;20251:2;;;20340:1;20331:6;20326:3;20322:16;20315:27;20251:2;20100:258;;;;:::o;20364:320::-;20408:6;20445:1;20439:4;20435:12;20425:22;;20492:1;20486:4;20482:12;20513:18;20503:2;;20569:4;20561:6;20557:17;20547:27;;20503:2;20631;20623:6;20620:14;20600:18;20597:38;20594:2;;;20650:18;;:::i;:::-;20594:2;20415:269;;;;:::o;20690:233::-;20729:3;20752:24;20770:5;20752:24;:::i;:::-;20743:33;;20798:66;20791:5;20788:77;20785:2;;;20868:18;;:::i;:::-;20785:2;20915:1;20908:5;20904:13;20897:20;;20733:190;;;:::o;20929:180::-;20977:77;20974:1;20967:88;21074:4;21071:1;21064:15;21098:4;21095:1;21088:15;21115:180;21163:77;21160:1;21153:88;21260:4;21257:1;21250:15;21284:4;21281:1;21274:15;21301:180;21349:77;21346:1;21339:88;21446:4;21443:1;21436:15;21470:4;21467:1;21460:15;21610:117;21719:1;21716;21709:12;21733:102;21774:6;21825:2;21821:7;21816:2;21809:5;21805:14;21801:28;21791:38;;21781:54;;;:::o;21841:224::-;21981:34;21977:1;21969:6;21965:14;21958:58;22050:7;22045:2;22037:6;22033:15;22026:32;21947:118;:::o;22071:223::-;22211:34;22207:1;22199:6;22195:14;22188:58;22280:6;22275:2;22267:6;22263:15;22256:31;22177:117;:::o;22300:228::-;22440:34;22436:1;22428:6;22424:14;22417:58;22509:11;22504:2;22496:6;22492:15;22485:36;22406:122;:::o;22534:227::-;22674:34;22670:1;22662:6;22658:14;22651:58;22743:10;22738:2;22730:6;22726:15;22719:35;22640:121;:::o;22767:182::-;22907:34;22903:1;22895:6;22891:14;22884:58;22873:76;:::o;22955:225::-;23095:34;23091:1;23083:6;23079:14;23072:58;23164:8;23159:2;23151:6;23147:15;23140:33;23061:119;:::o;23186:156::-;23326:8;23322:1;23314:6;23310:14;23303:32;23292:50;:::o;23348:222::-;23488:34;23484:1;23476:6;23472:14;23465:58;23557:5;23552:2;23544:6;23540:15;23533:30;23454:116;:::o;23576:224::-;23716:34;23712:1;23704:6;23700:14;23693:58;23785:7;23780:2;23772:6;23768:15;23761:32;23682:118;:::o;23806:180::-;23946:32;23942:1;23934:6;23930:14;23923:56;23912:74;:::o;23992:222::-;24132:34;24128:1;24120:6;24116:14;24109:58;24201:5;24196:2;24188:6;24184:15;24177:30;24098:116;:::o;24220:234::-;24360:34;24356:1;24348:6;24344:14;24337:58;24429:17;24424:2;24416:6;24412:15;24405:42;24326:128;:::o;24460:221::-;24600:34;24596:1;24588:6;24584:14;24577:58;24669:4;24664:2;24656:6;24652:15;24645:29;24566:115;:::o;24687:122::-;24760:24;24778:5;24760:24;:::i;:::-;24753:5;24750:35;24740:2;;24799:1;24796;24789:12;24740:2;24730:79;:::o;24815:138::-;24896:32;24922:5;24896:32;:::i;:::-;24889:5;24886:43;24876:2;;24943:1;24940;24933:12;24876:2;24866:87;:::o;24959:122::-;25032:24;25050:5;25032:24;:::i;:::-;25025:5;25022:35;25012:2;;25071:1;25068;25061:12;25012:2;25002:79;:::o
Swarm Source
ipfs://ddf65d5bb2dc6593e61943c876609d72a24e50f2db3ca26e1b96d90bf2196967