More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 713 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 15679956 | 870 days ago | IN | 0 ETH | 0.00058422 | ||||
Transfer | 15305341 | 927 days ago | IN | 0 ETH | 0.00214874 | ||||
Transfer | 15305341 | 927 days ago | IN | 0 ETH | 0.00214874 | ||||
Transfer | 15305269 | 927 days ago | IN | 0 ETH | 0.00173552 | ||||
Transfer | 15301068 | 928 days ago | IN | 0 ETH | 0.00041322 | ||||
Transfer | 15299962 | 928 days ago | IN | 0 ETH | 0.00105159 | ||||
Transfer | 15280448 | 931 days ago | IN | 0 ETH | 0.00082668 | ||||
Transfer | 15278421 | 931 days ago | IN | 0 ETH | 0.00081774 | ||||
Transfer | 15216577 | 941 days ago | IN | 0 ETH | 0.00257056 | ||||
Transfer | 15132762 | 954 days ago | IN | 0 ETH | 0.00082644 | ||||
Transfer | 14827163 | 1005 days ago | IN | 0 ETH | 0.00268741 | ||||
Transfer | 14747319 | 1018 days ago | IN | 0 ETH | 0.00252477 | ||||
Transfer | 14747319 | 1018 days ago | IN | 0 ETH | 0.00252477 | ||||
Transfer | 14747282 | 1018 days ago | IN | 0 ETH | 0.00387258 | ||||
Transfer | 14696360 | 1026 days ago | IN | 0 ETH | 0.0023215 | ||||
Transfer | 14596184 | 1041 days ago | IN | 0 ETH | 0.00102856 | ||||
Transfer | 14545220 | 1049 days ago | IN | 0 ETH | 0.00198701 | ||||
Transfer | 14486848 | 1059 days ago | IN | 0 ETH | 0.00161155 | ||||
Transfer | 14440911 | 1066 days ago | IN | 0 ETH | 0.00071578 | ||||
Transfer | 14434389 | 1067 days ago | IN | 0 ETH | 0.00108485 | ||||
Transfer | 14388619 | 1074 days ago | IN | 0 ETH | 0.00146088 | ||||
Transfer | 14382558 | 1075 days ago | IN | 0 ETH | 0.00132256 | ||||
Transfer | 14365979 | 1077 days ago | IN | 0 ETH | 0.00141053 | ||||
Transfer | 14286960 | 1090 days ago | IN | 0 ETH | 0.00165541 | ||||
Transfer | 14271787 | 1092 days ago | IN | 0 ETH | 0.00270832 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FDEX
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-30 */ pragma solidity ^0.5.4; interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { 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); uint256 c = a / b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } contract ERC20 is IERC20 { using SafeMath for uint256; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) private _allowed; uint256 private _totalSupply; function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } function approve(address spender, uint256 value) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function transferFrom( address from, address to, uint256 value ) public returns (bool) { _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value); _transfer(from, to, value); emit Approval(from, msg.sender, _allowed[from][msg.sender]); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add( addedValue ); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub( subtractedValue ); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } function _transfer( address from, address to, uint256 value ) internal { require(to != address(0)); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } function _burn(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } function _burnFrom(address account, uint256 value) internal { _allowed[account][msg.sender] = _allowed[account][msg.sender].sub( value ); _burn(account, value); emit Approval(account, msg.sender, _allowed[account][msg.sender]); } } contract FDEX is ERC20 { string public constant name = "FDEX"; string public constant symbol = "QUROSIA"; uint8 public constant decimals = 18; uint256 public constant initialSupply = 1200000000 * (10**uint256(decimals)); constructor() public { super._mint(msg.sender, initialSupply); owner = msg.sender; } address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); modifier onlyOwner() { require(msg.sender == owner, "Not owner"); _; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0), "Already owner"); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } function dropToken(address[] memory _receivers, uint256[] memory _values) public onlyOwner { require(_receivers.length != 0); require(_receivers.length == _values.length); for (uint256 i = 0; i < _receivers.length; i++) { transfer(_receivers[i], _values[i]); emit Transfer(msg.sender, _receivers[i], _values[i]); } } event Pause(); event Unpause(); bool public paused = false; modifier whenNotPaused() { require(!paused, "Paused by owner"); _; } modifier whenPaused() { require(paused, "Not paused now"); _; } function pause() public onlyOwner whenNotPaused { paused = true; emit Pause(); } function unpause() public onlyOwner whenPaused { paused = false; emit Unpause(); } event Frozen(address target); event Unfrozen(address target); mapping(address => bool) internal freezes; modifier whenNotFrozen() { require(!freezes[msg.sender], "Sender account is locked."); _; } function freeze(address _target) public onlyOwner { freezes[_target] = true; emit Frozen(_target); } function unfreeze(address _target) public onlyOwner { freezes[_target] = false; emit Unfrozen(_target); } function isFrozen(address _target) public view returns (bool) { return freezes[_target]; } function transfer(address _to, uint256 _value) public whenNotFrozen whenNotPaused returns (bool) { releaseLock(msg.sender); return super.transfer(_to, _value); } function transferFrom( address _from, address _to, uint256 _value ) public whenNotPaused returns (bool) { require(!freezes[_from], "From account is locked."); releaseLock(_from); return super.transferFrom(_from, _to, _value); } event Mint(address indexed to, uint256 amount); function mint(address _to, uint256 _amount) public onlyOwner returns (bool) { super._mint(_to, _amount); emit Mint(_to, _amount); return true; } event Burn(address indexed burner, uint256 value); function burn(address _who, uint256 _value) public onlyOwner { require(_value <= super.balanceOf(_who), "Balance is too small."); _burn(_who, _value); emit Burn(_who, _value); } struct LockInfo { uint256 releaseTime; uint256 balance; } mapping(address => LockInfo[]) internal lockInfo; event Lock(address indexed holder, uint256 value, uint256 releaseTime); event Unlock(address indexed holder, uint256 value); function balanceOf(address _holder) public view returns (uint256 balance) { uint256 lockedBalance = 0; for (uint256 i = 0; i < lockInfo[_holder].length; i++) { lockedBalance = lockedBalance.add(lockInfo[_holder][i].balance); } return super.balanceOf(_holder).add(lockedBalance); } function releaseLock(address _holder) internal { for (uint256 i = 0; i < lockInfo[_holder].length; i++) { if (lockInfo[_holder][i].releaseTime <= now) { _balances[_holder] = _balances[_holder].add( lockInfo[_holder][i].balance ); emit Unlock(_holder, lockInfo[_holder][i].balance); lockInfo[_holder][i].balance = 0; if (i != lockInfo[_holder].length - 1) { lockInfo[_holder][i] = lockInfo[_holder][lockInfo[_holder] .length - 1]; i--; } lockInfo[_holder].length--; } } } function lockCount(address _holder) public view returns (uint256) { return lockInfo[_holder].length; } function lockState(address _holder, uint256 _idx) public view returns (uint256, uint256) { return ( lockInfo[_holder][_idx].releaseTime, lockInfo[_holder][_idx].balance ); } function lock( address _holder, uint256 _amount, uint256 _releaseTime ) public onlyOwner { require(super.balanceOf(_holder) >= _amount, "Balance is too small."); _balances[_holder] = _balances[_holder].sub(_amount); lockInfo[_holder].push(LockInfo(_releaseTime, _amount)); emit Lock(_holder, _amount, _releaseTime); } function lockAfter( address _holder, uint256 _amount, uint256 _afterTime ) public onlyOwner { require(super.balanceOf(_holder) >= _amount, "Balance is too small."); _balances[_holder] = _balances[_holder].sub(_amount); lockInfo[_holder].push(LockInfo(now + _afterTime, _amount)); emit Lock(_holder, _amount, now + _afterTime); } function unlock(address _holder, uint256 i) public onlyOwner { require(i < lockInfo[_holder].length, "No lock information."); _balances[_holder] = _balances[_holder].add( lockInfo[_holder][i].balance ); emit Unlock(_holder, lockInfo[_holder][i].balance); lockInfo[_holder][i].balance = 0; if (i != lockInfo[_holder].length - 1) { lockInfo[_holder][i] = lockInfo[_holder][lockInfo[_holder].length - 1]; } lockInfo[_holder].length--; } function transferWithLock( address _to, uint256 _value, uint256 _releaseTime ) public onlyOwner returns (bool) { require(_to != address(0), "wrong address"); require(_value <= super.balanceOf(owner), "Not enough balance"); _balances[owner] = _balances[owner].sub(_value); lockInfo[_to].push(LockInfo(_releaseTime, _value)); emit Transfer(owner, _to, _value); emit Lock(_to, _value, _releaseTime); return true; } function transferWithLockAfter( address _to, uint256 _value, uint256 _afterTime ) public onlyOwner returns (bool) { require(_to != address(0), "wrong address"); require(_value <= super.balanceOf(owner), "Not enough balance"); _balances[owner] = _balances[owner].sub(_value); lockInfo[_to].push(LockInfo(now + _afterTime, _value)); emit Transfer(owner, _to, _value); emit Lock(_to, _value, now + _afterTime); return true; } function currentTime() public view returns (uint256) { return now; } function afterTime(uint256 _value) public view returns (uint256) { return now + _value; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"}],"name":"Frozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":[],"name":"Pause","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"}],"name":"Unfrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"afterTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"dropToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_target","type":"address"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_target","type":"address"}],"name":"isFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_releaseTime","type":"uint256"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_afterTime","type":"uint256"}],"name":"lockAfter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"lockCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"lockState","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_afterTime","type":"uint256"}],"name":"transferWithLockAfter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_target","type":"address"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"uint256","name":"i","type":"uint256"}],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600360146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506200005133601260ff16600a0a6347868c00026200009860201b620040031760201c565b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000219565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620000d357600080fd5b620000ef81600254620001f960201b62003fe41790919060201c565b6002819055506200014d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620001f960201b62003fe41790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808284019050838110156200020f57600080fd5b8091505092915050565b6146e980620002296000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638456cb591161011a578063a9059cbb116100ad578063de6baccb1161007c578063de6baccb14610b45578063df03458614610bb5578063e2ab691d14610c0d578063e583983614610c65578063f2fde38b14610cc1576101fb565b8063a9059cbb146108fd578063c77828d014610963578063d18e81b314610aaf578063dd62ed3e14610acd576101fb565b8063927a4a7b116100e9578063927a4a7b1461075657806395d89b41146107c65780639dc29fac14610849578063a457c2d714610897576101fb565b80638456cb59146106665780638a57af6b146106705780638d1fdf2f146106c85780638da5cb5b1461070c576101fb565b80633f4ba83a116101925780635c975abb116101615780635c975abb1461059457806370a08231146105b6578063715018a61461060e5780637eee288d14610618576101fb565b80633f4ba83a1461047757806340c10f191461048157806345c8b1a6146104e757806346cf1bb51461052b576101fb565b806323b872dd116101ce57806323b872dd14610349578063313ce567146103cf578063378dc3dc146103f35780633950935114610411576101fb565b806304859ceb1461020057806306fdde0314610242578063095ea7b3146102c557806318160ddd1461032b575b600080fd5b61022c6004803603602081101561021657600080fd5b8101908080359060200190929190505050610d05565b6040518082815260200191505060405180910390f35b61024a610d11565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028a57808201518184015260208101905061026f565b50505050905090810190601f1680156102b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610311600480360360408110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4a565b604051808215151515815260200191505060405180910390f35b610333610e75565b6040518082815260200191505060405180910390f35b6103b56004803603606081101561035f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e7f565b604051808215151515815260200191505060405180910390f35b6103d7610fe1565b604051808260ff1660ff16815260200191505060405180910390f35b6103fb610fe6565b6040518082815260200191505060405180910390f35b61045d6004803603604081101561042757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ff7565b604051808215151515815260200191505060405180910390f35b61047f61122c565b005b6104cd6004803603604081101561049757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ba565b604051808215151515815260200191505060405180910390f35b610529600480360360208110156104fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e1565b005b6105776004803603604081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611662565b604051808381526020018281526020019250505060405180910390f35b61059c611728565b604051808215151515815260200191505060405180910390f35b6105f8600480360360208110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061173b565b6040518082815260200191505060405180910390f35b610616611833565b005b6106646004803603604081101561062e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061199f565b005b61066e611ec1565b005b6106c66004803603606081101561068657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612050565b005b61070a600480360360208110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612319565b005b61071461249a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107ac6004803603606081101561076c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506124c0565b604051808215151515815260200191505060405180910390f35b6107ce612921565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080e5780820151818401526020810190506107f3565b50505050905090810190601f16801561083b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108956004803603604081101561085f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061295a565b005b6108e3600480360360408110156108ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612af7565b604051808215151515815260200191505060405180910390f35b6109496004803603604081101561091357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d2c565b604051808215151515815260200191505060405180910390f35b610aad6004803603604081101561097957600080fd5b810190808035906020019064010000000081111561099657600080fd5b8201836020820111156109a857600080fd5b803590602001918460208302840111640100000000831117156109ca57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610a2a57600080fd5b820183602082011115610a3c57600080fd5b80359060200191846020830284011164010000000083111715610a5e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612e8c565b005b610ab7613049565b6040518082815260200191505060405180910390f35b610b2f60048036036040811015610ae357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613051565b6040518082815260200191505060405180910390f35b610b9b60048036036060811015610b5b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506130d8565b604051808215151515815260200191505060405180910390f35b610bf760048036036020811015610bcb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613535565b6040518082815260200191505060405180910390f35b610c6360048036036060811015610c2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613581565b005b610ca760048036036020811015610c7b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613846565b604051808215151515815260200191505060405180910390f35b610d0360048036036020811015610cd757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061389c565b005b60008142019050919050565b6040518060400160405280600481526020017f464445580000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8557600080fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b6000600360149054906101000a900460ff1615610f04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f506175736564206279206f776e6572000000000000000000000000000000000081525060200191505060405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f46726f6d206163636f756e74206973206c6f636b65642e00000000000000000081525060200191505060405180910390fd5b610fcd8461396b565b610fd8848484613ddc565b90509392505050565b601281565b601260ff16600a0a6347868c000281565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561103257600080fd5b6110c182600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360149054906101000a900460ff16611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420706175736564206e6f7700000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6114898383614003565b8273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a26001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4feb53e305297ab8fb8f3420c95ea04737addc254a7270d8fc4605d2b9c61dba81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106116af57fe5b906000526020600020906002020160000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061170b57fe5b906000526020600020906002020160010154915091509250929050565b600360149054906101000a900460ff1681565b6000806000905060008090505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561180f57611800600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106117df57fe5b90600052602060002090600202016001015483613fe490919063ffffffff16565b91508080600101915050611748565b5061182b8161181d85614155565b613fe490919063ffffffff16565b915050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f206c6f636b20696e666f726d6174696f6e2e00000000000000000000000081525060200191505060405180910390fd5b611bc5600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611b6657fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110611c8957fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611cfc57fe5b9060005260206000209060020201600101819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038114611e6a57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381548110611dec57fe5b9060005260206000209060020201600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611e4457fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611ebc9190614653565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360149054906101000a900460ff1615612007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f506175736564206279206f776e6572000000000000000000000000000000000081525060200191505060405180910390fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8161211d84614155565b1015612191576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b6121e2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052808342018152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508273ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b83834201604051808381526020018281526020019250505060405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8a5c4736a33c7b7f29a2c34ea9ff9608afc5718d56f6fd6dcbd2d3711a1a491381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f77726f6e6720616464726573730000000000000000000000000000000000000081525060200191505060405180910390fd5b612653600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614155565b8311156126c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b61273b83600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052808442018152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b84844201604051808381526020018281526020019250505060405180910390a2600190509392505050565b6040518060400160405280600781526020017f5155524f5349410000000000000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b612a2682614155565b811115612a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b612aa582826141bd565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3257600080fd5b612bc182600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612dee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53656e646572206163636f756e74206973206c6f636b65642e0000000000000081525060200191505060405180910390fd5b600360149054906101000a900460ff1615612e71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f506175736564206279206f776e6572000000000000000000000000000000000081525060200191505060405180910390fd5b612e7a3361396b565b612e84838361430f565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082511415612f5e57600080fd5b8051825114612f6c57600080fd5b60008090505b825181101561304457612fab838281518110612f8a57fe5b6020026020010151838381518110612f9e57fe5b6020026020010151612d2c565b50828181518110612fb857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061301a57fe5b60200260200101516040518082815260200191505060405180910390a38080600101915050612f72565b505050565b600042905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461319d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f77726f6e6720616464726573730000000000000000000000000000000000000081525060200191505060405180910390fd5b61326b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614155565b8311156132e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b61335383600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8161364e84614155565b10156136c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b613713826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280838152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508273ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a2505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461395f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61396881614326565b50565b60008090505b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015613dd85742600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613a0657fe5b90600052602060002090600202016000015411613dcb57613ac9600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613a6a57fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110613b8d57fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613c0057fe5b9060005260206000209060020201600101819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038114613d7757600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381548110613cf057fe5b9060005260206000209060020201600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613d4857fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600190039150505b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003613dc99190614653565b505b8080600101915050613971565b5050565b6000613e6d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ef8848484614489565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b600080828401905083811015613ff957600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561403d57600080fd5b61405281600254613fe490919063ffffffff16565b6002819055506140a9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000828211156141ac57600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156141f757600080fd5b61420c8160025461419d90919063ffffffff16565b600281905550614263816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061431c338484614489565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156143c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c7265616479206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156144c357600080fd5b614514816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145a7816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b8154818355818111156146805760020281600202836000526020600020918201910161467f9190614685565b5b505050565b6146b191905b808211156146ad5760008082016000905560018201600090555060020161468b565b5090565b9056fea265627a7a7231582030812321246610e600f4ad737f839ef2de0b61b596830d3ae3c3a41e01bf4e4764736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638456cb591161011a578063a9059cbb116100ad578063de6baccb1161007c578063de6baccb14610b45578063df03458614610bb5578063e2ab691d14610c0d578063e583983614610c65578063f2fde38b14610cc1576101fb565b8063a9059cbb146108fd578063c77828d014610963578063d18e81b314610aaf578063dd62ed3e14610acd576101fb565b8063927a4a7b116100e9578063927a4a7b1461075657806395d89b41146107c65780639dc29fac14610849578063a457c2d714610897576101fb565b80638456cb59146106665780638a57af6b146106705780638d1fdf2f146106c85780638da5cb5b1461070c576101fb565b80633f4ba83a116101925780635c975abb116101615780635c975abb1461059457806370a08231146105b6578063715018a61461060e5780637eee288d14610618576101fb565b80633f4ba83a1461047757806340c10f191461048157806345c8b1a6146104e757806346cf1bb51461052b576101fb565b806323b872dd116101ce57806323b872dd14610349578063313ce567146103cf578063378dc3dc146103f35780633950935114610411576101fb565b806304859ceb1461020057806306fdde0314610242578063095ea7b3146102c557806318160ddd1461032b575b600080fd5b61022c6004803603602081101561021657600080fd5b8101908080359060200190929190505050610d05565b6040518082815260200191505060405180910390f35b61024a610d11565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028a57808201518184015260208101905061026f565b50505050905090810190601f1680156102b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610311600480360360408110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4a565b604051808215151515815260200191505060405180910390f35b610333610e75565b6040518082815260200191505060405180910390f35b6103b56004803603606081101561035f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e7f565b604051808215151515815260200191505060405180910390f35b6103d7610fe1565b604051808260ff1660ff16815260200191505060405180910390f35b6103fb610fe6565b6040518082815260200191505060405180910390f35b61045d6004803603604081101561042757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ff7565b604051808215151515815260200191505060405180910390f35b61047f61122c565b005b6104cd6004803603604081101561049757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ba565b604051808215151515815260200191505060405180910390f35b610529600480360360208110156104fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e1565b005b6105776004803603604081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611662565b604051808381526020018281526020019250505060405180910390f35b61059c611728565b604051808215151515815260200191505060405180910390f35b6105f8600480360360208110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061173b565b6040518082815260200191505060405180910390f35b610616611833565b005b6106646004803603604081101561062e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061199f565b005b61066e611ec1565b005b6106c66004803603606081101561068657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612050565b005b61070a600480360360208110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612319565b005b61071461249a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107ac6004803603606081101561076c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506124c0565b604051808215151515815260200191505060405180910390f35b6107ce612921565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080e5780820151818401526020810190506107f3565b50505050905090810190601f16801561083b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108956004803603604081101561085f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061295a565b005b6108e3600480360360408110156108ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612af7565b604051808215151515815260200191505060405180910390f35b6109496004803603604081101561091357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d2c565b604051808215151515815260200191505060405180910390f35b610aad6004803603604081101561097957600080fd5b810190808035906020019064010000000081111561099657600080fd5b8201836020820111156109a857600080fd5b803590602001918460208302840111640100000000831117156109ca57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610a2a57600080fd5b820183602082011115610a3c57600080fd5b80359060200191846020830284011164010000000083111715610a5e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612e8c565b005b610ab7613049565b6040518082815260200191505060405180910390f35b610b2f60048036036040811015610ae357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613051565b6040518082815260200191505060405180910390f35b610b9b60048036036060811015610b5b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506130d8565b604051808215151515815260200191505060405180910390f35b610bf760048036036020811015610bcb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613535565b6040518082815260200191505060405180910390f35b610c6360048036036060811015610c2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613581565b005b610ca760048036036020811015610c7b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613846565b604051808215151515815260200191505060405180910390f35b610d0360048036036020811015610cd757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061389c565b005b60008142019050919050565b6040518060400160405280600481526020017f464445580000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8557600080fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b6000600360149054906101000a900460ff1615610f04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f506175736564206279206f776e6572000000000000000000000000000000000081525060200191505060405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f46726f6d206163636f756e74206973206c6f636b65642e00000000000000000081525060200191505060405180910390fd5b610fcd8461396b565b610fd8848484613ddc565b90509392505050565b601281565b601260ff16600a0a6347868c000281565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561103257600080fd5b6110c182600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360149054906101000a900460ff16611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420706175736564206e6f7700000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6114898383614003565b8273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a26001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4feb53e305297ab8fb8f3420c95ea04737addc254a7270d8fc4605d2b9c61dba81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106116af57fe5b906000526020600020906002020160000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061170b57fe5b906000526020600020906002020160010154915091509250929050565b600360149054906101000a900460ff1681565b6000806000905060008090505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561180f57611800600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106117df57fe5b90600052602060002090600202016001015483613fe490919063ffffffff16565b91508080600101915050611748565b5061182b8161181d85614155565b613fe490919063ffffffff16565b915050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f206c6f636b20696e666f726d6174696f6e2e00000000000000000000000081525060200191505060405180910390fd5b611bc5600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611b6657fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110611c8957fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611cfc57fe5b9060005260206000209060020201600101819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038114611e6a57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381548110611dec57fe5b9060005260206000209060020201600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611e4457fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611ebc9190614653565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360149054906101000a900460ff1615612007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f506175736564206279206f776e6572000000000000000000000000000000000081525060200191505060405180910390fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8161211d84614155565b1015612191576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b6121e2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052808342018152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508273ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b83834201604051808381526020018281526020019250505060405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8a5c4736a33c7b7f29a2c34ea9ff9608afc5718d56f6fd6dcbd2d3711a1a491381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f77726f6e6720616464726573730000000000000000000000000000000000000081525060200191505060405180910390fd5b612653600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614155565b8311156126c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b61273b83600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052808442018152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b84844201604051808381526020018281526020019250505060405180910390a2600190509392505050565b6040518060400160405280600781526020017f5155524f5349410000000000000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b612a2682614155565b811115612a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b612aa582826141bd565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3257600080fd5b612bc182600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612dee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53656e646572206163636f756e74206973206c6f636b65642e0000000000000081525060200191505060405180910390fd5b600360149054906101000a900460ff1615612e71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f506175736564206279206f776e6572000000000000000000000000000000000081525060200191505060405180910390fd5b612e7a3361396b565b612e84838361430f565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082511415612f5e57600080fd5b8051825114612f6c57600080fd5b60008090505b825181101561304457612fab838281518110612f8a57fe5b6020026020010151838381518110612f9e57fe5b6020026020010151612d2c565b50828181518110612fb857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061301a57fe5b60200260200101516040518082815260200191505060405180910390a38080600101915050612f72565b505050565b600042905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461319d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f77726f6e6720616464726573730000000000000000000000000000000000000081525060200191505060405180910390fd5b61326b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614155565b8311156132e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b61335383600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8161364e84614155565b10156136c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b613713826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280838152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508273ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a2505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461395f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61396881614326565b50565b60008090505b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015613dd85742600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613a0657fe5b90600052602060002090600202016000015411613dcb57613ac9600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613a6a57fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110613b8d57fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613c0057fe5b9060005260206000209060020201600101819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038114613d7757600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381548110613cf057fe5b9060005260206000209060020201600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613d4857fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600190039150505b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003613dc99190614653565b505b8080600101915050613971565b5050565b6000613e6d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ef8848484614489565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b600080828401905083811015613ff957600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561403d57600080fd5b61405281600254613fe490919063ffffffff16565b6002819055506140a9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000828211156141ac57600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156141f757600080fd5b61420c8160025461419d90919063ffffffff16565b600281905550614263816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061431c338484614489565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156143c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c7265616479206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156144c357600080fd5b614514816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145a7816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fe490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b8154818355818111156146805760020281600202836000526020600020918201910161467f9190614685565b5b505050565b6146b191905b808211156146ad5760008082016000905560018201600090555060020161468b565b5090565b9056fea265627a7a7231582030812321246610e600f4ad737f839ef2de0b61b596830d3ae3c3a41e01bf4e4764736f6c63430005110032
Deployed Bytecode Sourcemap
4910:8113:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4910:8113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12917:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12917:103:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4940:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4940:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2403:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2403:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1871:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7807:291;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7807:291:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5031:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5073:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2996:370;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2996:370:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6836:105;;;:::i;:::-;;8161:208;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8161:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7326:128;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7326:128:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10136:254;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10136:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6497:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8934:334;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8934:334:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5584:124;;;:::i;:::-;;11205:557;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11205:557:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6725:103;;;:::i;:::-;;10796:401;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10796:401:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7195:123;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7195:123:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5273:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12293:526;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12293:526:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4983:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4983:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8435:211;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8435:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3374:380;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3374:380:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7574:225;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7574:225:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6049:394;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6049:394:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6049:394:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6049:394:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6049:394:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6049:394:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6049:394:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6049:394:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6049:394:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6049:394:0;;;;;;;;;;;;;;;:::i;:::-;;12827:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2084:163;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2084:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11770:515;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11770:515:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10012:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10012:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10398:390;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10398:390:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7462:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7462:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5716:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5716:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12917:103;12973:7;13006:6;13000:3;:12;12993:19;;12917:103;;;:::o;4940:36::-;;;;;;;;;;;;;;;;;;;:::o;2403:244::-;2468:4;2512:1;2493:21;;:7;:21;;;;2485:30;;;;;;2560:5;2528:8;:20;2537:10;2528:20;;;;;;;;;;;;;;;:29;2549:7;2528:29;;;;;;;;;;;;;;;:37;;;;2602:7;2581:36;;2590:10;2581:36;;;2611:5;2581:36;;;;;;;;;;;;;;;;;;2635:4;2628:11;;2403:244;;;;:::o;1871:91::-;1915:7;1942:12;;1935:19;;1871:91;:::o;7807:291::-;7937:4;6577:6;;;;;;;;;;;6576:7;6568:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7963:7;:14;7971:5;7963:14;;;;;;;;;;;;;;;;;;;;;;;;;7962:15;7954:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8016:18;8028:5;8016:11;:18::i;:::-;8052:38;8071:5;8078:3;8083:6;8052:18;:38::i;:::-;8045:45;;7807:291;;;;;:::o;5031:35::-;5064:2;5031:35;:::o;5073:76::-;5064:2;5131:17;;5127:2;:21;5113:10;:36;5073:76;:::o;2996:370::-;3094:4;3143:1;3124:21;;:7;:21;;;;3116:30;;;;;;3191:69;3239:10;3191:8;:20;3200:10;3191:20;;;;;;;;;;;;;;;:29;3212:7;3191:29;;;;;;;;;;;;;;;;:33;;:69;;;;:::i;:::-;3159:8;:20;3168:10;3159:20;;;;;;;;;;;;;;;:29;3180:7;3159:29;;;;;;;;;;;;;;;:101;;;;3297:7;3276:60;;3285:10;3276:60;;;3306:8;:20;3315:10;3306:20;;;;;;;;;;;;;;;:29;3327:7;3306:29;;;;;;;;;;;;;;;;3276:60;;;;;;;;;;;;;;;;;;3354:4;3347:11;;2996:370;;;;:::o;6836:105::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6672:6;;;;;;;;;;;6664:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6903:5;6894:6;;:14;;;;;;;;;;;;;;;;;;6924:9;;;;;;;;;;6836:105::o;8161:208::-;8258:4;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8280:25;8292:3;8297:7;8280:11;:25::i;:::-;8326:3;8321:18;;;8331:7;8321:18;;;;;;;;;;;;;;;;;;8357:4;8350:11;;8161:208;;;;:::o;7326:128::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7408:5;7389:7;:16;7397:7;7389:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;7429:17;7438:7;7429:17;;;;;;;;;;;;;;;;;;;;;;7326:128;:::o;10136:254::-;10234:7;10243;10290:8;:17;10299:7;10290:17;;;;;;;;;;;;;;;10308:4;10290:23;;;;;;;;;;;;;;;;;;:35;;;10340:8;:17;10349:7;10340:17;;;;;;;;;;;;;;;10358:4;10340:23;;;;;;;;;;;;;;;;;;:31;;;10268:114;;;;10136:254;;;;;:::o;6497:26::-;;;;;;;;;;;;;:::o;8934:334::-;8991:15;9019:21;9043:1;9019:25;;9060:9;9072:1;9060:13;;9055:145;9079:8;:17;9088:7;9079:17;;;;;;;;;;;;;;;:24;;;;9075:1;:28;9055:145;;;9141:47;9159:8;:17;9168:7;9159:17;;;;;;;;;;;;;;;9177:1;9159:20;;;;;;;;;;;;;;;;;;:28;;;9141:13;:17;;:47;;;;:::i;:::-;9125:63;;9105:3;;;;;;;9055:145;;;;9217:43;9246:13;9217:24;9233:7;9217:15;:24::i;:::-;:28;;:43;;;;:::i;:::-;9210:50;;;8934:334;;;:::o;5584:124::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5665:5;;;;;;;;;;;5646:25;;;;;;;;;;;;5698:1;5682:5;;:18;;;;;;;;;;;;;;;;;;5584:124::o;11205:557::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11289:8;:17;11298:7;11289:17;;;;;;;;;;;;;;;:24;;;;11285:1;:28;11277:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11372:76;11409:8;:17;11418:7;11409:17;;;;;;;;;;;;;;;11427:1;11409:20;;;;;;;;;;;;;;;;;;:28;;;11372:9;:18;11382:7;11372:18;;;;;;;;;;;;;;;;:22;;:76;;;;:::i;:::-;11351:9;:18;11361:7;11351:18;;;;;;;;;;;;;;;:97;;;;11471:7;11464:45;;;11480:8;:17;11489:7;11480:17;;;;;;;;;;;;;;;11498:1;11480:20;;;;;;;;;;;;;;;;;;:28;;;11464:45;;;;;;;;;;;;;;;;;;11551:1;11520:8;:17;11529:7;11520:17;;;;;;;;;;;;;;;11538:1;11520:20;;;;;;;;;;;;;;;;;;:28;;:32;;;;11601:1;11574:8;:17;11583:7;11574:17;;;;;;;;;;;;;;;:24;;;;:28;11569:1;:33;11565:153;;11642:8;:17;11651:7;11642:17;;;;;;;;;;;;;;;11704:1;11660:8;:17;11669:7;11660:17;;;;;;;;;;;;;;;:24;;;;:45;11642:64;;;;;;;;;;;;;;;;;;11619:8;:17;11628:7;11619:17;;;;;;;;;;;;;;;11637:1;11619:20;;;;;;;;;;;;;;;;;;:87;;;;;;;;;;;;;;;;;;;11565:153;11728:8;:17;11737:7;11728:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:::i;:::-;;11205:557;;:::o;6725:103::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6577:6;;;;;;;;;;;6576:7;6568:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6793:4;6784:6;;:13;;;;;;;;;;;;;;;;;;6813:7;;;;;;;;;;6725:103::o;10796:401::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10967:7;10939:24;10955:7;10939:15;:24::i;:::-;:35;;10931:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11032:31;11055:7;11032:9;:18;11042:7;11032:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;11011:9;:18;11021:7;11011:18;;;;;;;;;;;;;;;:52;;;;11074:8;:17;11083:7;11074:17;;;;;;;;;;;;;;;11097:35;;;;;;;;11112:10;11106:3;:16;11097:35;;;;11124:7;11097:35;;;11074:59;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11074:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11154:7;11149:40;;;11163:7;11178:10;11172:3;:16;11149:40;;;;;;;;;;;;;;;;;;;;;;;;10796:401;;;:::o;7195:123::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7275:4;7256:7;:16;7264:7;7256:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;7295:15;7302:7;7295:15;;;;;;;;;;;;;;;;;;;;;;7195:123;:::o;5273:20::-;;;;;;;;;;;;;:::o;12293:526::-;12433:4;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12473:1;12458:17;;:3;:17;;;;12450:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12522:22;12538:5;;;;;;;;;;;12522:15;:22::i;:::-;12512:6;:32;;12504:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12599:28;12620:6;12599:9;:16;12609:5;;;;;;;;;;;12599:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;12580:9;:16;12590:5;;;;;;;;;;;12580:16;;;;;;;;;;;;;;;:47;;;;12638:8;:13;12647:3;12638:13;;;;;;;;;;;;;;;12657:34;;;;;;;;12672:10;12666:3;:16;12657:34;;;;12684:6;12657:34;;;12638:54;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12638:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12724:3;12708:28;;12717:5;;;;;;;;;;;12708:28;;;12729:6;12708:28;;;;;;;;;;;;;;;;;;12757:3;12752:35;;;12762:6;12776:10;12770:3;:16;12752:35;;;;;;;;;;;;;;;;;;;;;;;;12807:4;12800:11;;12293:526;;;;;:::o;4983:41::-;;;;;;;;;;;;;;;;;;;:::o;8435:211::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8525:21;8541:4;8525:15;:21::i;:::-;8515:6;:31;;8507:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8585:19;8591:4;8597:6;8585:5;:19::i;:::-;8625:4;8620:18;;;8631:6;8620:18;;;;;;;;;;;;;;;;;;8435:211;;:::o;3374:380::-;3477:4;3526:1;3507:21;;:7;:21;;;;3499:30;;;;;;3574:74;3622:15;3574:8;:20;3583:10;3574:20;;;;;;;;;;;;;;;:29;3595:7;3574:29;;;;;;;;;;;;;;;;:33;;:74;;;;:::i;:::-;3542:8;:20;3551:10;3542:20;;;;;;;;;;;;;;;:29;3563:7;3542:29;;;;;;;;;;;;;;;:106;;;;3685:7;3664:60;;3673:10;3664:60;;;3694:8;:20;3703:10;3694:20;;;;;;;;;;;;;;;:29;3715:7;3694:29;;;;;;;;;;;;;;;;3664:60;;;;;;;;;;;;;;;;;;3742:4;3735:11;;3374:380;;;;:::o;7574:225::-;7701:4;7118:7;:19;7126:10;7118:19;;;;;;;;;;;;;;;;;;;;;;;;;7117:20;7109:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6577:6;;;;;;;;;;;6576:7;6568:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7723:23;7735:10;7723:11;:23::i;:::-;7764:27;7779:3;7784:6;7764:14;:27::i;:::-;7757:34;;7574:225;;;;:::o;6049:394::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6181:1;6160:10;:17;:22;;6152:31;;;;;;6223:7;:14;6202:10;:17;:35;6194:44;;;;;;6264:9;6276:1;6264:13;;6259:177;6283:10;:17;6279:1;:21;6259:177;;;6322:35;6331:10;6342:1;6331:13;;;;;;;;;;;;;;6346:7;6354:1;6346:10;;;;;;;;;;;;;;6322:8;:35::i;:::-;;6398:10;6409:1;6398:13;;;;;;;;;;;;;;6377:47;;6386:10;6377:47;;;6413:7;6421:1;6413:10;;;;;;;;;;;;;;6377:47;;;;;;;;;;;;;;;;;;6302:3;;;;;;;6259:177;;;;6049:394;;:::o;12827:82::-;12871:7;12898:3;12891:10;;12827:82;:::o;2084:163::-;2183:7;2215:8;:15;2224:5;2215:15;;;;;;;;;;;;;;;:24;2231:7;2215:24;;;;;;;;;;;;;;;;2208:31;;2084:163;;;;:::o;11770:515::-;11907:4;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11947:1;11932:17;;:3;:17;;;;11924:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11996:22;12012:5;;;;;;;;;;;11996:15;:22::i;:::-;11986:6;:32;;11978:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12073:28;12094:6;12073:9;:16;12083:5;;;;;;;;;;;12073:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;12054:9;:16;12064:5;;;;;;;;;;;12054:16;;;;;;;;;;;;;;;:47;;;;12112:8;:13;12121:3;12112:13;;;;;;;;;;;;;;;12131:30;;;;;;;;12140:12;12131:30;;;;12154:6;12131:30;;;12112:50;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12112:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12194:3;12178:28;;12187:5;;;;;;;;;;;12178:28;;;12199:6;12178:28;;;;;;;;;;;;;;;;;;12227:3;12222:31;;;12232:6;12240:12;12222:31;;;;;;;;;;;;;;;;;;;;;;;;12273:4;12266:11;;11770:515;;;;;:::o;10012:116::-;10069:7;10096:8;:17;10105:7;10096:17;;;;;;;;;;;;;;;:24;;;;10089:31;;10012:116;;;:::o;10398:390::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10566:7;10538:24;10554:7;10538:15;:24::i;:::-;:35;;10530:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10631:31;10654:7;10631:9;:18;10641:7;10631:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;10610:9;:18;10620:7;10610:18;;;;;;;;;;;;;;;:52;;;;10673:8;:17;10682:7;10673:17;;;;;;;;;;;;;;;10696:31;;;;;;;;10705:12;10696:31;;;;10719:7;10696:31;;;10673:55;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10673:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10749:7;10744:36;;;10758:7;10767:12;10744:36;;;;;;;;;;;;;;;;;;;;;;;;10398:390;;;:::o;7462:104::-;7518:4;7542:7;:16;7550:7;7542:16;;;;;;;;;;;;;;;;;;;;;;;;;7535:23;;7462:104;;;:::o;5716:111::-;5537:5;;;;;;;;;;;5523:19;;:10;:19;;;5515:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5790:29;5809:9;5790:18;:29::i;:::-;5716:111;:::o;9276:728::-;9339:9;9351:1;9339:13;;9334:663;9358:8;:17;9367:7;9358:17;;;;;;;;;;;;;;;:24;;;;9354:1;:28;9334:663;;;9444:3;9408:8;:17;9417:7;9408:17;;;;;;;;;;;;;;;9426:1;9408:20;;;;;;;;;;;;;;;;;;:32;;;:39;9404:582;;9489:92;9534:8;:17;9543:7;9534:17;;;;;;;;;;;;;;;9552:1;9534:20;;;;;;;;;;;;;;;;;;:28;;;9489:9;:18;9499:7;9489:18;;;;;;;;;;;;;;;;:22;;:92;;;;:::i;:::-;9468:9;:18;9478:7;9468:18;;;;;;;;;;;;;;;:113;;;;9612:7;9605:45;;;9621:8;:17;9630:7;9621:17;;;;;;;;;;;;;;;9639:1;9621:20;;;;;;;;;;;;;;;;;;:28;;;9605:45;;;;;;;;;;;;;;;;;;9700:1;9669:8;:17;9678:7;9669:17;;;;;;;;;;;;;;;9687:1;9669:20;;;;;;;;;;;;;;;;;;:28;;:32;;;;9758:1;9731:8;:17;9740:7;9731:17;;;;;;;;;;;;;;;:24;;;;:28;9726:1;:33;9722:204;;9807:8;:17;9816:7;9807:17;;;;;;;;;;;;;;;9878:1;9825:8;:17;9834:7;9825:17;;;;;;;;;;;;;;;:50;;;;:54;9807:73;;;;;;;;;;;;;;;;;;9784:8;:17;9793:7;9784:17;;;;;;;;;;;;;;;9802:1;9784:20;;;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;;9903:3;;;;;;;;9722:204;9944:8;:17;9953:7;9944:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:::i;:::-;;9404:582;9384:3;;;;;;;9334:663;;;;9276:728;:::o;2655:333::-;2768:4;2814:37;2845:5;2814:8;:14;2823:4;2814:14;;;;;;;;;;;;;;;:26;2829:10;2814:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;2785:8;:14;2794:4;2785:14;;;;;;;;;;;;;;;:26;2800:10;2785:26;;;;;;;;;;;;;;;:66;;;;2862:26;2872:4;2878:2;2882:5;2862:9;:26::i;:::-;2919:10;2904:54;;2913:4;2904:54;;;2931:8;:14;2940:4;2931:14;;;;;;;;;;;;;;;:26;2946:10;2931:26;;;;;;;;;;;;;;;;2904:54;;;;;;;;;;;;;;;;;;2976:4;2969:11;;2655:333;;;;;:::o;1350:150::-;1408:7;1428:9;1444:1;1440;:5;1428:17;;1469:1;1464;:6;;1456:15;;;;;;1491:1;1484:8;;;1350:150;;;;:::o;4066:269::-;4160:1;4141:21;;:7;:21;;;;4133:30;;;;;;4191:23;4208:5;4191:12;;:16;;:23;;;;:::i;:::-;4176:12;:38;;;;4246:29;4269:5;4246:9;:18;4256:7;4246:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;4225:9;:18;4235:7;4225:18;;;;;;;;;;;;;;;:50;;;;4312:7;4291:36;;4308:1;4291:36;;;4321:5;4291:36;;;;;;;;;;;;;;;;;;4066:269;;:::o;1970:106::-;2025:7;2052:9;:16;2062:5;2052:16;;;;;;;;;;;;;;;;2045:23;;1970:106;;;:::o;1192:150::-;1250:7;1283:1;1278;:6;;1270:15;;;;;;1296:9;1312:1;1308;:5;1296:17;;1333:1;1326:8;;;1192:150;;;;:::o;4343:269::-;4437:1;4418:21;;:7;:21;;;;4410:30;;;;;;4468:23;4485:5;4468:12;;:16;;:23;;;;:::i;:::-;4453:12;:38;;;;4523:29;4546:5;4523:9;:18;4533:7;4523:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;4502:9;:18;4512:7;4502:18;;;;;;;;;;;;;;;:50;;;;4594:1;4568:36;;4577:7;4568:36;;;4598:5;4568:36;;;;;;;;;;;;;;;;;;4343:269;;:::o;2255:140::-;2316:4;2333:32;2343:10;2355:2;2359:5;2333:9;:32::i;:::-;2383:4;2376:11;;2255:140;;;;:::o;5835:206::-;5931:1;5910:23;;:9;:23;;;;5902:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:9;5967:38;;5988:5;;;;;;;;;;;5967:38;;;;;;;;;;;;6024:9;6016:5;;:17;;;;;;;;;;;;;;;;;;5835:206;:::o;3762:296::-;3898:1;3884:16;;:2;:16;;;;3876:25;;;;;;3932:26;3952:5;3932:9;:15;3942:4;3932:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;3914:9;:15;3924:4;3914:15;;;;;;;;;;;;;;;:44;;;;3985:24;4003:5;3985:9;:13;3995:2;3985:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;3969:9;:13;3979:2;3969:13;;;;;;;;;;;;;;;:40;;;;4040:2;4025:25;;4034:4;4025:25;;;4044:5;4025:25;;;;;;;;;;;;;;;;;;3762:296;;;:::o;4910:8113::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://30812321246610e600f4ad737f839ef2de0b61b596830d3ae3c3a41e01bf4e47
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.