Contract Overview
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
GemFarm
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan on 2023-03-02 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC20 { function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, 'e0'); (bool success,) = recipient.call{value : amount}(''); require(success, 'e1'); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, 'e0'); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, 'e0'); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, 'e0'); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require(isContract(target), 'e0'); (bool success, bytes memory returndata) = target.call{value : weiValue}(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall(data, 'e0'); if (returndata.length > 0) { require(abi.decode(returndata, (bool)), 'e1'); } } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: not owner"); _; } /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } modifier isHuman() { require(tx.origin == msg.sender, "sorry humans only"); _; } } interface CakeToken { function mint(address _to, uint256 _amount) external returns (bool); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); } contract GemFarm is Ownable, ReentrancyGuard { using SafeERC20 for IERC20; struct UserInfo { uint256 amount; uint256 rewardDebt; } struct PoolInfo { IERC20 lpToken; uint256 allocPoint; uint256 lastRewardBlock; uint256 accCakePerShare; uint256 staking_stock_length; uint256 multiple; bool if_invite_reward; bool pool_status; } CakeToken public cake; PoolInfo[] public poolInfo; address public devAddress; uint256 public cakePerBlock; uint256 public stakingFee = 0; uint256 public withdrawFee = 0; uint256 public inviteFee = 0; uint256 public totalAllocPoint = 0; uint256 public startBlock; mapping(uint256 => mapping(address => UserInfo)) public userInfo; mapping(uint256 => mapping(address => uint256)) public first_staking_time; mapping(uint256 => mapping(address => uint256)) public last_staking_time; mapping(address => address) public invitor; mapping(address => bool) public is_invitor; mapping(uint256 => mapping(address => uint256)) public pending_list; event Deposit(address indexed user, uint256 indexed pid, uint256 amount); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount); event Harvest(address indexed user, uint256 indexed pid, uint256 amount); event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount); constructor() { devAddress = _msgSender(); startBlock = block.number + (10 * 365 * 24 * 60 * 60); } function poolLength() external view returns (uint256) { return poolInfo.length; } function add( IERC20 _lpToken, uint256 _allocPoint, uint256 _multiple, uint256 _staking_stock_length, bool _if_invite_reward, bool _withUpdate ) public onlyOwner { if (_withUpdate) { massUpdatePools(); } uint256 lastRewardBlock = block.number > startBlock ? block.number : startBlock; totalAllocPoint = totalAllocPoint + _allocPoint; poolInfo.push( PoolInfo({ lpToken: _lpToken, allocPoint: _allocPoint, multiple: _multiple, lastRewardBlock: lastRewardBlock, accCakePerShare: 0, staking_stock_length: _staking_stock_length, if_invite_reward: _if_invite_reward, pool_status: true }) ); } function set( uint256 _pid, uint256 _allocPoint, uint256 _multiple, uint256 _staking_stock_length, bool _if_invite_reward, bool _withUpdate ) public onlyOwner { if (_withUpdate) { massUpdatePools(); } totalAllocPoint = totalAllocPoint - poolInfo[_pid].allocPoint + _allocPoint; poolInfo[_pid].allocPoint = _allocPoint; poolInfo[_pid].multiple = _multiple; poolInfo[_pid].staking_stock_length = _staking_stock_length; poolInfo[_pid].if_invite_reward = _if_invite_reward; } function getMultiplier(uint256 _from, uint256 _to, uint256 _poolMultiple) public pure returns (uint256) { return (_to - _from) * _poolMultiple; } function pendingReward(uint256 _pid, address _user) external view returns (uint256) { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 accCakePerShare = pool.accCakePerShare; uint256 lpSupply = pool.lpToken.balanceOf(address(this)); if (block.number > pool.lastRewardBlock && lpSupply != 0) { uint256 multiplier = getMultiplier(pool.lastRewardBlock, block.number, pool.multiple); uint256 cakeReward = multiplier * cakePerBlock * pool.allocPoint / totalAllocPoint; accCakePerShare = accCakePerShare + (cakeReward * 1e12 / lpSupply); } uint256 reward = user.amount * accCakePerShare / 1e12 - user.rewardDebt + pending_list[_pid][_user]; if (pool.if_invite_reward) { uint256 fee = reward * inviteFee / 100; return reward - fee; } return reward; } function massUpdatePools() public { uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; pid++) { updatePool(pid); } } function updatePool(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; if (block.number <= pool.lastRewardBlock) { return; } uint256 lpSupply = pool.lpToken.balanceOf(address(this)); if (lpSupply == 0) { pool.lastRewardBlock = block.number; return; } uint256 multiplier = getMultiplier(pool.lastRewardBlock, block.number, pool.multiple); uint256 cakeReward = multiplier * cakePerBlock * pool.allocPoint / totalAllocPoint; if (cakeReward > 0) { cake.mint(address(this), cakeReward); } pool.accCakePerShare = pool.accCakePerShare + (cakeReward * 1e12 / lpSupply); pool.lastRewardBlock = block.number; } function deposit(uint256 _pid, uint256 _amount, address _invitor) public nonReentrant { require(poolInfo[_pid].pool_status, 'not open'); address account = _msgSender(); if (first_staking_time[_pid][account] == 0) { first_staking_time[_pid][account] = block.timestamp; } if (invitor[account] == address(0) && _invitor != address(0) && _invitor != account && !is_invitor[account]) { invitor[account] = _invitor; is_invitor[_invitor] = true; } last_staking_time[_pid][account] = block.timestamp; PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][account]; updatePool(_pid); if (user.amount > 0) { uint256 pending = user.amount * pool.accCakePerShare / 1e12 - user.rewardDebt; if (pending > 0) { pending_list[_pid][account] = pending_list[_pid][account] + pending; } } if (_amount > 0) { uint256 fee = _amount * stakingFee / 100; uint256 left = _amount - fee; if (fee > 0) { pool.lpToken.safeTransferFrom(account, devAddress, fee); } pool.lpToken.safeTransferFrom(account, address(this), left); user.amount = user.amount + left; } user.rewardDebt = user.amount * pool.accCakePerShare / 1e12; emit Deposit(account, _pid, _amount); } function withdraw(uint256 _pid, uint256 _amount) public nonReentrant { address account = _msgSender(); PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][account]; require(user.amount >= _amount, "no more"); updatePool(_pid); uint256 pending = user.amount * pool.accCakePerShare / 1e12 - user.rewardDebt; if (pending > 0) { pending_list[_pid][account] = pending_list[_pid][account] + pending; } if (_amount > 0) { user.amount = user.amount - _amount; uint256 fee = _amount * withdrawFee / 100; uint256 left = _amount - fee; if (fee > 0) { pool.lpToken.safeTransfer(devAddress, fee); } pool.lpToken.safeTransfer(account, left); } user.rewardDebt = user.amount * pool.accCakePerShare / 1e12; emit Withdraw(account, _pid, _amount); } function emergencyWithdraw(uint256 _pid) public nonReentrant { address account = _msgSender(); PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][account]; require(user.amount > 0, "no deposit"); uint256 fee = user.amount * withdrawFee / 100; uint256 left = user.amount - fee; if (fee > 0) { pool.lpToken.safeTransfer(devAddress, fee); } pool.lpToken.safeTransfer(account, left); user.amount = 0; user.rewardDebt = 0; pending_list[_pid][account] = 0; emit EmergencyWithdraw(account, _pid, left); } function canHarvest(uint256 _pid, address _user) public view returns (bool) { return block.number >= startBlock && block.timestamp > last_staking_time[_pid][_user] + poolInfo[_pid].staking_stock_length; } function harvest(uint256 _pid) public nonReentrant isHuman { address account = _msgSender(); require(canHarvest(_pid, account), 'time limit'); PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][account]; updatePool(_pid); if (user.amount > 0) { uint256 pending = user.amount * pool.accCakePerShare / 1e12 - user.rewardDebt; if (pending > 0) { pending_list[_pid][account] = pending_list[_pid][account] + pending; } } user.rewardDebt = user.amount * pool.accCakePerShare / 1e12; uint256 reward = pending_list[_pid][account]; require(reward > 0, 'no rewards'); pending_list[_pid][account] = 0; if (pool.if_invite_reward) { uint256 fee = reward * inviteFee / 100; if (fee > 0) { if (invitor[account] == address(0)) { safeCakeTransfer(devAddress, fee); } else { safeCakeTransfer(invitor[account], fee); } } reward = reward - fee; safeCakeTransfer(account, reward); } else { safeCakeTransfer(account, reward); } emit Harvest(account, _pid, reward); } function safeCakeTransfer(address _to, uint256 _amount) internal { uint256 cakeBal = cake.balanceOf(address(this)); if (_amount > cakeBal) { cake.transfer(_to, cakeBal); } else { cake.transfer(_to, _amount); } } function startFarming() public onlyOwner { require(block.number < startBlock, "farm started already"); uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { poolInfo[pid].lastRewardBlock = block.number; } startBlock = block.number; } function setPoolState(uint256 _pid, bool _state) public onlyOwner { poolInfo[_pid].pool_status = _state; } function setFees(uint256 _stakingFee, uint256 _withdrawFee, uint256 _inviteFee) public onlyOwner { require(_stakingFee < 50 && _withdrawFee < 50 && _inviteFee < 50, 'too high'); stakingFee = _stakingFee; withdrawFee = _withdrawFee; inviteFee = _inviteFee; } function setCake(CakeToken _cake, uint256 _cakePerBlock) public onlyOwner { cake = _cake; cakePerBlock = _cakePerBlock; } function setdev(address _devaddr) public { require(_msgSender() == devAddress || _msgSender() == owner(), "cannot"); devAddress = _devaddr; } }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"uint256","name":"_multiple","type":"uint256"},{"internalType":"uint256","name":"_staking_stock_length","type":"uint256"},{"internalType":"bool","name":"_if_invite_reward","type":"bool"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cake","outputs":[{"internalType":"contract CakeToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cakePerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"canHarvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_invitor","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"first_staking_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_from","type":"uint256"},{"internalType":"uint256","name":"_to","type":"uint256"},{"internalType":"uint256","name":"_poolMultiple","type":"uint256"}],"name":"getMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inviteFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"invitor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_invitor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"last_staking_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"pending_list","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accCakePerShare","type":"uint256"},{"internalType":"uint256","name":"staking_stock_length","type":"uint256"},{"internalType":"uint256","name":"multiple","type":"uint256"},{"internalType":"bool","name":"if_invite_reward","type":"bool"},{"internalType":"bool","name":"pool_status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"uint256","name":"_multiple","type":"uint256"},{"internalType":"uint256","name":"_staking_stock_length","type":"uint256"},{"internalType":"bool","name":"_if_invite_reward","type":"bool"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract CakeToken","name":"_cake","type":"address"},{"internalType":"uint256","name":"_cakePerBlock","type":"uint256"}],"name":"setCake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_withdrawFee","type":"uint256"},{"internalType":"uint256","name":"_inviteFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"setPoolState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devaddr","type":"address"}],"name":"setdev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startFarming","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600060065560006007556000600855600060095534801561002457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018055600480546001600160a01b0319163317905561008a436312cc0300610092565b600a556100b8565b600082198211156100b357634e487b7160e01b600052601160045260246000fd5b500190565b61233f806100c76000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80637bafb02911610125578063d3b6b88c116100ad578063e35772f21161007c578063e35772f214610512578063e941fa7814610525578063ea9301d61461052e578063eff9884314610551578063f2fde38b1461055a57600080fd5b8063d3b6b88c146104c6578063dba408b1146104d9578063dce17484146104ec578063ddc63262146104ff57600080fd5b806398969e82116100f457806398969e821461047c578063afbcfea11461048f578063b38a436014610497578063b52d881f146104a0578063cec10c11146104b357600080fd5b80637bafb029146103fe5780638da5cb5b146104115780638dbdbe6d1461042257806393f1a40b1461043557600080fd5b80633cc5ac2f116101a857806348cd4cb11161017757806348cd4cb1146103bf57806351eb05a6146103c85780635312ea8e146103db578063630b5ba1146103ee578063715018a6146103f657600080fd5b80633cc5ac2f146103435780633d6b5e5c14610358578063441a3e701461038357806347f6567e1461039657600080fd5b806328634a74116101e457806328634a741461029f5780632e6c998d146102ca5780632f5a947d146102ed5780633ad10ef61461031857600080fd5b80630755e0b614610216578063081e3eda146102325780631526fe271461023a57806317caf6f114610296575b600080fd5b61021f60055481565b6040519081526020015b60405180910390f35b60035461021f565b61024d610248366004611f2c565b61056d565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a0840152151560c0830152151560e082015261010001610229565b61021f60095481565b61021f6102ad366004611f5d565b601060209081526000928352604080842090915290825290205481565b6102dd6102d8366004611f5d565b6105d2565b6040519015158152602001610229565b61021f6102fb366004611f5d565b600d60209081526000928352604080842090915290825290205481565b60045461032b906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b610356610351366004611f9b565b61063f565b005b61021f610366366004611f5d565b600c60209081526000928352604080842090915290825290205481565b610356610391366004611ff9565b61077c565b61032b6103a436600461201b565b600e602052600090815260409020546001600160a01b031681565b61021f600a5481565b6103566103d6366004611f2c565b6109b2565b6103566103e9366004611f2c565b610b64565b610356610ce1565b610356610d0e565b61021f61040c36600461203f565b610d82565b6000546001600160a01b031661032b565b61035661043036600461206b565b610da1565b610467610443366004611f5d565b600b6020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610229565b61021f61048a366004611f5d565b611121565b610356611307565b61021f60085481565b6103566104ae3660046120a4565b6113c7565b6103566104c136600461203f565b611431565b6103566104d436600461201b565b6114bc565b6103566104e73660046120c9565b61153f565b60025461032b906001600160a01b031681565b61035661050d366004611f2c565b61158f565b6103566105203660046120f5565b6118d0565b61021f60075481565b6102dd61053c36600461201b565b600f6020526000908152604090205460ff1681565b61021f60065481565b61035661056836600461201b565b611ad0565b6003818154811061057d57600080fd5b600091825260209091206007909102018054600182015460028301546003840154600485015460058601546006909601546001600160a01b039095169650929491939092919060ff8082169161010090041688565b6000600a5443101580156106365750600383815481106105f4576105f461213e565b6000918252602080832060046007909302019190910154858352600d825260408084206001600160a01b0387168552909252912054610633919061216a565b42115b90505b92915050565b6000546001600160a01b031633146106725760405162461bcd60e51b815260040161066990612182565b60405180910390fd5b801561068057610680610ce1565b84600387815481106106945761069461213e565b9060005260206000209060070201600101546009546106b391906121ae565b6106bd919061216a565b60098190555084600387815481106106d7576106d761213e565b90600052602060002090600702016001018190555083600387815481106107005761070061213e565b90600052602060002090600702016005018190555082600387815481106107295761072961213e565b90600052602060002090600702016004018190555081600387815481106107525761075261213e565b60009182526020909120600790910201600601805460ff1916911515919091179055505050505050565b6002600154141561079f5760405162461bcd60e51b8152600401610669906121c5565b600260015560003390506000600384815481106107be576107be61213e565b60009182526020808320878452600b825260408085206001600160a01b0388168652909252922080546007909202909201925084111561082a5760405162461bcd60e51b81526020600482015260076024820152666e6f206d6f726560c81b6044820152606401610669565b610833856109b2565b6000816001015464e8d4a510008460030154846000015461085491906121fc565b61085e919061221b565b61086891906121ae565b905080156108c25760008681526010602090815260408083206001600160a01b038816845290915290205461089e90829061216a565b60008781526010602090815260408083206001600160a01b03891684529091529020555b841561093f5781546108d59086906121ae565b82556007546000906064906108ea90886121fc565b6108f4919061221b565b9050600061090282886121ae565b90508115610926576004548554610926916001600160a01b03918216911684611bba565b845461093c906001600160a01b03168783611bba565b50505b6003830154825464e8d4a5100091610956916121fc565b610960919061221b565b600183015560405185815286906001600160a01b038616907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568906020015b60405180910390a350506001805550505050565b6000600382815481106109c7576109c761213e565b90600052602060002090600702019050806002015443116109e6575050565b80546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a52919061223d565b905080610a6457504360029091015550565b6000610a798360020154438560050154610d82565b90506000600954846001015460055484610a9391906121fc565b610a9d91906121fc565b610aa7919061221b565b90508015610b26576002546040516340c10f1960e01b8152306004820152602481018390526001600160a01b03909116906340c10f19906044016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190612256565b505b82610b368264e8d4a510006121fc565b610b40919061221b565b8460030154610b4f919061216a565b60038501555050436002909201919091555050565b60026001541415610b875760405162461bcd60e51b8152600401610669906121c5565b60026001556000339050600060038381548110610ba657610ba661213e565b60009182526020808320868452600b825260408085206001600160a01b03881686529092529220805460079092029092019250610c125760405162461bcd60e51b815260206004820152600a6024820152691b9bc819195c1bdcda5d60b21b6044820152606401610669565b600060646007548360000154610c2891906121fc565b610c32919061221b565b90506000818360000154610c4691906121ae565b90508115610c6a576004548454610c6a916001600160a01b03918216911684611bba565b8354610c80906001600160a01b03168683611bba565b6000808455600184018190558681526010602090815260408083206001600160a01b03891680855290835281842093909355518381528892917fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595910161099e565b60035460005b81811015610d0a57610cf8816109b2565b80610d0281612273565b915050610ce7565b5050565b6000546001600160a01b03163314610d385760405162461bcd60e51b815260040161066990612182565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081610d8f85856121ae565b610d9991906121fc565b949350505050565b60026001541415610dc45760405162461bcd60e51b8152600401610669906121c5565b60026001556003805484908110610ddd57610ddd61213e565b906000526020600020906007020160060160019054906101000a900460ff16610e335760405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b6044820152606401610669565b6000838152600c6020908152604080832033808552925290912054610e78576000848152600c602090815260408083206001600160a01b038516845290915290204290555b6001600160a01b038181166000908152600e602052604090205416158015610ea857506001600160a01b03821615155b8015610ec65750806001600160a01b0316826001600160a01b031614155b8015610eeb57506001600160a01b0381166000908152600f602052604090205460ff16155b15610f34576001600160a01b038181166000908152600e6020908152604080832080546001600160a01b0319169487169485179055928252600f905220805460ff191660011790555b6000848152600d602090815260408083206001600160a01b038516845290915281204290556003805486908110610f6d57610f6d61213e565b60009182526020808320888452600b825260408085206001600160a01b0388168652909252922060079091029091019150610fa7866109b2565b80541561103f576000816001015464e8d4a5100084600301548460000154610fcf91906121fc565b610fd9919061221b565b610fe391906121ae565b9050801561103d5760008781526010602090815260408083206001600160a01b038816845290915290205461101990829061216a565b60008881526010602090815260408083206001600160a01b03891684529091529020555b505b84156110be57600060646006548761105791906121fc565b611061919061221b565b9050600061106f82886121ae565b90508115611095576004548454611095916001600160a01b039182169188911685611c22565b83546110ac906001600160a01b0316863084611c22565b82546110b990829061216a565b835550505b6003820154815464e8d4a51000916110d5916121fc565b6110df919061221b565b600182015560405185815286906001600160a01b038516907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200161099e565b600080600384815481106111375761113761213e565b60009182526020808320878452600b825260408085206001600160a01b03898116875293528085206007949094029091016003810154815492516370a0823160e01b815230600482015291965093949291909116906370a0823190602401602060405180830381865afa1580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d6919061223d565b90508360020154431180156111ea57508015155b1561125d5760006112048560020154438760050154610d82565b9050600060095486600101546005548461121e91906121fc565b61122891906121fc565b611232919061221b565b9050826112448264e8d4a510006121fc565b61124e919061221b565b611258908561216a565b935050505b60008781526010602090815260408083206001600160a01b038a1684529091528120546001850154855464e8d4a51000906112999087906121fc565b6112a3919061221b565b6112ad91906121ae565b6112b7919061216a565b600686015490915060ff16156112fc5760006064600854836112d991906121fc565b6112e3919061221b565b90506112ef81836121ae565b9650505050505050610639565b979650505050505050565b6000546001600160a01b031633146113315760405162461bcd60e51b815260040161066990612182565b600a5443106113795760405162461bcd60e51b81526020600482015260146024820152736661726d207374617274656420616c726561647960601b6044820152606401610669565b60035460005b818110156113bf57436003828154811061139b5761139b61213e565b60009182526020909120600260079092020101556113b881612273565b905061137f565b505043600a55565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260040161066990612182565b80600383815481106114055761140561213e565b906000526020600020906007020160060160016101000a81548160ff0219169083151502179055505050565b6000546001600160a01b0316331461145b5760405162461bcd60e51b815260040161066990612182565b60328310801561146b5750603282105b80156114775750603281105b6114ae5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610669565b600692909255600755600855565b6004546001600160a01b0316336001600160a01b031614806114e857506000546001600160a01b031633145b61151d5760405162461bcd60e51b815260206004820152600660248201526518d85b9b9bdd60d21b6044820152606401610669565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115695760405162461bcd60e51b815260040161066990612182565b600280546001600160a01b0319166001600160a01b039390931692909217909155600555565b600260015414156115b25760405162461bcd60e51b8152600401610669906121c5565b60026001553233146115fa5760405162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b6044820152606401610669565b3361160582826105d2565b61163e5760405162461bcd60e51b815260206004820152600a6024820152691d1a5b59481b1a5b5a5d60b21b6044820152606401610669565b6000600383815481106116535761165361213e565b60009182526020808320868452600b825260408085206001600160a01b038816865290925292206007909102909101915061168d846109b2565b805415611725576000816001015464e8d4a51000846003015484600001546116b591906121fc565b6116bf919061221b565b6116c991906121ae565b905080156117235760008581526010602090815260408083206001600160a01b03881684529091529020546116ff90829061216a565b60008681526010602090815260408083206001600160a01b03891684529091529020555b505b6003820154815464e8d4a510009161173c916121fc565b611746919061221b565b600182015560008481526010602090815260408083206001600160a01b0387168452909152902054806117a85760405162461bcd60e51b815260206004820152600a6024820152696e6f207265776172647360b01b6044820152606401610669565b60008581526010602090815260408083206001600160a01b0388168452909152812055600683015460ff16156118775760006064600854836117ea91906121fc565b6117f4919061221b565b9050801561185b576001600160a01b038581166000908152600e60205260409020541661183657600454611831906001600160a01b031682611c60565b61185b565b6001600160a01b038086166000908152600e602052604090205461185b911682611c60565b61186581836121ae565b91506118718583611c60565b50611881565b6118818482611c60565b84846001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954836040516118bd91815260200190565b60405180910390a3505060018055505050565b6000546001600160a01b031633146118fa5760405162461bcd60e51b815260040161066990612182565b801561190857611908610ce1565b6000600a54431161191b57600a5461191d565b435b90508560095461192d919061216a565b6009556040805161010080820183526001600160a01b03998a168252602082019889529181019283526000606082018181526080830197885260a0830198895295151560c08301908152600160e0840181815260038054928301815590935292517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600790940293840180546001600160a01b03191691909c1617909a5597517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82015591517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d83015592517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e82015592517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85f8401555091517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f86082015592517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f8619093018054925161ffff1990931693151561ff0019169390931791151502179055565b6000546001600160a01b03163314611afa5760405162461bcd60e51b815260040161066990612182565b6001600160a01b038116611b5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610669565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040516001600160a01b038316602482015260448101829052611c1d90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611d88565b505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611c5a9085906323b872dd60e01b90608401611be6565b50505050565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccd919061223d565b905080821115611d4f5760025460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044015b6020604051808303816000875af1158015611d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190612256565b60025460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401611d0c565b6000611dc28260405180604001604052806002815260200161065360f41b815250856001600160a01b0316611e119092919063ffffffff16565b805190915015611c1d5780806020019051810190611de09190612256565b611c1d5760405162461bcd60e51b8152602060048201526002602482015261653160f01b6044820152606401610669565b6060610d9984846000856060611e2685611ef3565b611e575760405162461bcd60e51b8152602060048201526002602482015261065360f41b6044820152606401610669565b600080866001600160a01b03168587604051611e7391906122ba565b60006040518083038185875af1925050503d8060008114611eb0576040519150601f19603f3d011682016040523d82523d6000602084013e611eb5565b606091505b50915091508115611ec9579150610d999050565b805115611ed95780518082602001fd5b8360405162461bcd60e51b815260040161066991906122d6565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610d99575050151592915050565b600060208284031215611f3e57600080fd5b5035919050565b6001600160a01b0381168114611f5a57600080fd5b50565b60008060408385031215611f7057600080fd5b823591506020830135611f8281611f45565b809150509250929050565b8015158114611f5a57600080fd5b60008060008060008060c08789031215611fb457600080fd5b863595506020870135945060408701359350606087013592506080870135611fdb81611f8d565b915060a0870135611feb81611f8d565b809150509295509295509295565b6000806040838503121561200c57600080fd5b50508035926020909101359150565b60006020828403121561202d57600080fd5b813561203881611f45565b9392505050565b60008060006060848603121561205457600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561208057600080fd5b8335925060208401359150604084013561209981611f45565b809150509250925092565b600080604083850312156120b757600080fd5b823591506020830135611f8281611f8d565b600080604083850312156120dc57600080fd5b82356120e781611f45565b946020939093013593505050565b60008060008060008060c0878903121561210e57600080fd5b863561211981611f45565b95506020870135945060408701359350606087013592506080870135611fdb81611f8d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561217d5761217d612154565b500190565b60208082526012908201527127bbb730b136329d103737ba1037bbb732b960711b604082015260600190565b6000828210156121c0576121c0612154565b500390565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600081600019048311821515161561221657612216612154565b500290565b60008261223857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561224f57600080fd5b5051919050565b60006020828403121561226857600080fd5b815161203881611f8d565b600060001982141561228757612287612154565b5060010190565b60005b838110156122a9578181015183820152602001612291565b83811115611c5a5750506000910152565b600082516122cc81846020870161228e565b9190910192915050565b60208152600082518060208401526122f581604085016020870161228e565b601f01601f1916919091016040019291505056fea2646970667358221220e71a2e6606506d29ebf656ac0d0cd615b76175bb32e26b2dbd98293d76cf4f3364736f6c634300080a0033
Deployed ByteCode Sourcemap
6795:11490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7342:27;;;;;;;;;160:25:1;;;148:2;133:18;7342:27:0;;;;;;;;8422:95;8494:8;:15;8422:95;;7275:26;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;743:32:1;;;725:51;;807:2;792:18;;785:34;;;;835:18;;;828:34;;;;893:2;878:18;;871:34;;;;936:3;921:19;;914:35;763:3;965:19;;958:35;1037:14;1030:22;1024:3;1009:19;;1002:51;1097:14;1090:22;1084:3;1069:19;;1062:51;712:3;697:19;7275:26:0;381:738:1;7484:34:0;;;;;;7887:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15304:244;;;;;;:::i;:::-;;:::i;:::-;;;1745:14:1;;1738:22;1720:41;;1708:2;1693:18;15304:244:0;1580:187:1;7710:72:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7310:25;;;;;-1:-1:-1;;;;;7310:25:0;;;;;;-1:-1:-1;;;;;1936:32:1;;;1918:51;;1906:2;1891:18;7310:25:0;1772:203:1;9415:614:0;;;;;;:::i;:::-;;:::i;:::-;;7630:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;13645:981;;;;;;:::i;:::-;;:::i;7789:42::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;7789:42:0;;;7525:25;;;;;;11349:779;;;;;;:::i;:::-;;:::i;14634:662::-;;;;;;:::i;:::-;;:::i;11161:180::-;;;:::i;5173:148::-;;;:::i;10037:159::-;;;;;;:::i;:::-;;:::i;4743:79::-;4781:7;4808:6;-1:-1:-1;;;;;4808:6:0;4743:79;;12136:1501;;;;;;:::i;:::-;;:::i;7559:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:25:1;;;4203:2;4188:18;;4181:34;;;;4120:18;7559:64:0;3973:248:1;10204:949:0;;;;;;:::i;:::-;;:::i;17199:325::-;;;:::i;7449:28::-;;;;;;17532:120;;;;;;:::i;:::-;;:::i;17660:298::-;;;;;;:::i;:::-;;:::i;18118:164::-;;;;;;:::i;:::-;;:::i;17966:144::-;;;;;;:::i;:::-;;:::i;7247:21::-;;;;;-1:-1:-1;;;;;7247:21:0;;;15556:1349;;;;;;:::i;:::-;;:::i;8525:882::-;;;;;;:::i;:::-;;:::i;7412:30::-;;;;;;7838:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7376:29;;;;;;5476:244;;;;;;:::i;:::-;;:::i;7275:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7275:26:0;;;;-1:-1:-1;7275:26:0;;;;;;;;;;;;;;;;;;:::o;15304:244::-;15374:4;15427:10;;15411:12;:26;;:129;;;;;15505:8;15514:4;15505:14;;;;;;;;:::i;:::-;;;;;;;;;:35;:14;;;;;:35;;;;;15472:23;;;:17;:23;;;;;;-1:-1:-1;;;;;15472:30:0;;;;;;;;;;:68;;15505:35;15472:68;:::i;:::-;15454:15;:86;15411:129;15391:149;;15304:244;;;;;:::o;9415:614::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;;;;;;;;;9651:11:::1;9647:61;;;9679:17;:15;:17::i;:::-;9782:11;9754:8;9763:4;9754:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;;9736:15;;:43;;;;:::i;:::-;:57;;;;:::i;:::-;9718:15;:75;;;;9832:11;9804:8;9813:4;9804:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;:39;;;;9880:9;9854:8;9863:4;9854:14;;;;;;;;:::i;:::-;;;;;;;;;;;:23;;:35;;;;9938:21;9900:8;9909:4;9900:14;;;;;;;;:::i;:::-;;;;;;;;;;;:35;;:59;;;;10004:17;9970:8;9979:4;9970:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:31;;:51:::0;;-1:-1:-1;;9970:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;9415:614:0:o;13645:981::-;5852:1;6072:7;;:19;;6064:63;;;;-1:-1:-1;;;6064:63:0;;;;;;;:::i;:::-;5852:1;6205:7;:18;13725:15:::1;3871:10:::0;13725:30:::1;;13766:21;13790:8;13799:4;13790:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;13839;;;:8:::1;:14:::0;;;;;;-1:-1:-1;;;;;13839:23:0;::::1;::::0;;;;;;;13881:11;;13790:14:::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;13881:22:0;-1:-1:-1;13881:22:0::1;13873:42;;;::::0;-1:-1:-1;;;13873:42:0;;7280:2:1;13873:42:0::1;::::0;::::1;7262:21:1::0;7319:1;7299:18;;;7292:29;-1:-1:-1;;;7337:18:1;;;7330:37;7384:18;;13873:42:0::1;7078:330:1::0;13873:42:0::1;13926:16;13937:4;13926:10;:16::i;:::-;13955:15;14017:4;:15;;;14010:4;13987;:20;;;13973:4;:11;;;:34;;;;:::i;:::-;:41;;;;:::i;:::-;:59;;;;:::i;:::-;13955:77:::0;-1:-1:-1;14047:11:0;;14043:111:::1;;14105:18;::::0;;;:12:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;14105:27:0;::::1;::::0;;;;;;;;:37:::1;::::0;14135:7;;14105:37:::1;:::i;:::-;14075:18;::::0;;;:12:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;14075:27:0;::::1;::::0;;;;;;;:67;14043:111:::1;14168:11:::0;;14164:337:::1;;14210:11:::0;;:21:::1;::::0;14224:7;;14210:21:::1;:::i;:::-;14196:35:::0;;14270:11:::1;::::0;14196::::1;::::0;14284:3:::1;::::0;14260:21:::1;::::0;:7;:21:::1;:::i;:::-;:27;;;;:::i;:::-;14246:41:::0;-1:-1:-1;14302:12:0::1;14317:13;14246:41:::0;14317:7;:13:::1;:::i;:::-;14302:28:::0;-1:-1:-1;14349:7:0;;14345:90:::1;;14403:10;::::0;14377:12;;:42:::1;::::0;-1:-1:-1;;;;;14377:12:0;;::::1;::::0;14403:10:::1;14415:3:::0;14377:25:::1;:42::i;:::-;14449:12:::0;;:40:::1;::::0;-1:-1:-1;;;;;14449:12:0::1;14475:7:::0;14484:4;14449:25:::1;:40::i;:::-;14181:320;;14164:337;14543:20;::::0;::::1;::::0;14529:11;;14566:4:::1;::::0;14529:34:::1;::::0;::::1;:::i;:::-;:41;;;;:::i;:::-;14511:15;::::0;::::1;:59:::0;14586:32:::1;::::0;160:25:1;;;14604:4:0;;-1:-1:-1;;;;;14586:32:0;::::1;::::0;::::1;::::0;148:2:1;133:18;14586:32:0::1;;;;;;;;-1:-1:-1::0;;5808:1:0;6384:22;;-1:-1:-1;;;;13645:981:0:o;11349:779::-;11401:21;11425:8;11434:4;11425:14;;;;;;;;:::i;:::-;;;;;;;;;;;11401:38;;11470:4;:20;;;11454:12;:36;11450:75;;11507:7;11349:779;:::o;11450:75::-;11554:12;;:37;;-1:-1:-1;;;11554:37:0;;11585:4;11554:37;;;1918:51:1;11535:16:0;;-1:-1:-1;;;;;11554:12:0;;:22;;1891:18:1;;11554:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11535:56;-1:-1:-1;11606:13:0;11602:102;;-1:-1:-1;11659:12:0;11636:20;;;;:35;-1:-1:-1;11349:779:0:o;11602:102::-;11714:18;11735:64;11749:4;:20;;;11771:12;11785:4;:13;;;11735;:64::i;:::-;11714:85;;11810:18;11877:15;;11859:4;:15;;;11844:12;;11831:10;:25;;;;:::i;:::-;:43;;;;:::i;:::-;:61;;;;:::i;:::-;11810:82;-1:-1:-1;11907:14:0;;11903:83;;11938:4;;:36;;-1:-1:-1;;;11938:36:0;;11956:4;11938:36;;;8171:51:1;8238:18;;;8231:34;;;-1:-1:-1;;;;;11938:4:0;;;;:9;;8144:18:1;;11938:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11903:83;12065:8;12045:17;:10;12058:4;12045:17;:::i;:::-;:28;;;;:::i;:::-;12021:4;:20;;;:53;;;;:::i;:::-;11998:20;;;:76;-1:-1:-1;;12108:12:0;12085:20;;;;:35;;;;-1:-1:-1;;11349:779:0:o;14634:662::-;5852:1;6072:7;;:19;;6064:63;;;;-1:-1:-1;;;6064:63:0;;;;;;;:::i;:::-;5852:1;6205:7;:18;14706:15:::1;3871:10:::0;14706:30:::1;;14747:21;14771:8;14780:4;14771:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;14820;;;:8:::1;:14:::0;;;;;;-1:-1:-1;;;;;14820:23:0;::::1;::::0;;;;;;;14862:11;;14771:14:::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;14854:38:0::1;;;::::0;-1:-1:-1;;;14854:38:0;;8728:2:1;14854:38:0::1;::::0;::::1;8710:21:1::0;8767:2;8747:18;;;8740:30;-1:-1:-1;;;8786:18:1;;;8779:40;8836:18;;14854:38:0::1;8526:334:1::0;14854:38:0::1;14905:11;14947:3;14933:11;;14919:4;:11;;;:25;;;;:::i;:::-;:31;;;;:::i;:::-;14905:45;;14961:12;14990:3;14976:4;:11;;;:17;;;;:::i;:::-;14961:32:::0;-1:-1:-1;15008:7:0;;15004:82:::1;;15058:10;::::0;15032:12;;:42:::1;::::0;-1:-1:-1;;;;;15032:12:0;;::::1;::::0;15058:10:::1;15070:3:::0;15032:25:::1;:42::i;:::-;15096:12:::0;;:40:::1;::::0;-1:-1:-1;;;;;15096:12:0::1;15122:7:::0;15131:4;15096:25:::1;:40::i;:::-;15161:1;15147:15:::0;;;15173::::1;::::0;::::1;:19:::0;;;15203:18;;;:12:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;15203:27:0;::::1;::::0;;;;;;;;;:31;;;;15250:38;160:25:1;;;15203:18:0;;:27;15250:38:::1;::::0;133:18:1;15250:38:0::1;14:177:1::0;11161:180:0;11223:8;:15;11206:14;11249:85;11277:6;11271:3;:12;11249:85;;;11307:15;11318:3;11307:10;:15::i;:::-;11285:5;;;;:::i;:::-;;;;11249:85;;;;11195:146;11161:180::o;5173:148::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;5280:1:::1;5264:6:::0;;5243:40:::1;::::0;-1:-1:-1;;;;;5264:6:0;;::::1;::::0;5243:40:::1;::::0;5280:1;;5243:40:::1;5311:1;5294:19:::0;;-1:-1:-1;;;;;;5294:19:0::1;::::0;;5173:148::o;10037:159::-;10132:7;10175:13;10160:11;10166:5;10160:3;:11;:::i;:::-;10159:29;;;;:::i;:::-;10152:36;10037:159;-1:-1:-1;;;;10037:159:0:o;12136:1501::-;5852:1;6072:7;;:19;;6064:63;;;;-1:-1:-1;;;6064:63:0;;;;;;;:::i;:::-;5852:1;6205:7;:18;12241:8:::1;:14:::0;;12250:4;;12241:14;::::1;;;;;:::i;:::-;;;;;;;;;;;:26;;;;;;;;;;;;12233:47;;;::::0;-1:-1:-1;;;12233:47:0;;9207:2:1;12233:47:0::1;::::0;::::1;9189:21:1::0;9246:1;9226:18;;;9219:29;-1:-1:-1;;;9264:18:1;;;9257:38;9312:18;;12233:47:0::1;9005:331:1::0;12233:47:0::1;12293:15;12338:24:::0;;;:18:::1;:24;::::0;;;;;;;3871:10;12338:33;;;;;;;;;12334:122:::1;;12393:24;::::0;;;:18:::1;:24;::::0;;;;;;;-1:-1:-1;;;;;12393:33:0;::::1;::::0;;;;;;;12429:15:::1;12393:51:::0;;12334:122:::1;-1:-1:-1::0;;;;;12470:16:0;;::::1;12498:1;12470:16:::0;;;:7:::1;:16;::::0;;;;;::::1;:30:::0;:56;::::1;;;-1:-1:-1::0;;;;;;12504:22:0;::::1;::::0;::::1;12470:56;:79;;;;;12542:7;-1:-1:-1::0;;;;;12530:19:0::1;:8;-1:-1:-1::0;;;;;12530:19:0::1;;;12470:79;:103;;;;-1:-1:-1::0;;;;;;12554:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;12553:20;12470:103;12466:205;;;-1:-1:-1::0;;;;;12590:16:0;;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:27;;-1:-1:-1;;;;;;12590:27:0::1;::::0;;::::1;::::0;;::::1;::::0;;12632:20;;;:10:::1;:20:::0;;;:27;;-1:-1:-1;;12632:27:0::1;-1:-1:-1::0;12632:27:0::1;::::0;;12466:205:::1;12681:23;::::0;;;:17:::1;:23;::::0;;;;;;;-1:-1:-1;;;;;12681:32:0;::::1;::::0;;;;;;;12716:15:::1;12681:50:::0;;12768:8:::1;:14:::0;;12699:4;;12768:14;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;12817;;;:8:::1;:14:::0;;;;;;-1:-1:-1;;;;;12817:23:0;::::1;::::0;;;;;;;12768:14:::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;12851:16:0::1;12826:4:::0;12851:10:::1;:16::i;:::-;12884:11:::0;;:15;12880:258:::1;;12916:15;12978:4;:15;;;12971:4;12948;:20;;;12934:4;:11;;;:34;;;;:::i;:::-;:41;;;;:::i;:::-;:59;;;;:::i;:::-;12916:77:::0;-1:-1:-1;13012:11:0;;13008:119:::1;;13074:18;::::0;;;:12:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;13074:27:0;::::1;::::0;;;;;;;;:37:::1;::::0;13104:7;;13074:37:::1;:::i;:::-;13044:18;::::0;;;:12:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;13044:27:0;::::1;::::0;;;;;;;:67;13008:119:::1;12901:237;12880:258;13152:11:::0;;13148:365:::1;;13180:11;13217:3;13204:10;;13194:7;:20;;;;:::i;:::-;:26;;;;:::i;:::-;13180:40:::0;-1:-1:-1;13235:12:0::1;13250:13;13180:40:::0;13250:7;:13:::1;:::i;:::-;13235:28:::0;-1:-1:-1;13282:7:0;;13278:103:::1;;13349:10;::::0;13310:12;;:55:::1;::::0;-1:-1:-1;;;;;13310:12:0;;::::1;::::0;13340:7;;13349:10:::1;13361:3:::0;13310:29:::1;:55::i;:::-;13395:12:::0;;:59:::1;::::0;-1:-1:-1;;;;;13395:12:0::1;13425:7:::0;13442:4:::1;13449::::0;13395:29:::1;:59::i;:::-;13483:11:::0;;:18:::1;::::0;13497:4;;13483:18:::1;:::i;:::-;13469:32:::0;;-1:-1:-1;;13148:365:0::1;13555:20;::::0;::::1;::::0;13541:11;;13578:4:::1;::::0;13541:34:::1;::::0;::::1;:::i;:::-;:41;;;;:::i;:::-;13523:15;::::0;::::1;:59:::0;13598:31:::1;::::0;160:25:1;;;13615:4:0;;-1:-1:-1;;;;;13598:31:0;::::1;::::0;::::1;::::0;148:2:1;133:18;13598:31:0::1;14:177:1::0;10204:949:0;10279:7;10299:21;10323:8;10332:4;10323:14;;;;;;;;:::i;:::-;;;;;;;;;10372;;;:8;:14;;;;;;-1:-1:-1;;;;;10372:21:0;;;;;;;;;;10323:14;;;;;;;;10430:20;;;;10480:12;;:37;;-1:-1:-1;;;10480:37:0;;10511:4;10480:37;;;1918:51:1;10323:14:0;;-1:-1:-1;10372:21:0;;10323:14;10480:12;;;;;:22;;1891:18:1;;10480:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10461:56;;10547:4;:20;;;10532:12;:35;:52;;;;-1:-1:-1;10571:13:0;;;10532:52;10528:348;;;10601:18;10622:64;10636:4;:20;;;10658:12;10672:4;:13;;;10622;:64::i;:::-;10601:85;;10701:18;10768:15;;10750:4;:15;;;10735:12;;10722:10;:25;;;;:::i;:::-;:43;;;;:::i;:::-;:61;;;;:::i;:::-;10701:82;-1:-1:-1;10855:8:0;10835:17;10701:82;10848:4;10835:17;:::i;:::-;:28;;;;:::i;:::-;10816:48;;:15;:48;:::i;:::-;10798:66;;10586:290;;10528:348;10886:14;10960:18;;;:12;:18;;;;;;;;-1:-1:-1;;;;;10960:25:0;;;;;;;;;;10942:15;;;;10903:11;;10935:4;;10903:29;;10917:15;;10903:29;:::i;:::-;:36;;;;:::i;:::-;:54;;;;:::i;:::-;:82;;;;:::i;:::-;11000:21;;;;10886:99;;-1:-1:-1;11000:21:0;;10996:126;;;11038:11;11073:3;11061:9;;11052:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;11038:38;-1:-1:-1;11098:12:0;11038:38;11098:6;:12;:::i;:::-;11091:19;;;;;;;;;;10996:126;11139:6;10204:949;-1:-1:-1;;;;;;;10204:949:0:o;17199:325::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;17274:10:::1;;17259:12;:25;17251:58;;;::::0;-1:-1:-1;;;17251:58:0;;9543:2:1;17251:58:0::1;::::0;::::1;9525:21:1::0;9582:2;9562:18;;;9555:30;-1:-1:-1;;;9601:18:1;;;9594:50;9661:18;;17251:58:0::1;9341:344:1::0;17251:58:0::1;17339:8;:15:::0;17322:14:::1;17365:114;17393:6;17387:3;:12;17365:114;;;17455:12;17423:8;17432:3;17423:13;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:29:::1;:13;::::0;;::::1;;:29;:44:::0;17401:5:::1;::::0;::::1;:::i;:::-;;;17365:114;;;-1:-1:-1::0;;17504:12:0::1;17491:10;:25:::0;17199:325::o;17532:120::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;17638:6:::1;17609:8;17618:4;17609:14;;;;;;;;:::i;:::-;;;;;;;;;;;:26;;;:35;;;;;;;;;;;;;;;;;;17532:120:::0;;:::o;17660:298::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;17790:2:::1;17776:11;:16;:37;;;;;17811:2;17796:12;:17;17776:37;:56;;;;;17830:2;17817:10;:15;17776:56;17768:77;;;::::0;-1:-1:-1;;;17768:77:0;;9892:2:1;17768:77:0::1;::::0;::::1;9874:21:1::0;9931:1;9911:18;;;9904:29;-1:-1:-1;;;9949:18:1;;;9942:38;9997:18;;17768:77:0::1;9690:331:1::0;17768:77:0::1;17856:10;:24:::0;;;;17891:11:::1;:26:::0;17928:9:::1;:22:::0;17660:298::o;18118:164::-;18194:10;;-1:-1:-1;;;;;18194:10:0;3871;-1:-1:-1;;;;;18178:26:0;;:53;;;-1:-1:-1;4781:7:0;4808:6;-1:-1:-1;;;;;4808:6:0;3871:10;18208:23;18178:53;18170:72;;;;-1:-1:-1;;;18170:72:0;;10228:2:1;18170:72:0;;;10210:21:1;10267:1;10247:18;;;10240:29;-1:-1:-1;;;10285:18:1;;;10278:36;10331:18;;18170:72:0;10026:329:1;18170:72:0;18253:10;:21;;-1:-1:-1;;;;;;18253:21:0;-1:-1:-1;;;;;18253:21:0;;;;;;;;;;18118:164::o;17966:144::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;18051:4:::1;:12:::0;;-1:-1:-1;;;;;;18051:12:0::1;-1:-1:-1::0;;;;;18051:12:0;;;::::1;::::0;;;::::1;::::0;;;18074::::1;:28:::0;17966:144::o;15556:1349::-;5852:1;6072:7;;:19;;6064:63;;;;-1:-1:-1;;;6064:63:0;;;;;;;:::i;:::-;5852:1;6205:7;:18;6460:9:::1;6473:10;6460:23;6452:53;;;::::0;-1:-1:-1;;;6452:53:0;;10562:2:1;6452:53:0::1;::::0;::::1;10544:21:1::0;10601:2;10581:18;;;10574:30;-1:-1:-1;;;10620:18:1;;;10613:47;10677:18;;6452:53:0::1;10360:341:1::0;6452:53:0::1;3871:10:::0;15675:25:::2;15686:4:::0;3871:10;15675::::2;:25::i;:::-;15667:48;;;::::0;-1:-1:-1;;;15667:48:0;;10908:2:1;15667:48:0::2;::::0;::::2;10890:21:1::0;10947:2;10927:18;;;10920:30;-1:-1:-1;;;10966:18:1;;;10959:40;11016:18;;15667:48:0::2;10706:334:1::0;15667:48:0::2;15728:21;15752:8;15761:4;15752:14;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;15801;;;:8:::2;:14:::0;;;;;;-1:-1:-1;;;;;15801:23:0;::::2;::::0;;;;;;;15752:14:::2;::::0;;::::2;::::0;;::::2;::::0;-1:-1:-1;15835:16:0::2;15810:4:::0;15835:10:::2;:16::i;:::-;15868:11:::0;;:15;15864:258:::2;;15900:15;15962:4;:15;;;15955:4;15932;:20;;;15918:4;:11;;;:34;;;;:::i;:::-;:41;;;;:::i;:::-;:59;;;;:::i;:::-;15900:77:::0;-1:-1:-1;15996:11:0;;15992:119:::2;;16058:18;::::0;;;:12:::2;:18;::::0;;;;;;;-1:-1:-1;;;;;16058:27:0;::::2;::::0;;;;;;;;:37:::2;::::0;16088:7;;16058:37:::2;:::i;:::-;16028:18;::::0;;;:12:::2;:18;::::0;;;;;;;-1:-1:-1;;;;;16028:27:0;::::2;::::0;;;;;;;:67;15992:119:::2;15885:237;15864:258;16164:20;::::0;::::2;::::0;16150:11;;16187:4:::2;::::0;16150:34:::2;::::0;::::2;:::i;:::-;:41;;;;:::i;:::-;16132:15;::::0;::::2;:59:::0;16206:14:::2;16223:18:::0;;;:12:::2;:18;::::0;;;;;;;-1:-1:-1;;;;;16223:27:0;::::2;::::0;;;;;;;;16269:10;16261:33:::2;;;::::0;-1:-1:-1;;;16261:33:0;;11247:2:1;16261:33:0::2;::::0;::::2;11229:21:1::0;11286:2;11266:18;;;11259:30;-1:-1:-1;;;11305:18:1;;;11298:40;11355:18;;16261:33:0::2;11045:334:1::0;16261:33:0::2;16337:1;16307:18:::0;;;:12:::2;:18;::::0;;;;;;;-1:-1:-1;;;;;16307:27:0;::::2;::::0;;;;;;;:31;16353:21:::2;::::0;::::2;::::0;::::2;;16349:503;;;16391:11;16426:3;16414:9;;16405:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;16391:38:::0;-1:-1:-1;16448:7:0;;16444:247:::2;;-1:-1:-1::0;;;;;16480:16:0;;::::2;16508:1;16480:16:::0;;;:7:::2;:16;::::0;;;;;::::2;16476:200;;16552:10;::::0;16535:33:::2;::::0;-1:-1:-1;;;;;16552:10:0::2;16564:3:::0;16535:16:::2;:33::i;:::-;16476:200;;;-1:-1:-1::0;;;;;16634:16:0;;::::2;;::::0;;;:7:::2;:16;::::0;;;;;16617:39:::2;::::0;16634:16:::2;16652:3:::0;16617:16:::2;:39::i;:::-;16714:12;16723:3:::0;16714:6;:12:::2;:::i;:::-;16705:21;;16741:33;16758:7;16767:6;16741:16;:33::i;:::-;16376:410;16349:503;;;16807:33;16824:7;16833:6;16807:16;:33::i;:::-;16884:4;16875:7;-1:-1:-1::0;;;;;16867:30:0::2;;16890:6;16867:30;;;;160:25:1::0;;148:2;133:18;;14:177;16867:30:0::2;;;;;;;;-1:-1:-1::0;;5808:1:0;6384:22;;-1:-1:-1;;;15556:1349:0:o;8525:882::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;8764:11:::1;8760:61;;;8792:17;:15;:17::i;:::-;8831:23;8872:10;;8857:12;:25;:53;;8900:10;;8857:53;;;8885:12;8857:53;8831:79;;8957:11;8939:15;;:29;;;;:::i;:::-;8921:15;:47:::0;9007:381:::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;9007:381:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;9007:381:0;;;;;;;;;;;;;;;;;;;::::1;;::::0;;;;;;9368:4:::1;9007:381:::0;;;;;;8979:8:::1;:420:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;8979:420:0::1;::::0;;;::::1;;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8979:420:0;;;;;;;;;;;;;;;;-1:-1:-1;;8979:420:0;;;;::::1;;-1:-1:-1::0;;8979:420:0;;;;;;::::1;;;;::::0;;8525:882::o;5476:244::-;4336:6;;-1:-1:-1;;;;;4336:6:0;3871:10;4336:22;4328:53;;;;-1:-1:-1;;;4328:53:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5565:22:0;::::1;5557:73;;;::::0;-1:-1:-1;;;5557:73:0;;11586:2:1;5557:73:0::1;::::0;::::1;11568:21:1::0;11625:2;11605:18;;;11598:30;11664:34;11644:18;;;11637:62;-1:-1:-1;;;11715:18:1;;;11708:36;11761:19;;5557:73:0::1;11384:402:1::0;5557:73:0::1;5667:6;::::0;;5646:38:::1;::::0;-1:-1:-1;;;;;5646:38:0;;::::1;::::0;5667:6;::::1;::::0;5646:38:::1;::::0;::::1;5695:6;:17:::0;;-1:-1:-1;;;;;;5695:17:0::1;-1:-1:-1::0;;;;;5695:17:0;;;::::1;::::0;;;::::1;::::0;;5476:244::o;2997:211::-;3141:58;;-1:-1:-1;;;;;8189:32:1;;3141:58:0;;;8171:51:1;8238:18;;;8231:34;;;3114:86:0;;3134:5;;-1:-1:-1;;;3164:23:0;8144:18:1;;3141:58:0;;;;-1:-1:-1;;3141:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;3141:58:0;-1:-1:-1;;;;;;3141:58:0;;;;;;;;;;3114:19;:86::i;:::-;2997:211;;;:::o;3216:248::-;3387:68;;-1:-1:-1;;;;;12049:15:1;;;3387:68:0;;;12031:34:1;12101:15;;12081:18;;;12074:43;12133:18;;;12126:34;;;3360:96:0;;3380:5;;-1:-1:-1;;;3410:27:0;11966:18:1;;3387:68:0;11791:375:1;3360:96:0;3216:248;;;;:::o;16913:278::-;17007:4;;:29;;-1:-1:-1;;;17007:29:0;;17030:4;17007:29;;;1918:51:1;16989:15:0;;-1:-1:-1;;;;;17007:4:0;;:14;;1891:18:1;;17007:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16989:47;;17061:7;17051;:17;17047:137;;;17085:4;;:27;;-1:-1:-1;;;17085:27:0;;-1:-1:-1;;;;;8189:32:1;;;17085:27:0;;;8171:51:1;8238:18;;;8231:34;;;17085:4:0;;;;:13;;8144:18:1;;17085:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17047:137::-;17145:4;;:27;;-1:-1:-1;;;17145:27:0;;-1:-1:-1;;;;;8189:32:1;;;17145:27:0;;;8171:51:1;8238:18;;;8231:34;;;17145:4:0;;;;:13;;8144:18:1;;17145:27:0;7997:274:1;3472:263:0;3553:23;3579:39;3607:4;3579:39;;;;;;;;;;;;;-1:-1:-1;;;3579:39:0;;;3587:5;-1:-1:-1;;;;;3579:27:0;;;:39;;;;;:::i;:::-;3633:17;;3553:65;;-1:-1:-1;3633:21:0;3629:99;;3690:10;3679:30;;;;;;;;;;;;:::i;:::-;3671:45;;;;-1:-1:-1;;;3671:45:0;;12373:2:1;3671:45:0;;;12355:21:1;12412:1;12392:18;;;12385:29;-1:-1:-1;;;12430:18:1;;;12423:32;12472:18;;3671:45:0;12171:325:1;1430:230:0;1567:12;1599:53;1622:6;1630:4;1636:1;1639:12;2401;2434:18;2445:6;2434:10;:18::i;:::-;2426:33;;;;-1:-1:-1;;;2426:33:0;;12703:2:1;2426:33:0;;;12685:21:1;12742:1;12722:18;;;12715:29;-1:-1:-1;;;12760:18:1;;;12753:32;12802:18;;2426:33:0;12501:325:1;2426:33:0;2471:12;2485:23;2512:6;-1:-1:-1;;;;;2512:11:0;2532:8;2542:4;2512:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:77;;;;2562:7;2558:368;;;2593:10;-1:-1:-1;2586:17:0;;-1:-1:-1;2586:17:0;2558:368;2640:17;;:21;2636:279;;2743:10;2737:17;2804:15;2791:10;2787:2;2783:19;2776:44;2636:279;2886:12;2879:20;;-1:-1:-1;;;2879:20:0;;;;;;;;:::i;408:619::-;468:4;936:20;;779:66;976:23;;;;;;:42;;-1:-1:-1;;1003:15:0;;;968:51;-1:-1:-1;;408:619:0:o;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;1124:131::-;-1:-1:-1;;;;;1199:31:1;;1189:42;;1179:70;;1245:1;1242;1235:12;1179:70;1124:131;:::o;1260:315::-;1328:6;1336;1389:2;1377:9;1368:7;1364:23;1360:32;1357:52;;;1405:1;1402;1395:12;1357:52;1441:9;1428:23;1418:33;;1501:2;1490:9;1486:18;1473:32;1514:31;1539:5;1514:31;:::i;:::-;1564:5;1554:15;;;1260:315;;;;;:::o;1980:118::-;2066:5;2059:13;2052:21;2045:5;2042:32;2032:60;;2088:1;2085;2078:12;2103:651;2201:6;2209;2217;2225;2233;2241;2294:3;2282:9;2273:7;2269:23;2265:33;2262:53;;;2311:1;2308;2301:12;2262:53;2347:9;2334:23;2324:33;;2404:2;2393:9;2389:18;2376:32;2366:42;;2455:2;2444:9;2440:18;2427:32;2417:42;;2506:2;2495:9;2491:18;2478:32;2468:42;;2560:3;2549:9;2545:19;2532:33;2574:28;2596:5;2574:28;:::i;:::-;2621:5;-1:-1:-1;2678:3:1;2663:19;;2650:33;2692:30;2650:33;2692:30;:::i;:::-;2741:7;2731:17;;;2103:651;;;;;;;;:::o;2759:248::-;2827:6;2835;2888:2;2876:9;2867:7;2863:23;2859:32;2856:52;;;2904:1;2901;2894:12;2856:52;-1:-1:-1;;2927:23:1;;;2997:2;2982:18;;;2969:32;;-1:-1:-1;2759:248:1:o;3012:247::-;3071:6;3124:2;3112:9;3103:7;3099:23;3095:32;3092:52;;;3140:1;3137;3130:12;3092:52;3179:9;3166:23;3198:31;3223:5;3198:31;:::i;:::-;3248:5;3012:247;-1:-1:-1;;;3012:247:1:o;3264:316::-;3341:6;3349;3357;3410:2;3398:9;3389:7;3385:23;3381:32;3378:52;;;3426:1;3423;3416:12;3378:52;-1:-1:-1;;3449:23:1;;;3519:2;3504:18;;3491:32;;-1:-1:-1;3570:2:1;3555:18;;;3542:32;;3264:316;-1:-1:-1;3264:316:1:o;3585:383::-;3662:6;3670;3678;3731:2;3719:9;3710:7;3706:23;3702:32;3699:52;;;3747:1;3744;3737:12;3699:52;3783:9;3770:23;3760:33;;3840:2;3829:9;3825:18;3812:32;3802:42;;3894:2;3883:9;3879:18;3866:32;3907:31;3932:5;3907:31;:::i;:::-;3957:5;3947:15;;;3585:383;;;;;:::o;4226:309::-;4291:6;4299;4352:2;4340:9;4331:7;4327:23;4323:32;4320:52;;;4368:1;4365;4358:12;4320:52;4404:9;4391:23;4381:33;;4464:2;4453:9;4449:18;4436:32;4477:28;4499:5;4477:28;:::i;4540:332::-;4625:6;4633;4686:2;4674:9;4665:7;4661:23;4657:32;4654:52;;;4702:1;4699;4692:12;4654:52;4741:9;4728:23;4760:31;4785:5;4760:31;:::i;:::-;4810:5;4862:2;4847:18;;;;4834:32;;-1:-1:-1;;;4540:332:1:o;5102:737::-;5213:6;5221;5229;5237;5245;5253;5306:3;5294:9;5285:7;5281:23;5277:33;5274:53;;;5323:1;5320;5313:12;5274:53;5362:9;5349:23;5381:31;5406:5;5381:31;:::i;:::-;5431:5;-1:-1:-1;5483:2:1;5468:18;;5455:32;;-1:-1:-1;5534:2:1;5519:18;;5506:32;;-1:-1:-1;5585:2:1;5570:18;;5557:32;;-1:-1:-1;5641:3:1;5626:19;;5613:33;5655:30;5613:33;5655:30;:::i;5844:127::-;5905:10;5900:3;5896:20;5893:1;5886:31;5936:4;5933:1;5926:15;5960:4;5957:1;5950:15;5976:127;6037:10;6032:3;6028:20;6025:1;6018:31;6068:4;6065:1;6058:15;6092:4;6089:1;6082:15;6108:128;6148:3;6179:1;6175:6;6172:1;6169:13;6166:39;;;6185:18;;:::i;:::-;-1:-1:-1;6221:9:1;;6108:128::o;6241:342::-;6443:2;6425:21;;;6482:2;6462:18;;;6455:30;-1:-1:-1;;;6516:2:1;6501:18;;6494:48;6574:2;6559:18;;6241:342::o;6588:125::-;6628:4;6656:1;6653;6650:8;6647:34;;;6661:18;;:::i;:::-;-1:-1:-1;6698:9:1;;6588:125::o;6718:355::-;6920:2;6902:21;;;6959:2;6939:18;;;6932:30;6998:33;6993:2;6978:18;;6971:61;7064:2;7049:18;;6718:355::o;7413:168::-;7453:7;7519:1;7515;7511:6;7507:14;7504:1;7501:21;7496:1;7489:9;7482:17;7478:45;7475:71;;;7526:18;;:::i;:::-;-1:-1:-1;7566:9:1;;7413:168::o;7586:217::-;7626:1;7652;7642:132;;7696:10;7691:3;7687:20;7684:1;7677:31;7731:4;7728:1;7721:15;7759:4;7756:1;7749:15;7642:132;-1:-1:-1;7788:9:1;;7586:217::o;7808:184::-;7878:6;7931:2;7919:9;7910:7;7906:23;7902:32;7899:52;;;7947:1;7944;7937:12;7899:52;-1:-1:-1;7970:16:1;;7808:184;-1:-1:-1;7808:184:1:o;8276:245::-;8343:6;8396:2;8384:9;8375:7;8371:23;8367:32;8364:52;;;8412:1;8409;8402:12;8364:52;8444:9;8438:16;8463:28;8485:5;8463:28;:::i;8865:135::-;8904:3;-1:-1:-1;;8925:17:1;;8922:43;;;8945:18;;:::i;:::-;-1:-1:-1;8992:1:1;8981:13;;8865:135::o;12831:258::-;12903:1;12913:113;12927:6;12924:1;12921:13;12913:113;;;13003:11;;;12997:18;12984:11;;;12977:39;12949:2;12942:10;12913:113;;;13044:6;13041:1;13038:13;13035:48;;;-1:-1:-1;;13079:1:1;13061:16;;13054:27;12831:258::o;13094:274::-;13223:3;13261:6;13255:13;13277:53;13323:6;13318:3;13311:4;13303:6;13299:17;13277:53;:::i;:::-;13346:16;;;;;13094:274;-1:-1:-1;;13094:274:1:o;13373:383::-;13522:2;13511:9;13504:21;13485:4;13554:6;13548:13;13597:6;13592:2;13581:9;13577:18;13570:34;13613:66;13672:6;13667:2;13656:9;13652:18;13647:2;13639:6;13635:15;13613:66;:::i;:::-;13740:2;13719:15;-1:-1:-1;;13715:29:1;13700:45;;;;13747:2;13696:54;;13373:383;-1:-1:-1;;13373:383:1:o
Metadata Hash
e71a2e6606506d29ebf656ac0d0cd615b76175bb32e26b2dbd98293d76cf4f33
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.