Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 61 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 12218527 | 1146 days ago | IN | 0 ETH | 0.00132583 | ||||
Transfer | 11657819 | 1233 days ago | IN | 0 ETH | 0.00343266 | ||||
Transfer | 11652309 | 1234 days ago | IN | 0 ETH | 0.00560126 | ||||
Approve | 10651023 | 1388 days ago | IN | 0 ETH | 0.01479489 | ||||
Transfer | 10650525 | 1388 days ago | IN | 0 ETH | 0.01854384 | ||||
Transfer | 10440982 | 1420 days ago | IN | 0 ETH | 0.00268625 | ||||
Transfer | 10429745 | 1422 days ago | IN | 0 ETH | 0.00128271 | ||||
Transfer | 10018511 | 1486 days ago | IN | 0 ETH | 0.00092381 | ||||
Transfer | 9977381 | 1492 days ago | IN | 0 ETH | 0.00095338 | ||||
Transfer | 9974299 | 1492 days ago | IN | 0 ETH | 0.0010353 | ||||
Transfer | 9967816 | 1493 days ago | IN | 0 ETH | 0.00047045 | ||||
Transfer | 9961306 | 1494 days ago | IN | 0 ETH | 0.00052096 | ||||
Transfer | 9904464 | 1503 days ago | IN | 0 ETH | 0.00042757 | ||||
Transfer | 9904378 | 1503 days ago | IN | 0 ETH | 0.00057757 | ||||
Transfer | 9904338 | 1503 days ago | IN | 0 ETH | 0.00200521 | ||||
Transfer | 9882912 | 1507 days ago | IN | 0 ETH | 0.00095338 | ||||
Transfer | 9804338 | 1519 days ago | IN | 0 ETH | 0.00006586 | ||||
Transfer | 9804318 | 1519 days ago | IN | 0 ETH | 0.00014117 | ||||
Transfer | 9786508 | 1521 days ago | IN | 0 ETH | 0.00014117 | ||||
Transfer | 9744475 | 1528 days ago | IN | 0 ETH | 0.00027781 | ||||
Transfer | 9737938 | 1529 days ago | IN | 0 ETH | 0.00042793 | ||||
Transfer | 9731691 | 1530 days ago | IN | 0 ETH | 0.00042769 | ||||
Transfer | 9726383 | 1531 days ago | IN | 0 ETH | 0.00042769 | ||||
Transfer | 9725940 | 1531 days ago | IN | 0 ETH | 0.00057769 | ||||
Transfer | 9724856 | 1531 days ago | IN | 0 ETH | 0.00057769 |
Loading...
Loading
Contract Name:
IbsToken
Compiler Version
v0.5.11+commit.c082d0b4
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-11-07 */ pragma solidity ^0.5.1; library SafeMath { function mul (uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div (uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub (uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add (uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract ERCBasic { event Transfer(address indexed from, address indexed to, uint256 value); function totalSupply () public view returns (uint256); function balanceOf (address who) public view returns (uint256); function transfer (address to, uint256 value) public returns (bool); } contract ERC is ERCBasic { event Approval(address indexed owner, address indexed spender, uint256 value); function transferFrom (address from, address to, uint256 value) public returns (bool); function allowance (address owner, address spender) public view returns (uint256); function approve (address spender, uint256 value) public returns (bool); } contract Ownable { address payable internal owner; address internal foundationOwner; constructor () public { owner = msg.sender; foundationOwner = owner; } modifier onlyOwner () { require(msg.sender == owner); _; } modifier hasMintability () { require(msg.sender == owner || msg.sender == foundationOwner); _; } } contract Pausable is Ownable { event ContractPause(); event ContractResume(); event ContractPauseSchedule(uint256 from, uint256 to); uint256 internal pauseFrom; uint256 internal pauseTo; modifier whenRunning () { require(now < pauseFrom || now > pauseTo); _; } modifier whenPaused () { require(now >= pauseFrom && now <= pauseTo); _; } function pause () public onlyOwner { pauseFrom = now - 1; pauseTo = now + 30000 days; emit ContractPause(); } function pause (uint256 from, uint256 to) public onlyOwner { require(to > from && to > now); pauseFrom = from; pauseTo = to; emit ContractPauseSchedule(from, to); } function resume () public onlyOwner { pauseFrom = now - 2; pauseTo = now - 1; emit ContractResume(); } } contract TokenForge is Ownable { event ForgeStart(); event ForgeStop(); bool public forge_running = true; modifier canForge () { require(forge_running); _; } modifier cannotForge () { require(!forge_running); _; } function startForge () public onlyOwner cannotForge returns (bool) { forge_running = true; emit ForgeStart(); return true; } function stopForge () public onlyOwner canForge returns (bool) { forge_running = false; emit ForgeStop(); return true; } } contract CappedToken is Ownable { using SafeMath for uint256; uint256 public token_cap; uint256 public token_created; uint256 public token_foundation_cap; uint256 public token_foundation_created; constructor (uint256 _cap, uint256 _foundationCap) public { token_cap = _cap; token_foundation_cap = _foundationCap; } function canMint (uint256 amount) public view returns (bool) { return (token_cap == 0) || (token_created.add(amount) <= token_cap); } function canMintFoundation(uint256 amount) internal view returns(bool) { return(token_foundation_created.add(amount) <= token_foundation_cap); } } contract BasicToken is ERCBasic, Pausable { using SafeMath for uint256; mapping(address => uint256) public wallets; modifier canTransfer (address _from, address _to, uint256 amount) { require((_from != address(0)) && (_to != address(0))); require(_from != _to); require(amount > 0); _; } function balanceOf (address user) public view returns (uint256) { return wallets[user]; } } contract DelegatableToken is ERC, BasicToken { using SafeMath for uint256; mapping(address => mapping(address => uint256)) public warrants; function allowance (address owner, address delegator) public view returns (uint256) { return warrants[owner][delegator]; } function approve (address delegator, uint256 value) public whenRunning returns (bool) { if (delegator == msg.sender) return true; warrants[msg.sender][delegator] = value; emit Approval(msg.sender, delegator, value); return true; } function increaseApproval (address delegator, uint256 delta) public whenRunning returns (bool) { if (delegator == msg.sender) return true; uint256 value = warrants[msg.sender][delegator].add(delta); warrants[msg.sender][delegator] = value; emit Approval(msg.sender, delegator, value); return true; } function decreaseApproval (address delegator, uint256 delta) public whenRunning returns (bool) { if (delegator == msg.sender) return true; uint256 value = warrants[msg.sender][delegator]; if (value < delta) { value = 0; } else { value = value.sub(delta); } warrants[msg.sender][delegator] = value; emit Approval(msg.sender, delegator, value); return true; } } contract LockableProtocol is BasicToken { function invest (address investor, uint256 amount) public returns (bool); function getInvestedToken (address investor) public view returns (uint256); function getLockedToken (address investor) public view returns (uint256); function availableWallet (address user) public view returns (uint256) { return wallets[user].sub(getLockedToken(user)); } } contract MintAndBurnToken is TokenForge, CappedToken, LockableProtocol { using SafeMath for uint256; event Mint(address indexed user, uint256 amount); event Burn(address indexed user, uint256 amount); constructor (uint256 _initial, uint256 _cap, uint256 _Cap) public CappedToken(_cap, _Cap) { token_created = _initial; wallets[msg.sender] = _initial; emit Mint(msg.sender, _initial); emit Transfer(address(0), msg.sender, _initial); } function totalSupply () public view returns (uint256) { return token_created; } function totalFountainSupply() public view returns(uint256) { return token_foundation_created; } function mint (address target, uint256 amount) public hasMintability whenRunning canForge returns (bool) { require(target != owner && target != foundationOwner); require(canMint(amount)); if (msg.sender == foundationOwner) { require(canMintFoundation(amount)); token_foundation_created = token_foundation_created.add(amount); } token_created = token_created.add(amount); wallets[target] = wallets[target].add(amount); emit Mint(target, amount); emit Transfer(address(0), target, amount); return true; } function burn (uint256 amount) public whenRunning canForge returns (bool) { uint256 balance = availableWallet(msg.sender); require(amount <= balance); token_created = token_created.sub(amount); wallets[msg.sender] = wallets[msg.sender].sub(amount); emit Burn(msg.sender, amount); emit Transfer(msg.sender, address(0), amount); return true; } } contract LockableToken is MintAndBurnToken, DelegatableToken { using SafeMath for uint256; struct LockBin { uint256 start; uint256 finish; uint256 duration; uint256 amount; } event InvestStart(); event InvestStop(); event NewInvest(uint256 release_start, uint256 release_duration); uint256 public releaseStart; uint256 public releaseDuration; bool public forceStopInvest; mapping(address => mapping(uint => LockBin)) public lockbins; modifier canInvest () { require(!forceStopInvest); _; } constructor (uint256 _initial, uint256 _cap, uint256 _Cap) public MintAndBurnToken(_initial, _cap, _Cap) { forceStopInvest = true; } function pauseInvest () public onlyOwner whenRunning returns (bool) { require(!forceStopInvest); forceStopInvest = true; emit InvestStop(); return true; } function resumeInvest () public onlyOwner whenRunning returns (bool) { require(forceStopInvest); forceStopInvest = false; emit InvestStart(); return true; } function setInvest (uint256 release_start, uint256 release_duration) public onlyOwner whenRunning returns (bool) { releaseStart = release_start; releaseDuration = release_duration; forceStopInvest = false; emit NewInvest(release_start, release_duration); return true; } function invest (address investor, uint256 amount) public onlyOwner whenRunning canInvest returns (bool) { require(investor != address(0)); require(investor != owner); require(investor != foundationOwner); require(amount > 0); require(canMint(amount)); mapping(uint => LockBin) storage locks = lockbins[investor]; LockBin storage info = locks[0]; uint index = info.amount + 1; locks[index] = LockBin({ start: releaseStart, finish: releaseStart + releaseDuration, duration: releaseDuration / (1 days), amount: amount }); info.amount = index; token_created = token_created.add(amount); wallets[investor] = wallets[investor].add(amount); emit Mint(investor, amount); emit Transfer(address(0), investor, amount); return true; } function batchInvest (address[] memory investors, uint256 amount) public onlyOwner whenRunning canInvest returns (bool) { require(amount > 0); uint investorsLength = investors.length; uint investorsCount = 0; uint i; address r; for (i = 0; i < investorsLength; i ++) { r = investors[i]; if (r == address(0) || r == owner || r == foundationOwner) continue; investorsCount ++; } require(investorsCount > 0); uint256 totalAmount = amount.mul(uint256(investorsCount)); require(canMint(totalAmount)); token_created = token_created.add(totalAmount); for (i = 0; i < investorsLength; i ++) { r = investors[i]; if (r == address(0) || r == owner || r == foundationOwner) continue; mapping(uint => LockBin) storage locks = lockbins[r]; LockBin storage info = locks[0]; uint index = info.amount + 1; locks[index] = LockBin({ start: releaseStart, finish: releaseStart + releaseDuration, duration: releaseDuration / (1 days), amount: amount }); info.amount = index; wallets[r] = wallets[r].add(amount); emit Mint(r, amount); emit Transfer(address(0), r, amount); } return true; } function batchInvests (address[] memory investors, uint256[] memory amounts) public onlyOwner whenRunning canInvest returns (bool) { uint investorsLength = investors.length; require(investorsLength == amounts.length); uint investorsCount = 0; uint256 totalAmount = 0; uint i; address r; for (i = 0; i < investorsLength; i ++) { r = investors[i]; if (r == address(0) || r == owner) continue; investorsCount ++; totalAmount = totalAmount.add(amounts[i]); } require(totalAmount > 0); require(canMint(totalAmount)); uint256 amount; token_created = token_created.add(totalAmount); for (i = 0; i < investorsLength; i ++) { r = investors[i]; if (r == address(0) || r == owner) continue; amount = amounts[i]; wallets[r] = wallets[r].add(amount); emit Mint(r, amount); emit Transfer(address(0), r, amount); mapping(uint => LockBin) storage locks = lockbins[r]; LockBin storage info = locks[0]; uint index = info.amount + 1; locks[index] = LockBin({ start: releaseStart, finish: releaseStart + releaseDuration, duration: releaseDuration / (1 days), amount: amount }); info.amount = index; } return true; } function getInvestedToken (address investor) public view returns (uint256) { require(investor != address(0) && investor != owner && investor != foundationOwner); mapping(uint => LockBin) storage locks = lockbins[investor]; uint256 balance = 0; uint l = locks[0].amount; for (uint i = 1; i <= l; i ++) { LockBin memory bin = locks[i]; balance = balance.add(bin.amount); } return balance; } function getLockedToken (address investor) public view returns (uint256) { require(investor != address(0) && investor != owner && investor != foundationOwner); mapping(uint => LockBin) storage locks = lockbins[investor]; uint256 balance = 0; uint256 d = 1; uint l = locks[0].amount; for (uint i = 1; i <= l; i ++) { LockBin memory bin = locks[i]; if (now <= bin.start) { balance = balance.add(bin.amount); } else if (now < bin.finish) { d = (now - bin.start) / (1 days); balance = balance.add(bin.amount - bin.amount * d / bin.duration); } } return balance; } function canPay (address user, uint256 amount) internal view returns (bool) { uint256 balance = availableWallet(user); return amount <= balance; } function transfer (address target, uint256 value) public whenRunning canTransfer(msg.sender, target, value) returns (bool) { require(target != owner); require(canPay(msg.sender, value)); wallets[msg.sender] = wallets[msg.sender].sub(value); wallets[target] = wallets[target].add(value); emit Transfer(msg.sender, target, value); return true; } function batchTransfer (address[] memory receivers, uint256 amount) public whenRunning returns (bool) { require(amount > 0); uint receiveLength = receivers.length; uint receiverCount = 0; uint i; address r; for (i = 0; i < receiveLength; i ++) { r = receivers[i]; if (r == address(0) || r == owner) continue; receiverCount ++; } require(receiverCount > 0); uint256 totalAmount = amount.mul(uint256(receiverCount)); require(canPay(msg.sender, totalAmount)); wallets[msg.sender] = wallets[msg.sender].sub(totalAmount); for (i = 0; i < receiveLength; i++) { r = receivers[i]; if (r == address(0) || r == owner) continue; wallets[r] = wallets[r].add(amount); emit Transfer(msg.sender, r, amount); } return true; } function batchTransfers (address[] memory receivers, uint256[] memory amounts) public whenRunning returns (bool) { uint receiveLength = receivers.length; require(receiveLength == amounts.length); uint receiverCount = 0; uint256 totalAmount = 0; uint i; address r; for (i = 0; i < receiveLength; i ++) { r = receivers[i]; if (r == address(0) || r == owner) continue; receiverCount ++; totalAmount = totalAmount.add(amounts[i]); } require(totalAmount > 0); require(canPay(msg.sender, totalAmount)); wallets[msg.sender] = wallets[msg.sender].sub(totalAmount); uint256 amount; for (i = 0; i < receiveLength; i++) { r = receivers[i]; if (r == address(0) || r == owner) continue; amount = amounts[i]; if (amount == 0) continue; wallets[r] = wallets[r].add(amount); emit Transfer(msg.sender, r, amount); } return true; } function transferFrom (address from, address to, uint256 value) public whenRunning canTransfer(from, to, value) returns (bool) { require(from != owner); require(to != owner); require(canPay(from, value)); uint256 warrant; if (msg.sender != from) { warrant = warrants[from][msg.sender]; require(value <= warrant); warrants[from][msg.sender] = warrant.sub(value); } wallets[from] = wallets[from].sub(value); wallets[to] = wallets[to].add(value); emit Transfer(from, to, value); return true; } function batchTransferFrom (address from, address[] memory receivers, uint256 amount) public whenRunning returns (bool) { require(from != address(0) && from != owner); require(amount > 0); uint receiveLength = receivers.length; uint receiverCount = 0; uint i; address r; for (i = 0; i < receiveLength; i ++) { r = receivers[i]; if (r == address(0) || r == owner) continue; receiverCount ++; } require(receiverCount > 0); uint256 totalAmount = amount.mul(uint256(receiverCount)); require(canPay(from, totalAmount)); uint256 warrant; if (msg.sender != from) { warrant = warrants[from][msg.sender]; require(totalAmount <= warrant); warrants[from][msg.sender] = warrant.sub(totalAmount); } wallets[from] = wallets[from].sub(totalAmount); for (i = 0; i < receiveLength; i++) { r = receivers[i]; if (r == address(0) || r == owner) continue; wallets[r] = wallets[r].add(amount); emit Transfer(from, r, amount); } return true; } function batchTransferFroms (address from, address[] memory receivers, uint256[] memory amounts) public whenRunning returns (bool) { require(from != address(0) && from != owner); uint receiveLength = receivers.length; require(receiveLength == amounts.length); uint receiverCount = 0; uint256 totalAmount = 0; uint i; address r; for (i = 0; i < receiveLength; i ++) { r = receivers[i]; if (r == address(0) || r == owner) continue; receiverCount ++; totalAmount = totalAmount.add(amounts[i]); } require(totalAmount > 0); require(canPay(from, totalAmount)); uint256 warrant; if (msg.sender != from) { warrant = warrants[from][msg.sender]; require(totalAmount <= warrant); warrants[from][msg.sender] = warrant.sub(totalAmount); } wallets[from] = wallets[from].sub(totalAmount); uint256 amount; for (i = 0; i < receiveLength; i++) { r = receivers[i]; if (r == address(0) || r == owner) continue; amount = amounts[i]; if (amount == 0) continue; wallets[r] = wallets[r].add(amount); emit Transfer(from, r, amount); } return true; } } contract IbsToken is LockableToken { string public constant name = "Insurance"; string public constant symbol = "IBS"; uint8 public constant decimals = 18; uint256 private constant TOKEN_CAP = 1000000000 * 10 ** uint256(decimals); uint256 private constant TOKEN_FOUNDATION_CAP = 1000000000 * 10 ** uint256(decimals); uint256 private constant TOKEN_INITIAL = 0 * 10 ** uint256(decimals); constructor () public LockableToken(TOKEN_INITIAL, TOKEN_CAP, TOKEN_FOUNDATION_CAP) { } function suicideQent () public onlyOwner{ selfdestruct(owner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"}],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransfers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"release_start","type":"uint256"},{"internalType":"uint256","name":"release_duration","type":"uint256"}],"name":"setInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startForge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"forge_running","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockbins","outputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"getLockedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransferFroms","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"canMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"delta","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"investors","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchInvests","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchTransferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wallets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"suicideQent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalFountainSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"warrants","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"forceStopInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"getInvestedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopForge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"investor","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"invest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"investors","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token_foundation_cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_foundation_created","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"availableWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"delta","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"delegator","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_created","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"InvestStart","type":"event"},{"anonymous":false,"inputs":[],"name":"InvestStop","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"release_start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"release_duration","type":"uint256"}],"name":"NewInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"ContractPause","type":"event"},{"anonymous":false,"inputs":[],"name":"ContractResume","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"from","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"to","type":"uint256"}],"name":"ContractPauseSchedule","type":"event"},{"anonymous":false,"inputs":[],"name":"ForgeStart","type":"event"},{"anonymous":false,"inputs":[],"name":"ForgeStop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
608060405260018060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b50601260ff16600a0a600002601260ff16600a0a633b9aca0002601260ff16600a0a633b9aca00028282828181336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816002819055508060048190555050508260038190555082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885846040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050506001600c60006101000a81548160ff02191690831515021790555050505061551a80620002396000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c806376f660f61161015c578063a9059cbb116100ce578063d28cb7b511610087578063d28cb7b51461120f578063d73dd62314611267578063dd62ed3e146112cd578063de8ae5c014611345578063efc5d18314611363578063f9b41891146113815761027f565b8063a9059cbb1461100b578063b703aa3a14611071578063b9b8c24614611093578063bd632e10146110f9578063c04e7e17146111d3578063d26e1414146111f15761027f565b80639433a498116101205780639433a49814610e5657806395d89b4114610e745780639aa9897914610ef75780639b89010414610f6f5780639cf4836514610f91578063a4c673c514610fe95761027f565b806376f660f614610c1657806383f12fec14610d105780638456cb5914610dea57806389b08f1114610df45780638ce31b6314610e4c5761027f565b806348cc7b6e116101f557806359dd7ad4116101b957806359dd7ad41461080c5780635dd871a31461099057806366188463146109d65780636ad9531714610a3c57806370a0823114610ba0578063766e33f414610bf85761027f565b806348cc7b6e146106d757806348eac902146106f9578063491eeb3a1461071b5780634fcc1fc01461073d578063560ef1bf146107b45761027f565b80632d215518116102475780632d2155181461041b578063313ce567146104535780633badca251461047757806340c10f19146105db57806342966c681461064157806342bb66c4146106875761027f565b8063046f7da21461028457806306fdde031461028e578063095ea7b31461031157806318160ddd1461037757806323b872dd14610395575b600080fd5b61028c61139f565b005b61029661143a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61035d6004803603604081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611473565b604051808215151515815260200191505060405180910390f35b61037f6115bd565b6040518082815260200191505060405180910390f35b610401600480360360608110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115c7565b604051808215151515815260200191505060405180910390f35b6104516004803603604081101561043157600080fd5b810190808035906020019092919080359060200190929190505050611a59565b005b61045b611b1a565b604051808260ff1660ff16815260200191505060405180910390f35b6105c16004803603604081101561048d57600080fd5b81019080803590602001906401000000008111156104aa57600080fd5b8201836020820111156104bc57600080fd5b803590602001918460208302840111640100000000831117156104de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561053e57600080fd5b82018360208201111561055057600080fd5b8035906020019184602083028401116401000000008311171561057257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611b1f565b604051808215151515815260200191505060405180910390f35b610627600480360360408110156105f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef3565b604051808215151515815260200191505060405180910390f35b61066d6004803603602081101561065757600080fd5b8101908080359060200190929190505050612291565b604051808215151515815260200191505060405180910390f35b6106bd6004803603604081101561069d57600080fd5b81019080803590602001909291908035906020019092919050505061244e565b604051808215151515815260200191505060405180910390f35b6106df612535565b604051808215151515815260200191505060405180910390f35b6107016125f7565b604051808215151515815260200191505060405180910390f35b61072361260a565b604051808215151515815260200191505060405180910390f35b6107896004803603604081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126e6565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6107f6600480360360208110156107ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612723565b6040518082815260200191505060405180910390f35b6109766004803603606081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561085f57600080fd5b82018360208201111561087157600080fd5b8035906020019184602083028401116401000000008311171561089357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184602083028401116401000000008311171561092757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061296b565b604051808215151515815260200191505060405180910390f35b6109bc600480360360208110156109a657600080fd5b8101908080359060200190929190505050612f29565b604051808215151515815260200191505060405180910390f35b610a22600480360360408110156109ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f58565b604051808215151515815260200191505060405180910390f35b610b8660048036036040811015610a5257600080fd5b8101908080359060200190640100000000811115610a6f57600080fd5b820183602082011115610a8157600080fd5b80359060200191846020830284011164010000000083111715610aa357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b0357600080fd5b820183602082011115610b1557600080fd5b80359060200191846020830284011164010000000083111715610b3757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061314b565b604051808215151515815260200191505060405180910390f35b610be260048036036020811015610bb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061363e565b6040518082815260200191505060405180910390f35b610c00613687565b6040518082815260200191505060405180910390f35b610cf660048036036060811015610c2c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c6957600080fd5b820183602082011115610c7b57600080fd5b80359060200191846020830284011164010000000083111715610c9d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061368d565b604051808215151515815260200191505060405180910390f35b610dd060048036036040811015610d2657600080fd5b8101908080359060200190640100000000811115610d4357600080fd5b820183602082011115610d5557600080fd5b80359060200191846020830284011164010000000083111715610d7757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613c0f565b604051808215151515815260200191505060405180910390f35b610df2613fa7565b005b610e3660048036036020811015610e0a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614045565b6040518082815260200191505060405180910390f35b610e5461405d565b005b610e5e6140f0565b6040518082815260200191505060405180910390f35b610e7c6140fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ebc578082015181840152602081019050610ea1565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f5960048036036040811015610f0d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614133565b6040518082815260200191505060405180910390f35b610f77614158565b604051808215151515815260200191505060405180910390f35b610fd360048036036020811015610fa757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061416b565b6040518082815260200191505060405180910390f35b610ff161434b565b604051808215151515815260200191505060405180910390f35b6110576004803603604081101561102157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614428565b604051808215151515815260200191505060405180910390f35b611079614709565b604051808215151515815260200191505060405180910390f35b6110df600480360360408110156110a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506147cb565b604051808215151515815260200191505060405180910390f35b6111b96004803603604081101561110f57600080fd5b810190808035906020019064010000000081111561112c57600080fd5b82018360208201111561113e57600080fd5b8035906020019184602083028401116401000000008311171561116057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050614bbb565b604051808215151515815260200191505060405180910390f35b6111db61512f565b6040518082815260200191505060405180910390f35b6111f9615135565b6040518082815260200191505060405180910390f35b6112516004803603602081101561122557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061513b565b6040518082815260200191505060405180910390f35b6112b36004803603604081101561127d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061519e565b604051808215151515815260200191505060405180910390f35b61132f600480360360408110156112e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061537c565b6040518082815260200191505060405180910390f35b61134d615403565b6040518082815260200191505060405180910390f35b61136b615409565b6040518082815260200191505060405180910390f35b61138961540f565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113f857600080fd5b60024203600681905550600142036007819055507fa968378e910134ded7db0a5144e2c6a2d157f1685baa51f39de6c13a5e8ffa8960405160405180910390a1565b6040518060400160405280600981526020017f496e737572616e6365000000000000000000000000000000000000000000000081525081565b6000600654421080611486575060075442115b61148f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114cc57600190506115b7565b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600354905090565b60006006544210806115da575060075442115b6115e357600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116505750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61165957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561169257600080fd5b6000811161169f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156116f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561175357600080fd5b61175d8786615415565b61176657600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118bb57600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508086111561182757600080fd5b61183a868261543090919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61190d86600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a286600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ab257600080fd5b8181118015611ac057504281115b611ac957600080fd5b81600681905550806007819055507fac04925986d687f5e264774dac7e393e920d61c9b99e92497853eb519484e4dd8282604051808381526020018281526020019250505060405180910390a15050565b601281565b6000600654421080611b32575060075442115b611b3b57600080fd5b60008351905082518114611b4e57600080fd5b60008090506000809050600080600091505b84821015611c4d57878281518110611b7457fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611c0f57611c40565b8380600101945050611c3d878381518110611c2657fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050611b60565b60008311611c5a57600080fd5b611c643384615415565b611c6d57600080fd5b611cbf83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008092505b85831015611ee357888381518110611d1c57fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611dad57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611db757611ed6565b878381518110611dc357fe5b602002602001015190506000811415611ddb57611ed6565b611e2d81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8280600101935050611d08565b6001965050505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f9d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611fa657600080fd5b600654421080611fb7575060075442115b611fc057600080fd5b600160149054906101000a900460ff16611fd957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120845750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b61208d57600080fd5b61209682612f29565b61209f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612123576120fe82615463565b61210757600080fd5b61211c8260055461544790919063ffffffff16565b6005819055505b6121388260035461544790919063ffffffff16565b60038190555061219082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006006544210806122a4575060075442115b6122ad57600080fd5b600160149054906101000a900460ff166122c657600080fd5b60006122d13361513b565b9050808311156122e057600080fd5b6122f58360035461543090919063ffffffff16565b60038190555061234d83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124a957600080fd5b6006544210806124ba575060075442115b6124c357600080fd5b82600a8190555081600b819055506000600c60006101000a81548160ff0219169083151502179055507f4a1179f4d7ff6354606313c42f6054383e9549f9db56ac4b66b424bc940f79ed8383604051808381526020018281526020019250505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461259057600080fd5b600160149054906101000a900460ff16156125aa57600080fd5b60018060146101000a81548160ff0219169083151502179055507fa039c7af624b7305fc7002f670d116cf0c8b61a558a10ff96be611c5c235751760405160405180910390a16001905090565b600160149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461266557600080fd5b600654421080612676575060075442115b61267f57600080fd5b600c60009054906101000a900460ff1661269857600080fd5b6000600c60006101000a81548160ff0219169083151502179055507f14245ee125d3810a2a28f6b656b676516364a51e95a688ddf08af4194fc3db1260405160405180910390a16001905090565b600d602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154905084565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127ae57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128085750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61281157600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060006001905060008360008081526020019081526020016000206003015490506000600190505b81811161295e5761288f6154bd565b8560008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050806000015142116128ff576128f881606001518661544790919063ffffffff16565b9450612950565b806020015142101561294f5762015180816000015142038161291d57fe5b04935061294c8160400151858360600151028161293657fe5b048260600151038661544790919063ffffffff16565b94505b5b508080600101915050612880565b5082945050505050919050565b600060065442108061297e575060075442115b61298757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612a1157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b612a1a57600080fd5b60008351905082518114612a2d57600080fd5b60008090506000809050600080600091505b84821015612b2c57878281518110612a5357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480612ae457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15612aee57612b1f565b8380600101945050612b1c878381518110612b0557fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050612a3f565b60008311612b3957600080fd5b612b438984615415565b612b4c57600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ca157600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080841115612c0d57600080fd5b612c20848261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612cf384600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008093505b86841015612f1757898481518110612d5057fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612de157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612deb57612f0a565b888481518110612df757fe5b602002602001015190506000811415612e0f57612f0a565b612e6181600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8380600101945050612d3c565b60019750505050505050509392505050565b6000806002541480612f515750600254612f4e8360035461544790919063ffffffff16565b11155b9050919050565b6000600654421080612f6b575060075442115b612f7457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fb15760019050613145565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156130435760009050613059565b613056838261543090919063ffffffff16565b90505b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131a657600080fd5b6006544210806131b7575060075442115b6131c057600080fd5b600c60009054906101000a900460ff16156131da57600080fd5b600083519050825181146131ed57600080fd5b60008090506000809050600080600091505b848210156132ec5787828151811061321357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806132a457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156132ae576132df565b83806001019450506132dc8783815181106132c557fe5b60200260200101518461544790919063ffffffff16565b92505b81806001019250506131ff565b600083116132f957600080fd5b61330283612f29565b61330b57600080fd5b60006133228460035461544790919063ffffffff16565b600381905550600092505b8583101561362e5788838151811061334157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806133d257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156133dc57613621565b8783815181106133e857fe5b6020026020010151905061344481600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816135cd57fe5b04815260200185815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055505050505b828060010193505061332d565b6001965050505050505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60006006544210806136a0575060075442115b6136a957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561373357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b61373c57600080fd5b6000821161374957600080fd5b6000835190506000809050600080600091505b838210156138215786828151811061377057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061380157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561380b57613814565b82806001019350505b818060010192505061375c565b6000831161382e57600080fd5b6000613843848861548690919063ffffffff16565b905061384f8982615415565b61385857600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139ad57600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561391957600080fd5b61392c828261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6139ff82600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600093505b85841015613bfe57888481518110613a5b57fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613aec57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613af657613bf1565b613b4888600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a6040518082815260200191505060405180910390a35b8380600101945050613a47565b600196505050505050509392505050565b6000600654421080613c22575060075442115b613c2b57600080fd5b60008211613c3857600080fd5b6000835190506000809050600080600091505b83821015613d1057868281518110613c5f57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480613cf057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613cfa57613d03565b82806001019350505b8180600101925050613c4b565b60008311613d1d57600080fd5b6000613d32848861548690919063ffffffff16565b9050613d3e3382615415565b613d4757600080fd5b613d9981600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600092505b84831015613f9857878381518110613df557fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613e8657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15613e9057613f8b565b613ee287600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a35b8280600101935050613de1565b60019550505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461400057600080fd5b60014203600681905550639a7ec80042016007819055507fb7e43176b89d4cefed0cca5fc9b2f8e752d3d192b83123ef306a0a55dcd18a6b60405160405180910390a1565b60086020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146140b657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600554905090565b6040518060400160405280600381526020017f494253000000000000000000000000000000000000000000000000000000000081525081565b6009602052816000526040600020602052806000526040600020600091509150505481565b600c60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156141f657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156142505750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61425957600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060008260008081526020019081526020016000206003015490506000600190505b81811161433f576142d16154bd565b846000838152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905061432f81606001518561544790919063ffffffff16565b93505080806001019150506142c2565b50819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143a657600080fd5b6006544210806143b7575060075442115b6143c057600080fd5b600c60009054906101000a900460ff16156143da57600080fd5b6001600c60006101000a81548160ff0219169083151502179055507fcd16c719d9bfc829719d0e728b877ea1f29c77fd759480f077f4f6bc2a26e02560405160405180910390a16001905090565b600060065442108061443b575060075442115b61444457600080fd5b338383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156144b15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6144ba57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144f357600080fd5b6000811161450057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561455a57600080fd5b6145643386615415565b61456d57600080fd5b6145bf85600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061465485600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461476457600080fd5b600160149054906101000a900460ff1661477d57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5f6f015054fd8937bdf17b86b7684be4ae883d459fb0bec23bc11f75a13b594460405160405180910390a16001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461482657600080fd5b600654421080614837575060075442115b61484057600080fd5b600c60009054906101000a900460ff161561485a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561489457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156148ee57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561494957600080fd5b6000821161495657600080fd5b61495f82612f29565b61496857600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816149fa57fe5b0481526020018681525083600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050808260030181905550614a5f8560035461544790919063ffffffff16565b600381905550614ab785600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885866040518082815260200191505060405180910390a28573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c1657600080fd5b600654421080614c27575060075442115b614c3057600080fd5b600c60009054906101000a900460ff1615614c4a57600080fd5b60008211614c5757600080fd5b6000835190506000809050600080600091505b83821015614d8757868281518110614c7e57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480614d0f57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80614d675750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15614d7157614d7a565b82806001019350505b8180600101925050614c6a565b60008311614d9457600080fd5b6000614da9848861548690919063ffffffff16565b9050614db481612f29565b614dbd57600080fd5b614dd28160035461544790919063ffffffff16565b600381905550600092505b8483101561512057878381518110614df157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480614e8257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80614eda5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15614ee457615113565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b5481614f7657fe5b0481526020018b815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055506150188a600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a35050505b8280600101935050614ddd565b60019550505050505092915050565b60045481565b60055481565b600061519761514983612723565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b9050919050565b60006006544210806151b1575060075442115b6151ba57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156151f75760019050615376565b600061528883600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b60025481565b600b5481565b6000806154218461513b565b90508083111591505092915050565b60008282111561543c57fe5b818303905092915050565b60008082840190508381101561545957fe5b8091505092915050565b600060045461547d8360055461544790919063ffffffff16565b11159050919050565b60008083141561549957600090506154b7565b60008284029050828482816154aa57fe5b04146154b257fe5b809150505b92915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fea265627a7a72315820d7dec4457383368bdf1b8e1f0f59b540a597658cc13b179b36edaa8643a594b664736f6c634300050b0032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061027f5760003560e01c806376f660f61161015c578063a9059cbb116100ce578063d28cb7b511610087578063d28cb7b51461120f578063d73dd62314611267578063dd62ed3e146112cd578063de8ae5c014611345578063efc5d18314611363578063f9b41891146113815761027f565b8063a9059cbb1461100b578063b703aa3a14611071578063b9b8c24614611093578063bd632e10146110f9578063c04e7e17146111d3578063d26e1414146111f15761027f565b80639433a498116101205780639433a49814610e5657806395d89b4114610e745780639aa9897914610ef75780639b89010414610f6f5780639cf4836514610f91578063a4c673c514610fe95761027f565b806376f660f614610c1657806383f12fec14610d105780638456cb5914610dea57806389b08f1114610df45780638ce31b6314610e4c5761027f565b806348cc7b6e116101f557806359dd7ad4116101b957806359dd7ad41461080c5780635dd871a31461099057806366188463146109d65780636ad9531714610a3c57806370a0823114610ba0578063766e33f414610bf85761027f565b806348cc7b6e146106d757806348eac902146106f9578063491eeb3a1461071b5780634fcc1fc01461073d578063560ef1bf146107b45761027f565b80632d215518116102475780632d2155181461041b578063313ce567146104535780633badca251461047757806340c10f19146105db57806342966c681461064157806342bb66c4146106875761027f565b8063046f7da21461028457806306fdde031461028e578063095ea7b31461031157806318160ddd1461037757806323b872dd14610395575b600080fd5b61028c61139f565b005b61029661143a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61035d6004803603604081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611473565b604051808215151515815260200191505060405180910390f35b61037f6115bd565b6040518082815260200191505060405180910390f35b610401600480360360608110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115c7565b604051808215151515815260200191505060405180910390f35b6104516004803603604081101561043157600080fd5b810190808035906020019092919080359060200190929190505050611a59565b005b61045b611b1a565b604051808260ff1660ff16815260200191505060405180910390f35b6105c16004803603604081101561048d57600080fd5b81019080803590602001906401000000008111156104aa57600080fd5b8201836020820111156104bc57600080fd5b803590602001918460208302840111640100000000831117156104de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561053e57600080fd5b82018360208201111561055057600080fd5b8035906020019184602083028401116401000000008311171561057257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611b1f565b604051808215151515815260200191505060405180910390f35b610627600480360360408110156105f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef3565b604051808215151515815260200191505060405180910390f35b61066d6004803603602081101561065757600080fd5b8101908080359060200190929190505050612291565b604051808215151515815260200191505060405180910390f35b6106bd6004803603604081101561069d57600080fd5b81019080803590602001909291908035906020019092919050505061244e565b604051808215151515815260200191505060405180910390f35b6106df612535565b604051808215151515815260200191505060405180910390f35b6107016125f7565b604051808215151515815260200191505060405180910390f35b61072361260a565b604051808215151515815260200191505060405180910390f35b6107896004803603604081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126e6565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6107f6600480360360208110156107ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612723565b6040518082815260200191505060405180910390f35b6109766004803603606081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561085f57600080fd5b82018360208201111561087157600080fd5b8035906020019184602083028401116401000000008311171561089357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184602083028401116401000000008311171561092757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061296b565b604051808215151515815260200191505060405180910390f35b6109bc600480360360208110156109a657600080fd5b8101908080359060200190929190505050612f29565b604051808215151515815260200191505060405180910390f35b610a22600480360360408110156109ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f58565b604051808215151515815260200191505060405180910390f35b610b8660048036036040811015610a5257600080fd5b8101908080359060200190640100000000811115610a6f57600080fd5b820183602082011115610a8157600080fd5b80359060200191846020830284011164010000000083111715610aa357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b0357600080fd5b820183602082011115610b1557600080fd5b80359060200191846020830284011164010000000083111715610b3757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061314b565b604051808215151515815260200191505060405180910390f35b610be260048036036020811015610bb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061363e565b6040518082815260200191505060405180910390f35b610c00613687565b6040518082815260200191505060405180910390f35b610cf660048036036060811015610c2c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c6957600080fd5b820183602082011115610c7b57600080fd5b80359060200191846020830284011164010000000083111715610c9d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061368d565b604051808215151515815260200191505060405180910390f35b610dd060048036036040811015610d2657600080fd5b8101908080359060200190640100000000811115610d4357600080fd5b820183602082011115610d5557600080fd5b80359060200191846020830284011164010000000083111715610d7757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613c0f565b604051808215151515815260200191505060405180910390f35b610df2613fa7565b005b610e3660048036036020811015610e0a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614045565b6040518082815260200191505060405180910390f35b610e5461405d565b005b610e5e6140f0565b6040518082815260200191505060405180910390f35b610e7c6140fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ebc578082015181840152602081019050610ea1565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f5960048036036040811015610f0d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614133565b6040518082815260200191505060405180910390f35b610f77614158565b604051808215151515815260200191505060405180910390f35b610fd360048036036020811015610fa757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061416b565b6040518082815260200191505060405180910390f35b610ff161434b565b604051808215151515815260200191505060405180910390f35b6110576004803603604081101561102157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614428565b604051808215151515815260200191505060405180910390f35b611079614709565b604051808215151515815260200191505060405180910390f35b6110df600480360360408110156110a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506147cb565b604051808215151515815260200191505060405180910390f35b6111b96004803603604081101561110f57600080fd5b810190808035906020019064010000000081111561112c57600080fd5b82018360208201111561113e57600080fd5b8035906020019184602083028401116401000000008311171561116057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050614bbb565b604051808215151515815260200191505060405180910390f35b6111db61512f565b6040518082815260200191505060405180910390f35b6111f9615135565b6040518082815260200191505060405180910390f35b6112516004803603602081101561122557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061513b565b6040518082815260200191505060405180910390f35b6112b36004803603604081101561127d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061519e565b604051808215151515815260200191505060405180910390f35b61132f600480360360408110156112e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061537c565b6040518082815260200191505060405180910390f35b61134d615403565b6040518082815260200191505060405180910390f35b61136b615409565b6040518082815260200191505060405180910390f35b61138961540f565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113f857600080fd5b60024203600681905550600142036007819055507fa968378e910134ded7db0a5144e2c6a2d157f1685baa51f39de6c13a5e8ffa8960405160405180910390a1565b6040518060400160405280600981526020017f496e737572616e6365000000000000000000000000000000000000000000000081525081565b6000600654421080611486575060075442115b61148f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114cc57600190506115b7565b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600354905090565b60006006544210806115da575060075442115b6115e357600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116505750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61165957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561169257600080fd5b6000811161169f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156116f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561175357600080fd5b61175d8786615415565b61176657600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118bb57600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508086111561182757600080fd5b61183a868261543090919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61190d86600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a286600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ab257600080fd5b8181118015611ac057504281115b611ac957600080fd5b81600681905550806007819055507fac04925986d687f5e264774dac7e393e920d61c9b99e92497853eb519484e4dd8282604051808381526020018281526020019250505060405180910390a15050565b601281565b6000600654421080611b32575060075442115b611b3b57600080fd5b60008351905082518114611b4e57600080fd5b60008090506000809050600080600091505b84821015611c4d57878281518110611b7457fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611c0f57611c40565b8380600101945050611c3d878381518110611c2657fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050611b60565b60008311611c5a57600080fd5b611c643384615415565b611c6d57600080fd5b611cbf83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008092505b85831015611ee357888381518110611d1c57fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611dad57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611db757611ed6565b878381518110611dc357fe5b602002602001015190506000811415611ddb57611ed6565b611e2d81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8280600101935050611d08565b6001965050505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f9d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611fa657600080fd5b600654421080611fb7575060075442115b611fc057600080fd5b600160149054906101000a900460ff16611fd957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120845750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b61208d57600080fd5b61209682612f29565b61209f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612123576120fe82615463565b61210757600080fd5b61211c8260055461544790919063ffffffff16565b6005819055505b6121388260035461544790919063ffffffff16565b60038190555061219082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006006544210806122a4575060075442115b6122ad57600080fd5b600160149054906101000a900460ff166122c657600080fd5b60006122d13361513b565b9050808311156122e057600080fd5b6122f58360035461543090919063ffffffff16565b60038190555061234d83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124a957600080fd5b6006544210806124ba575060075442115b6124c357600080fd5b82600a8190555081600b819055506000600c60006101000a81548160ff0219169083151502179055507f4a1179f4d7ff6354606313c42f6054383e9549f9db56ac4b66b424bc940f79ed8383604051808381526020018281526020019250505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461259057600080fd5b600160149054906101000a900460ff16156125aa57600080fd5b60018060146101000a81548160ff0219169083151502179055507fa039c7af624b7305fc7002f670d116cf0c8b61a558a10ff96be611c5c235751760405160405180910390a16001905090565b600160149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461266557600080fd5b600654421080612676575060075442115b61267f57600080fd5b600c60009054906101000a900460ff1661269857600080fd5b6000600c60006101000a81548160ff0219169083151502179055507f14245ee125d3810a2a28f6b656b676516364a51e95a688ddf08af4194fc3db1260405160405180910390a16001905090565b600d602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154905084565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127ae57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128085750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61281157600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060006001905060008360008081526020019081526020016000206003015490506000600190505b81811161295e5761288f6154bd565b8560008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050806000015142116128ff576128f881606001518661544790919063ffffffff16565b9450612950565b806020015142101561294f5762015180816000015142038161291d57fe5b04935061294c8160400151858360600151028161293657fe5b048260600151038661544790919063ffffffff16565b94505b5b508080600101915050612880565b5082945050505050919050565b600060065442108061297e575060075442115b61298757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612a1157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b612a1a57600080fd5b60008351905082518114612a2d57600080fd5b60008090506000809050600080600091505b84821015612b2c57878281518110612a5357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480612ae457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15612aee57612b1f565b8380600101945050612b1c878381518110612b0557fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050612a3f565b60008311612b3957600080fd5b612b438984615415565b612b4c57600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ca157600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080841115612c0d57600080fd5b612c20848261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612cf384600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008093505b86841015612f1757898481518110612d5057fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612de157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612deb57612f0a565b888481518110612df757fe5b602002602001015190506000811415612e0f57612f0a565b612e6181600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8380600101945050612d3c565b60019750505050505050509392505050565b6000806002541480612f515750600254612f4e8360035461544790919063ffffffff16565b11155b9050919050565b6000600654421080612f6b575060075442115b612f7457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fb15760019050613145565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156130435760009050613059565b613056838261543090919063ffffffff16565b90505b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131a657600080fd5b6006544210806131b7575060075442115b6131c057600080fd5b600c60009054906101000a900460ff16156131da57600080fd5b600083519050825181146131ed57600080fd5b60008090506000809050600080600091505b848210156132ec5787828151811061321357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806132a457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156132ae576132df565b83806001019450506132dc8783815181106132c557fe5b60200260200101518461544790919063ffffffff16565b92505b81806001019250506131ff565b600083116132f957600080fd5b61330283612f29565b61330b57600080fd5b60006133228460035461544790919063ffffffff16565b600381905550600092505b8583101561362e5788838151811061334157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806133d257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156133dc57613621565b8783815181106133e857fe5b6020026020010151905061344481600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816135cd57fe5b04815260200185815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055505050505b828060010193505061332d565b6001965050505050505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60006006544210806136a0575060075442115b6136a957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561373357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b61373c57600080fd5b6000821161374957600080fd5b6000835190506000809050600080600091505b838210156138215786828151811061377057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061380157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561380b57613814565b82806001019350505b818060010192505061375c565b6000831161382e57600080fd5b6000613843848861548690919063ffffffff16565b905061384f8982615415565b61385857600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139ad57600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561391957600080fd5b61392c828261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6139ff82600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600093505b85841015613bfe57888481518110613a5b57fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613aec57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613af657613bf1565b613b4888600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a6040518082815260200191505060405180910390a35b8380600101945050613a47565b600196505050505050509392505050565b6000600654421080613c22575060075442115b613c2b57600080fd5b60008211613c3857600080fd5b6000835190506000809050600080600091505b83821015613d1057868281518110613c5f57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480613cf057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613cfa57613d03565b82806001019350505b8180600101925050613c4b565b60008311613d1d57600080fd5b6000613d32848861548690919063ffffffff16565b9050613d3e3382615415565b613d4757600080fd5b613d9981600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600092505b84831015613f9857878381518110613df557fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613e8657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15613e9057613f8b565b613ee287600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a35b8280600101935050613de1565b60019550505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461400057600080fd5b60014203600681905550639a7ec80042016007819055507fb7e43176b89d4cefed0cca5fc9b2f8e752d3d192b83123ef306a0a55dcd18a6b60405160405180910390a1565b60086020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146140b657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600554905090565b6040518060400160405280600381526020017f494253000000000000000000000000000000000000000000000000000000000081525081565b6009602052816000526040600020602052806000526040600020600091509150505481565b600c60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156141f657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156142505750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61425957600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060008260008081526020019081526020016000206003015490506000600190505b81811161433f576142d16154bd565b846000838152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905061432f81606001518561544790919063ffffffff16565b93505080806001019150506142c2565b50819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143a657600080fd5b6006544210806143b7575060075442115b6143c057600080fd5b600c60009054906101000a900460ff16156143da57600080fd5b6001600c60006101000a81548160ff0219169083151502179055507fcd16c719d9bfc829719d0e728b877ea1f29c77fd759480f077f4f6bc2a26e02560405160405180910390a16001905090565b600060065442108061443b575060075442115b61444457600080fd5b338383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156144b15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6144ba57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144f357600080fd5b6000811161450057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561455a57600080fd5b6145643386615415565b61456d57600080fd5b6145bf85600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061465485600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461476457600080fd5b600160149054906101000a900460ff1661477d57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5f6f015054fd8937bdf17b86b7684be4ae883d459fb0bec23bc11f75a13b594460405160405180910390a16001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461482657600080fd5b600654421080614837575060075442115b61484057600080fd5b600c60009054906101000a900460ff161561485a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561489457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156148ee57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561494957600080fd5b6000821161495657600080fd5b61495f82612f29565b61496857600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816149fa57fe5b0481526020018681525083600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050808260030181905550614a5f8560035461544790919063ffffffff16565b600381905550614ab785600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885866040518082815260200191505060405180910390a28573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c1657600080fd5b600654421080614c27575060075442115b614c3057600080fd5b600c60009054906101000a900460ff1615614c4a57600080fd5b60008211614c5757600080fd5b6000835190506000809050600080600091505b83821015614d8757868281518110614c7e57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480614d0f57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80614d675750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15614d7157614d7a565b82806001019350505b8180600101925050614c6a565b60008311614d9457600080fd5b6000614da9848861548690919063ffffffff16565b9050614db481612f29565b614dbd57600080fd5b614dd28160035461544790919063ffffffff16565b600381905550600092505b8483101561512057878381518110614df157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480614e8257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80614eda5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15614ee457615113565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b5481614f7657fe5b0481526020018b815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055506150188a600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a35050505b8280600101935050614ddd565b60019550505050505092915050565b60045481565b60055481565b600061519761514983612723565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b9050919050565b60006006544210806151b1575060075442115b6151ba57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156151f75760019050615376565b600061528883600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b60025481565b600b5481565b6000806154218461513b565b90508083111591505092915050565b60008282111561543c57fe5b818303905092915050565b60008082840190508381101561545957fe5b8091505092915050565b600060045461547d8360055461544790919063ffffffff16565b11159050919050565b60008083141561549957600090506154b7565b60008284029050828482816154aa57fe5b04146154b257fe5b809150505b92915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fea265627a7a72315820d7dec4457383368bdf1b8e1f0f59b540a597658cc13b179b36edaa8643a594b664736f6c634300050b0032
Deployed Bytecode Sourcemap
22538:688:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22538:688:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2966:162;;;:::i;:::-;;22584:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;22584:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:307;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5537:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7850:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19112:668;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19112:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2713:241;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2713:241:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22692:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17953:1147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17953:1147:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17953:1147:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17953:1147:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17953:1147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;17953:1147:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17953:1147:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17953:1147:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17953:1147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;17953:1147:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8101:656;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8101:656:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8769:435;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8769:435:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10588:349;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10588:349:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3497:184;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3236:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10343:233;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9747:60;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9747:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15503:810;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15503:810:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21090:1441;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21090:1441:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;21090:1441:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21090:1441:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21090:1441:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;21090:1441:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;21090:1441:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21090:1441:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21090:1441:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;21090:1441:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4321:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4321:159:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6261:569;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6261:569:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13420:1555;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13420:1555:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13420:1555:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13420:1555:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13420:1555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13420:1555:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13420:1555:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13420:1555:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13420:1555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13420:1555:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5084:115;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5084:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9630:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19792:1286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19792:1286:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19792:1286:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19792:1286:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;19792:1286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19792:1286:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16964:977;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16964:977:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16964:977:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16964:977:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16964:977:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16964:977:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2532:169;;;:::i;:::-;;4769:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4769:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23126:87;;;:::i;:::-;;7967:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22641:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;22641:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5301:63;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5301:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9709:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14987:504;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14987:504:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10100:231;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16526:424;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16526:424:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3693:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10949:990;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10949:990:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11951:1457;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11951:1457:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11951:1457:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11951:1457:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11951:1457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11951:1457:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4036:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4082:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7139:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7139:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5856:393;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5856:393:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5377:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5377:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3997:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3962:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9668:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2966:162;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;3039:1;3033:3;:7;3021:9;:19;;;;3075:1;3069:3;:7;3059;:17;;;;3100:16;;;;;;;;;;2966:162::o;22584:46::-;;;;;;;;;;;;;;;;;;;:::o;5537:307::-;5617:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;5659:10;5646:23;;:9;:23;;;5642:40;;;5678:4;5671:11;;;;5642:40;5735:5;5701:8;:20;5710:10;5701:20;;;;;;;;;;;;;;;:31;5722:9;5701:31;;;;;;;;;;;;;;;:39;;;;5785:9;5764:38;;5773:10;5764:38;;;5796:5;5764:38;;;;;;;;;;;;;;;;;;5828:4;5821:11;;2378:1;5537:307;;;;:::o;7850:105::-;7895:7;7930:13;;7923:20;;7850:105;:::o;19112:668::-;19233:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;19207:4;19213:2;19217:5;4935:1;4918:19;;:5;:19;;;;4917:44;;;;;4958:1;4943:17;;:3;:17;;;;4917:44;4909:53;;;;;;4998:3;4989:12;;:5;:12;;;;4981:21;;;;;;5038:1;5029:6;:10;5021:19;;;;;;19274:5;;;;;;;;;;;19266:13;;:4;:13;;;;19258:22;;;;;;19313:5;;;;;;;;;;;19307:11;;:2;:11;;;;19299:20;;;;;;19346:19;19353:4;19359:5;19346:6;:19::i;:::-;19338:28;;;;;;19379:15;19423:4;19409:18;;:10;:18;;;19405:201;;19458:8;:14;19467:4;19458:14;;;;;;;;;;;;;;;:26;19473:10;19458:26;;;;;;;;;;;;;;;;19448:36;;19520:7;19511:5;:16;;19503:25;;;;;;19576:18;19588:5;19576:7;:11;;:18;;;;:::i;:::-;19547:8;:14;19556:4;19547:14;;;;;;;;;;;;;;;:26;19562:10;19547:26;;;;;;;;;;;;;;;:47;;;;19405:201;19634:24;19652:5;19634:7;:13;19642:4;19634:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;19618:7;:13;19626:4;19618:13;;;;;;;;;;;;;;;:40;;;;19683:22;19699:5;19683:7;:11;19691:2;19683:11;;;;;;;;;;;;;;;;:15;;:22;;;;:::i;:::-;19669:7;:11;19677:2;19669:11;;;;;;;;;;;;;;;:36;;;;19736:2;19721:25;;19730:4;19721:25;;;19740:5;19721:25;;;;;;;;;;;;;;;;;;19764:4;19757:11;;;2378:1;;;19112:668;;;;;:::o;2713:241::-;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2804:4;2799:2;:9;:21;;;;;2817:3;2812:2;:8;2799:21;2791:30;;;;;;2852:4;2840:9;:16;;;;2885:2;2875:7;:12;;;;2911:31;2933:4;2939:2;2911:31;;;;;;;;;;;;;;;;;;;;;;;;2713:241;;:::o;22692:37::-;22727:2;22692:37;:::o;17953:1147::-;18060:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;18085:18;18106:9;:16;18085:37;;18166:7;:14;18149:13;:31;18141:40;;;;;;18194:18;18215:1;18194:22;;18227:19;18249:1;18227:23;;18261:6;18278:9;18307:1;18303:5;;18298:241;18314:13;18310:1;:17;18298:241;;;18358:9;18368:1;18358:12;;;;;;;;;;;;;;18354:16;;18406:1;18393:15;;:1;:15;;;:29;;;;18417:5;;;;;;;;;;;18412:10;;:1;:10;;;18393:29;18389:43;;;18424:8;;18389:43;18451:16;;;;;;;18500:27;18516:7;18524:1;18516:10;;;;;;;;;;;;;;18500:11;:15;;:27;;;;:::i;:::-;18486:41;;18298:241;18329:4;;;;;;;18298:241;;;18571:1;18557:11;:15;18549:24;;;;;;18592:31;18599:10;18611:11;18592:6;:31::i;:::-;18584:40;;;;;;18659:36;18683:11;18659:7;:19;18667:10;18659:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;18637:7;:19;18645:10;18637:19;;;;;;;;;;;;;;;:58;;;;18706:14;18740:1;18736:5;;18731:336;18747:13;18743:1;:17;18731:336;;;18790:9;18800:1;18790:12;;;;;;;;;;;;;;18786:16;;18838:1;18825:15;;:1;:15;;;:29;;;;18849:5;;;;;;;;;;;18844:10;;:1;:10;;;18825:29;18821:43;;;18856:8;;18821:43;18892:7;18900:1;18892:10;;;;;;;;;;;;;;18883:19;;18935:1;18925:6;:11;18921:25;;;18938:8;;18921:25;18978:22;18993:6;18978:7;:10;18986:1;18978:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;18965:7;:10;18973:1;18965:10;;;;;;;;;;;;;;;:35;;;;19045:1;19024:31;;19033:10;19024:31;;;19048:6;19024:31;;;;;;;;;;;;;;;;;;18731:336;18762:3;;;;;;;18731:336;;;19084:4;19077:11;;;;;;;;17953:1147;;;;:::o;8101:656::-;8200:4;1942:5;;;;;;;;;;;1928:19;;:10;:19;;;:52;;;;1965:15;;;;;;;;;;;1951:29;;:10;:29;;;1928:52;1920:61;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;3329:13;;;;;;;;;;;3321:22;;;;;;8243:5;;;;;;;;;;;8233:15;;:6;:15;;;;:44;;;;;8262:15;;;;;;;;;;;8252:25;;:6;:25;;;;8233:44;8225:53;;;;;;8305:15;8313:6;8305:7;:15::i;:::-;8297:24;;;;;;8352:15;;;;;;;;;;;8338:29;;:10;:29;;;8334:182;;;8396:25;8414:6;8396:17;:25::i;:::-;8388:34;;;;;;8468:36;8497:6;8468:24;;:28;;:36;;;;:::i;:::-;8441:24;:63;;;;8334:182;8552:25;8570:6;8552:13;;:17;;:25;;;;:::i;:::-;8536:13;:41;;;;8606:27;8626:6;8606:7;:15;8614:6;8606:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8588:7;:15;8596:6;8588:15;;;;;;;;;;;;;;;:45;;;;8656:6;8651:20;;;8664:6;8651:20;;;;;;;;;;;;;;;;;;8708:6;8687:36;;8704:1;8687:36;;;8716:6;8687:36;;;;;;;;;;;;;;;;;;8741:4;8734:11;;8101:656;;;;:::o;8769:435::-;8837:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;3329:13;;;;;;;;;;;3321:22;;;;;;8862:15;8880:27;8896:10;8880:15;:27::i;:::-;8862:45;;8944:7;8934:6;:17;;8926:26;;;;;;8981:25;8999:6;8981:13;;:17;;:25;;;;:::i;:::-;8965:13;:41;;;;9039:31;9063:6;9039:7;:19;9047:10;9039:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;9017:7;:19;9025:10;9017:19;;;;;;;;;;;;;;;:53;;;;9093:10;9088:24;;;9105:6;9088:24;;;;;;;;;;;;;;;;;;9157:1;9128:40;;9137:10;9128:40;;;9161:6;9128:40;;;;;;;;;;;;;;;;;;9188:4;9181:11;;;8769:435;;;:::o;10588:349::-;10695:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;10735:13;10720:12;:28;;;;10785:16;10767:15;:34;;;;10838:5;10820:15;;:23;;;;;;;;;;;;;;;;;;10861:42;10871:13;10886:16;10861:42;;;;;;;;;;;;;;;;;;;;;;;;10921:4;10914:11;;10588:349;;;;:::o;3497:184::-;3558:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;3439:13;;;;;;;;;;;3438:14;3430:23;;;;;;3599:4;3583:13;;:20;;;;;;;;;;;;;;;;;;3627:12;;;;;;;;;;3665:4;3658:11;;3497:184;:::o;3236:32::-;;;;;;;;;;;;;:::o;10343:233::-;10406:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;10439:15;;;;;;;;;;;10431:24;;;;;;10492:5;10474:15;;:23;;;;;;;;;;;;;;;;;;10521:13;;;;;;;;;;10560:4;10553:11;;10343:233;:::o;9747:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15503:810::-;15567:7;15623:1;15603:22;;:8;:22;;;;:43;;;;;15641:5;;;;;;;;;;;15629:17;;:8;:17;;;;15603:43;:74;;;;;15662:15;;;;;;;;;;;15650:27;;:8;:27;;;;15603:74;15595:83;;;;;;15691:38;15732:8;:18;15741:8;15732:18;;;;;;;;;;;;;;;15691:59;;15761:15;15779:1;15761:19;;15791:9;15803:1;15791:13;;15815:6;15824:5;:8;15830:1;15824:8;;;;;;;;;;;:15;;;15815:24;;15855:6;15864:1;15855:10;;15850:427;15872:1;15867;:6;15850:427;;15900:18;;:::i;:::-;15921:5;:8;15927:1;15921:8;;;;;;;;;;;15900:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15959:3;:9;;;15952:3;:16;15948:318;;16007:23;16019:3;:10;;;16007:7;:11;;:23;;;;:::i;:::-;15997:33;;15948:318;;;16083:3;:10;;;16077:3;:16;16073:193;;;16147:6;16133:3;:9;;;16127:3;:15;16126:28;;;;;;16122:32;;16191:55;16233:3;:12;;;16229:1;16216:3;:10;;;:14;:29;;;;;;16203:3;:10;;;:42;16191:7;:11;;:55;;;;:::i;:::-;16181:65;;16073:193;15948:318;15850:427;15875:4;;;;;;;15850:427;;;;16294:7;16287:14;;;;;;15503:810;;;:::o;21090:1441::-;21215:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;21264:1;21248:18;;:4;:18;;;;:35;;;;;21278:5;;;;;;;;;;;21270:13;;:4;:13;;;;21248:35;21240:44;;;;;;21297:18;21318:9;:16;21297:37;;21370:7;:14;21353:13;:31;21345:40;;;;;;21398:18;21419:1;21398:22;;21431:19;21453:1;21431:23;;21465:6;21482:9;21511:1;21507:5;;21502:241;21518:13;21514:1;:17;21502:241;;;21562:9;21572:1;21562:12;;;;;;;;;;;;;;21558:16;;21610:1;21597:15;;:1;:15;;;:29;;;;21621:5;;;;;;;;;;;21616:10;;:1;:10;;;21597:29;21593:43;;;21628:8;;21593:43;21655:16;;;;;;;21704:27;21720:7;21728:1;21720:10;;;;;;;;;;;;;;21704:11;:15;;:27;;;;:::i;:::-;21690:41;;21502:241;21533:4;;;;;;;21502:241;;;21775:1;21761:11;:15;21753:24;;;;;;21796:25;21803:4;21809:11;21796:6;:25::i;:::-;21788:34;;;;;;21835:15;21879:4;21865:18;;:10;:18;;;21861:213;;21914:8;:14;21923:4;21914:14;;;;;;;;;;;;;;;:26;21929:10;21914:26;;;;;;;;;;;;;;;;21904:36;;21982:7;21967:11;:22;;21959:31;;;;;;22038:24;22050:11;22038:7;:11;;:24;;;;:::i;:::-;22009:8;:14;22018:4;22009:14;;;;;;;;;;;;;;;:26;22024:10;22009:26;;;;;;;;;;;;;;;:53;;;;21861:213;22102:30;22120:11;22102:7;:13;22110:4;22102:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;22086:7;:13;22094:4;22086:13;;;;;;;;;;;;;;;:46;;;;22143:14;22177:1;22173:5;;22168:330;22184:13;22180:1;:17;22168:330;;;22227:9;22237:1;22227:12;;;;;;;;;;;;;;22223:16;;22275:1;22262:15;;:1;:15;;;:29;;;;22286:5;;;;;;;;;;;22281:10;;:1;:10;;;22262:29;22258:43;;;22293:8;;22258:43;22329:7;22337:1;22329:10;;;;;;;;;;;;;;22320:19;;22372:1;22362:6;:11;22358:25;;;22375:8;;22358:25;22415:22;22430:6;22415:7;:10;22423:1;22415:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;22402:7;:10;22410:1;22402:10;;;;;;;;;;;;;;;:35;;;;22476:1;22461:25;;22470:4;22461:25;;;22479:6;22461:25;;;;;;;;;;;;;;;;;;22168:330;22199:3;;;;;;;22168:330;;;22515:4;22508:11;;;;;;;;;21090:1441;;;;;:::o;4321:159::-;4376:4;4422:1;4409:9;;:14;4408:60;;;;4458:9;;4429:25;4447:6;4429:13;;:17;;:25;;;;:::i;:::-;:38;;4408:60;4401:67;;4321:159;;;:::o;6261:569::-;6350:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;6392:10;6379:23;;:9;:23;;;6375:40;;;6411:4;6404:11;;;;6375:40;6434:13;6450:8;:20;6459:10;6450:20;;;;;;;;;;;;;;;:31;6471:9;6450:31;;;;;;;;;;;;;;;;6434:47;;6512:5;6504;:13;6500:169;;;6554:1;6546:9;;6500:169;;;6633:16;6643:5;6633;:9;;:16;;;;:::i;:::-;6625:24;;6500:169;6721:5;6687:8;:20;6696:10;6687:20;;;;;;;;;;;;;;;:31;6708:9;6687:31;;;;;;;;;;;;;;;:39;;;;6771:9;6750:38;;6759:10;6750:38;;;6782:5;6750:38;;;;;;;;;;;;;;;;;;6814:4;6807:11;;;2378:1;6261:569;;;;:::o;13420:1555::-;13545:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;9870:15;;;;;;;;;;;9869:16;9861:25;;;;;;13570:20;13593:9;:16;13570:39;;13655:7;:14;13636:15;:33;13628:42;;;;;;13683:19;13705:1;13683:23;;13717:19;13739:1;13717:23;;13751:6;13768:9;13797:1;13793:5;;13788:244;13804:15;13800:1;:19;13788:244;;;13850:9;13860:1;13850:12;;;;;;;;;;;;;;13846:16;;13898:1;13885:15;;:1;:15;;;:29;;;;13909:5;;;;;;;;;;;13904:10;;:1;:10;;;13885:29;13881:43;;;13916:8;;13881:43;13943:17;;;;;;;13993:27;14009:7;14017:1;14009:10;;;;;;;;;;;;;;13993:11;:15;;:27;;;;:::i;:::-;13979:41;;13788:244;13821:4;;;;;;;13788:244;;;14064:1;14050:11;:15;14042:24;;;;;;14085:20;14093:11;14085:7;:20::i;:::-;14077:29;;;;;;14119:14;14160:30;14178:11;14160:13;;:17;;:30;;;;:::i;:::-;14144:13;:46;;;;14210:1;14206:5;;14201:739;14217:15;14213:1;:19;14201:739;;;14263:9;14273:1;14263:12;;;;;;;;;;;;;;14259:16;;14311:1;14298:15;;:1;:15;;;:29;;;;14322:5;;;;;;;;;;;14317:10;;:1;:10;;;14298:29;14294:43;;;14329:8;;14294:43;14365:7;14373:1;14365:10;;;;;;;;;;;;;;14356:19;;14407:22;14422:6;14407:7;:10;14415:1;14407:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;14394:7;:10;14402:1;14394:10;;;;;;;;;;;;;;;:35;;;;14458:1;14453:15;;;14461:6;14453:15;;;;;;;;;;;;;;;;;;14513:1;14492:31;;14509:1;14492:31;;;14516:6;14492:31;;;;;;;;;;;;;;;;;;14536:38;14577:8;:11;14586:1;14577:11;;;;;;;;;;;;;;;14536:52;;14599:20;14622:5;:8;14628:1;14622:8;;;;;;;;;;;14599:31;;14641:10;14668:1;14654:4;:11;;;:15;14641:28;;14695:203;;;;;;;;14729:12;;14695:203;;;;14783:15;;14768:12;;:30;14695:203;;;;14846:6;14827:15;;:26;;;;;;14695:203;;;;14880:6;14695:203;;;14680:5;:12;14686:5;14680:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14923:5;14909:4;:11;;:19;;;;14201:739;;;;14234:4;;;;;;;14201:739;;;14959:4;14952:11;;;;;;;;13420:1555;;;;:::o;5084:115::-;5139:7;5174;:13;5182:4;5174:13;;;;;;;;;;;;;;;;5167:20;;5084:115;;;:::o;9630:27::-;;;;:::o;19792:1286::-;19907:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;19956:1;19940:18;;:4;:18;;;;:35;;;;;19970:5;;;;;;;;;;;19962:13;;:4;:13;;;;19940:35;19932:44;;;;;;20012:1;20003:6;:10;19995:19;;;;;;20027:18;20048:9;:16;20027:37;;20075:18;20096:1;20075:22;;20108:6;20125:9;20154:1;20150:5;;20145:181;20161:13;20157:1;:17;20145:181;;;20205:9;20215:1;20205:12;;;;;;;;;;;;;;20201:16;;20253:1;20240:15;;:1;:15;;;:29;;;;20264:5;;;;;;;;;;;20259:10;;:1;:10;;;20240:29;20236:43;;;20271:8;;20236:43;20298:16;;;;;;;20145:181;20176:4;;;;;;;20145:181;;;20360:1;20344:13;:17;20336:26;;;;;;20375:19;20397:34;20416:13;20397:6;:10;;:34;;;;:::i;:::-;20375:56;;20450:25;20457:4;20463:11;20450:6;:25::i;:::-;20442:34;;;;;;20489:15;20533:4;20519:18;;:10;:18;;;20515:213;;20568:8;:14;20577:4;20568:14;;;;;;;;;;;;;;;:26;20583:10;20568:26;;;;;;;;;;;;;;;;20558:36;;20636:7;20621:11;:22;;20613:31;;;;;;20692:24;20704:11;20692:7;:11;;:24;;;;:::i;:::-;20663:8;:14;20672:4;20663:14;;;;;;;;;;;;;;;:26;20678:10;20663:26;;;;;;;;;;;;;;;:53;;;;20515:213;20756:30;20774:11;20756:7;:13;20764:4;20756:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;20740:7;:13;20748:4;20740:13;;;;;;;;;;;;;;;:46;;;;20806:1;20802:5;;20797:248;20813:13;20809:1;:17;20797:248;;;20856:9;20866:1;20856:12;;;;;;;;;;;;;;20852:16;;20904:1;20891:15;;:1;:15;;;:29;;;;20915:5;;;;;;;;;;;20910:10;;:1;:10;;;20891:29;20887:43;;;20922:8;;20887:43;20962:22;20977:6;20962:7;:10;20970:1;20962:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;20949:7;:10;20957:1;20949:10;;;;;;;;;;;;;;;:35;;;;21023:1;21008:25;;21017:4;21008:25;;;21026:6;21008:25;;;;;;;;;;;;;;;;;;20797:248;20828:3;;;;;;;20797:248;;;21062:4;21055:11;;;;;;;;19792:1286;;;;;:::o;16964:977::-;17060:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;17102:1;17093:6;:10;17085:19;;;;;;17117:18;17138:9;:16;17117:37;;17165:18;17186:1;17165:22;;17198:6;17215:9;17244:1;17240:5;;17235:181;17251:13;17247:1;:17;17235:181;;;17295:9;17305:1;17295:12;;;;;;;;;;;;;;17291:16;;17343:1;17330:15;;:1;:15;;;:29;;;;17354:5;;;;;;;;;;;17349:10;;:1;:10;;;17330:29;17326:43;;;17361:8;;17326:43;17388:16;;;;;;;17235:181;17266:4;;;;;;;17235:181;;;17450:1;17434:13;:17;17426:26;;;;;;17465:19;17487:34;17506:13;17487:6;:10;;:34;;;;:::i;:::-;17465:56;;17540:31;17547:10;17559:11;17540:6;:31::i;:::-;17532:40;;;;;;17607:36;17631:11;17607:7;:19;17615:10;17607:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;17585:7;:19;17593:10;17585:19;;;;;;;;;;;;;;;:58;;;;17663:1;17659:5;;17654:254;17670:13;17666:1;:17;17654:254;;;17713:9;17723:1;17713:12;;;;;;;;;;;;;;17709:16;;17761:1;17748:15;;:1;:15;;;:29;;;;17772:5;;;;;;;;;;;17767:10;;:1;:10;;;17748:29;17744:43;;;17779:8;;17744:43;17819:22;17834:6;17819:7;:10;17827:1;17819:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;17806:7;:10;17814:1;17806:10;;;;;;;;;;;;;;;:35;;;;17886:1;17865:31;;17874:10;17865:31;;;17889:6;17865:31;;;;;;;;;;;;;;;;;;17654:254;17685:3;;;;;;;17654:254;;;17925:4;17918:11;;;;;;;16964:977;;;;:::o;2532:169::-;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2604:1;2598:3;:7;2586:9;:19;;;;2640:10;2634:3;:16;2624:7;:26;;;;2674:15;;;;;;;;;;2532:169::o;4769:42::-;;;;;;;;;;;;;;;;;:::o;23126:87::-;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;23195:5;;;;;;;;;;;23182:19;;;7967:122;8018:7;8053:24;;8046:31;;7967:122;:::o;22641:40::-;;;;;;;;;;;;;;;;;;;:::o;5301:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9709:27::-;;;;;;;;;;;;;:::o;14987:504::-;15053:7;15109:1;15089:22;;:8;:22;;;;:43;;;;;15127:5;;;;;;;;;;;15115:17;;:8;:17;;;;15089:43;:74;;;;;15148:15;;;;;;;;;;;15136:27;;:8;:27;;;;15089:74;15081:83;;;;;;15177:38;15218:8;:18;15227:8;15218:18;;;;;;;;;;;;;;;15177:59;;15247:15;15265:1;15247:19;;15277:6;15286:5;:8;15292:1;15286:8;;;;;;;;;;;:15;;;15277:24;;15317:6;15326:1;15317:10;;15312:143;15334:1;15329;:6;15312:143;;15362:18;;:::i;:::-;15383:5;:8;15389:1;15383:8;;;;;;;;;;;15362:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15420:23;15432:3;:10;;;15420:7;:11;;:23;;;;:::i;:::-;15410:33;;15312:143;15337:4;;;;;;;15312:143;;;;15472:7;15465:14;;;;;14987:504;;;:::o;10100:231::-;10162:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;10196:15;;;;;;;;;;;10195:16;10187:25;;;;;;10249:4;10231:15;;:22;;;;;;;;;;;;;;;;;;10277:12;;;;;;;;;;10315:4;10308:11;;10100:231;:::o;16526:424::-;16643:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;16607:10;16619:6;16627:5;4935:1;4918:19;;:5;:19;;;;4917:44;;;;;4958:1;4943:17;;:3;:17;;;;4917:44;4909:53;;;;;;4998:3;4989:12;;:5;:12;;;;4981:21;;;;;;5038:1;5029:6;:10;5021:19;;;;;;16686:5;;;;;;;;;;;16676:15;;:6;:15;;;;16668:24;;;;;;16719:25;16726:10;16738:5;16719:6;:25::i;:::-;16711:34;;;;;;16780:30;16804:5;16780:7;:19;16788:10;16780:19;;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;16758:7;:19;16766:10;16758:19;;;;;;;;;;;;;;;:52;;;;16839:26;16859:5;16839:7;:15;16847:6;16839:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;16821:7;:15;16829:6;16821:15;;;;;;;;;;;;;;;:44;;;;16902:6;16881:35;;16890:10;16881:35;;;16910:5;16881:35;;;;;;;;;;;;;;;;;;16934:4;16927:11;;2378:1;;;16526:424;;;;:::o;3693:180::-;3750:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;3329:13;;;;;;;;;;;3321:22;;;;;;3791:5;3775:13;;:21;;;;;;;;;;;;;;;;;;3820:11;;;;;;;;;;3857:4;3850:11;;3693:180;:::o;10949:990::-;11048:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;9870:15;;;;;;;;;;;9869:16;9861:25;;;;;;11101:1;11081:22;;:8;:22;;;;11073:31;;;;;;11143:5;;;;;;;;;;;11131:17;;:8;:17;;;;11123:26;;;;;;11188:15;;;;;;;;;;;11176:27;;:8;:27;;;;11168:36;;;;;;11240:1;11231:6;:10;11223:19;;;;;;11269:15;11277:6;11269:7;:15::i;:::-;11261:24;;;;;;11298:38;11339:8;:18;11348:8;11339:18;;;;;;;;;;;;;;;11298:59;;11368:20;11391:5;:8;11397:1;11391:8;;;;;;;;;;;11368:31;;11410:10;11437:1;11423:4;:11;;;:15;11410:28;;11464:203;;;;;;;;11498:12;;11464:203;;;;11552:15;;11537:12;;:30;11464:203;;;;11615:6;11596:15;;:26;;;;;;11464:203;;;;11649:6;11464:203;;;11449:5;:12;11455:5;11449:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11692:5;11678:4;:11;;:19;;;;11726:25;11744:6;11726:13;;:17;;:25;;;;:::i;:::-;11710:13;:41;;;;11782:29;11804:6;11782:7;:17;11790:8;11782:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11762:7;:17;11770:8;11762:17;;;;;;;;;;;;;;;:49;;;;11832:8;11827:22;;;11842:6;11827:22;;;;;;;;;;;;;;;;;;11886:8;11865:38;;11882:1;11865:38;;;11896:6;11865:38;;;;;;;;;;;;;;;;;;11923:4;11916:11;;;;;10949:990;;;;:::o;11951:1457::-;12065:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;9870:15;;;;;;;;;;;9869:16;9861:25;;;;;;12107:1;12098:6;:10;12090:19;;;;;;12122:20;12145:9;:16;12122:39;;12172:19;12194:1;12172:23;;12206:6;12223:9;12252:1;12248:5;;12243:208;12259:15;12255:1;:19;12243:208;;;12305:9;12315:1;12305:12;;;;;;;;;;;;;;12301:16;;12353:1;12340:15;;:1;:15;;;:29;;;;12364:5;;;;;;;;;;;12359:10;;:1;:10;;;12340:29;:53;;;;12378:15;;;;;;;;;;;12373:20;;:1;:20;;;12340:53;12336:67;;;12395:8;;12336:67;12422:17;;;;;;;12243:208;12276:4;;;;;;;12243:208;;;12486:1;12469:14;:18;12461:27;;;;;;12501:19;12523:35;12542:14;12523:6;:10;;:35;;;;:::i;:::-;12501:57;;12577:20;12585:11;12577:7;:20::i;:::-;12569:29;;;;;;12627:30;12645:11;12627:13;;:17;;:30;;;;:::i;:::-;12611:13;:46;;;;12679:1;12675:5;;12670:703;12686:15;12682:1;:19;12670:703;;;12732:9;12742:1;12732:12;;;;;;;;;;;;;;12728:16;;12780:1;12767:15;;:1;:15;;;:29;;;;12791:5;;;;;;;;;;;12786:10;;:1;:10;;;12767:29;:53;;;;12805:15;;;;;;;;;;;12800:20;;:1;:20;;;12767:53;12763:67;;;12822:8;;12763:67;12843:38;12884:8;:11;12893:1;12884:11;;;;;;;;;;;;;;;12843:52;;12906:20;12929:5;:8;12935:1;12929:8;;;;;;;;;;;12906:31;;12948:10;12975:1;12961:4;:11;;;:15;12948:28;;13002:203;;;;;;;;13036:12;;13002:203;;;;13090:15;;13075:12;;:30;13002:203;;;;13153:6;13134:15;;:26;;;;;;13002:203;;;;13187:6;13002:203;;;12987:5;:12;12993:5;12987:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13230:5;13216:4;:11;;:19;;;;13261:22;13276:6;13261:7;:10;13269:1;13261:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;13248:7;:10;13256:1;13248:10;;;;;;;;;;;;;;;:35;;;;13304:1;13299:15;;;13307:6;13299:15;;;;;;;;;;;;;;;;;;13351:1;13330:31;;13347:1;13330:31;;;13354:6;13330:31;;;;;;;;;;;;;;;;;;12670:703;;;;12703:4;;;;;;;12670:703;;;13392:4;13385:11;;;;;;;11951:1457;;;;:::o;4036:35::-;;;;:::o;4082:39::-;;;;:::o;7139:147::-;7200:7;7235:39;7253:20;7268:4;7253:14;:20::i;:::-;7235:7;:13;7243:4;7235:13;;;;;;;;;;;;;;;;:17;;:39;;;;:::i;:::-;7228:46;;7139:147;;;:::o;5856:393::-;5945:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;5987:10;5974:23;;:9;:23;;;5970:40;;;6006:4;5999:11;;;;5970:40;6029:13;6045:42;6081:5;6045:8;:20;6054:10;6045:20;;;;;;;;;;;;;;;:31;6066:9;6045:31;;;;;;;;;;;;;;;;:35;;:42;;;;:::i;:::-;6029:58;;6140:5;6106:8;:20;6115:10;6106:20;;;;;;;;;;;;;;;:31;6127:9;6106:31;;;;;;;;;;;;;;;:39;;;;6190:9;6169:38;;6178:10;6169:38;;;6201:5;6169:38;;;;;;;;;;;;;;;;;;6233:4;6226:11;;;2378:1;5856:393;;;;:::o;5377:148::-;5452:7;5487:8;:15;5496:5;5487:15;;;;;;;;;;;;;;;:26;5503:9;5487:26;;;;;;;;;;;;;;;;5480:33;;5377:148;;;;:::o;3997:28::-;;;;:::o;3962:24::-;;;;:::o;9668:30::-;;;;:::o;16325:189::-;16395:4;16420:15;16438:21;16454:4;16438:15;:21::i;:::-;16420:39;;16495:7;16485:6;:17;;16478:24;;;16325:189;;;;:::o;455:144::-;514:7;554:1;549;:6;;542:14;;;;586:1;582;:5;575:12;;455:144;;;;:::o;611:176::-;670:7;698:9;714:1;710;:5;698:17;;746:1;741;:6;;734:14;;;;774:1;767:8;;;611:176;;;;:::o;4500:170::-;4565:4;4637:20;;4597:36;4626:6;4597:24;;:28;;:36;;;;:::i;:::-;:60;;4590:68;;4500:170;;;:::o;55:265::-;114:7;151:1;146;:6;142:67;;;188:1;181:8;;;;142:67;227:9;243:1;239;:5;227:17;;279:1;274;270;:5;;;;;;:10;263:18;;;;307:1;300:8;;;55:265;;;;;:::o;22538:688::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://d7dec4457383368bdf1b8e1f0f59b540a597658cc13b179b36edaa8643a594b6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.