Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
DeFi
Overview
Max Total Supply
289,271.573225736963565723 GEAR
Holders
73 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,965.176956279501497707 GEARValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GearProtocolv2
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-14 */ /* * An Autonomous DeFi Governance System * * Official Website: * https://www.GearProtocol.com */ pragma solidity ^0.4.25; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes data) external; } 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) { uint256 c = a / b; return c; } 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; } function ceil(uint256 a, uint256 m) internal pure returns (uint256) { uint256 c = add(a,m); uint256 d = sub(c,1); return mul(div(d,m),m); } } contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } function name() public view returns(string memory) { return _name; } function symbol() public view returns(string memory) { return _symbol; } function decimals() public view returns(uint8) { return _decimals; } } contract GearProtocolv2 is ERC20Detailed { using SafeMath for uint256; mapping (address => uint256) private balances; mapping (address => mapping (address => uint256)) private allowed; string constant tokenName = "GearProtocol v2"; string constant tokenSymbol = "GEAR"; uint8 constant tokenDecimals = 18; uint256 _totalSupply = 0; address public contractOwner; uint256 public fullUnitsFarmed_total = 0; mapping (address => bool) public isFarming; uint256 _totalRewardsPerUnit = 0; mapping (address => uint256) private _totalRewardsPerUnit_positions; mapping (address => uint256) private _savedRewards; //these addresses won't be affected by network fee,ie liquidity pools mapping(address => bool) public whitelistFrom; mapping(address => bool) public whitelistTo; event WhitelistFrom(address _addr, bool _whitelisted); event WhitelistTo(address _addr, bool _whitelisted); constructor() public payable ERC20Detailed(tokenName, tokenSymbol, tokenDecimals) { contractOwner = msg.sender; _supply(msg.sender, 1000000*(10**uint256(tokenDecimals))); } modifier onlyOwner() { require(msg.sender == contractOwner, "only owner"); _; } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address owner) public view returns (uint256) { return balances[owner]; } function fullUnitsFarmed(address owner) external view returns (uint256) { return isFarming[owner] ? toFullUnits(balances[owner]) : 0; } function toFullUnits(uint256 valueWithDecimals) public pure returns (uint256) { return valueWithDecimals.div(10**uint256(tokenDecimals)); } function allowance(address owner, address spender) public view returns (uint256) { return allowed[owner][spender]; } function transfer(address to, uint256 value) public returns (bool) { _executeTransfer(msg.sender, to, value); return true; } function multiTransfer(address[] memory receivers, uint256[] memory values) public { require(receivers.length == values.length); for(uint256 i = 0; i < receivers.length; i++) _executeTransfer(msg.sender, receivers[i], values[i]); } function transferFrom(address from, address to, uint256 value) public returns (bool) { require(value <= allowed[from][msg.sender]); allowed[from][msg.sender] = allowed[from][msg.sender].sub(value); _executeTransfer(from, to, value); return true; } function approve(address spender, uint256 value) public returns (bool) { require(spender != address(0)); allowed[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function approveAndCall(address spender, uint256 tokens, bytes data) external returns (bool) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { require(spender != address(0)); allowed[msg.sender][spender] = (allowed[msg.sender][spender].add(addedValue)); emit Approval(msg.sender, spender, allowed[msg.sender][spender]); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { require(spender != address(0)); allowed[msg.sender][spender] = (allowed[msg.sender][spender].sub(subtractedValue)); emit Approval(msg.sender, spender, allowed[msg.sender][spender]); return true; } function _supply(address account, uint256 value) internal onlyOwner { require(value != 0); uint256 initalBalance = balances[account]; uint256 newBalance = initalBalance.add(value); balances[account] = newBalance; _totalSupply = _totalSupply.add(value); emit Transfer(address(0), account, value); } function burn(uint256 value) external { _burn(msg.sender, value); } function _burn(address account, uint256 value) internal { require(value != 0); require(value <= balances[account]); uint256 initalBalance = balances[account]; uint256 newBalance = initalBalance.sub(value); balances[account] = newBalance; _totalSupply = _totalSupply.sub(value); //update full units farmed if(isFarming[account]) { uint256 fus_total = fullUnitsFarmed_total; fus_total = fus_total.sub(toFullUnits(initalBalance)); fus_total = fus_total.add(toFullUnits(newBalance)); fullUnitsFarmed_total = fus_total; } emit Transfer(account, address(0), value); } /* * transfer incurring a feee of 3% * the receiver gets 97% of the sent value * 3% is distributed to GEAR farming pool */ function _executeTransfer(address from, address to, uint256 value) private { require(value <= balances[from]); require(to != address(0) && to != from); require(to != address(this)); //Update sender and receivers rewards - changing balances will change rewards shares updateRewardsFor(from); updateRewardsFor(to); uint256 threePercent = 0; if(!whitelistFrom[from] && !whitelistTo[to]) { threePercent = value.mul(3).div(100); //set a minimum rate to prevent no-fee-txs due to precision loss if(threePercent == 0 && value > 0) threePercent = 1; } uint256 initalBalance_from = balances[from]; balances[from] = initalBalance_from.sub(value); value = value.sub(threePercent); uint256 initalBalance_to = balances[to]; balances[to] = initalBalance_to.add(value); emit Transfer(from, to, value); //update full units farmed uint256 fus_total = fullUnitsFarmed_total; if(isFarming[from]) { fus_total = fus_total.sub(toFullUnits(initalBalance_from)); fus_total = fus_total.add(toFullUnits(balances[from])); } if(isFarming[to]) { fus_total = fus_total.sub(toFullUnits(initalBalance_to)); fus_total = fus_total.add(toFullUnits(balances[to])); } fullUnitsFarmed_total = fus_total; if(fus_total > 0) { uint256 farmingRewards = threePercent; //split up to rewards per unit in farm uint256 rewardsPerUnit = farmingRewards.div(fus_total); //apply reward _totalRewardsPerUnit = _totalRewardsPerUnit.add(rewardsPerUnit); balances[address(this)] = balances[address(this)].add(farmingRewards); if(farmingRewards > 0) emit Transfer(msg.sender, address(this), farmingRewards); } } //catch up with the current total harvest rewards. This needs to be done before an addresses balance is changed function updateRewardsFor(address farmer) private { _savedRewards[farmer] = viewHarvest(farmer); _totalRewardsPerUnit_positions[farmer] = _totalRewardsPerUnit; } //get all harvest rewards that have not been claimed yet function viewHarvest(address farmer) public view returns (uint256) { if(!isFarming[farmer]) return _savedRewards[farmer]; uint256 newRewardsPerUnit = _totalRewardsPerUnit.sub(_totalRewardsPerUnit_positions[farmer]); uint256 newRewards = newRewardsPerUnit.mul(toFullUnits(balances[farmer])); return _savedRewards[farmer].add(newRewards); } //pay out unclaimed harvest rewards function harvest() public { updateRewardsFor(msg.sender); uint256 rewards = _savedRewards[msg.sender]; require(rewards > 0 && rewards <= balances[address(this)]); _savedRewards[msg.sender] = 0; uint256 onePercent = 0; uint256 reward = 0; onePercent = rewards.mul(1).div(100); //set a minimum rate to prevent no harvest-fee-txs due to precision loss if(onePercent == 0 && rewards > 0) { onePercent = 1; } reward = rewards.sub(onePercent); uint256 initalBalance_farmer = balances[msg.sender]; uint256 newBalance_farmer = initalBalance_farmer.add(reward); //update full units farmed if(isFarming[msg.sender]) { uint256 fus_total = fullUnitsFarmed_total; fus_total = fus_total.sub(toFullUnits(initalBalance_farmer)); fus_total = fus_total.add(toFullUnits(newBalance_farmer)); fullUnitsFarmed_total = fus_total; } //transfer balances[address(this)] = balances[address(this)].sub(rewards); balances[msg.sender] = newBalance_farmer; balances[contractOwner] = balances[contractOwner].add(onePercent); emit Transfer(address(this), msg.sender, rewards); emit Transfer(address(this), contractOwner, onePercent); } function enableFarming() public { _enableFarming(msg.sender); } function disableFarming() public { _disableFarming(msg.sender); } function enableFarmingFor(address farmer) public onlyOwner { _enableFarming(farmer); } function disableFarmingFor(address farmer) public onlyOwner { _disableFarming(farmer); } //enable farming for target address function _enableFarming(address farmer) private { require(!isFarming[farmer]); updateRewardsFor(farmer); isFarming[farmer] = true; fullUnitsFarmed_total = fullUnitsFarmed_total.add(toFullUnits(balances[farmer])); } //disable farming for target address function _disableFarming(address farmer) private { require(isFarming[farmer]); updateRewardsFor(farmer); isFarming[farmer] = false; fullUnitsFarmed_total = fullUnitsFarmed_total.sub(toFullUnits(balances[farmer])); } //withdraw tokens that were sent to this contract by accident function withdrawERC20Tokens(address tokenAddress, uint256 amount) public onlyOwner { require(tokenAddress != address(this)); IERC20(tokenAddress).transfer(msg.sender, amount); } //no fees if receiver is whitelisted function setWhitelistedTo(address _addr, bool _whitelisted) external onlyOwner { emit WhitelistTo(_addr, _whitelisted); whitelistTo[_addr] = _whitelisted; } //no fees if sender is whitelisted function setWhitelistedFrom(address _addr, bool _whitelisted) external onlyOwner { emit WhitelistFrom(_addr, _whitelisted); whitelistFrom[_addr] = _whitelisted; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"fullUnitsFarmed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistTo","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receivers","type":"address[]"},{"name":"values","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableFarming","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"harvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"farmer","type":"address"}],"name":"disableFarmingFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fullUnitsFarmed_total","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableFarming","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isFarming","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"farmer","type":"address"}],"name":"enableFarmingFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_whitelisted","type":"bool"}],"name":"setWhitelistedTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"valueWithDecimals","type":"uint256"}],"name":"toFullUnits","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"withdrawERC20Tokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"farmer","type":"address"}],"name":"viewHarvest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_whitelisted","type":"bool"}],"name":"setWhitelistedFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_addr","type":"address"},{"indexed":false,"name":"_whitelisted","type":"bool"}],"name":"WhitelistFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_addr","type":"address"},{"indexed":false,"name":"_whitelisted","type":"bool"}],"name":"WhitelistTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040526000600555600060075560006009556040805190810160405280600f81526020017f4765617250726f746f636f6c20763200000000000000000000000000000000008152506040805190810160405280600481526020017f474541520000000000000000000000000000000000000000000000000000000081525060128260009080519060200190620000999291906200037a565b508160019080519060200190620000b29291906200037a565b5080600260006101000a81548160ff021916908360ff16021790555050505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200013933601260ff16600a0a620f4240026200013f640100000000026401000000009004565b62000429565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000208576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600083141515156200021957600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506200027e83836200035b6401000000000262002ced179091906401000000009004565b905080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002e9836005546200035b6401000000000262002ced179091906401000000009004565b6005819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b60008082840190508381101515156200037057fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003bd57805160ff1916838001178555620003ee565b82800160010185558215620003ee579182015b82811115620003ed578251825591602001919060010190620003d0565b5b509050620003fd919062000401565b5090565b6200042691905b808211156200042257600081600090555060010162000408565b5090565b90565b61327d80620004396000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610185578063095ea7b3146102155780630a5a81401461027a57806316b627d1146102d157806318160ddd1461032c5780631e89d5451461035757806323b872dd14610400578063313ce5671461048557806339509351146104b65780633d43d2c51461051b57806342966c681461053257806343684b211461055f5780634641257d146105ba5780634abde8a3146105d157806358c7eca51461061457806370a082311461063f5780637723c5f1146106965780637e6d87d8146106ad57806395d89b4114610708578063a3ecc3b114610798578063a457c2d7146107db578063a486309d14610840578063a9059cbb1461088f578063b1369e6a146108f4578063cae9ca5114610935578063ce606ee0146109b2578063dd62ed3e14610a09578063e49cb2fb14610a80578063ee03a55814610acd578063ff12bbf414610b24575b600080fd5b34801561019157600080fd5b5061019a610b73565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022157600080fd5b50610260600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c15565b604051808215151515815260200191505060405180910390f35b34801561028657600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d42565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b50610312600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dec565b604051808215151515815260200191505060405180910390f35b34801561033857600080fd5b50610341610e0c565b6040518082815260200191505060405180910390f35b34801561036357600080fd5b506103fe6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610e16565b005b34801561040c57600080fd5b5061046b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e81565b604051808215151515815260200191505060405180910390f35b34801561049157600080fd5b5061049a611033565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c257600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061104a565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b50610530611281565b005b34801561053e57600080fd5b5061055d6004803603810190808035906020019092919050505061128c565b005b34801561056b57600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611299565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105cf6112b9565b005b3480156105dd57600080fd5b50610612600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a2565b005b34801561062057600080fd5b50610629611873565b6040518082815260200191505060405180910390f35b34801561064b57600080fd5b50610680600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611879565b6040518082815260200191505060405180910390f35b3480156106a257600080fd5b506106ab6118c2565b005b3480156106b957600080fd5b506106ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cd565b604051808215151515815260200191505060405180910390f35b34801561071457600080fd5b5061071d6118ed565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561075d578082015181840152602081019050610742565b50505050905090810190601f16801561078a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107a457600080fd5b506107d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061198f565b005b3480156107e757600080fd5b50610826600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a60565b604051808215151515815260200191505060405180910390f35b34801561084c57600080fd5b5061088d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611c97565b005b34801561089b57600080fd5b506108da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e26565b604051808215151515815260200191505060405180910390f35b34801561090057600080fd5b5061091f60048036038101908080359060200190929190505050611e3d565b6040518082815260200191505060405180910390f35b34801561094157600080fd5b50610998600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050611e60565b604051808215151515815260200191505060405180910390f35b3480156109be57600080fd5b506109c7612065565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a1557600080fd5b50610a6a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061208b565b6040518082815260200191505060405180910390f35b348015610a8c57600080fd5b50610acb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612112565b005b348015610ad957600080fd5b50610b0e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122f5565b6040518082815260200191505060405180910390f35b348015610b3057600080fd5b50610b71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506124a2565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c0b5780601f10610be057610100808354040283529160200191610c0b565b820191906000526020600020905b815481529060010190602001808311610bee57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c5257600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d9c576000610de5565b610de4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b5b9050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600554905090565b600081518351141515610e2857600080fd5b600090505b8251811015610e7c57610e6f338483815181101515610e4857fe5b906020019060200201518484815181101515610e6057fe5b90602001906020020151612631565b8080600101915050610e2d565b505050565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610f0e57600080fd5b610f9d82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd490919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611028848484612631565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561108757600080fd5b61111682600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b61128a33612d0b565b565b6112963382612e29565b50565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000806000806000806112cb33613047565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054955060008611801561135c5750600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b151561136757600080fd5b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060009450600093506113db60646113cd6001896130dc90919063ffffffff16565b61311790919063ffffffff16565b94506000851480156113ed5750600086115b156113f757600194505b61140a8587612cd490919063ffffffff16565b9350600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492506114618484612ced90919063ffffffff16565b9150600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114fc5760075490506114d56114c684611e3d565b82612cd490919063ffffffff16565b90506114f26114e383611e3d565b82612ced90919063ffffffff16565b9050806007819055505b61154e86600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd490919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116498560036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b60036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61187081612d0b565b50565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118cb33613132565b565b60086020528060005260406000206000915054906101000a900460ff1681565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119855780601f1061195a57610100808354040283529160200191611985565b820191906000526020600020905b81548152906001019060200180831161196857829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611a5d81613132565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a9d57600080fd5b611b2c82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd490919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f88cf9b943f64811022537ee9f0141770d85e612eae3a3a39241abe5ca9f113828282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611e33338484612631565b6001905092915050565b6000611e59601260ff16600a0a8361311790919063ffffffff16565b9050919050565b600083600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509650505050505050600060405180830381600087803b15801561204157600080fd5b505af1158015612055573d6000803e3d6000fd5b5050505060019050949350505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561221257600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156122b557600080fd5b505af11580156122c9573d6000803e3d6000fd5b505050506040513d60208110156122df57600080fd5b8101908080519060200190929190505050505050565b6000806000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561239457600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925061249b565b6123e8600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954612cd490919063ffffffff16565b9150612444612435600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b836130dc90919063ffffffff16565b905061249881600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b92505b5050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fc3d26c130d120a4bb874de56c8b5fb727ad2cfc3551ca49cd42ef248e893b69a8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600080600080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054871115151561268857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156126f157508873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15156126fc57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561273757600080fd5b61274089613047565b61274988613047565b60009550600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127f15750600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561283a5761281d606461280f60038a6130dc90919063ffffffff16565b61311790919063ffffffff16565b955060008614801561282f5750600087115b1561283957600195505b5b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054945061288f8786612cd490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e58688612cd490919063ffffffff16565b9650600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935061293c8785612ced90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a36007549250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ab557612a56612a4786611e3d565b84612cd490919063ffffffff16565b9250612ab2612aa3600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b84612ced90919063ffffffff16565b92505b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b8157612b22612b1385611e3d565b84612cd490919063ffffffff16565b9250612b7e612b6f600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b84612ced90919063ffffffff16565b92505b826007819055506000831115612cc957859150612ba7838361311790919063ffffffff16565b9050612bbe81600954612ced90919063ffffffff16565b600981905550612c1682600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612cc8573073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5b505050505050505050565b6000828211151515612ce257fe5b818303905092915050565b6000808284019050838110151515612d0157fe5b8091505092915050565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d6357600080fd5b612d6c81613047565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612e20612e0f600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b600754612cd490919063ffffffff16565b60078190555050565b6000806000808414151515612e3d57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411151515612e8b57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250612ee08484612cd490919063ffffffff16565b915081600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3b84600554612cd490919063ffffffff16565b600581905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fda576007549050612fb3612fa484611e3d565b82612cd490919063ffffffff16565b9050612fd0612fc183611e3d565b82612ced90919063ffffffff16565b9050806007819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b613050816122f5565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60008060008414156130f15760009150613110565b828402905082848281151561310257fe5b0414151561310c57fe5b8091505b5092915050565b600080828481151561312557fe5b0490508091505092915050565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561318b57600080fd5b61319481613047565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613248613237600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b600754612ced90919063ffffffff16565b600781905550505600a165627a7a72305820044ccb8a41be87448e769ec2222a37a343e09e0f1444a02b8527919305dfcb0b0029
Deployed Bytecode
0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610185578063095ea7b3146102155780630a5a81401461027a57806316b627d1146102d157806318160ddd1461032c5780631e89d5451461035757806323b872dd14610400578063313ce5671461048557806339509351146104b65780633d43d2c51461051b57806342966c681461053257806343684b211461055f5780634641257d146105ba5780634abde8a3146105d157806358c7eca51461061457806370a082311461063f5780637723c5f1146106965780637e6d87d8146106ad57806395d89b4114610708578063a3ecc3b114610798578063a457c2d7146107db578063a486309d14610840578063a9059cbb1461088f578063b1369e6a146108f4578063cae9ca5114610935578063ce606ee0146109b2578063dd62ed3e14610a09578063e49cb2fb14610a80578063ee03a55814610acd578063ff12bbf414610b24575b600080fd5b34801561019157600080fd5b5061019a610b73565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022157600080fd5b50610260600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c15565b604051808215151515815260200191505060405180910390f35b34801561028657600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d42565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b50610312600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dec565b604051808215151515815260200191505060405180910390f35b34801561033857600080fd5b50610341610e0c565b6040518082815260200191505060405180910390f35b34801561036357600080fd5b506103fe6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610e16565b005b34801561040c57600080fd5b5061046b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e81565b604051808215151515815260200191505060405180910390f35b34801561049157600080fd5b5061049a611033565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c257600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061104a565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b50610530611281565b005b34801561053e57600080fd5b5061055d6004803603810190808035906020019092919050505061128c565b005b34801561056b57600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611299565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105cf6112b9565b005b3480156105dd57600080fd5b50610612600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a2565b005b34801561062057600080fd5b50610629611873565b6040518082815260200191505060405180910390f35b34801561064b57600080fd5b50610680600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611879565b6040518082815260200191505060405180910390f35b3480156106a257600080fd5b506106ab6118c2565b005b3480156106b957600080fd5b506106ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cd565b604051808215151515815260200191505060405180910390f35b34801561071457600080fd5b5061071d6118ed565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561075d578082015181840152602081019050610742565b50505050905090810190601f16801561078a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107a457600080fd5b506107d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061198f565b005b3480156107e757600080fd5b50610826600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a60565b604051808215151515815260200191505060405180910390f35b34801561084c57600080fd5b5061088d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611c97565b005b34801561089b57600080fd5b506108da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e26565b604051808215151515815260200191505060405180910390f35b34801561090057600080fd5b5061091f60048036038101908080359060200190929190505050611e3d565b6040518082815260200191505060405180910390f35b34801561094157600080fd5b50610998600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050611e60565b604051808215151515815260200191505060405180910390f35b3480156109be57600080fd5b506109c7612065565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a1557600080fd5b50610a6a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061208b565b6040518082815260200191505060405180910390f35b348015610a8c57600080fd5b50610acb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612112565b005b348015610ad957600080fd5b50610b0e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122f5565b6040518082815260200191505060405180910390f35b348015610b3057600080fd5b50610b71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506124a2565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c0b5780601f10610be057610100808354040283529160200191610c0b565b820191906000526020600020905b815481529060010190602001808311610bee57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c5257600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d9c576000610de5565b610de4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b5b9050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600554905090565b600081518351141515610e2857600080fd5b600090505b8251811015610e7c57610e6f338483815181101515610e4857fe5b906020019060200201518484815181101515610e6057fe5b90602001906020020151612631565b8080600101915050610e2d565b505050565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610f0e57600080fd5b610f9d82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd490919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611028848484612631565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561108757600080fd5b61111682600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b61128a33612d0b565b565b6112963382612e29565b50565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000806000806000806112cb33613047565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054955060008611801561135c5750600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b151561136757600080fd5b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060009450600093506113db60646113cd6001896130dc90919063ffffffff16565b61311790919063ffffffff16565b94506000851480156113ed5750600086115b156113f757600194505b61140a8587612cd490919063ffffffff16565b9350600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492506114618484612ced90919063ffffffff16565b9150600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114fc5760075490506114d56114c684611e3d565b82612cd490919063ffffffff16565b90506114f26114e383611e3d565b82612ced90919063ffffffff16565b9050806007819055505b61154e86600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd490919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116498560036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b60036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61187081612d0b565b50565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118cb33613132565b565b60086020528060005260406000206000915054906101000a900460ff1681565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119855780601f1061195a57610100808354040283529160200191611985565b820191906000526020600020905b81548152906001019060200180831161196857829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611a5d81613132565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a9d57600080fd5b611b2c82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd490919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f88cf9b943f64811022537ee9f0141770d85e612eae3a3a39241abe5ca9f113828282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611e33338484612631565b6001905092915050565b6000611e59601260ff16600a0a8361311790919063ffffffff16565b9050919050565b600083600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509650505050505050600060405180830381600087803b15801561204157600080fd5b505af1158015612055573d6000803e3d6000fd5b5050505060019050949350505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561221257600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156122b557600080fd5b505af11580156122c9573d6000803e3d6000fd5b505050506040513d60208110156122df57600080fd5b8101908080519060200190929190505050505050565b6000806000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561239457600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925061249b565b6123e8600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954612cd490919063ffffffff16565b9150612444612435600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b836130dc90919063ffffffff16565b905061249881600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b92505b5050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fc3d26c130d120a4bb874de56c8b5fb727ad2cfc3551ca49cd42ef248e893b69a8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600080600080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054871115151561268857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156126f157508873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15156126fc57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561273757600080fd5b61274089613047565b61274988613047565b60009550600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127f15750600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561283a5761281d606461280f60038a6130dc90919063ffffffff16565b61311790919063ffffffff16565b955060008614801561282f5750600087115b1561283957600195505b5b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054945061288f8786612cd490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e58688612cd490919063ffffffff16565b9650600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935061293c8785612ced90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a36007549250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ab557612a56612a4786611e3d565b84612cd490919063ffffffff16565b9250612ab2612aa3600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b84612ced90919063ffffffff16565b92505b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b8157612b22612b1385611e3d565b84612cd490919063ffffffff16565b9250612b7e612b6f600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b84612ced90919063ffffffff16565b92505b826007819055506000831115612cc957859150612ba7838361311790919063ffffffff16565b9050612bbe81600954612ced90919063ffffffff16565b600981905550612c1682600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ced90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612cc8573073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5b505050505050505050565b6000828211151515612ce257fe5b818303905092915050565b6000808284019050838110151515612d0157fe5b8091505092915050565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d6357600080fd5b612d6c81613047565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612e20612e0f600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b600754612cd490919063ffffffff16565b60078190555050565b6000806000808414151515612e3d57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411151515612e8b57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250612ee08484612cd490919063ffffffff16565b915081600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3b84600554612cd490919063ffffffff16565b600581905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fda576007549050612fb3612fa484611e3d565b82612cd490919063ffffffff16565b9050612fd0612fc183611e3d565b82612ced90919063ffffffff16565b9050806007819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b613050816122f5565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60008060008414156130f15760009150613110565b828402905082848281151561310257fe5b0414151561310c57fe5b8091505b5092915050565b600080828481151561312557fe5b0490508091505092915050565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561318b57600080fd5b61319481613047565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613248613237600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3d565b600754612ced90919063ffffffff16565b600781905550505600a165627a7a72305820044ccb8a41be87448e769ec2222a37a343e09e0f1444a02b8527919305dfcb0b0029
Deployed Bytecode Sourcemap
2436:11780:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2155:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2155:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5239:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5239:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3998:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3998:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3265:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3265:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3766:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3766:97:0;;;;;;;;;;;;;;;;;;;;;;;4649:272;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4649:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4933:294;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4933:294:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2347:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5845:326;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5845:326:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12565:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12565:65:0;;;;;;6934:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6934:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;3213:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3213:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11003:1474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11003:1474:0;;;;;;12740:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12740:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2864:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2864:40:0;;;;;;;;;;;;;;;;;;;;;;;3875:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3875:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12489:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12489:64:0;;;;;;2911:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2911:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2249:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2249:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12642;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12642:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6183:336;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6183:336:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13795:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13795:179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4484:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4484:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4165:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4165:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5504:323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5504:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2827:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2827:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4336:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4336:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13535:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13535:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10543:407;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10543:407:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14022:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14022:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:82;2191:6;2224:5;2217:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:82;:::o;5239:247::-;5304:4;5354:1;5335:21;;:7;:21;;;;5327:30;;;;;;;;5399:5;5368:7;:19;5376:10;5368:19;;;;;;;;;;;;;;;:28;5388:7;5368:28;;;;;;;;;;;;;;;:36;;;;5441:7;5420:36;;5429:10;5420:36;;;5450:5;5420:36;;;;;;;;;;;;;;;;;;5474:4;5467:11;;5239:247;;;;:::o;3998:155::-;4061:7;4094:9;:16;4104:5;4094:16;;;;;;;;;;;;;;;;;;;;;;;;;:51;;4144:1;4094:51;;;4113:28;4125:8;:15;4134:5;4125:15;;;;;;;;;;;;;;;;4113:11;:28::i;:::-;4094:51;4087:58;;3998:155;;;:::o;3265:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;3766:97::-;3810:7;3843:12;;3836:19;;3766:97;:::o;4649:272::-;4805:9;4776:6;:13;4756:9;:16;:33;4748:42;;;;;;;;4817:1;4805:13;;4801:112;4824:9;:16;4820:1;:20;4801:112;;;4860:53;4877:10;4889:9;4899:1;4889:12;;;;;;;;;;;;;;;;;;4903:6;4910:1;4903:9;;;;;;;;;;;;;;;;;;4860:16;:53::i;:::-;4842:3;;;;;;;4801:112;;;4649:272;;;:::o;4933:294::-;5012:4;5052:7;:13;5060:4;5052:13;;;;;;;;;;;;;;;:25;5066:10;5052:25;;;;;;;;;;;;;;;;5043:5;:34;;5035:43;;;;;;;;5117:36;5147:5;5117:7;:13;5125:4;5117:13;;;;;;;;;;;;;;;:25;5131:10;5117:25;;;;;;;;;;;;;;;;:29;;:36;;;;:::i;:::-;5089:7;:13;5097:4;5089:13;;;;;;;;;;;;;;;:25;5103:10;5089:25;;;;;;;;;;;;;;;:64;;;;5164:33;5181:4;5187:2;5191:5;5164:16;:33::i;:::-;5215:4;5208:11;;4933:294;;;;;:::o;2347:82::-;2387:5;2412:9;;;;;;;;;;;2405:16;;2347:82;:::o;5845:326::-;5925:4;5975:1;5956:21;;:7;:21;;;;5948:30;;;;;;;;6021:44;6054:10;6021:7;:19;6029:10;6021:19;;;;;;;;;;;;;;;:28;6041:7;6021:28;;;;;;;;;;;;;;;;:32;;:44;;;;:::i;:::-;5989:7;:19;5997:10;5989:19;;;;;;;;;;;;;;;:28;6009:7;5989:28;;;;;;;;;;;;;;;:77;;;;6103:7;6082:59;;6091:10;6082:59;;;6112:7;:19;6120:10;6112:19;;;;;;;;;;;;;;;:28;6132:7;6112:28;;;;;;;;;;;;;;;;6082:59;;;;;;;;;;;;;;;;;;6159:4;6152:11;;5845:326;;;;:::o;12565:65::-;12600:27;12616:10;12600:15;:27::i;:::-;12565:65::o;6934:87::-;6989:24;6995:10;7007:5;6989;:24::i;:::-;6934:87;:::o;3213:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;11003:1474::-;11084:15;11268:18;11302:14;11637:28;11699:25;11866:17;11045:28;11062:10;11045:16;:28::i;:::-;11102:13;:25;11116:10;11102:25;;;;;;;;;;;;;;;;11084:43;;11156:1;11146:7;:11;:49;;;;;11172:8;:23;11189:4;11172:23;;;;;;;;;;;;;;;;11161:7;:34;;11146:49;11138:58;;;;;;;;11245:1;11217:13;:25;11231:10;11217:25;;;;;;;;;;;;;;;:29;;;;11289:1;11268:22;;11319:1;11302:18;;11354:23;11373:3;11354:14;11366:1;11354:7;:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11341:36;;11501:1;11487:10;:15;:30;;;;;11516:1;11506:7;:11;11487:30;11484:80;;;11551:1;11538:14;;11484:80;11593:23;11605:10;11593:7;:11;;:23;;;;:::i;:::-;11584:32;;11668:8;:20;11677:10;11668:20;;;;;;;;;;;;;;;;11637:51;;11727:32;11752:6;11727:20;:24;;:32;;;;:::i;:::-;11699:60;;11819:9;:21;11829:10;11819:21;;;;;;;;;;;;;;;;;;;;;;;;;11816:298;;;11886:21;;11866:41;;11934:48;11948:33;11960:20;11948:11;:33::i;:::-;11934:9;:13;;:48;;;;:::i;:::-;11922:60;;12009:45;12023:30;12035:17;12023:11;:30::i;:::-;12009:9;:13;;:45;;;;:::i;:::-;11997:57;;12093:9;12069:21;:33;;;;11816:298;12180:36;12208:7;12180:8;:23;12197:4;12180:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;12154:8;:23;12171:4;12154:23;;;;;;;;;;;;;;;:62;;;;12250:17;12227:8;:20;12236:10;12227:20;;;;;;;;;;;;;;;:40;;;;12304:39;12332:10;12304:8;:23;12313:13;;;;;;;;;;;12304:23;;;;;;;;;;;;;;;;:27;;:39;;;;:::i;:::-;12278:8;:23;12287:13;;;;;;;;;;;12278:23;;;;;;;;;;;;;;;:65;;;;12383:10;12359:44;;12376:4;12359:44;;;12395:7;12359:44;;;;;;;;;;;;;;;;;;12443:13;;;;;;;;;;;12419:50;;12436:4;12419:50;;;12458:10;12419:50;;;;;;;;;;;;;;;;;;11003:1474;;;;;;:::o;12740:88::-;3706:13;;;;;;;;;;;3692:27;;:10;:27;;;3684:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12802:23;12818:6;12802:15;:23::i;:::-;12740:88;:::o;2864:40::-;;;;:::o;3875:111::-;3930:7;3963:8;:15;3972:5;3963:15;;;;;;;;;;;;;;;;3956:22;;3875:111;;;:::o;12489:64::-;12523:26;12538:10;12523:14;:26::i;:::-;12489:64::o;2911:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;2249:86::-;2287:6;2320:7;2313:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:86;:::o;12642:::-;3706:13;;;;;;;;;;;3692:27;;:10;:27;;;3684:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12703:22;12718:6;12703:14;:22::i;:::-;12642:86;:::o;6183:336::-;6268:4;6318:1;6299:21;;:7;:21;;;;6291:30;;;;;;;;6364:49;6397:15;6364:7;:19;6372:10;6364:19;;;;;;;;;;;;;;;:28;6384:7;6364:28;;;;;;;;;;;;;;;;:32;;:49;;;;:::i;:::-;6332:7;:19;6340:10;6332:19;;;;;;;;;;;;;;;:28;6352:7;6332:28;;;;;;;;;;;;;;;:82;;;;6451:7;6430:59;;6439:10;6430:59;;;6460:7;:19;6468:10;6460:19;;;;;;;;;;;;;;;:28;6480:7;6460:28;;;;;;;;;;;;;;;;6430:59;;;;;;;;;;;;;;;;;;6507:4;6500:11;;6183:336;;;;:::o;13795:179::-;3706:13;;;;;;;;;;;3692:27;;:10;:27;;;3684:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13890:32;13902:5;13909:12;13890:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13954:12;13933:11;:18;13945:5;13933:18;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13795:179;;:::o;4484:153::-;4545:4;4568:39;4585:10;4597:2;4601:5;4568:16;:39::i;:::-;4625:4;4618:11;;4484:153;;;;:::o;4165:159::-;4234:7;4267:49;2783:2;4293:22;;4289:2;:26;4267:17;:21;;:49;;;;:::i;:::-;4260:56;;4165:159;;;:::o;5504:323::-;5591:4;5639:6;5608:7;:19;5616:10;5608:19;;;;;;;;;;;;;;;:28;5628:7;5608:28;;;;;;;;;;;;;;;:37;;;;5682:7;5661:37;;5670:10;5661:37;;;5691:6;5661:37;;;;;;;;;;;;;;;;;;5732:7;5709:47;;;5757:10;5769:6;5785:4;5792;;5709:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5709:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5709:88:0;;;;5815:4;5808:11;;5504:323;;;;;;:::o;2827:28::-;;;;;;;;;;;;;:::o;4336:136::-;4408:7;4441;:14;4449:5;4441:14;;;;;;;;;;;;;;;:23;4456:7;4441:23;;;;;;;;;;;;;;;;4434:30;;4336:136;;;;:::o;13535:206::-;3706:13;;;;;;;;;;;3692:27;;:10;:27;;;3684:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13667:4;13643:29;;:12;:29;;;;13635:38;;;;;;;;13691:12;13684:29;;;13714:10;13726:6;13684:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13684:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13684:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13684:49:0;;;;;;;;;;;;;;;;;13535:206;;:::o;10543:407::-;10601:7;10701:25;10814:18;10630:9;:17;10640:6;10630:17;;;;;;;;;;;;;;;;;;;;;;;;;10629:18;10626:64;;;10669:13;:21;10683:6;10669:21;;;;;;;;;;;;;;;;10662:28;;;;10626:64;10729;10754:30;:38;10785:6;10754:38;;;;;;;;;;;;;;;;10729:20;;:24;;:64;;;;:::i;:::-;10701:92;;10835:52;10857:29;10869:8;:16;10878:6;10869:16;;;;;;;;;;;;;;;;10857:11;:29::i;:::-;10835:17;:21;;:52;;;;:::i;:::-;10814:73;;10905:37;10931:10;10905:13;:21;10919:6;10905:21;;;;;;;;;;;;;;;;:25;;:37;;;;:::i;:::-;10898:44;;10543:407;;;;;;:::o;14022:185::-;3706:13;;;;;;;;;;;3692:27;;:10;:27;;;3684:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14119:34;14133:5;14140:12;14119:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14187:12;14164:13;:20;14178:5;14164:20;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14022:185;;:::o;7964:2187::-;8375:20;8751:26;8924:24;9125:17;9663:22;9767;8072:8;:14;8081:4;8072:14;;;;;;;;;;;;;;;;8063:5;:23;;8055:32;;;;;;;;8120:1;8106:16;;:2;:16;;;;:30;;;;;8132:4;8126:10;;:2;:10;;;;8106:30;8098:39;;;;;;;;8170:4;8156:19;;:2;:19;;;;8148:28;;;;;;;;8301:22;8318:4;8301:16;:22::i;:::-;8334:20;8351:2;8334:16;:20::i;:::-;8398:1;8375:24;;8424:13;:19;8438:4;8424:19;;;;;;;;;;;;;;;;;;;;;;;;;8423:20;:40;;;;;8448:11;:15;8460:2;8448:15;;;;;;;;;;;;;;;;;;;;;;;;;8447:16;8423:40;8420:307;;;8504:21;8521:3;8504:12;8514:1;8504:5;:9;;:12;;;;:::i;:::-;:16;;:21;;;;:::i;:::-;8489:36;;8666:1;8650:12;:17;:30;;;;;8679:1;8671:5;:9;8650:30;8647:68;;;8714:1;8699:16;;8647:68;8420:307;8780:8;:14;8789:4;8780:14;;;;;;;;;;;;;;;;8751:43;;8822:29;8845:5;8822:18;:22;;:29;;;;:::i;:::-;8805:8;:14;8814:4;8805:14;;;;;;;;;;;;;;;:46;;;;8880:23;8890:12;8880:5;:9;;:23;;;;:::i;:::-;8872:31;;8951:8;:12;8960:2;8951:12;;;;;;;;;;;;;;;;8924:39;;8989:27;9010:5;8989:16;:20;;:27;;;;:::i;:::-;8974:8;:12;8983:2;8974:12;;;;;;;;;;;;;;;:42;;;;9057:2;9042:25;;9051:4;9042:25;;;9061:5;9042:25;;;;;;;;;;;;;;;;;;9145:21;;9125:41;;9180:9;:15;9190:4;9180:15;;;;;;;;;;;;;;;;;;;;;;;;;9177:183;;;9233:46;9247:31;9259:18;9247:11;:31::i;:::-;9233:9;:13;;:46;;;;:::i;:::-;9221:58;;9306:42;9320:27;9332:8;:14;9341:4;9332:14;;;;;;;;;;;;;;;;9320:11;:27::i;:::-;9306:9;:13;;:42;;;;:::i;:::-;9294:54;;9177:183;9373:9;:13;9383:2;9373:13;;;;;;;;;;;;;;;;;;;;;;;;;9370:177;;;9424:44;9438:29;9450:16;9438:11;:29::i;:::-;9424:9;:13;;:44;;;;:::i;:::-;9412:56;;9495:40;9509:25;9521:8;:12;9530:2;9521:12;;;;;;;;;;;;;;;;9509:11;:25::i;:::-;9495:9;:13;;:40;;;;:::i;:::-;9483:52;;9370:177;9581:9;9557:21;:33;;;;9636:1;9624:9;:13;9621:513;;;9688:12;9663:37;;9792:29;9811:9;9792:14;:18;;:29;;;;:::i;:::-;9767:54;;9887:40;9912:14;9887:20;;:24;;:40;;;;:::i;:::-;9864:20;:63;;;;9968:43;9996:14;9968:8;:23;9985:4;9968:23;;;;;;;;;;;;;;;;:27;;:43;;;;:::i;:::-;9942:8;:23;9959:4;9942:23;;;;;;;;;;;;;;;:69;;;;10046:1;10029:14;:18;10026:96;;;10100:4;10071:51;;10080:10;10071:51;;;10107:14;10071:51;;;;;;;;;;;;;;;;;;10026:96;9621:513;7964:2187;;;;;;;;;:::o;1353:129::-;1411:7;1449:1;1444;:6;;1437:14;;;;;;1473:1;1469;:5;1462:12;;1353:129;;;;:::o;1494:153::-;1552:7;1578:9;1594:1;1590;:5;1578:17;;1618:1;1613;:6;;1606:14;;;;;;1638:1;1631:8;;1494:153;;;;;:::o;13195:261::-;13268:9;:17;13278:6;13268:17;;;;;;;;;;;;;;;;;;;;;;;;;13260:26;;;;;;;;13297:24;13314:6;13297:16;:24::i;:::-;13352:5;13332:9;:17;13342:6;13332:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;13392:56;13418:29;13430:8;:16;13439:6;13430:16;;;;;;;;;;;;;;;;13418:11;:29::i;:::-;13392:21;;:25;;:56;;;;:::i;:::-;13368:21;:80;;;;13195:261;:::o;7035:763::-;7194:21;7246:18;7495:17;7125:1;7116:5;:10;;7108:19;;;;;;;;7155:8;:17;7164:7;7155:17;;;;;;;;;;;;;;;;7146:5;:26;;7138:35;;;;;;;;7218:8;:17;7227:7;7218:17;;;;;;;;;;;;;;;;7194:41;;7267:24;7285:5;7267:13;:17;;:24;;;;:::i;:::-;7246:45;;7332:10;7312:8;:17;7321:7;7312:17;;;;;;;;;;;;;;;:30;;;;7368:23;7385:5;7368:12;;:16;;:23;;;;:::i;:::-;7353:12;:38;;;;7451:9;:18;7461:7;7451:18;;;;;;;;;;;;;;;;;;;;;;;;;7448:281;;;7515:21;;7495:41;;7563;7577:26;7589:13;7577:11;:26::i;:::-;7563:9;:13;;:41;;;;:::i;:::-;7551:53;;7631:38;7645:23;7657:10;7645:11;:23::i;:::-;7631:9;:13;;:38;;;;:::i;:::-;7619:50;;7708:9;7684:21;:33;;;;7448:281;7780:1;7754:36;;7763:7;7754:36;;;7784:5;7754:36;;;;;;;;;;;;;;;;;;7035:763;;;;;:::o;10280:189::-;10370:19;10382:6;10370:11;:19::i;:::-;10346:13;:21;10360:6;10346:21;;;;;;;;;;;;;;;:43;;;;10441:20;;10400:30;:38;10431:6;10400:38;;;;;;;;;;;;;;;:61;;;;10280:189;:::o;977:224::-;1035:7;1128:9;1070:1;1065;:6;1061:57;;;1105:1;1098:8;;;;1061:57;1144:1;1140;:5;1128:17;;1172:1;1167;1163;:5;;;;;;;;:10;1156:18;;;;;;1192:1;1185:8;;977:224;;;;;;:::o;1213:128::-;1271:7;1297:9;1313:1;1309;:5;;;;;;;;1297:17;;1332:1;1325:8;;1213:128;;;;;:::o;12881:260::-;12954:9;:17;12964:6;12954:17;;;;;;;;;;;;;;;;;;;;;;;;;12953:18;12945:27;;;;;;;;12983:24;13000:6;12983:16;:24::i;:::-;13038:4;13018:9;:17;13028:6;13018:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13077:56;13103:29;13115:8;:16;13124:6;13115:16;;;;;;;;;;;;;;;;13103:11;:29::i;:::-;13077:21;;:25;;:56;;;;:::i;:::-;13053:21;:80;;;;12881:260;:::o
Swarm Source
bzzr://044ccb8a41be87448e769ec2222a37a343e09e0f1444a02b8527919305dfcb0b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.