More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 51 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Compound | 9483349 | 19 mins ago | IN | 0 S | 0.0427023 | ||||
Compound | 9467969 | 2 hrs ago | IN | 0 S | 0.0428181 | ||||
Deposit | 9458324 | 3 hrs ago | IN | 0 S | 0.05525991 | ||||
Compound | 9450393 | 4 hrs ago | IN | 0 S | 0.0428181 | ||||
Compound | 9432106 | 6 hrs ago | IN | 0 S | 0.04954182 | ||||
Compound | 9413914 | 8 hrs ago | IN | 0 S | 0.0428181 | ||||
Compound | 9394138 | 10 hrs ago | IN | 0 S | 0.05047142 | ||||
Compound | 9372738 | 12 hrs ago | IN | 0 S | 0.0371987 | ||||
Compound | 9352636 | 14 hrs ago | IN | 0 S | 0.0370829 | ||||
Compound | 9334743 | 16 hrs ago | IN | 0 S | 0.04538241 | ||||
Compound | 9316634 | 18 hrs ago | IN | 0 S | 0.06705319 | ||||
Compound | 9297986 | 20 hrs ago | IN | 0 S | 0.04484179 | ||||
Compound | 9281133 | 22 hrs ago | IN | 0 S | 0.04032669 | ||||
Compound | 9265011 | 24 hrs ago | IN | 0 S | 0.0371987 | ||||
Compound | 9250383 | 26 hrs ago | IN | 0 S | 0.04801635 | ||||
Add Leftover Liq... | 9250114 | 26 hrs ago | IN | 0 S | 0.02611596 | ||||
Compound | 9234391 | 27 hrs ago | IN | 0 S | 0.0370877 | ||||
Compound | 9216360 | 29 hrs ago | IN | 0 S | 0.04305029 | ||||
Deposit | 9199913 | 31 hrs ago | IN | 0 S | 0.0487739 | ||||
Compound | 9168075 | 34 hrs ago | IN | 0 S | 0.10452746 | ||||
Compound | 9146142 | 36 hrs ago | IN | 0 S | 0.04653659 | ||||
Deposit | 9127528 | 38 hrs ago | IN | 0 S | 0.04611002 | ||||
Compound | 9124784 | 38 hrs ago | IN | 0 S | 0.03583185 | ||||
Deposit | 9122738 | 38 hrs ago | IN | 0 S | 0.04761203 | ||||
Deposit | 9120566 | 38 hrs ago | IN | 0 S | 0.0686305 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
9483349 | 19 mins ago | 3.82500022 S | ||||
9483349 | 19 mins ago | 44.45583537 S | ||||
9483349 | 19 mins ago | 47.00583552 S | ||||
9467969 | 2 hrs ago | 2.24461245 S | ||||
9467969 | 2 hrs ago | 44.76122307 S | ||||
9467969 | 2 hrs ago | 46.25763137 S | ||||
9458324 | 3 hrs ago | 1.50310945 S | ||||
9458324 | 3 hrs ago | 44.75452191 S | ||||
9458324 | 3 hrs ago | 45.75659488 S | ||||
9450393 | 4 hrs ago | 3.44777199 S | ||||
9450393 | 4 hrs ago | 42.30882288 S | ||||
9450393 | 4 hrs ago | 44.60733755 S | ||||
9432106 | 6 hrs ago | 3.67351905 S | ||||
9432106 | 6 hrs ago | 40.93381849 S | ||||
9432106 | 6 hrs ago | 43.3828312 S | ||||
9413914 | 8 hrs ago | 3.85333359 S | ||||
9413914 | 8 hrs ago | 39.5294976 S | ||||
9413914 | 8 hrs ago | 42.09838667 S | ||||
9394138 | 10 hrs ago | 3.56305823 S | ||||
9394138 | 10 hrs ago | 38.53532843 S | ||||
9394138 | 10 hrs ago | 40.91070059 S | ||||
9372738 | 12 hrs ago | 4.18020611 S | ||||
9372738 | 12 hrs ago | 36.73049447 S | ||||
9372738 | 12 hrs ago | 39.51729855 S | ||||
9352636 | 14 hrs ago | 4.24579603 S |
Loading...
Loading
Contract Name:
Vault
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-02-19 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.13; abstract contract ReentrancyGuard { uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } receive() external payable {} fallback() external payable {} function _nonReentrantBefore() private { if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } _status = ENTERED; } function _nonReentrantAfter() private { _status = NOT_ENTERED; } function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } } contract Vault is ReentrancyGuard { ISnakePool public pool; IRouter public router; IOracle public gsnakeOracle; IERC20 public token0; IERC20 public token1; IERC20 public stakeToken; IERC20 public rewardToken; IERC20 public wrappedSonic; address private treasury; address private creatorTreasury; address private owner; bool public active = true; bool public emergencyWithdrawn = false; uint256 public depositFee = 2; uint256 public vaultFee; uint256 public creatorFee; uint256 private lpPerTicket; uint256 public totalTickets; uint256 public compoundedAt; mapping(address => uint256) public userTickets; // Number of tickets per user event Deposit(address indexed user, uint256 amount, uint256 tickets); event Withdraw(address indexed user, uint256 amount); event Compound(uint256 rewardAmount, uint256 lpAmount); event ActiveStatusChanged(bool newStatus); constructor( address _treasury, uint256 _vaultFee, address _creatorTreasury, uint256 _creatorFee, address _pool, address _router, address _gsnakeOracle, IERC20 _stakeToken, IERC20 _rewardToken, IERC20 _token0, IERC20 _token1 ) { treasury = _treasury; vaultFee = _vaultFee; creatorTreasury = _creatorTreasury; creatorFee = _creatorFee; pool = ISnakePool(_pool); router = IRouter(_router); gsnakeOracle = IOracle(_gsnakeOracle); stakeToken = _stakeToken; rewardToken = _rewardToken; owner = msg.sender; lpPerTicket = 1e18; token0 = _token0; token1 = _token1; wrappedSonic = IERC20(0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38); require(_vaultFee + _creatorFee <= 100, "Invalid fee distribution"); rewardToken.approve(address(router), type(uint256).max); token0.approve(address(router), type(uint256).max); token1.approve(address(router), type(uint256).max); stakeToken.approve(address(pool), type(uint256).max); } modifier whenActive() { require(active, "Vault is not active"); _; } modifier onlyOwner() { require(msg.sender == owner, "Not the owner"); _; } function toggleActive() external onlyOwner { active = !active; emit ActiveStatusChanged(active); } function _swapRewardToSonic(uint256 rewardAmountIn) internal returns (uint256 sonicReceived) { IRouter.route[] memory path = new IRouter.route[](1); path[0] = IRouter.route(address(rewardToken), address(wrappedSonic), false); uint[] memory amounts = router.swapExactTokensForTokens( rewardAmountIn, 1, path, address(this), block.timestamp ); uint256 wrappedSonicReceived = amounts[amounts.length - 1]; IWETH(address(wrappedSonic)).withdraw(wrappedSonicReceived); sonicReceived = wrappedSonicReceived; } function _harvest() internal returns (uint256) { require(address(this).balance > 0, "No funds to harvest"); require(pool.pendingShareAndPendingRewards(0, address(this)) > pool.minClaimThreshold(), "No rewards to harvest"); uint256 balanceBefore = address(this).balance; pool.harvest{value: balanceBefore}(0); uint256 balanceAfter = address(this).balance; return balanceBefore - balanceAfter; } function _getRewards() internal returns (uint256 feePaid, uint256 rewards) { uint256 amountSonicToPay = _harvest(); feePaid = amountSonicToPay; rewards = rewardToken.balanceOf(address(this)); } function _swapToken0ForToken1(uint256 amount) internal returns (uint256 token1Received) { require(amount > 0, "No token0 to swap"); IRouter.route[] memory path = new IRouter.route[](1); path[0] = IRouter.route(address(token0), address(token1), true); router.swapExactTokensForTokens( amount, 1, path, address(this), block.timestamp ); token1Received = token1.balanceOf(address(this)); } function _swapToken1ForToken0(uint256 amount) internal returns (uint256 token0Received) { require(amount > 0, "No token1 to swap"); IRouter.route[] memory path = new IRouter.route[](1); path[0] = IRouter.route(address(token1), address(token0), true); router.swapExactTokensForTokens( amount, 1, path, address(this), block.timestamp ); token0Received = token0.balanceOf(address(this)); } function _swapLPToToken0(uint256 rewardAmount) internal returns (uint256) { require(rewardAmount > 0, "No token to swap"); IRouter.route[] memory path = new IRouter.route[](1); path[0] = IRouter.route(address(rewardToken), address(token0), false); router.swapExactTokensForTokens( rewardAmount, 1, path, address(this), block.timestamp ); return token0.balanceOf(address(this)); } function _swapLPToToken1(uint256 rewardAmount) internal returns (uint256) { require(rewardAmount > 0, "No token to swap"); IRouter.route[] memory path = new IRouter.route[](2); path[0] = IRouter.route(address(rewardToken), address(token0), false); path[1] = IRouter.route(address(token0), address(token1), true); router.swapExactTokensForTokens( rewardAmount, 1, path, address(this), block.timestamp ); return token1.balanceOf(address(this)); } function _addLiquidity() internal returns (uint256) { uint256 token0Balance = IERC20(token0).balanceOf(address(this)); uint256 token1Balance = IERC20(token1).balanceOf(address(this)); // add liquidity require(token0Balance > 0, "Insufficient balance for Token0 to provide liquidity"); require(token1Balance > 0, "Insufficient balance for Token1 to provide liquidity"); router.addLiquidity( address(token0), address(token1), true, token0Balance, token1Balance, 1, 1, address(this), block.timestamp ); return IERC20(stakeToken).balanceOf(address(this)); } function _recoverSonicFee(uint256 feePaid) internal returns (uint256, uint256) { uint256 requiredSonic = (feePaid * 150) / 100; IRouter.route[] memory path = new IRouter.route[](1); path[0] = IRouter.route(address(rewardToken), address(wrappedSonic), false); uint256[] memory amountsIn = router.getAmountsIn(requiredSonic, path); uint256 rewardTokensForSonic = amountsIn[0]; uint256 sonicReceived = _swapRewardToSonic(rewardTokensForSonic); require(sonicReceived >= requiredSonic, "Insufficient sonic received from swap"); return (sonicReceived, rewardTokensForSonic); } function addLeftoverLiquidity() external onlyOwner nonReentrant { uint256 token0Bal = token0.balanceOf(address(this)); uint256 token1Bal = token1.balanceOf(address(this)); require(token0Bal > 0 && token1Bal > 0, "No leftovers to add liquidity"); (uint256 optimalToken0, uint256 optimalToken1, ) = router.quoteAddLiquidity( address(token0), address(token1), true, token0Bal, token1Bal ); if (token0Bal > optimalToken0) { uint256 excessToken0 = token0Bal - optimalToken0; _swapToken0ForToken1(excessToken0); } else if (token1Bal > optimalToken1) { uint256 excessToken1 = token1Bal - optimalToken1; _swapToken1ForToken0(excessToken1); } uint256 stakeAmount = _addLiquidity(); require(stakeAmount > 0, "No LP tokens received"); _innerDeposit(); } function _updateVault() internal returns (uint256) { uint256 totalLp = totalDeposits(); uint256 netRewardTokens = 0; if (totalTickets > 0 && totalLp > 0) { uint256 rewardAmount = 0; uint256 feePaid = 0; if (pool.pendingShareAndPendingRewards(0, address(this)) > pool.minClaimThreshold()) { (feePaid, rewardAmount) = _getRewards(); } if (rewardAmount > 0) { (, uint256 rewardTokensForSonic) = _recoverSonicFee(feePaid); uint256 remainingReward = rewardAmount - rewardTokensForSonic; uint256 compoundAmount = (remainingReward * vaultFee) / 1000; uint256 creatorAmount = (remainingReward * creatorFee) / 1000; rewardToken.transfer(creatorTreasury, creatorAmount); rewardToken.transfer(treasury, compoundAmount); remainingReward = remainingReward - (compoundAmount + creatorAmount); (uint112 reserve0, uint112 reserve1, ) = IPair(address(stakeToken)).getReserves(); uint256 rewardForToken0 = (remainingReward * uint256(reserve0)) / (uint256(reserve0) + uint256(reserve1)); uint256 rewardForToken1 = remainingReward - rewardForToken0; uint256 token0Amount = _swapLPToToken0(rewardForToken0); uint256 token1Amount = _swapLPToToken1(rewardForToken1); (uint256 optimalToken0, uint256 optimalToken1, ) = router.quoteAddLiquidity( address(token0), address(token1), true, token0Amount, token1Amount ); if (token0Amount > optimalToken0) { uint256 excessToken0 = token0Amount - optimalToken0; _swapToken0ForToken1(excessToken0); } else if (token1Amount > optimalToken1) { uint256 excessToken1 = token1Amount - optimalToken1; _swapToken1ForToken0(excessToken1); } uint256 stakeAmount = _addLiquidity(); require(stakeAmount > 0, "No LP tokens received"); _innerDeposit(); compoundedAt = block.timestamp; netRewardTokens = remainingReward; } } return netRewardTokens; } function _innerDeposit() internal returns (uint256) { uint256 lpAmount = stakeToken.balanceOf(address(this)); if (lpAmount > 0) { pool.deposit(0, lpAmount); uint256 totalDeps = totalDeposits(); lpPerTicket = (totalDeps * 1e18) / totalTickets; } return lpPerTicket; } function _withdraw(uint256 amount) internal { if (totalTickets != 0) { _updateVault(); } uint256 tickets = userTickets[msg.sender]; require(tickets > 0, "No tickets to withdraw"); uint256 userLp = (tickets * lpPerTicket) / 1e18; require(userLp >= amount, "Insufficient balance"); uint256 withdrawTickets = (amount * 1e18) / lpPerTicket; userTickets[msg.sender] -= withdrawTickets; totalTickets -= withdrawTickets; pool.withdraw(0, amount); stakeToken.transfer(msg.sender, amount); emit Withdraw(msg.sender, amount); } function deposit(uint256 amount) external nonReentrant whenActive { if (totalTickets != 0) { _updateVault(); } stakeToken.transferFrom(msg.sender, address(this), amount); uint256 fee = (amount * depositFee) / 1000; stakeToken.transfer(treasury, fee); amount -= fee; (uint256 amountBefore,) = pool.userInfo(0, address(this)); pool.deposit(0, amount); (uint256 amountAfter ,) = pool.userInfo(0, address(this)); uint256 depositedAmount = amountAfter - amountBefore; uint256 tickets = (depositedAmount * 1e18) / lpPerTicket; userTickets[msg.sender] += tickets; totalTickets += tickets; emit Deposit(msg.sender, depositedAmount, tickets); } function withdraw(uint256 amount) external nonReentrant { require(!emergencyWithdrawn, "Use userEmergencyWithdraw instead"); _withdraw(amount); } function withdrawAll() external nonReentrant { require(!emergencyWithdrawn, "Use userEmergencyWithdraw instead"); uint256 tickets = userTickets[msg.sender]; uint256 userLp = (tickets * lpPerTicket) / 1e18; _withdraw(userLp); } function userEmergencyWithdraw() external nonReentrant { require(emergencyWithdrawn, "Emergency withdraw not enabled"); uint256 tickets = userTickets[msg.sender]; if (tickets == 0) return; uint256 userLp = (tickets * lpPerTicket) / 1e18; userTickets[msg.sender] = 0; totalTickets -= tickets; stakeToken.transfer(msg.sender, userLp); emit Withdraw(msg.sender, userLp); } function emergencyWithdraw() external onlyOwner nonReentrant { pool.emergencyWithdraw(0); emergencyWithdrawn = true; active = false; emit ActiveStatusChanged(active); } function compound() external whenActive { uint256 rewards = _updateVault(); require(rewards > 0, "No rewards to compound"); emit Compound(rewardToken.balanceOf(address(this)), rewards); } function totalDeposits() public view returns (uint256) { (uint256 amount,) = pool.userInfo(0, address(this)); return amount; } function lpForUser(address _user) external view returns (uint256) { uint256 tickets = userTickets[_user]; if (tickets == 0) return 0; uint256 _lpPerTicket = lpPerTicket; uint256 totalLp = totalDeposits(); if (totalTickets > 0 && totalLp > 0) { uint256 rewardAmount = rewardToken.balanceOf(address(this)); if (rewardAmount > 0) { _lpPerTicket += (rewardAmount * 1e18) / totalTickets; } } return (tickets * _lpPerTicket) / 1e18; } function addFunds() external payable onlyOwner { require(msg.value > 0, "No funds sent"); } function takeFunds(uint256 amount) external onlyOwner nonReentrant { require(address(this).balance >= amount, "Insufficient balance"); (bool sent, ) = payable(owner).call{value: amount}(""); require(sent, "Transfer failed"); } function takeAllFunds() external onlyOwner nonReentrant { uint256 balance = address(this).balance; require(balance > 0, "No funds available"); (bool sent, ) = payable(owner).call{value: balance}(""); require(sent, "Transfer failed"); } } interface ISnakePool { function deposit(uint _pid, uint _amount) external; function withdraw(uint _pid, uint _amount) external; function emergencyWithdraw(uint _pid) external; function harvest(uint _pid) payable external; function harvestAll() payable external; function userInfo(uint256 _pid, address _user) external view returns (uint256 amount, uint256 rewardDebt); function poolInfo(uint256 _pid) external view returns (ISnakePool.PoolInfo memory); function pendingRewards(uint256 _pid, address _user) external view returns (uint256); function pendingShareAndPendingRewards(uint _pid, address _user) external view returns (uint256); function minClaimThreshold() external view returns (uint256); function pegStabilityModuleFeeEnabled() external view returns (bool); function pegStabilityModuleFee() external view returns (uint256); enum GaugeDex { NONE, SHADOW, SWAPX } struct GaugeInfo { bool isGauge; // If this is a gauge address gauge; // The gauge GaugeDex gaugeDex; // Dex of the gauge } struct PoolInfo { IERC20 token; // Address of LP token contract. uint256 depFee; // deposit fee that is applied to created pool. uint256 allocPoint; // How many allocation points assigned to this pool. GSNAKEs to distribute per block. uint256 lastRewardTime; // Last time that GSNAKEs distribution occurs. uint256 accGsnakePerShare; // Accumulated GSNAKEs per share, times 1e18. See below. bool isStarted; // if lastRewardTime has passed GaugeInfo gaugeInfo; // Gauge info (does this pool have a gauge and where is it) uint256 poolGsnakePerSec; // rewards per second for pool (acts as allocPoint) } } interface IOracle { function update() external; function consult(address _token, uint256 _amountIn) external view returns (uint256 amountOut); function twap(address _token, uint256 _amountIn) external view returns (uint256 _amountOut); } interface IRouter { struct route { address from; address to; bool stable; } function addLiquidity( address tokenA, address tokenB, bool stable, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns ( uint amountA, uint amountB, uint liquidity ); function getAmountsIn( uint256 amountOut, route[] memory routes ) external returns ( uint256[] memory amounts ); function quoteAddLiquidity( address tokenA, address tokenB, bool stable, uint256 amountADesired, uint256 amountBDesired ) external view returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, route[] calldata routes, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, route[] memory routes, address to, uint256 deadline ) external; } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IWETH is IERC20 { function withdraw(uint256 wad) external; } interface IPair { function getReserves() external view returns ( uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast ); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_vaultFee","type":"uint256"},{"internalType":"address","name":"_creatorTreasury","type":"address"},{"internalType":"uint256","name":"_creatorFee","type":"uint256"},{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_gsnakeOracle","type":"address"},{"internalType":"contract IERC20","name":"_stakeToken","type":"address"},{"internalType":"contract IERC20","name":"_rewardToken","type":"address"},{"internalType":"contract IERC20","name":"_token0","type":"address"},{"internalType":"contract IERC20","name":"_token1","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"}],"name":"ActiveStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lpAmount","type":"uint256"}],"name":"Compound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tickets","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"addLeftoverLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compoundedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creatorFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gsnakeOracle","outputs":[{"internalType":"contract IOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"lpForUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract ISnakePool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeAllFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"takeFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"userEmergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrappedSonic","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526001600b60146101000a81548160ff0219169083151502179055506000600b60156101000a81548160ff0219169083151502179055506002600c553480156200004c57600080fd5b50604051620060eb380380620060eb833981810160405281019062000072919062000865565b60016000819055508a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089600d8190555088600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600e8190555086600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000600f8190555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073039e2fb66102314ce7b64ce5ce3e5183bc94ad38600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064888b620003869190620009a1565b1115620003ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003c19062000a5f565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200046b92919062000aa3565b6020604051808303816000875af11580156200048b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b1919062000b0d565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200055392919062000aa3565b6020604051808303816000875af115801562000573573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000599919062000b0d565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200063b92919062000aa3565b6020604051808303816000875af11580156200065b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000681919062000b0d565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200072392919062000aa3565b6020604051808303816000875af115801562000743573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000769919062000b0d565b50505050505050505050505062000b3f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007ad8262000780565b9050919050565b620007bf81620007a0565b8114620007cb57600080fd5b50565b600081519050620007df81620007b4565b92915050565b6000819050919050565b620007fa81620007e5565b81146200080657600080fd5b50565b6000815190506200081a81620007ef565b92915050565b60006200082d82620007a0565b9050919050565b6200083f8162000820565b81146200084b57600080fd5b50565b6000815190506200085f8162000834565b92915050565b60008060008060008060008060008060006101608c8e0312156200088e576200088d6200077b565b5b60006200089e8e828f01620007ce565b9b50506020620008b18e828f0162000809565b9a50506040620008c48e828f01620007ce565b9950506060620008d78e828f0162000809565b9850506080620008ea8e828f01620007ce565b97505060a0620008fd8e828f01620007ce565b96505060c0620009108e828f01620007ce565b95505060e0620009238e828f016200084e565b945050610100620009378e828f016200084e565b9350506101206200094b8e828f016200084e565b9250506101406200095f8e828f016200084e565b9150509295989b509295989b9093969950565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009ae82620007e5565b9150620009bb83620007e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620009f357620009f262000972565b5b828201905092915050565b600082825260208201905092915050565b7f496e76616c69642066656520646973747269627574696f6e0000000000000000600082015250565b600062000a47601883620009fe565b915062000a548262000a0f565b602082019050919050565b6000602082019050818103600083015262000a7a8162000a38565b9050919050565b62000a8c81620007a0565b82525050565b62000a9d81620007e5565b82525050565b600060408201905062000aba600083018562000a81565b62000ac9602083018462000a92565b9392505050565b60008115159050919050565b62000ae78162000ad0565b811462000af357600080fd5b50565b60008151905062000b078162000adc565b92915050565b60006020828403121562000b265762000b256200077b565b5b600062000b368482850162000af6565b91505092915050565b61559c8062000b4f6000396000f3fe6080604052600436106101c65760003560e01c806380017f4e116100f7578063db2e21bc11610095578063f69e204611610064578063f69e20461461059b578063f7c618c1146105b2578063f887ea40146105dd578063ff77cce414610608576101cd565b8063db2e21bc14610503578063dd11247e1461051a578063e28701ee14610545578063e88958dc14610570576101cd565b8063a955c7a7116100d1578063a955c7a71461046d578063b6b55f2514610484578063ce75d565146104ad578063d21220a7146104d8576101cd565b806380017f4e1461040f578063853828b61461044c578063a26759cb14610463576101cd565b806329c68dc11161016457806351ed6a301161013e57806351ed6a301461036557806367a52793146103905780636b527c0c146103bb5780637d882097146103e4576101cd565b806329c68dc1146102e85780632beddd35146102ff5780632e1a7d4d1461033c576101cd565b80630dfe1681116101a05780630dfe1681146102505780630f0324501461027b57806316f0115b146102925780632760f89b146102bd576101cd565b80630169050d146101cf57806301ac145b146101fa57806302fb0c5e14610225576101cd565b366101cd57005b005b3480156101db57600080fd5b506101e461061f565b6040516101f1919061403a565b60405180910390f35b34801561020657600080fd5b5061020f610625565b60405161021c919061403a565b60405180910390f35b34801561023157600080fd5b5061023a61062b565b6040516102479190614070565b60405180910390f35b34801561025c57600080fd5b5061026561063e565b604051610272919061410a565b60405180910390f35b34801561028757600080fd5b50610290610664565b005b34801561029e57600080fd5b506102a761088c565b6040516102b49190614146565b60405180910390f35b3480156102c957600080fd5b506102d26108b2565b6040516102df9190614182565b60405180910390f35b3480156102f457600080fd5b506102fd6108d8565b005b34801561030b57600080fd5b50610326600480360381019061032191906141ef565b6109da565b604051610333919061403a565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190614248565b610b5f565b005b34801561037157600080fd5b5061037a610bcb565b604051610387919061410a565b60405180910390f35b34801561039c57600080fd5b506103a5610bf1565b6040516103b2919061403a565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190614248565b610bf7565b005b3480156103f057600080fd5b506103f9610dac565b604051610406919061403a565b60405180910390f35b34801561041b57600080fd5b50610436600480360381019061043191906141ef565b610e57565b604051610443919061403a565b60405180910390f35b34801561045857600080fd5b50610461610e6f565b005b61046b610f45565b005b34801561047957600080fd5b5061048261101a565b005b34801561049057600080fd5b506104ab60048036038101906104a69190614248565b6113e6565b005b3480156104b957600080fd5b506104c26118be565b6040516104cf919061410a565b60405180910390f35b3480156104e457600080fd5b506104ed6118e4565b6040516104fa919061410a565b60405180910390f35b34801561050f57600080fd5b5061051861190a565b005b34801561052657600080fd5b5061052f611ab6565b60405161053c919061403a565b60405180910390f35b34801561055157600080fd5b5061055a611abc565b6040516105679190614070565b60405180910390f35b34801561057c57600080fd5b50610585611acf565b604051610592919061403a565b60405180910390f35b3480156105a757600080fd5b506105b0611ad5565b005b3480156105be57600080fd5b506105c7611c4a565b6040516105d4919061410a565b60405180910390f35b3480156105e957600080fd5b506105f2611c70565b6040516105ff9190614296565b60405180910390f35b34801561061457600080fd5b5061061d611c96565b005b60115481565b600d5481565b600b60149054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61066c611e50565b600b60159054906101000a900460ff166106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b29061430e565b60405180910390fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361070d5750610882565b6000670de0b6b3a7640000600f5483610726919061435d565b61073091906143e6565b90506000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601060008282546107899190614417565b92505081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107ed92919061445a565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906144af565b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436482604051610877919061403a565b60405180910390a250505b61088a611e96565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90614528565b60405180910390fd5b600b60149054906101000a900460ff1615600b60146101000a81548160ff0219169083151502179055507fb525469ef855bc548f43bc65988e210c34addc78e267a5ab261ce1a2bae05f11600b60149054906101000a900460ff166040516109d09190614070565b60405180910390a1565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610a31576000915050610b5a565b6000600f5490506000610a42610dac565b90506000601054118015610a565750600081115b15610b35576000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ab89190614548565b602060405180830381865afa158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af99190614578565b90506000811115610b3357601054670de0b6b3a764000082610b1b919061435d565b610b2591906143e6565b83610b3091906145a5565b92505b505b670de0b6b3a76400008284610b4a919061435d565b610b5491906143e6565b93505050505b919050565b610b67611e50565b600b60159054906101000a900460ff1615610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9061466d565b60405180910390fd5b610bc081611ea0565b610bc8611e96565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e90614528565b60405180910390fd5b610c8f611e50565b80471015610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc9906146d9565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610d1a9061472a565b60006040518083038185875af1925050503d8060008114610d57576040519150601f19603f3d011682016040523d82523d6000602084013e610d5c565b606091505b5050905080610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d979061478b565b60405180910390fd5b50610da9611e96565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393f1a40b6000306040518363ffffffff1660e01b8152600401610e0d9291906147e6565b6040805180830381865afa158015610e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4d919061480f565b5090508091505090565b60126020528060005260406000206000915090505481565b610e77611e50565b600b60159054906101000a900460ff1615610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe9061466d565b60405180910390fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000670de0b6b3a7640000600f5483610f24919061435d565b610f2e91906143e6565b9050610f3981611ea0565b5050610f43611e96565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90614528565b60405180910390fd5b60003411611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f9061489b565b60405180910390fd5b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a190614528565b60405180910390fd5b6110b2611e50565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161110f9190614548565b602060405180830381865afa15801561112c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111509190614578565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111af9190614548565b602060405180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190614578565b90506000821180156112025750600081115b611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123890614907565b60405180910390fd5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398a0fb3c600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600188886040518663ffffffff1660e01b81526004016112ec959493929190614927565b606060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132d919061497a565b50915091508184111561135a57600082856113489190614417565b9050611353816121bc565b505061137f565b8083111561137e57600081846113709190614417565b905061137b81612457565b50505b5b60006113896126f2565b9050600081116113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590614a19565b60405180910390fd5b6113d6612a53565b5050505050506113e4611e96565b565b6113ee611e50565b600b60149054906101000a900460ff1661143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490614a85565b60405180910390fd5b6000601054146114515761144f612bcb565b505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016114b093929190614aa5565b6020604051808303816000875af11580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f391906144af565b5060006103e8600c5483611507919061435d565b61151191906143e6565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161159292919061445a565b6020604051808303816000875af11580156115b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d591906144af565b5080826115e29190614417565b91506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393f1a40b6000306040518363ffffffff1660e01b81526004016116449291906147e6565b6040805180830381865afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611684919061480f565b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2bbb1586000856040518363ffffffff1660e01b81526004016116e5929190614adc565b600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b505050506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393f1a40b6000306040518363ffffffff1660e01b81526004016117779291906147e6565b6040805180830381865afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b7919061480f565b509050600082826117c89190614417565b90506000600f54670de0b6b3a7640000836117e3919061435d565b6117ed91906143e6565b905080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461183e91906145a5565b92505081905550806010600082825461185791906145a5565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1583836040516118a6929190614b05565b60405180910390a250505050506118bb611e96565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190614528565b60405180910390fd5b6119a2611e50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635312ea8e60006040518263ffffffff1660e01b81526004016119fe9190614b2e565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b505050506001600b60156101000a81548160ff0219169083151502179055506000600b60146101000a81548160ff0219169083151502179055507fb525469ef855bc548f43bc65988e210c34addc78e267a5ab261ce1a2bae05f11600b60149054906101000a900460ff16604051611aa49190614070565b60405180910390a1611ab4611e96565b565b60105481565b600b60159054906101000a900460ff1681565b600e5481565b600b60149054906101000a900460ff16611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b90614a85565b60405180910390fd5b6000611b2e612bcb565b905060008111611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a90614b95565b60405180910390fd5b7fe3c48e43a3cc80f4a0c194845bdd6091fa19b9bb7d22e515c21e9f177e2e22ae600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611bef9190614548565b602060405180830381865afa158015611c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c309190614578565b82604051611c3f929190614b05565b60405180910390a150565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d90614528565b60405180910390fd5b611d2e611e50565b600047905060008111611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90614c01565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611dbe9061472a565b60006040518083038185875af1925050503d8060008114611dfb576040519150601f19603f3d011682016040523d82523d6000602084013e611e00565b606091505b5050905080611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b9061478b565b60405180910390fd5b5050611e4e611e96565b565b600260005403611e8c576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6001600081905550565b600060105414611eb457611eb2612bcb565b505b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111611f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3290614c6d565b60405180910390fd5b6000670de0b6b3a7640000600f5483611f54919061435d565b611f5e91906143e6565b905082811015611fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9a906146d9565b60405180910390fd5b6000600f54670de0b6b3a764000085611fbc919061435d565b611fc691906143e6565b905080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120179190614417565b9250508190555080601060008282546120309190614417565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663441a3e706000866040518363ffffffff1660e01b8152600401612095929190614adc565b600060405180830381600087803b1580156120af57600080fd5b505af11580156120c3573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161212492919061445a565b6020604051808303816000875af1158015612143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216791906144af565b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516121ae919061403a565b60405180910390a250505050565b6000808211612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f790614cd9565b60405180910390fd5b6000600167ffffffffffffffff81111561221d5761221c614cf9565b5b60405190808252806020026020018201604052801561225657816020015b612243613fd2565b81526020019060019003908161223b5790505b5090506040518060600160405280600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250816000815181106122fb576122fa614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b815260040161236a959493929190614ea1565b6000604051808303816000875af1158015612389573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906123b29190615025565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161240e9190614548565b602060405180830381865afa15801561242b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244f9190614578565b915050919050565b600080821161249b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612492906150ba565b60405180910390fd5b6000600167ffffffffffffffff8111156124b8576124b7614cf9565b5b6040519080825280602002602001820160405280156124f157816020015b6124de613fd2565b8152602001906001900390816124d65790505b5090506040518060600160405280600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600115158152508160008151811061259657612595614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b8152600401612605959493929190614ea1565b6000604051808303816000875af1158015612624573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061264d9190615025565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126a99190614548565b602060405180830381865afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea9190614578565b915050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127509190614548565b602060405180830381865afa15801561276d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127919190614578565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127f09190614548565b602060405180830381865afa15801561280d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128319190614578565b905060008211612876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286d9061514c565b60405180910390fd5b600081116128b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b0906151de565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635a47ddc3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001868660018030426040518a63ffffffff1660e01b815260040161296a999897969594939291906151fe565b6060604051808303816000875af1158015612989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ad919061497a565b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612a0b9190614548565b602060405180830381865afa158015612a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4c9190614578565b9250505090565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612ab19190614548565b602060405180830381865afa158015612ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af29190614578565b90506000811115612bc257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2bbb1586000836040518363ffffffff1660e01b8152600401612b5b929190614adc565b600060405180830381600087803b158015612b7557600080fd5b505af1158015612b89573d6000803e3d6000fd5b505050506000612b97610dac565b9050601054670de0b6b3a764000082612bb0919061435d565b612bba91906143e6565b600f81905550505b600f5491505090565b600080612bd6610dac565b9050600080601054118015612beb5750600082115b1561320857600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633695dad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c849190614578565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636b2681c56000306040518363ffffffff1660e01b8152600401612ce29291906147e6565b602060405180830381865afa158015612cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d239190614578565b1115612d3a57612d31613210565b80935081925050505b6000821115613205576000612d4e826132c5565b91505060008184612d5f9190614417565b905060006103e8600d5483612d74919061435d565b612d7e91906143e6565b905060006103e8600e5484612d93919061435d565b612d9d91906143e6565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612e1e92919061445a565b6020604051808303816000875af1158015612e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6191906144af565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612ee192919061445a565b6020604051808303816000875af1158015612f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2491906144af565b508082612f3191906145a5565b83612f3c9190614417565b9250600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd2919061530d565b50915091506000816dffffffffffffffffffffffffffff16836dffffffffffffffffffffffffffff1661300591906145a5565b836dffffffffffffffffffffffffffff1687613021919061435d565b61302b91906143e6565b90506000818761303b9190614417565b9050600061304883613514565b90506000613055836137af565b9050600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398a0fb3c600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600188886040518663ffffffff1660e01b8152600401613102959493929190614927565b606060405180830381865afa15801561311f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613143919061497a565b509150915081841115613170576000828561315e9190614417565b9050613169816121bc565b5050613195565b8083111561319457600081846131869190614417565b905061319181612457565b50505b5b600061319f6126f2565b9050600081116131e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131db90614a19565b60405180910390fd5b6131ec612a53565b50426011819055508b9f50505050505050505050505050505b50505b809250505090565b600080600061321d613af7565b9050809250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161327d9190614548565b602060405180830381865afa15801561329a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132be9190614578565b9150509091565b600080600060646096856132d9919061435d565b6132e391906143e6565b90506000600167ffffffffffffffff81111561330257613301614cf9565b5b60405190808252806020026020018201604052801561333b57816020015b613328613fd2565b8152602001906001900390816133205790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250816000815181106133e0576133df614d28565b5b60200260200101819052506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5c54e3384846040518363ffffffff1660e01b815260040161344a929190615360565b6000604051808303816000875af1158015613469573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906134929190615025565b90506000816000815181106134aa576134a9614d28565b5b6020026020010151905060006134bf82613d57565b905084811015613504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134fb90615402565b60405180910390fd5b8082965096505050505050915091565b6000808211613558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354f9061546e565b60405180910390fd5b6000600167ffffffffffffffff81111561357557613574614cf9565b5b6040519080825280602002602001820160405280156135ae57816020015b61359b613fd2565b8152602001906001900390816135935790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600015158152508160008151811061365357613652614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b81526004016136c2959493929190614ea1565b6000604051808303816000875af11580156136e1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061370a9190615025565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016137669190614548565b602060405180830381865afa158015613783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a79190614578565b915050919050565b60008082116137f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137ea9061546e565b60405180910390fd5b6000600267ffffffffffffffff8111156138105761380f614cf9565b5b60405190808252806020026020018201604052801561384957816020015b613836613fd2565b81526020019060019003908161382e5790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250816000815181106138ee576138ed614d28565b5b60200260200101819052506040518060600160405280600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600115158152508160018151811061399b5761399a614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b8152600401613a0a959493929190614ea1565b6000604051808303816000875af1158015613a29573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613a529190615025565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613aae9190614548565b602060405180830381865afa158015613acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aef9190614578565b915050919050565b6000804711613b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b32906154da565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633695dad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bcc9190614578565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636b2681c56000306040518363ffffffff1660e01b8152600401613c2a9291906147e6565b602060405180830381865afa158015613c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6b9190614578565b11613cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ca290615546565b60405180910390fd5b6000479050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddc632628260006040518363ffffffff1660e01b8152600401613d0d9190614b2e565b6000604051808303818588803b158015613d2657600080fd5b505af1158015613d3a573d6000803e3d6000fd5b505050505060004790508082613d509190614417565b9250505090565b600080600167ffffffffffffffff811115613d7557613d74614cf9565b5b604051908082528060200260200182016040528015613dae57816020015b613d9b613fd2565b815260200190600190039081613d935790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525081600081518110613e5357613e52614d28565b5b60200260200101819052506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88560018530426040518663ffffffff1660e01b8152600401613ec4959493929190614ea1565b6000604051808303816000875af1158015613ee3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613f0c9190615025565b905060008160018351613f1f9190614417565b81518110613f3057613f2f614d28565b5b60200260200101519050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401613f95919061403a565b600060405180830381600087803b158015613faf57600080fd5b505af1158015613fc3573d6000803e3d6000fd5b50505050809350505050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090565b6000819050919050565b61403481614021565b82525050565b600060208201905061404f600083018461402b565b92915050565b60008115159050919050565b61406a81614055565b82525050565b60006020820190506140856000830184614061565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006140d06140cb6140c68461408b565b6140ab565b61408b565b9050919050565b60006140e2826140b5565b9050919050565b60006140f4826140d7565b9050919050565b614104816140e9565b82525050565b600060208201905061411f60008301846140fb565b92915050565b6000614130826140d7565b9050919050565b61414081614125565b82525050565b600060208201905061415b6000830184614137565b92915050565b600061416c826140d7565b9050919050565b61417c81614161565b82525050565b60006020820190506141976000830184614173565b92915050565b6000604051905090565b600080fd5b600080fd5b60006141bc8261408b565b9050919050565b6141cc816141b1565b81146141d757600080fd5b50565b6000813590506141e9816141c3565b92915050565b600060208284031215614205576142046141a7565b5b6000614213848285016141da565b91505092915050565b61422581614021565b811461423057600080fd5b50565b6000813590506142428161421c565b92915050565b60006020828403121561425e5761425d6141a7565b5b600061426c84828501614233565b91505092915050565b6000614280826140d7565b9050919050565b61429081614275565b82525050565b60006020820190506142ab6000830184614287565b92915050565b600082825260208201905092915050565b7f456d657267656e6379207769746864726177206e6f7420656e61626c65640000600082015250565b60006142f8601e836142b1565b9150614303826142c2565b602082019050919050565b60006020820190508181036000830152614327816142eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061436882614021565b915061437383614021565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143ac576143ab61432e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143f182614021565b91506143fc83614021565b92508261440c5761440b6143b7565b5b828204905092915050565b600061442282614021565b915061442d83614021565b9250828210156144405761443f61432e565b5b828203905092915050565b614454816141b1565b82525050565b600060408201905061446f600083018561444b565b61447c602083018461402b565b9392505050565b61448c81614055565b811461449757600080fd5b50565b6000815190506144a981614483565b92915050565b6000602082840312156144c5576144c46141a7565b5b60006144d38482850161449a565b91505092915050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000614512600d836142b1565b915061451d826144dc565b602082019050919050565b6000602082019050818103600083015261454181614505565b9050919050565b600060208201905061455d600083018461444b565b92915050565b6000815190506145728161421c565b92915050565b60006020828403121561458e5761458d6141a7565b5b600061459c84828501614563565b91505092915050565b60006145b082614021565b91506145bb83614021565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145f0576145ef61432e565b5b828201905092915050565b7f5573652075736572456d657267656e6379576974686472617720696e7374656160008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006146576021836142b1565b9150614662826145fb565b604082019050919050565b600060208201905081810360008301526146868161464a565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006146c36014836142b1565b91506146ce8261468d565b602082019050919050565b600060208201905081810360008301526146f2816146b6565b9050919050565b600081905092915050565b50565b60006147146000836146f9565b915061471f82614704565b600082019050919050565b600061473582614707565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000614775600f836142b1565b91506147808261473f565b602082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b6000819050919050565b60006147d06147cb6147c6846147ab565b6140ab565b614021565b9050919050565b6147e0816147b5565b82525050565b60006040820190506147fb60008301856147d7565b614808602083018461444b565b9392505050565b60008060408385031215614826576148256141a7565b5b600061483485828601614563565b925050602061484585828601614563565b9150509250929050565b7f4e6f2066756e64732073656e7400000000000000000000000000000000000000600082015250565b6000614885600d836142b1565b91506148908261484f565b602082019050919050565b600060208201905081810360008301526148b481614878565b9050919050565b7f4e6f206c6566746f7665727320746f20616464206c6971756964697479000000600082015250565b60006148f1601d836142b1565b91506148fc826148bb565b602082019050919050565b60006020820190508181036000830152614920816148e4565b9050919050565b600060a08201905061493c600083018861444b565b614949602083018761444b565b6149566040830186614061565b614963606083018561402b565b614970608083018461402b565b9695505050505050565b600080600060608486031215614993576149926141a7565b5b60006149a186828701614563565b93505060206149b286828701614563565b92505060406149c386828701614563565b9150509250925092565b7f4e6f204c5020746f6b656e732072656365697665640000000000000000000000600082015250565b6000614a036015836142b1565b9150614a0e826149cd565b602082019050919050565b60006020820190508181036000830152614a32816149f6565b9050919050565b7f5661756c74206973206e6f742061637469766500000000000000000000000000600082015250565b6000614a6f6013836142b1565b9150614a7a82614a39565b602082019050919050565b60006020820190508181036000830152614a9e81614a62565b9050919050565b6000606082019050614aba600083018661444b565b614ac7602083018561444b565b614ad4604083018461402b565b949350505050565b6000604082019050614af160008301856147d7565b614afe602083018461402b565b9392505050565b6000604082019050614b1a600083018561402b565b614b27602083018461402b565b9392505050565b6000602082019050614b4360008301846147d7565b92915050565b7f4e6f207265776172647320746f20636f6d706f756e6400000000000000000000600082015250565b6000614b7f6016836142b1565b9150614b8a82614b49565b602082019050919050565b60006020820190508181036000830152614bae81614b72565b9050919050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b6000614beb6012836142b1565b9150614bf682614bb5565b602082019050919050565b60006020820190508181036000830152614c1a81614bde565b9050919050565b7f4e6f207469636b65747320746f20776974686472617700000000000000000000600082015250565b6000614c576016836142b1565b9150614c6282614c21565b602082019050919050565b60006020820190508181036000830152614c8681614c4a565b9050919050565b7f4e6f20746f6b656e3020746f2073776170000000000000000000000000000000600082015250565b6000614cc36011836142b1565b9150614cce82614c8d565b602082019050919050565b60006020820190508181036000830152614cf281614cb6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614d7c614d77614d7284614d57565b6140ab565b614021565b9050919050565b614d8c81614d61565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614dc7816141b1565b82525050565b614dd681614055565b82525050565b606082016000820151614df26000850182614dbe565b506020820151614e056020850182614dbe565b506040820151614e186040850182614dcd565b50505050565b6000614e2a8383614ddc565b60608301905092915050565b6000602082019050919050565b6000614e4e82614d92565b614e588185614d9d565b9350614e6383614dae565b8060005b83811015614e94578151614e7b8882614e1e565b9750614e8683614e36565b925050600181019050614e67565b5085935050505092915050565b600060a082019050614eb6600083018861402b565b614ec36020830187614d83565b8181036040830152614ed58186614e43565b9050614ee4606083018561444b565b614ef1608083018461402b565b9695505050505050565b600080fd5b6000601f19601f8301169050919050565b614f1a82614f00565b810181811067ffffffffffffffff82111715614f3957614f38614cf9565b5b80604052505050565b6000614f4c61419d565b9050614f588282614f11565b919050565b600067ffffffffffffffff821115614f7857614f77614cf9565b5b602082029050602081019050919050565b600080fd5b6000614fa1614f9c84614f5d565b614f42565b90508083825260208201905060208402830185811115614fc457614fc3614f89565b5b835b81811015614fed5780614fd98882614563565b845260208401935050602081019050614fc6565b5050509392505050565b600082601f83011261500c5761500b614efb565b5b815161501c848260208601614f8e565b91505092915050565b60006020828403121561503b5761503a6141a7565b5b600082015167ffffffffffffffff811115615059576150586141ac565b5b61506584828501614ff7565b91505092915050565b7f4e6f20746f6b656e3120746f2073776170000000000000000000000000000000600082015250565b60006150a46011836142b1565b91506150af8261506e565b602082019050919050565b600060208201905081810360008301526150d381615097565b9050919050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e302060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b60006151366034836142b1565b9150615141826150da565b604082019050919050565b6000602082019050818103600083015261516581615129565b9050919050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e312060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b60006151c86034836142b1565b91506151d38261516c565b604082019050919050565b600060208201905081810360008301526151f7816151bb565b9050919050565b600061012082019050615214600083018c61444b565b615221602083018b61444b565b61522e604083018a614061565b61523b606083018961402b565b615248608083018861402b565b61525560a0830187614d83565b61526260c0830186614d83565b61526f60e083018561444b565b61527d61010083018461402b565b9a9950505050505050505050565b60006dffffffffffffffffffffffffffff82169050919050565b6152ae8161528b565b81146152b957600080fd5b50565b6000815190506152cb816152a5565b92915050565b600063ffffffff82169050919050565b6152ea816152d1565b81146152f557600080fd5b50565b600081519050615307816152e1565b92915050565b600080600060608486031215615326576153256141a7565b5b6000615334868287016152bc565b9350506020615345868287016152bc565b9250506040615356868287016152f8565b9150509250925092565b6000604082019050615375600083018561402b565b81810360208301526153878184614e43565b90509392505050565b7f496e73756666696369656e7420736f6e69632072656365697665642066726f6d60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b60006153ec6025836142b1565b91506153f782615390565b604082019050919050565b6000602082019050818103600083015261541b816153df565b9050919050565b7f4e6f20746f6b656e20746f207377617000000000000000000000000000000000600082015250565b60006154586010836142b1565b915061546382615422565b602082019050919050565b600060208201905081810360008301526154878161544b565b9050919050565b7f4e6f2066756e647320746f206861727665737400000000000000000000000000600082015250565b60006154c46013836142b1565b91506154cf8261548e565b602082019050919050565b600060208201905081810360008301526154f3816154b7565b9050919050565b7f4e6f207265776172647320746f20686172766573740000000000000000000000600082015250565b60006155306015836142b1565b915061553b826154fa565b602082019050919050565b6000602082019050818103600083015261555f81615523565b905091905056fea2646970667358221220f00b65cc8646a5452ffa641375892fbca85ff64ba5aef6ef3f998644dd967bb664736f6c634300080d0033000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa50000000000000000000000000000000000000000000000000000000000000032000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe6915a0983a304f4d131da635664030da06bcd20000000000000000000000001d368773735ee1e678950b7a97bca2cafb330cdc000000000000000000000000c6a47895e29284ac769cc9b43a4f39ad768d8837000000000000000000000000287c6882de298665977787e268f3dba052a6e251000000000000000000000000674a430f531847a6f8976a900f8ace765f896a1b000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000003a516e01f82c1e18916ed69a81dd498ef64bb157
Deployed Bytecode
0x6080604052600436106101c65760003560e01c806380017f4e116100f7578063db2e21bc11610095578063f69e204611610064578063f69e20461461059b578063f7c618c1146105b2578063f887ea40146105dd578063ff77cce414610608576101cd565b8063db2e21bc14610503578063dd11247e1461051a578063e28701ee14610545578063e88958dc14610570576101cd565b8063a955c7a7116100d1578063a955c7a71461046d578063b6b55f2514610484578063ce75d565146104ad578063d21220a7146104d8576101cd565b806380017f4e1461040f578063853828b61461044c578063a26759cb14610463576101cd565b806329c68dc11161016457806351ed6a301161013e57806351ed6a301461036557806367a52793146103905780636b527c0c146103bb5780637d882097146103e4576101cd565b806329c68dc1146102e85780632beddd35146102ff5780632e1a7d4d1461033c576101cd565b80630dfe1681116101a05780630dfe1681146102505780630f0324501461027b57806316f0115b146102925780632760f89b146102bd576101cd565b80630169050d146101cf57806301ac145b146101fa57806302fb0c5e14610225576101cd565b366101cd57005b005b3480156101db57600080fd5b506101e461061f565b6040516101f1919061403a565b60405180910390f35b34801561020657600080fd5b5061020f610625565b60405161021c919061403a565b60405180910390f35b34801561023157600080fd5b5061023a61062b565b6040516102479190614070565b60405180910390f35b34801561025c57600080fd5b5061026561063e565b604051610272919061410a565b60405180910390f35b34801561028757600080fd5b50610290610664565b005b34801561029e57600080fd5b506102a761088c565b6040516102b49190614146565b60405180910390f35b3480156102c957600080fd5b506102d26108b2565b6040516102df9190614182565b60405180910390f35b3480156102f457600080fd5b506102fd6108d8565b005b34801561030b57600080fd5b50610326600480360381019061032191906141ef565b6109da565b604051610333919061403a565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190614248565b610b5f565b005b34801561037157600080fd5b5061037a610bcb565b604051610387919061410a565b60405180910390f35b34801561039c57600080fd5b506103a5610bf1565b6040516103b2919061403a565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190614248565b610bf7565b005b3480156103f057600080fd5b506103f9610dac565b604051610406919061403a565b60405180910390f35b34801561041b57600080fd5b50610436600480360381019061043191906141ef565b610e57565b604051610443919061403a565b60405180910390f35b34801561045857600080fd5b50610461610e6f565b005b61046b610f45565b005b34801561047957600080fd5b5061048261101a565b005b34801561049057600080fd5b506104ab60048036038101906104a69190614248565b6113e6565b005b3480156104b957600080fd5b506104c26118be565b6040516104cf919061410a565b60405180910390f35b3480156104e457600080fd5b506104ed6118e4565b6040516104fa919061410a565b60405180910390f35b34801561050f57600080fd5b5061051861190a565b005b34801561052657600080fd5b5061052f611ab6565b60405161053c919061403a565b60405180910390f35b34801561055157600080fd5b5061055a611abc565b6040516105679190614070565b60405180910390f35b34801561057c57600080fd5b50610585611acf565b604051610592919061403a565b60405180910390f35b3480156105a757600080fd5b506105b0611ad5565b005b3480156105be57600080fd5b506105c7611c4a565b6040516105d4919061410a565b60405180910390f35b3480156105e957600080fd5b506105f2611c70565b6040516105ff9190614296565b60405180910390f35b34801561061457600080fd5b5061061d611c96565b005b60115481565b600d5481565b600b60149054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61066c611e50565b600b60159054906101000a900460ff166106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b29061430e565b60405180910390fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361070d5750610882565b6000670de0b6b3a7640000600f5483610726919061435d565b61073091906143e6565b90506000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601060008282546107899190614417565b92505081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107ed92919061445a565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906144af565b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436482604051610877919061403a565b60405180910390a250505b61088a611e96565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90614528565b60405180910390fd5b600b60149054906101000a900460ff1615600b60146101000a81548160ff0219169083151502179055507fb525469ef855bc548f43bc65988e210c34addc78e267a5ab261ce1a2bae05f11600b60149054906101000a900460ff166040516109d09190614070565b60405180910390a1565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610a31576000915050610b5a565b6000600f5490506000610a42610dac565b90506000601054118015610a565750600081115b15610b35576000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ab89190614548565b602060405180830381865afa158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af99190614578565b90506000811115610b3357601054670de0b6b3a764000082610b1b919061435d565b610b2591906143e6565b83610b3091906145a5565b92505b505b670de0b6b3a76400008284610b4a919061435d565b610b5491906143e6565b93505050505b919050565b610b67611e50565b600b60159054906101000a900460ff1615610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9061466d565b60405180910390fd5b610bc081611ea0565b610bc8611e96565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e90614528565b60405180910390fd5b610c8f611e50565b80471015610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc9906146d9565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610d1a9061472a565b60006040518083038185875af1925050503d8060008114610d57576040519150601f19603f3d011682016040523d82523d6000602084013e610d5c565b606091505b5050905080610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d979061478b565b60405180910390fd5b50610da9611e96565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393f1a40b6000306040518363ffffffff1660e01b8152600401610e0d9291906147e6565b6040805180830381865afa158015610e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4d919061480f565b5090508091505090565b60126020528060005260406000206000915090505481565b610e77611e50565b600b60159054906101000a900460ff1615610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe9061466d565b60405180910390fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000670de0b6b3a7640000600f5483610f24919061435d565b610f2e91906143e6565b9050610f3981611ea0565b5050610f43611e96565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90614528565b60405180910390fd5b60003411611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f9061489b565b60405180910390fd5b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a190614528565b60405180910390fd5b6110b2611e50565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161110f9190614548565b602060405180830381865afa15801561112c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111509190614578565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111af9190614548565b602060405180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190614578565b90506000821180156112025750600081115b611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123890614907565b60405180910390fd5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398a0fb3c600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600188886040518663ffffffff1660e01b81526004016112ec959493929190614927565b606060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132d919061497a565b50915091508184111561135a57600082856113489190614417565b9050611353816121bc565b505061137f565b8083111561137e57600081846113709190614417565b905061137b81612457565b50505b5b60006113896126f2565b9050600081116113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590614a19565b60405180910390fd5b6113d6612a53565b5050505050506113e4611e96565b565b6113ee611e50565b600b60149054906101000a900460ff1661143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490614a85565b60405180910390fd5b6000601054146114515761144f612bcb565b505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016114b093929190614aa5565b6020604051808303816000875af11580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f391906144af565b5060006103e8600c5483611507919061435d565b61151191906143e6565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161159292919061445a565b6020604051808303816000875af11580156115b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d591906144af565b5080826115e29190614417565b91506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393f1a40b6000306040518363ffffffff1660e01b81526004016116449291906147e6565b6040805180830381865afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611684919061480f565b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2bbb1586000856040518363ffffffff1660e01b81526004016116e5929190614adc565b600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b505050506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393f1a40b6000306040518363ffffffff1660e01b81526004016117779291906147e6565b6040805180830381865afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b7919061480f565b509050600082826117c89190614417565b90506000600f54670de0b6b3a7640000836117e3919061435d565b6117ed91906143e6565b905080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461183e91906145a5565b92505081905550806010600082825461185791906145a5565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1583836040516118a6929190614b05565b60405180910390a250505050506118bb611e96565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190614528565b60405180910390fd5b6119a2611e50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635312ea8e60006040518263ffffffff1660e01b81526004016119fe9190614b2e565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b505050506001600b60156101000a81548160ff0219169083151502179055506000600b60146101000a81548160ff0219169083151502179055507fb525469ef855bc548f43bc65988e210c34addc78e267a5ab261ce1a2bae05f11600b60149054906101000a900460ff16604051611aa49190614070565b60405180910390a1611ab4611e96565b565b60105481565b600b60159054906101000a900460ff1681565b600e5481565b600b60149054906101000a900460ff16611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b90614a85565b60405180910390fd5b6000611b2e612bcb565b905060008111611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a90614b95565b60405180910390fd5b7fe3c48e43a3cc80f4a0c194845bdd6091fa19b9bb7d22e515c21e9f177e2e22ae600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611bef9190614548565b602060405180830381865afa158015611c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c309190614578565b82604051611c3f929190614b05565b60405180910390a150565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d90614528565b60405180910390fd5b611d2e611e50565b600047905060008111611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90614c01565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611dbe9061472a565b60006040518083038185875af1925050503d8060008114611dfb576040519150601f19603f3d011682016040523d82523d6000602084013e611e00565b606091505b5050905080611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b9061478b565b60405180910390fd5b5050611e4e611e96565b565b600260005403611e8c576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6001600081905550565b600060105414611eb457611eb2612bcb565b505b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111611f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3290614c6d565b60405180910390fd5b6000670de0b6b3a7640000600f5483611f54919061435d565b611f5e91906143e6565b905082811015611fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9a906146d9565b60405180910390fd5b6000600f54670de0b6b3a764000085611fbc919061435d565b611fc691906143e6565b905080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120179190614417565b9250508190555080601060008282546120309190614417565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663441a3e706000866040518363ffffffff1660e01b8152600401612095929190614adc565b600060405180830381600087803b1580156120af57600080fd5b505af11580156120c3573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161212492919061445a565b6020604051808303816000875af1158015612143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216791906144af565b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516121ae919061403a565b60405180910390a250505050565b6000808211612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f790614cd9565b60405180910390fd5b6000600167ffffffffffffffff81111561221d5761221c614cf9565b5b60405190808252806020026020018201604052801561225657816020015b612243613fd2565b81526020019060019003908161223b5790505b5090506040518060600160405280600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250816000815181106122fb576122fa614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b815260040161236a959493929190614ea1565b6000604051808303816000875af1158015612389573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906123b29190615025565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161240e9190614548565b602060405180830381865afa15801561242b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244f9190614578565b915050919050565b600080821161249b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612492906150ba565b60405180910390fd5b6000600167ffffffffffffffff8111156124b8576124b7614cf9565b5b6040519080825280602002602001820160405280156124f157816020015b6124de613fd2565b8152602001906001900390816124d65790505b5090506040518060600160405280600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600115158152508160008151811061259657612595614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b8152600401612605959493929190614ea1565b6000604051808303816000875af1158015612624573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061264d9190615025565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126a99190614548565b602060405180830381865afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea9190614578565b915050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127509190614548565b602060405180830381865afa15801561276d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127919190614578565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127f09190614548565b602060405180830381865afa15801561280d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128319190614578565b905060008211612876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286d9061514c565b60405180910390fd5b600081116128b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b0906151de565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635a47ddc3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001868660018030426040518a63ffffffff1660e01b815260040161296a999897969594939291906151fe565b6060604051808303816000875af1158015612989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ad919061497a565b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612a0b9190614548565b602060405180830381865afa158015612a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4c9190614578565b9250505090565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612ab19190614548565b602060405180830381865afa158015612ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af29190614578565b90506000811115612bc257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2bbb1586000836040518363ffffffff1660e01b8152600401612b5b929190614adc565b600060405180830381600087803b158015612b7557600080fd5b505af1158015612b89573d6000803e3d6000fd5b505050506000612b97610dac565b9050601054670de0b6b3a764000082612bb0919061435d565b612bba91906143e6565b600f81905550505b600f5491505090565b600080612bd6610dac565b9050600080601054118015612beb5750600082115b1561320857600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633695dad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c849190614578565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636b2681c56000306040518363ffffffff1660e01b8152600401612ce29291906147e6565b602060405180830381865afa158015612cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d239190614578565b1115612d3a57612d31613210565b80935081925050505b6000821115613205576000612d4e826132c5565b91505060008184612d5f9190614417565b905060006103e8600d5483612d74919061435d565b612d7e91906143e6565b905060006103e8600e5484612d93919061435d565b612d9d91906143e6565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612e1e92919061445a565b6020604051808303816000875af1158015612e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6191906144af565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612ee192919061445a565b6020604051808303816000875af1158015612f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2491906144af565b508082612f3191906145a5565b83612f3c9190614417565b9250600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd2919061530d565b50915091506000816dffffffffffffffffffffffffffff16836dffffffffffffffffffffffffffff1661300591906145a5565b836dffffffffffffffffffffffffffff1687613021919061435d565b61302b91906143e6565b90506000818761303b9190614417565b9050600061304883613514565b90506000613055836137af565b9050600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398a0fb3c600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600188886040518663ffffffff1660e01b8152600401613102959493929190614927565b606060405180830381865afa15801561311f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613143919061497a565b509150915081841115613170576000828561315e9190614417565b9050613169816121bc565b5050613195565b8083111561319457600081846131869190614417565b905061319181612457565b50505b5b600061319f6126f2565b9050600081116131e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131db90614a19565b60405180910390fd5b6131ec612a53565b50426011819055508b9f50505050505050505050505050505b50505b809250505090565b600080600061321d613af7565b9050809250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161327d9190614548565b602060405180830381865afa15801561329a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132be9190614578565b9150509091565b600080600060646096856132d9919061435d565b6132e391906143e6565b90506000600167ffffffffffffffff81111561330257613301614cf9565b5b60405190808252806020026020018201604052801561333b57816020015b613328613fd2565b8152602001906001900390816133205790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250816000815181106133e0576133df614d28565b5b60200260200101819052506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5c54e3384846040518363ffffffff1660e01b815260040161344a929190615360565b6000604051808303816000875af1158015613469573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906134929190615025565b90506000816000815181106134aa576134a9614d28565b5b6020026020010151905060006134bf82613d57565b905084811015613504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134fb90615402565b60405180910390fd5b8082965096505050505050915091565b6000808211613558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354f9061546e565b60405180910390fd5b6000600167ffffffffffffffff81111561357557613574614cf9565b5b6040519080825280602002602001820160405280156135ae57816020015b61359b613fd2565b8152602001906001900390816135935790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600015158152508160008151811061365357613652614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b81526004016136c2959493929190614ea1565b6000604051808303816000875af11580156136e1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061370a9190615025565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016137669190614548565b602060405180830381865afa158015613783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a79190614578565b915050919050565b60008082116137f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137ea9061546e565b60405180910390fd5b6000600267ffffffffffffffff8111156138105761380f614cf9565b5b60405190808252806020026020018201604052801561384957816020015b613836613fd2565b81526020019060019003908161382e5790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250816000815181106138ee576138ed614d28565b5b60200260200101819052506040518060600160405280600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600115158152508160018151811061399b5761399a614d28565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b8152600401613a0a959493929190614ea1565b6000604051808303816000875af1158015613a29573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613a529190615025565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613aae9190614548565b602060405180830381865afa158015613acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aef9190614578565b915050919050565b6000804711613b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b32906154da565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633695dad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bcc9190614578565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636b2681c56000306040518363ffffffff1660e01b8152600401613c2a9291906147e6565b602060405180830381865afa158015613c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6b9190614578565b11613cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ca290615546565b60405180910390fd5b6000479050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddc632628260006040518363ffffffff1660e01b8152600401613d0d9190614b2e565b6000604051808303818588803b158015613d2657600080fd5b505af1158015613d3a573d6000803e3d6000fd5b505050505060004790508082613d509190614417565b9250505090565b600080600167ffffffffffffffff811115613d7557613d74614cf9565b5b604051908082528060200260200182016040528015613dae57816020015b613d9b613fd2565b815260200190600190039081613d935790505b5090506040518060600160405280600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525081600081518110613e5357613e52614d28565b5b60200260200101819052506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88560018530426040518663ffffffff1660e01b8152600401613ec4959493929190614ea1565b6000604051808303816000875af1158015613ee3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613f0c9190615025565b905060008160018351613f1f9190614417565b81518110613f3057613f2f614d28565b5b60200260200101519050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401613f95919061403a565b600060405180830381600087803b158015613faf57600080fd5b505af1158015613fc3573d6000803e3d6000fd5b50505050809350505050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090565b6000819050919050565b61403481614021565b82525050565b600060208201905061404f600083018461402b565b92915050565b60008115159050919050565b61406a81614055565b82525050565b60006020820190506140856000830184614061565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006140d06140cb6140c68461408b565b6140ab565b61408b565b9050919050565b60006140e2826140b5565b9050919050565b60006140f4826140d7565b9050919050565b614104816140e9565b82525050565b600060208201905061411f60008301846140fb565b92915050565b6000614130826140d7565b9050919050565b61414081614125565b82525050565b600060208201905061415b6000830184614137565b92915050565b600061416c826140d7565b9050919050565b61417c81614161565b82525050565b60006020820190506141976000830184614173565b92915050565b6000604051905090565b600080fd5b600080fd5b60006141bc8261408b565b9050919050565b6141cc816141b1565b81146141d757600080fd5b50565b6000813590506141e9816141c3565b92915050565b600060208284031215614205576142046141a7565b5b6000614213848285016141da565b91505092915050565b61422581614021565b811461423057600080fd5b50565b6000813590506142428161421c565b92915050565b60006020828403121561425e5761425d6141a7565b5b600061426c84828501614233565b91505092915050565b6000614280826140d7565b9050919050565b61429081614275565b82525050565b60006020820190506142ab6000830184614287565b92915050565b600082825260208201905092915050565b7f456d657267656e6379207769746864726177206e6f7420656e61626c65640000600082015250565b60006142f8601e836142b1565b9150614303826142c2565b602082019050919050565b60006020820190508181036000830152614327816142eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061436882614021565b915061437383614021565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143ac576143ab61432e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143f182614021565b91506143fc83614021565b92508261440c5761440b6143b7565b5b828204905092915050565b600061442282614021565b915061442d83614021565b9250828210156144405761443f61432e565b5b828203905092915050565b614454816141b1565b82525050565b600060408201905061446f600083018561444b565b61447c602083018461402b565b9392505050565b61448c81614055565b811461449757600080fd5b50565b6000815190506144a981614483565b92915050565b6000602082840312156144c5576144c46141a7565b5b60006144d38482850161449a565b91505092915050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000614512600d836142b1565b915061451d826144dc565b602082019050919050565b6000602082019050818103600083015261454181614505565b9050919050565b600060208201905061455d600083018461444b565b92915050565b6000815190506145728161421c565b92915050565b60006020828403121561458e5761458d6141a7565b5b600061459c84828501614563565b91505092915050565b60006145b082614021565b91506145bb83614021565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145f0576145ef61432e565b5b828201905092915050565b7f5573652075736572456d657267656e6379576974686472617720696e7374656160008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006146576021836142b1565b9150614662826145fb565b604082019050919050565b600060208201905081810360008301526146868161464a565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006146c36014836142b1565b91506146ce8261468d565b602082019050919050565b600060208201905081810360008301526146f2816146b6565b9050919050565b600081905092915050565b50565b60006147146000836146f9565b915061471f82614704565b600082019050919050565b600061473582614707565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000614775600f836142b1565b91506147808261473f565b602082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b6000819050919050565b60006147d06147cb6147c6846147ab565b6140ab565b614021565b9050919050565b6147e0816147b5565b82525050565b60006040820190506147fb60008301856147d7565b614808602083018461444b565b9392505050565b60008060408385031215614826576148256141a7565b5b600061483485828601614563565b925050602061484585828601614563565b9150509250929050565b7f4e6f2066756e64732073656e7400000000000000000000000000000000000000600082015250565b6000614885600d836142b1565b91506148908261484f565b602082019050919050565b600060208201905081810360008301526148b481614878565b9050919050565b7f4e6f206c6566746f7665727320746f20616464206c6971756964697479000000600082015250565b60006148f1601d836142b1565b91506148fc826148bb565b602082019050919050565b60006020820190508181036000830152614920816148e4565b9050919050565b600060a08201905061493c600083018861444b565b614949602083018761444b565b6149566040830186614061565b614963606083018561402b565b614970608083018461402b565b9695505050505050565b600080600060608486031215614993576149926141a7565b5b60006149a186828701614563565b93505060206149b286828701614563565b92505060406149c386828701614563565b9150509250925092565b7f4e6f204c5020746f6b656e732072656365697665640000000000000000000000600082015250565b6000614a036015836142b1565b9150614a0e826149cd565b602082019050919050565b60006020820190508181036000830152614a32816149f6565b9050919050565b7f5661756c74206973206e6f742061637469766500000000000000000000000000600082015250565b6000614a6f6013836142b1565b9150614a7a82614a39565b602082019050919050565b60006020820190508181036000830152614a9e81614a62565b9050919050565b6000606082019050614aba600083018661444b565b614ac7602083018561444b565b614ad4604083018461402b565b949350505050565b6000604082019050614af160008301856147d7565b614afe602083018461402b565b9392505050565b6000604082019050614b1a600083018561402b565b614b27602083018461402b565b9392505050565b6000602082019050614b4360008301846147d7565b92915050565b7f4e6f207265776172647320746f20636f6d706f756e6400000000000000000000600082015250565b6000614b7f6016836142b1565b9150614b8a82614b49565b602082019050919050565b60006020820190508181036000830152614bae81614b72565b9050919050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b6000614beb6012836142b1565b9150614bf682614bb5565b602082019050919050565b60006020820190508181036000830152614c1a81614bde565b9050919050565b7f4e6f207469636b65747320746f20776974686472617700000000000000000000600082015250565b6000614c576016836142b1565b9150614c6282614c21565b602082019050919050565b60006020820190508181036000830152614c8681614c4a565b9050919050565b7f4e6f20746f6b656e3020746f2073776170000000000000000000000000000000600082015250565b6000614cc36011836142b1565b9150614cce82614c8d565b602082019050919050565b60006020820190508181036000830152614cf281614cb6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614d7c614d77614d7284614d57565b6140ab565b614021565b9050919050565b614d8c81614d61565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614dc7816141b1565b82525050565b614dd681614055565b82525050565b606082016000820151614df26000850182614dbe565b506020820151614e056020850182614dbe565b506040820151614e186040850182614dcd565b50505050565b6000614e2a8383614ddc565b60608301905092915050565b6000602082019050919050565b6000614e4e82614d92565b614e588185614d9d565b9350614e6383614dae565b8060005b83811015614e94578151614e7b8882614e1e565b9750614e8683614e36565b925050600181019050614e67565b5085935050505092915050565b600060a082019050614eb6600083018861402b565b614ec36020830187614d83565b8181036040830152614ed58186614e43565b9050614ee4606083018561444b565b614ef1608083018461402b565b9695505050505050565b600080fd5b6000601f19601f8301169050919050565b614f1a82614f00565b810181811067ffffffffffffffff82111715614f3957614f38614cf9565b5b80604052505050565b6000614f4c61419d565b9050614f588282614f11565b919050565b600067ffffffffffffffff821115614f7857614f77614cf9565b5b602082029050602081019050919050565b600080fd5b6000614fa1614f9c84614f5d565b614f42565b90508083825260208201905060208402830185811115614fc457614fc3614f89565b5b835b81811015614fed5780614fd98882614563565b845260208401935050602081019050614fc6565b5050509392505050565b600082601f83011261500c5761500b614efb565b5b815161501c848260208601614f8e565b91505092915050565b60006020828403121561503b5761503a6141a7565b5b600082015167ffffffffffffffff811115615059576150586141ac565b5b61506584828501614ff7565b91505092915050565b7f4e6f20746f6b656e3120746f2073776170000000000000000000000000000000600082015250565b60006150a46011836142b1565b91506150af8261506e565b602082019050919050565b600060208201905081810360008301526150d381615097565b9050919050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e302060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b60006151366034836142b1565b9150615141826150da565b604082019050919050565b6000602082019050818103600083015261516581615129565b9050919050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e312060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b60006151c86034836142b1565b91506151d38261516c565b604082019050919050565b600060208201905081810360008301526151f7816151bb565b9050919050565b600061012082019050615214600083018c61444b565b615221602083018b61444b565b61522e604083018a614061565b61523b606083018961402b565b615248608083018861402b565b61525560a0830187614d83565b61526260c0830186614d83565b61526f60e083018561444b565b61527d61010083018461402b565b9a9950505050505050505050565b60006dffffffffffffffffffffffffffff82169050919050565b6152ae8161528b565b81146152b957600080fd5b50565b6000815190506152cb816152a5565b92915050565b600063ffffffff82169050919050565b6152ea816152d1565b81146152f557600080fd5b50565b600081519050615307816152e1565b92915050565b600080600060608486031215615326576153256141a7565b5b6000615334868287016152bc565b9350506020615345868287016152bc565b9250506040615356868287016152f8565b9150509250925092565b6000604082019050615375600083018561402b565b81810360208301526153878184614e43565b90509392505050565b7f496e73756666696369656e7420736f6e69632072656365697665642066726f6d60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b60006153ec6025836142b1565b91506153f782615390565b604082019050919050565b6000602082019050818103600083015261541b816153df565b9050919050565b7f4e6f20746f6b656e20746f207377617000000000000000000000000000000000600082015250565b60006154586010836142b1565b915061546382615422565b602082019050919050565b600060208201905081810360008301526154878161544b565b9050919050565b7f4e6f2066756e647320746f206861727665737400000000000000000000000000600082015250565b60006154c46013836142b1565b91506154cf8261548e565b602082019050919050565b600060208201905081810360008301526154f3816154b7565b9050919050565b7f4e6f207265776172647320746f20686172766573740000000000000000000000600082015250565b60006155306015836142b1565b915061553b826154fa565b602082019050919050565b6000602082019050818103600083015261555f81615523565b905091905056fea2646970667358221220f00b65cc8646a5452ffa641375892fbca85ff64ba5aef6ef3f998644dd967bb664736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa50000000000000000000000000000000000000000000000000000000000000032000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe6915a0983a304f4d131da635664030da06bcd20000000000000000000000001d368773735ee1e678950b7a97bca2cafb330cdc000000000000000000000000c6a47895e29284ac769cc9b43a4f39ad768d8837000000000000000000000000287c6882de298665977787e268f3dba052a6e251000000000000000000000000674a430f531847a6f8976a900f8ace765f896a1b000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000003a516e01f82c1e18916ed69a81dd498ef64bb157
-----Decoded View---------------
Arg [0] : _treasury (address): 0xB449391F3722FAbcdB6183B37CB4350bb97E8Aa5
Arg [1] : _vaultFee (uint256): 50
Arg [2] : _creatorTreasury (address): 0xB449391F3722FAbcdB6183B37CB4350bb97E8Aa5
Arg [3] : _creatorFee (uint256): 0
Arg [4] : _pool (address): 0xFE6915a0983a304F4D131DA635664030dA06Bcd2
Arg [5] : _router (address): 0x1D368773735ee1E678950B7A97bcA2CafB330CDc
Arg [6] : _gsnakeOracle (address): 0xC6a47895e29284ac769cc9b43A4f39Ad768d8837
Arg [7] : _stakeToken (address): 0x287c6882dE298665977787e268f3dba052A6e251
Arg [8] : _rewardToken (address): 0x674a430f531847a6f8976A900f8ace765f896a1b
Arg [9] : _token0 (address): 0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38
Arg [10] : _token1 (address): 0x3a516e01f82c1e18916ED69a81Dd498eF64bB157
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa5
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [2] : 000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa5
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000fe6915a0983a304f4d131da635664030da06bcd2
Arg [5] : 0000000000000000000000001d368773735ee1e678950b7a97bca2cafb330cdc
Arg [6] : 000000000000000000000000c6a47895e29284ac769cc9b43a4f39ad768d8837
Arg [7] : 000000000000000000000000287c6882de298665977787e268f3dba052a6e251
Arg [8] : 000000000000000000000000674a430f531847a6f8976a900f8ace765f896a1b
Arg [9] : 000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad38
Arg [10] : 0000000000000000000000003a516e01f82c1e18916ed69a81dd498ef64bb157
Deployed Bytecode Sourcemap
906:15456:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1398:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1285:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1038:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14071:452;;;;;;;;;;;;;:::i;:::-;;947:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1004:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:121;;;;;;;;;;;;;:::i;:::-;;15136:556;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13620:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1092:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1362:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15813:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14979:149;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1564:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13796:267;;;;;;;;;;;;;:::i;:::-;;15700:105;;;:::i;:::-;;8336:971;;;;;;;;;;;;;:::i;:::-;;12823:789;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1155:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1065:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14531:211;;;;;;;;;;;;;:::i;:::-;;1494:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1317:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1428:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14750:221;;;;;;;;;;;;;:::i;:::-;;1123:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;976:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16081:278;;;;;;;;;;;;;:::i;:::-;;1528:27;;;;:::o;1398:23::-;;;;:::o;1285:25::-;;;;;;;;;;;;;:::o;1038:20::-;;;;;;;;;;;;;:::o;14071:452::-;367:21;:19;:21::i;:::-;14145:18:::1;;;;;;;;;;;14137:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14209:15;14227:11;:23;14239:10;14227:23;;;;;;;;;;;;;;;;14209:41;;14276:1;14265:7;:12:::0;14261:25:::1;;14279:7;;;14261:25;14298:14;14341:4;14326:11;;14316:7;:21;;;;:::i;:::-;14315:30;;;;:::i;:::-;14298:47;;14382:1;14356:11;:23;14368:10;14356:23;;;;;;;;;;;;;;;:27;;;;14410:7;14394:12;;:23;;;;;;;:::i;:::-;;;;;;;;14430:10;;;;;;;;;;;:19;;;14450:10;14462:6;14430:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14496:10;14487:28;;;14508:6;14487:28;;;;;;:::i;:::-;;;;;;;;14126:397;;399:1;411:20:::0;:18;:20::i;:::-;14071:452::o;947:22::-;;;;;;;;;;;;;:::o;1004:27::-;;;;;;;;;;;;;:::o;3299:121::-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;3226:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3363:6:::1;;;;;;;;;;;3362:7;3353:6;;:16;;;;;;;;;;;;;;;;;;3385:27;3405:6;;;;;;;;;;;3385:27;;;;;;:::i;:::-;;;;;;;;3299:121::o:0;15136:556::-;15193:7;15213:15;15231:11;:18;15243:5;15231:18;;;;;;;;;;;;;;;;15213:36;;15275:1;15264:7;:12;15260:26;;15285:1;15278:8;;;;;15260:26;15299:20;15322:11;;15299:34;;15344:15;15362;:13;:15::i;:::-;15344:33;;15407:1;15392:12;;:16;:31;;;;;15422:1;15412:7;:11;15392:31;15388:246;;;15440:20;15463:11;;;;;;;;;;;:21;;;15493:4;15463:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15440:59;;15533:1;15518:12;:16;15514:109;;;15595:12;;15587:4;15572:12;:19;;;;:::i;:::-;15571:36;;;;:::i;:::-;15555:52;;;;;:::i;:::-;;;15514:109;15425:209;15388:246;15680:4;15664:12;15654:7;:22;;;;:::i;:::-;15653:31;;;;:::i;:::-;15646:38;;;;;15136:556;;;;:::o;13620:168::-;367:21;:19;:21::i;:::-;13696:18:::1;;;;;;;;;;;13695:19;13687:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13763:17;13773:6;13763:9;:17::i;:::-;411:20:::0;:18;:20::i;:::-;13620:168;:::o;1092:24::-;;;;;;;;;;;;;:::o;1362:29::-;;;;:::o;15813:260::-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;3226:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;367:21:::1;:19;:21::i;:::-;15924:6:::2;15899:21;:31;;15891:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15969:9;15992:5;;;;;;;;;;;15984:19;;16011:6;15984:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15968:54;;;16041:4;16033:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;15880:193;411:20:::1;:18;:20::i;:::-;15813:260:::0;:::o;14979:149::-;15025:7;15046:14;15065:4;;;;;;;;;;;:13;;;15079:1;15090:4;15065:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15045:51;;;15114:6;15107:13;;;14979:149;:::o;1564:46::-;;;;;;;;;;;;;;;;;:::o;13796:267::-;367:21;:19;:21::i;:::-;13861:18:::1;;;;;;;;;;;13860:19;13852:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13928:15;13946:11;:23;13958:10;13946:23;;;;;;;;;;;;;;;;13928:41;;13980:14;14023:4;14008:11;;13998:7;:21;;;;:::i;:::-;13997:30;;;;:::i;:::-;13980:47;;14038:17;14048:6;14038:9;:17::i;:::-;13841:222;;411:20:::0;:18;:20::i;:::-;13796:267::o;15700:105::-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;3226:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15778:1:::1;15766:9;:13;15758:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;15700:105::o:0;8336:971::-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;3226:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;367:21:::1;:19;:21::i;:::-;8411:17:::2;8431:6;;;;;;;;;;;:16;;;8456:4;8431:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8411:51;;8473:17;8493:6;;;;;;;;;;;:16;;;8518:4;8493:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8473:51;;8555:1;8543:9;:13;:30;;;;;8572:1;8560:9;:13;8543:30;8535:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;8621:21;8644::::0;8671:6:::2;;;;;;;;;;;:24;;;8718:6;;;;;;;;;;;8748;;;;;;;;;;;8770:4;8789:9;8813;8671:162;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8620:213;;;;;8862:13;8850:9;:25;8846:316;;;8892:20;8927:13;8915:9;:25;;;;:::i;:::-;8892:48;;8955:34;8976:12;8955:20;:34::i;:::-;;8877:124;8846:316;;;9023:13;9011:9;:25;9007:155;;;9053:20;9088:13;9076:9;:25;;;;:::i;:::-;9053:48;;9116:34;9137:12;9116:20;:34::i;:::-;;9038:124;9007:155;8846:316;9174:19;9196:15;:13;:15::i;:::-;9174:37;;9244:1;9230:11;:15;9222:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9284:15;:13;:15::i;:::-;;8400:907;;;;;411:20:::1;:18;:20::i;:::-;8336:971::o:0;12823:789::-;367:21;:19;:21::i;:::-;3136:6:::1;;;;;;;;;;;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12920:1:::2;12904:12;;:17;12900:64;;12938:14;:12;:14::i;:::-;;12900:64;12976:10;;;;;;;;;;;:23;;;13000:10;13020:4;13027:6;12976:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13047:11;13085:4;13071:10;;13062:6;:19;;;;:::i;:::-;13061:28;;;;:::i;:::-;13047:42;;13100:10;;;;;;;;;;;:19;;;13120:8;;;;;;;;;;;13130:3;13100:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13155:3;13145:13;;;;;:::i;:::-;;;13172:20;13197:4;;;;;;;;;;;:13;;;13211:1;13222:4;13197:31;;;;;;;;;;;;;;;;:::i;:::-;;::::0;::::2;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13171:57;;;13239:4;;;;;;;;;;;:12;;;13252:1;13255:6;13239:23;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;13274:19;13299:4;;;;;;;;;;;:13;;;13313:1;13324:4;13299:31;;;;;;;;;;;;;;;;:::i;:::-;;::::0;::::2;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13273:57;;;13343:23;13383:12;13369:11;:26;;;;:::i;:::-;13343:52;;13406:15;13451:11;;13443:4;13425:15;:22;;;;:::i;:::-;13424:38;;;;:::i;:::-;13406:56;;13500:7;13473:11;:23;13485:10;13473:23;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13534:7;13518:12;;:23;;;;;;;:::i;:::-;;;;;;;;13567:10;13559:45;;;13579:15;13596:7;13559:45;;;;;;;:::i;:::-;;;;;;;;12889:723;;;;;411:20:::0;:18;:20::i;:::-;12823:789;:::o;1155:26::-;;;;;;;;;;;;;:::o;1065:20::-;;;;;;;;;;;;;:::o;14531:211::-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;3226:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;367:21:::1;:19;:21::i;:::-;14603:4:::2;;;;;;;;;;;:22;;;14626:1;14603:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;14660:4;14639:18;;:25;;;;;;;;;;;;;;;;;;14684:5;14675:6;;:14;;;;;;;;;;;;;;;;;;14707:27;14727:6;;;;;;;;;;;14707:27;;;;;;:::i;:::-;;;;;;;;411:20:::1;:18;:20::i;:::-;14531:211::o:0;1494:27::-;;;;:::o;1317:38::-;;;;;;;;;;;;;:::o;1428:25::-;;;;:::o;14750:221::-;3136:6;;;;;;;;;;;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14801:15:::1;14819:14;:12;:14::i;:::-;14801:32;;14862:1;14852:7;:11;14844:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;14908:55;14917:11;;;;;;;;;;;:21;;;14947:4;14917:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14955:7;14908:55;;;;;;;:::i;:::-;;;;;;;;14790:181;14750:221::o:0;1123:25::-;;;;;;;;;;;;;:::o;976:21::-;;;;;;;;;;;;;:::o;16081:278::-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;3226:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;367:21:::1;:19;:21::i;:::-;16148:15:::2;16166:21;16148:39;;16216:1;16206:7;:11;16198:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;16254:9;16277:5;;;;;;;;;;;16269:19;;16296:7;16269:39;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16253:55;;;16327:4;16319:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;16137:222;;411:20:::1;:18;:20::i;:::-;16081:278::o:0;522:175::-;183:1;576:7;;:18;572:88;;618:30;;;;;;;;;;;;;;572:88;183:1;672:7;:17;;;;522:175::o;705:78::-;140:1;754:7;:21;;;;705:78::o;12162:653::-;12237:1;12221:12;;:17;12217:64;;12255:14;:12;:14::i;:::-;;12217:64;12293:15;12311:11;:23;12323:10;12311:23;;;;;;;;;;;;;;;;12293:41;;12363:1;12353:7;:11;12345:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12404:14;12447:4;12432:11;;12422:7;:21;;;;:::i;:::-;12421:30;;;;:::i;:::-;12404:47;;12480:6;12470;:16;;12462:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12524:23;12568:11;;12560:4;12551:6;:13;;;;:::i;:::-;12550:29;;;;:::i;:::-;12524:55;;12617:15;12590:11;:23;12602:10;12590:23;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;12659:15;12643:12;;:31;;;;;;;:::i;:::-;;;;;;;;12687:4;;;;;;;;;;;:13;;;12701:1;12704:6;12687:24;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12722:10;;;;;;;;;;;:19;;;12742:10;12754:6;12722:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12788:10;12779:28;;;12800:6;12779:28;;;;;;:::i;:::-;;;;;;;;12206:609;;;12162:653;:::o;4776:510::-;4840:22;4892:1;4883:6;:10;4875:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;4926:27;4976:1;4956:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4926:52;;4999:53;;;;;;;;5021:6;;;;;;;;;;;4999:53;;;;;;5038:6;;;;;;;;;;;4999:53;;;;;;5047:4;4999:53;;;;;4989:4;4994:1;4989:7;;;;;;;;:::i;:::-;;;;;;;:63;;;;5063:6;;;;;;;;;;;:31;;;5109:6;5130:1;5146:4;5173;5193:15;5063:156;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5247:6;;;;;;;;;;;:16;;;5272:4;5247:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5230:48;;4864:422;4776:510;;;:::o;5294:::-;5358:22;5410:1;5401:6;:10;5393:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;5444:27;5494:1;5474:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5444:52;;5517:53;;;;;;;;5539:6;;;;;;;;;;;5517:53;;;;;;5556:6;;;;;;;;;;;5517:53;;;;;;5565:4;5517:53;;;;;5507:4;5512:1;5507:7;;;;;;;;:::i;:::-;;;;;;;:63;;;;5581:6;;;;;;;;;;;:31;;;5627:6;5648:1;5664:4;5691;5711:15;5581:156;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5765:6;;;;;;;;;;;:16;;;5790:4;5765:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5748:48;;5382:422;5294:510;;;:::o;6916:751::-;6959:7;6979:21;7010:6;;;;;;;;;;;7003:24;;;7036:4;7003:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6979:63;;7053:21;7084:6;;;;;;;;;;;7077:24;;;7110:4;7077:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7053:63;;7179:1;7163:13;:17;7155:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;7272:1;7256:13;:17;7248:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;7341:6;;;;;;;;;;;:19;;;7383:6;;;;;;;;;;;7413;;;;;;;;;;;7435:4;7454:13;7482;7510:1;7526;7550:4;7570:15;7341:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7623:10;;;;;;;;;;;7616:28;;;7653:4;7616:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7609:50;;;;6916:751;:::o;11804:350::-;11847:7;11867:16;11886:10;;;;;;;;;;;:20;;;11915:4;11886:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11867:54;;11947:1;11936:8;:12;11932:184;;;11965:4;;;;;;;;;;;:12;;;11978:1;11981:8;11965:25;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12007:17;12027:15;:13;:15::i;:::-;12007:35;;12092:12;;12084:4;12072:9;:16;;;;:::i;:::-;12071:33;;;;:::i;:::-;12057:11;:47;;;;11950:166;11932:184;12135:11;;12128:18;;;11804:350;:::o;9315:2481::-;9357:7;9377:15;9395;:13;:15::i;:::-;9377:33;;9421:23;9480:1;9465:12;;:16;:31;;;;;9495:1;9485:7;:11;9465:31;9461:2295;;;9513:20;9552:15;9645:4;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9590:4;;;;;;;;;;;:34;;;9625:1;9636:4;9590:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;9586:159;;;9716:13;:11;:13::i;:::-;9690:39;;;;;;;;9586:159;9778:1;9763:12;:16;9759:1986;;;9803:28;9835:25;9852:7;9835:16;:25::i;:::-;9800:60;;;9881:23;9922:20;9907:12;:35;;;;:::i;:::-;9881:61;;9961:22;10017:4;10005:8;;9987:15;:26;;;;:::i;:::-;9986:35;;;;:::i;:::-;9961:60;;10040:21;10097:4;10083:10;;10065:15;:28;;;;:::i;:::-;10064:37;;;;:::i;:::-;10040:61;;10120:11;;;;;;;;;;;:20;;;10141:15;;;;;;;;;;;10158:13;10120:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10191:11;;;;;;;;;;;:20;;;10212:8;;;;;;;;;;;10222:14;10191:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10310:13;10293:14;:30;;;;:::i;:::-;10274:15;:50;;;;:::i;:::-;10256:68;;10346:16;10364;10400:10;;;;;;;;;;;10386:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10345:81;;;;;10447:23;10542:8;10534:17;;10522:8;10514:17;;:37;;;;:::i;:::-;10500:8;10492:17;;10474:15;:35;;;;:::i;:::-;10473:79;;;;:::i;:::-;10447:105;;10571:23;10615:15;10597;:33;;;;:::i;:::-;10571:59;;10651:20;10674:32;10690:15;10674;:32::i;:::-;10651:55;;10725:20;10748:32;10764:15;10748;:32::i;:::-;10725:55;;10802:21;10825;10852:6;;;;;;;;;;;:24;;;10907:6;;;;;;;;;;;10945;;;;;;;;;;;10975:4;11002:12;11037;10852:216;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10801:267;;;;;11108:13;11093:12;:28;11089:376;;;11146:20;11184:13;11169:12;:28;;;;:::i;:::-;11146:51;;11220:34;11241:12;11220:20;:34::i;:::-;;11123:151;11089:376;;;11299:13;11284:12;:28;11280:185;;;11337:20;11375:13;11360:12;:28;;;;:::i;:::-;11337:51;;11411:34;11432:12;11411:20;:34::i;:::-;;11314:151;11280:185;11089:376;11485:19;11507:15;:13;:15::i;:::-;11485:37;;11563:1;11549:11;:15;11541:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11611:15;:13;:15::i;:::-;;11660;11645:12;:30;;;;11714:15;11696:33;;9781:1964;;;;;;;;;;;;;9759:1986;9498:2258;;9461:2295;11773:15;11766:22;;;;9315:2481;:::o;4541:227::-;4582:15;4599;4627:24;4654:10;:8;:10::i;:::-;4627:37;;4687:16;4677:26;;4724:11;;;;;;;;;;;:21;;;4754:4;4724:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4714:46;;4616:152;4541:227;;:::o;7675:653::-;7736:7;7745;7765:21;7807:3;7800;7790:7;:13;;;;:::i;:::-;7789:21;;;;:::i;:::-;7765:45;;7823:27;7873:1;7853:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7823:52;;7896:65;;;;;;;;7918:11;;;;;;;;;;;7896:65;;;;;;7940:12;;;;;;;;;;;7896:65;;;;;;7955:5;7896:65;;;;;7886:4;7891:1;7886:7;;;;;;;;:::i;:::-;;;;;;;:75;;;;7972:26;8001:6;;;;;;;;;;;:19;;;8021:13;8036:4;8001:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7972:69;;8052:28;8083:9;8093:1;8083:12;;;;;;;;:::i;:::-;;;;;;;;8052:43;;8108:21;8132:40;8151:20;8132:18;:40::i;:::-;8108:64;;8208:13;8191;:30;;8183:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8284:13;8299:20;8276:44;;;;;;;;;7675:653;;;:::o;5812:507::-;5877:7;5920:1;5905:12;:16;5897:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;5955:27;6005:1;5985:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5955:52;;6028:59;;;;;;;;6050:11;;;;;;;;;;;6028:59;;;;;;6072:6;;;;;;;;;;;6028:59;;;;;;6081:5;6028:59;;;;;6018:4;6023:1;6018:7;;;;;;;;:::i;:::-;;;;;;;:69;;;;6098:6;;;;;;;;;;;:31;;;6144:12;6171:1;6187:4;6214;6234:15;6098:162;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6280:6;;;;;;;;;;;:16;;;6305:4;6280:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6273:38;;;5812:507;;;:::o;6327:581::-;6392:7;6435:1;6420:12;:16;6412:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6470:27;6520:1;6500:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6470:52;;6543:59;;;;;;;;6565:11;;;;;;;;;;;6543:59;;;;;;6587:6;;;;;;;;;;;6543:59;;;;;;6596:5;6543:59;;;;;6533:4;6538:1;6533:7;;;;;;;;:::i;:::-;;;;;;;:69;;;;6623:53;;;;;;;;6645:6;;;;;;;;;;;6623:53;;;;;;6662:6;;;;;;;;;;;6623:53;;;;;;6671:4;6623:53;;;;;6613:4;6618:1;6613:7;;;;;;;;:::i;:::-;;;;;;;:63;;;;6687:6;;;;;;;;;;;:31;;;6733:12;6760:1;6776:4;6803;6823:15;6687:162;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6869:6;;;;;;;;;;;:16;;;6894:4;6869:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6862:38;;;6327:581;;;:::o;4077:456::-;4115:7;4167:1;4143:21;:25;4135:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4266:4;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4211:4;;;;;;;;;;;:34;;;4246:1;4257:4;4211:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;4203:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;4329:21;4353;4329:45;;4385:4;;;;;;;;;;;:12;;;4405:13;4420:1;4385:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4433:20;4456:21;4433:44;;4513:12;4497:13;:28;;;;:::i;:::-;4490:35;;;;4077:456;:::o;3428:641::-;3498:21;3532:27;3582:1;3562:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3532:52;;3605:65;;;;;;;;3627:11;;;;;;;;;;;3605:65;;;;;;3649:12;;;;;;;;;;;3605:65;;;;;;3664:5;3605:65;;;;;3595:4;3600:1;3595:7;;;;;;;;:::i;:::-;;;;;;;:75;;;;3683:21;3707:6;;;;;;;;;;;:31;;;3753:14;3782:1;3798:4;3825;3845:15;3707:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3683:188;;3882:28;3913:7;3938:1;3921:7;:14;:18;;;;:::i;:::-;3913:27;;;;;;;;:::i;:::-;;;;;;;;3882:58;;3967:12;;;;;;;;;;;3953:37;;;3991:20;3953:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4041:20;4025:36;;3521:548;;;3428:641;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;869:126::-;906:7;946:42;939:5;935:54;924:65;;869:126;;;:::o;1001:60::-;1029:3;1050:5;1043:12;;1001:60;;;:::o;1067:142::-;1117:9;1150:53;1168:34;1177:24;1195:5;1177:24;:::i;:::-;1168:34;:::i;:::-;1150:53;:::i;:::-;1137:66;;1067:142;;;:::o;1215:126::-;1265:9;1298:37;1329:5;1298:37;:::i;:::-;1285:50;;1215:126;;;:::o;1347:141::-;1412:9;1445:37;1476:5;1445:37;:::i;:::-;1432:50;;1347:141;;;:::o;1494:161::-;1596:52;1642:5;1596:52;:::i;:::-;1591:3;1584:65;1494:161;;:::o;1661:252::-;1769:4;1807:2;1796:9;1792:18;1784:26;;1820:86;1903:1;1892:9;1888:17;1879:6;1820:86;:::i;:::-;1661:252;;;;:::o;1919:145::-;1988:9;2021:37;2052:5;2021:37;:::i;:::-;2008:50;;1919:145;;;:::o;2070:169::-;2176:56;2226:5;2176:56;:::i;:::-;2171:3;2164:69;2070:169;;:::o;2245:260::-;2357:4;2395:2;2384:9;2380:18;2372:26;;2408:90;2495:1;2484:9;2480:17;2471:6;2408:90;:::i;:::-;2245:260;;;;:::o;2511:142::-;2577:9;2610:37;2641:5;2610:37;:::i;:::-;2597:50;;2511:142;;;:::o;2659:163::-;2762:53;2809:5;2762:53;:::i;:::-;2757:3;2750:66;2659:163;;:::o;2828:254::-;2937:4;2975:2;2964:9;2960:18;2952:26;;2988:87;3072:1;3061:9;3057:17;3048:6;2988:87;:::i;:::-;2828:254;;;;:::o;3088:75::-;3121:6;3154:2;3148:9;3138:19;;3088:75;:::o;3169:117::-;3278:1;3275;3268:12;3292:117;3401:1;3398;3391:12;3415:96;3452:7;3481:24;3499:5;3481:24;:::i;:::-;3470:35;;3415:96;;;:::o;3517:122::-;3590:24;3608:5;3590:24;:::i;:::-;3583:5;3580:35;3570:63;;3629:1;3626;3619:12;3570:63;3517:122;:::o;3645:139::-;3691:5;3729:6;3716:20;3707:29;;3745:33;3772:5;3745:33;:::i;:::-;3645:139;;;;:::o;3790:329::-;3849:6;3898:2;3886:9;3877:7;3873:23;3869:32;3866:119;;;3904:79;;:::i;:::-;3866:119;4024:1;4049:53;4094:7;4085:6;4074:9;4070:22;4049:53;:::i;:::-;4039:63;;3995:117;3790:329;;;;:::o;4125:122::-;4198:24;4216:5;4198:24;:::i;:::-;4191:5;4188:35;4178:63;;4237:1;4234;4227:12;4178:63;4125:122;:::o;4253:139::-;4299:5;4337:6;4324:20;4315:29;;4353:33;4380:5;4353:33;:::i;:::-;4253:139;;;;:::o;4398:329::-;4457:6;4506:2;4494:9;4485:7;4481:23;4477:32;4474:119;;;4512:79;;:::i;:::-;4474:119;4632:1;4657:53;4702:7;4693:6;4682:9;4678:22;4657:53;:::i;:::-;4647:63;;4603:117;4398:329;;;;:::o;4733:142::-;4799:9;4832:37;4863:5;4832:37;:::i;:::-;4819:50;;4733:142;;;:::o;4881:163::-;4984:53;5031:5;4984:53;:::i;:::-;4979:3;4972:66;4881:163;;:::o;5050:254::-;5159:4;5197:2;5186:9;5182:18;5174:26;;5210:87;5294:1;5283:9;5279:17;5270:6;5210:87;:::i;:::-;5050:254;;;;:::o;5310:169::-;5394:11;5428:6;5423:3;5416:19;5468:4;5463:3;5459:14;5444:29;;5310:169;;;;:::o;5485:180::-;5625:32;5621:1;5613:6;5609:14;5602:56;5485:180;:::o;5671:366::-;5813:3;5834:67;5898:2;5893:3;5834:67;:::i;:::-;5827:74;;5910:93;5999:3;5910:93;:::i;:::-;6028:2;6023:3;6019:12;6012:19;;5671:366;;;:::o;6043:419::-;6209:4;6247:2;6236:9;6232:18;6224:26;;6296:9;6290:4;6286:20;6282:1;6271:9;6267:17;6260:47;6324:131;6450:4;6324:131;:::i;:::-;6316:139;;6043:419;;;:::o;6468:180::-;6516:77;6513:1;6506:88;6613:4;6610:1;6603:15;6637:4;6634:1;6627:15;6654:348;6694:7;6717:20;6735:1;6717:20;:::i;:::-;6712:25;;6751:20;6769:1;6751:20;:::i;:::-;6746:25;;6939:1;6871:66;6867:74;6864:1;6861:81;6856:1;6849:9;6842:17;6838:105;6835:131;;;6946:18;;:::i;:::-;6835:131;6994:1;6991;6987:9;6976:20;;6654:348;;;;:::o;7008:180::-;7056:77;7053:1;7046:88;7153:4;7150:1;7143:15;7177:4;7174:1;7167:15;7194:185;7234:1;7251:20;7269:1;7251:20;:::i;:::-;7246:25;;7285:20;7303:1;7285:20;:::i;:::-;7280:25;;7324:1;7314:35;;7329:18;;:::i;:::-;7314:35;7371:1;7368;7364:9;7359:14;;7194:185;;;;:::o;7385:191::-;7425:4;7445:20;7463:1;7445:20;:::i;:::-;7440:25;;7479:20;7497:1;7479:20;:::i;:::-;7474:25;;7518:1;7515;7512:8;7509:34;;;7523:18;;:::i;:::-;7509:34;7568:1;7565;7561:9;7553:17;;7385:191;;;;:::o;7582:118::-;7669:24;7687:5;7669:24;:::i;:::-;7664:3;7657:37;7582:118;;:::o;7706:332::-;7827:4;7865:2;7854:9;7850:18;7842:26;;7878:71;7946:1;7935:9;7931:17;7922:6;7878:71;:::i;:::-;7959:72;8027:2;8016:9;8012:18;8003:6;7959:72;:::i;:::-;7706:332;;;;;:::o;8044:116::-;8114:21;8129:5;8114:21;:::i;:::-;8107:5;8104:32;8094:60;;8150:1;8147;8140:12;8094:60;8044:116;:::o;8166:137::-;8220:5;8251:6;8245:13;8236:22;;8267:30;8291:5;8267:30;:::i;:::-;8166:137;;;;:::o;8309:345::-;8376:6;8425:2;8413:9;8404:7;8400:23;8396:32;8393:119;;;8431:79;;:::i;:::-;8393:119;8551:1;8576:61;8629:7;8620:6;8609:9;8605:22;8576:61;:::i;:::-;8566:71;;8522:125;8309:345;;;;:::o;8660:163::-;8800:15;8796:1;8788:6;8784:14;8777:39;8660:163;:::o;8829:366::-;8971:3;8992:67;9056:2;9051:3;8992:67;:::i;:::-;8985:74;;9068:93;9157:3;9068:93;:::i;:::-;9186:2;9181:3;9177:12;9170:19;;8829:366;;;:::o;9201:419::-;9367:4;9405:2;9394:9;9390:18;9382:26;;9454:9;9448:4;9444:20;9440:1;9429:9;9425:17;9418:47;9482:131;9608:4;9482:131;:::i;:::-;9474:139;;9201:419;;;:::o;9626:222::-;9719:4;9757:2;9746:9;9742:18;9734:26;;9770:71;9838:1;9827:9;9823:17;9814:6;9770:71;:::i;:::-;9626:222;;;;:::o;9854:143::-;9911:5;9942:6;9936:13;9927:22;;9958:33;9985:5;9958:33;:::i;:::-;9854:143;;;;:::o;10003:351::-;10073:6;10122:2;10110:9;10101:7;10097:23;10093:32;10090:119;;;10128:79;;:::i;:::-;10090:119;10248:1;10273:64;10329:7;10320:6;10309:9;10305:22;10273:64;:::i;:::-;10263:74;;10219:128;10003:351;;;;:::o;10360:305::-;10400:3;10419:20;10437:1;10419:20;:::i;:::-;10414:25;;10453:20;10471:1;10453:20;:::i;:::-;10448:25;;10607:1;10539:66;10535:74;10532:1;10529:81;10526:107;;;10613:18;;:::i;:::-;10526:107;10657:1;10654;10650:9;10643:16;;10360:305;;;;:::o;10671:220::-;10811:34;10807:1;10799:6;10795:14;10788:58;10880:3;10875:2;10867:6;10863:15;10856:28;10671:220;:::o;10897:366::-;11039:3;11060:67;11124:2;11119:3;11060:67;:::i;:::-;11053:74;;11136:93;11225:3;11136:93;:::i;:::-;11254:2;11249:3;11245:12;11238:19;;10897:366;;;:::o;11269:419::-;11435:4;11473:2;11462:9;11458:18;11450:26;;11522:9;11516:4;11512:20;11508:1;11497:9;11493:17;11486:47;11550:131;11676:4;11550:131;:::i;:::-;11542:139;;11269:419;;;:::o;11694:170::-;11834:22;11830:1;11822:6;11818:14;11811:46;11694:170;:::o;11870:366::-;12012:3;12033:67;12097:2;12092:3;12033:67;:::i;:::-;12026:74;;12109:93;12198:3;12109:93;:::i;:::-;12227:2;12222:3;12218:12;12211:19;;11870:366;;;:::o;12242:419::-;12408:4;12446:2;12435:9;12431:18;12423:26;;12495:9;12489:4;12485:20;12481:1;12470:9;12466:17;12459:47;12523:131;12649:4;12523:131;:::i;:::-;12515:139;;12242:419;;;:::o;12667:147::-;12768:11;12805:3;12790:18;;12667:147;;;;:::o;12820:114::-;;:::o;12940:398::-;13099:3;13120:83;13201:1;13196:3;13120:83;:::i;:::-;13113:90;;13212:93;13301:3;13212:93;:::i;:::-;13330:1;13325:3;13321:11;13314:18;;12940:398;;;:::o;13344:379::-;13528:3;13550:147;13693:3;13550:147;:::i;:::-;13543:154;;13714:3;13707:10;;13344:379;;;:::o;13729:165::-;13869:17;13865:1;13857:6;13853:14;13846:41;13729:165;:::o;13900:366::-;14042:3;14063:67;14127:2;14122:3;14063:67;:::i;:::-;14056:74;;14139:93;14228:3;14139:93;:::i;:::-;14257:2;14252:3;14248:12;14241:19;;13900:366;;;:::o;14272:419::-;14438:4;14476:2;14465:9;14461:18;14453:26;;14525:9;14519:4;14515:20;14511:1;14500:9;14496:17;14489:47;14553:131;14679:4;14553:131;:::i;:::-;14545:139;;14272:419;;;:::o;14697:85::-;14742:7;14771:5;14760:16;;14697:85;;;:::o;14788:158::-;14846:9;14879:61;14897:42;14906:32;14932:5;14906:32;:::i;:::-;14897:42;:::i;:::-;14879:61;:::i;:::-;14866:74;;14788:158;;;:::o;14952:147::-;15047:45;15086:5;15047:45;:::i;:::-;15042:3;15035:58;14952:147;;:::o;15105:348::-;15234:4;15272:2;15261:9;15257:18;15249:26;;15285:79;15361:1;15350:9;15346:17;15337:6;15285:79;:::i;:::-;15374:72;15442:2;15431:9;15427:18;15418:6;15374:72;:::i;:::-;15105:348;;;;;:::o;15459:507::-;15538:6;15546;15595:2;15583:9;15574:7;15570:23;15566:32;15563:119;;;15601:79;;:::i;:::-;15563:119;15721:1;15746:64;15802:7;15793:6;15782:9;15778:22;15746:64;:::i;:::-;15736:74;;15692:128;15859:2;15885:64;15941:7;15932:6;15921:9;15917:22;15885:64;:::i;:::-;15875:74;;15830:129;15459:507;;;;;:::o;15972:163::-;16112:15;16108:1;16100:6;16096:14;16089:39;15972:163;:::o;16141:366::-;16283:3;16304:67;16368:2;16363:3;16304:67;:::i;:::-;16297:74;;16380:93;16469:3;16380:93;:::i;:::-;16498:2;16493:3;16489:12;16482:19;;16141:366;;;:::o;16513:419::-;16679:4;16717:2;16706:9;16702:18;16694:26;;16766:9;16760:4;16756:20;16752:1;16741:9;16737:17;16730:47;16794:131;16920:4;16794:131;:::i;:::-;16786:139;;16513:419;;;:::o;16938:179::-;17078:31;17074:1;17066:6;17062:14;17055:55;16938:179;:::o;17123:366::-;17265:3;17286:67;17350:2;17345:3;17286:67;:::i;:::-;17279:74;;17362:93;17451:3;17362:93;:::i;:::-;17480:2;17475:3;17471:12;17464:19;;17123:366;;;:::o;17495:419::-;17661:4;17699:2;17688:9;17684:18;17676:26;;17748:9;17742:4;17738:20;17734:1;17723:9;17719:17;17712:47;17776:131;17902:4;17776:131;:::i;:::-;17768:139;;17495:419;;;:::o;17920:652::-;18119:4;18157:3;18146:9;18142:19;18134:27;;18171:71;18239:1;18228:9;18224:17;18215:6;18171:71;:::i;:::-;18252:72;18320:2;18309:9;18305:18;18296:6;18252:72;:::i;:::-;18334:66;18396:2;18385:9;18381:18;18372:6;18334:66;:::i;:::-;18410:72;18478:2;18467:9;18463:18;18454:6;18410:72;:::i;:::-;18492:73;18560:3;18549:9;18545:19;18536:6;18492:73;:::i;:::-;17920:652;;;;;;;;:::o;18578:663::-;18666:6;18674;18682;18731:2;18719:9;18710:7;18706:23;18702:32;18699:119;;;18737:79;;:::i;:::-;18699:119;18857:1;18882:64;18938:7;18929:6;18918:9;18914:22;18882:64;:::i;:::-;18872:74;;18828:128;18995:2;19021:64;19077:7;19068:6;19057:9;19053:22;19021:64;:::i;:::-;19011:74;;18966:129;19134:2;19160:64;19216:7;19207:6;19196:9;19192:22;19160:64;:::i;:::-;19150:74;;19105:129;18578:663;;;;;:::o;19247:171::-;19387:23;19383:1;19375:6;19371:14;19364:47;19247:171;:::o;19424:366::-;19566:3;19587:67;19651:2;19646:3;19587:67;:::i;:::-;19580:74;;19663:93;19752:3;19663:93;:::i;:::-;19781:2;19776:3;19772:12;19765:19;;19424:366;;;:::o;19796:419::-;19962:4;20000:2;19989:9;19985:18;19977:26;;20049:9;20043:4;20039:20;20035:1;20024:9;20020:17;20013:47;20077:131;20203:4;20077:131;:::i;:::-;20069:139;;19796:419;;;:::o;20221:169::-;20361:21;20357:1;20349:6;20345:14;20338:45;20221:169;:::o;20396:366::-;20538:3;20559:67;20623:2;20618:3;20559:67;:::i;:::-;20552:74;;20635:93;20724:3;20635:93;:::i;:::-;20753:2;20748:3;20744:12;20737:19;;20396:366;;;:::o;20768:419::-;20934:4;20972:2;20961:9;20957:18;20949:26;;21021:9;21015:4;21011:20;21007:1;20996:9;20992:17;20985:47;21049:131;21175:4;21049:131;:::i;:::-;21041:139;;20768:419;;;:::o;21193:442::-;21342:4;21380:2;21369:9;21365:18;21357:26;;21393:71;21461:1;21450:9;21446:17;21437:6;21393:71;:::i;:::-;21474:72;21542:2;21531:9;21527:18;21518:6;21474:72;:::i;:::-;21556;21624:2;21613:9;21609:18;21600:6;21556:72;:::i;:::-;21193:442;;;;;;:::o;21641:348::-;21770:4;21808:2;21797:9;21793:18;21785:26;;21821:79;21897:1;21886:9;21882:17;21873:6;21821:79;:::i;:::-;21910:72;21978:2;21967:9;21963:18;21954:6;21910:72;:::i;:::-;21641:348;;;;;:::o;21995:332::-;22116:4;22154:2;22143:9;22139:18;22131:26;;22167:71;22235:1;22224:9;22220:17;22211:6;22167:71;:::i;:::-;22248:72;22316:2;22305:9;22301:18;22292:6;22248:72;:::i;:::-;21995:332;;;;;:::o;22333:238::-;22434:4;22472:2;22461:9;22457:18;22449:26;;22485:79;22561:1;22550:9;22546:17;22537:6;22485:79;:::i;:::-;22333:238;;;;:::o;22577:172::-;22717:24;22713:1;22705:6;22701:14;22694:48;22577:172;:::o;22755:366::-;22897:3;22918:67;22982:2;22977:3;22918:67;:::i;:::-;22911:74;;22994:93;23083:3;22994:93;:::i;:::-;23112:2;23107:3;23103:12;23096:19;;22755:366;;;:::o;23127:419::-;23293:4;23331:2;23320:9;23316:18;23308:26;;23380:9;23374:4;23370:20;23366:1;23355:9;23351:17;23344:47;23408:131;23534:4;23408:131;:::i;:::-;23400:139;;23127:419;;;:::o;23552:168::-;23692:20;23688:1;23680:6;23676:14;23669:44;23552:168;:::o;23726:366::-;23868:3;23889:67;23953:2;23948:3;23889:67;:::i;:::-;23882:74;;23965:93;24054:3;23965:93;:::i;:::-;24083:2;24078:3;24074:12;24067:19;;23726:366;;;:::o;24098:419::-;24264:4;24302:2;24291:9;24287:18;24279:26;;24351:9;24345:4;24341:20;24337:1;24326:9;24322:17;24315:47;24379:131;24505:4;24379:131;:::i;:::-;24371:139;;24098:419;;;:::o;24523:172::-;24663:24;24659:1;24651:6;24647:14;24640:48;24523:172;:::o;24701:366::-;24843:3;24864:67;24928:2;24923:3;24864:67;:::i;:::-;24857:74;;24940:93;25029:3;24940:93;:::i;:::-;25058:2;25053:3;25049:12;25042:19;;24701:366;;;:::o;25073:419::-;25239:4;25277:2;25266:9;25262:18;25254:26;;25326:9;25320:4;25316:20;25312:1;25301:9;25297:17;25290:47;25354:131;25480:4;25354:131;:::i;:::-;25346:139;;25073:419;;;:::o;25498:167::-;25638:19;25634:1;25626:6;25622:14;25615:43;25498:167;:::o;25671:366::-;25813:3;25834:67;25898:2;25893:3;25834:67;:::i;:::-;25827:74;;25910:93;25999:3;25910:93;:::i;:::-;26028:2;26023:3;26019:12;26012:19;;25671:366;;;:::o;26043:419::-;26209:4;26247:2;26236:9;26232:18;26224:26;;26296:9;26290:4;26286:20;26282:1;26271:9;26267:17;26260:47;26324:131;26450:4;26324:131;:::i;:::-;26316:139;;26043:419;;;:::o;26468:180::-;26516:77;26513:1;26506:88;26613:4;26610:1;26603:15;26637:4;26634:1;26627:15;26654:180;26702:77;26699:1;26692:88;26799:4;26796:1;26789:15;26823:4;26820:1;26813:15;26840:85;26885:7;26914:5;26903:16;;26840:85;;;:::o;26931:158::-;26989:9;27022:61;27040:42;27049:32;27075:5;27049:32;:::i;:::-;27040:42;:::i;:::-;27022:61;:::i;:::-;27009:74;;26931:158;;;:::o;27095:147::-;27190:45;27229:5;27190:45;:::i;:::-;27185:3;27178:58;27095:147;;:::o;27248:137::-;27338:6;27372:5;27366:12;27356:22;;27248:137;;;:::o;27391:207::-;27513:11;27547:6;27542:3;27535:19;27587:4;27582:3;27578:14;27563:29;;27391:207;;;;:::o;27604:155::-;27694:4;27717:3;27709:11;;27747:4;27742:3;27738:14;27730:22;;27604:155;;;:::o;27765:108::-;27842:24;27860:5;27842:24;:::i;:::-;27837:3;27830:37;27765:108;;:::o;27879:99::-;27950:21;27965:5;27950:21;:::i;:::-;27945:3;27938:34;27879:99;;:::o;28036:661::-;28169:4;28164:3;28160:14;28256:4;28249:5;28245:16;28239:23;28275:63;28332:4;28327:3;28323:14;28309:12;28275:63;:::i;:::-;28184:164;28428:4;28421:5;28417:16;28411:23;28447:63;28504:4;28499:3;28495:14;28481:12;28447:63;:::i;:::-;28358:162;28604:4;28597:5;28593:16;28587:23;28623:57;28674:4;28669:3;28665:14;28651:12;28623:57;:::i;:::-;28530:160;28138:559;28036:661;;:::o;28703:271::-;28818:10;28839:92;28927:3;28919:6;28839:92;:::i;:::-;28963:4;28958:3;28954:14;28940:28;;28703:271;;;;:::o;28980:136::-;29073:4;29105;29100:3;29096:14;29088:22;;28980:136;;;:::o;29178:916::-;29343:3;29372:77;29443:5;29372:77;:::i;:::-;29465:109;29567:6;29562:3;29465:109;:::i;:::-;29458:116;;29598:79;29671:5;29598:79;:::i;:::-;29700:7;29731:1;29716:353;29741:6;29738:1;29735:13;29716:353;;;29817:6;29811:13;29844:109;29949:3;29934:13;29844:109;:::i;:::-;29837:116;;29976:83;30052:6;29976:83;:::i;:::-;29966:93;;29776:293;29763:1;29760;29756:9;29751:14;;29716:353;;;29720:14;30085:3;30078:10;;29348:746;;;29178:916;;;;:::o;30100:923::-;30409:4;30447:3;30436:9;30432:19;30424:27;;30461:71;30529:1;30518:9;30514:17;30505:6;30461:71;:::i;:::-;30542:80;30618:2;30607:9;30603:18;30594:6;30542:80;:::i;:::-;30669:9;30663:4;30659:20;30654:2;30643:9;30639:18;30632:48;30697:154;30846:4;30837:6;30697:154;:::i;:::-;30689:162;;30861:72;30929:2;30918:9;30914:18;30905:6;30861:72;:::i;:::-;30943:73;31011:3;31000:9;30996:19;30987:6;30943:73;:::i;:::-;30100:923;;;;;;;;:::o;31029:117::-;31138:1;31135;31128:12;31152:102;31193:6;31244:2;31240:7;31235:2;31228:5;31224:14;31220:28;31210:38;;31152:102;;;:::o;31260:281::-;31343:27;31365:4;31343:27;:::i;:::-;31335:6;31331:40;31473:6;31461:10;31458:22;31437:18;31425:10;31422:34;31419:62;31416:88;;;31484:18;;:::i;:::-;31416:88;31524:10;31520:2;31513:22;31303:238;31260:281;;:::o;31547:129::-;31581:6;31608:20;;:::i;:::-;31598:30;;31637:33;31665:4;31657:6;31637:33;:::i;:::-;31547:129;;;:::o;31682:311::-;31759:4;31849:18;31841:6;31838:30;31835:56;;;31871:18;;:::i;:::-;31835:56;31921:4;31913:6;31909:17;31901:25;;31981:4;31975;31971:15;31963:23;;31682:311;;;:::o;31999:117::-;32108:1;32105;32098:12;32139:732;32246:5;32271:81;32287:64;32344:6;32287:64;:::i;:::-;32271:81;:::i;:::-;32262:90;;32372:5;32401:6;32394:5;32387:21;32435:4;32428:5;32424:16;32417:23;;32488:4;32480:6;32476:17;32468:6;32464:30;32517:3;32509:6;32506:15;32503:122;;;32536:79;;:::i;:::-;32503:122;32651:6;32634:231;32668:6;32663:3;32660:15;32634:231;;;32743:3;32772:48;32816:3;32804:10;32772:48;:::i;:::-;32767:3;32760:61;32850:4;32845:3;32841:14;32834:21;;32710:155;32694:4;32689:3;32685:14;32678:21;;32634:231;;;32638:21;32252:619;;32139:732;;;;;:::o;32894:385::-;32976:5;33025:3;33018:4;33010:6;33006:17;33002:27;32992:122;;33033:79;;:::i;:::-;32992:122;33143:6;33137:13;33168:105;33269:3;33261:6;33254:4;33246:6;33242:17;33168:105;:::i;:::-;33159:114;;32982:297;32894:385;;;;:::o;33285:554::-;33380:6;33429:2;33417:9;33408:7;33404:23;33400:32;33397:119;;;33435:79;;:::i;:::-;33397:119;33576:1;33565:9;33561:17;33555:24;33606:18;33598:6;33595:30;33592:117;;;33628:79;;:::i;:::-;33592:117;33733:89;33814:7;33805:6;33794:9;33790:22;33733:89;:::i;:::-;33723:99;;33526:306;33285:554;;;;:::o;33845:167::-;33985:19;33981:1;33973:6;33969:14;33962:43;33845:167;:::o;34018:366::-;34160:3;34181:67;34245:2;34240:3;34181:67;:::i;:::-;34174:74;;34257:93;34346:3;34257:93;:::i;:::-;34375:2;34370:3;34366:12;34359:19;;34018:366;;;:::o;34390:419::-;34556:4;34594:2;34583:9;34579:18;34571:26;;34643:9;34637:4;34633:20;34629:1;34618:9;34614:17;34607:47;34671:131;34797:4;34671:131;:::i;:::-;34663:139;;34390:419;;;:::o;34815:239::-;34955:34;34951:1;34943:6;34939:14;34932:58;35024:22;35019:2;35011:6;35007:15;35000:47;34815:239;:::o;35060:366::-;35202:3;35223:67;35287:2;35282:3;35223:67;:::i;:::-;35216:74;;35299:93;35388:3;35299:93;:::i;:::-;35417:2;35412:3;35408:12;35401:19;;35060:366;;;:::o;35432:419::-;35598:4;35636:2;35625:9;35621:18;35613:26;;35685:9;35679:4;35675:20;35671:1;35660:9;35656:17;35649:47;35713:131;35839:4;35713:131;:::i;:::-;35705:139;;35432:419;;;:::o;35857:239::-;35997:34;35993:1;35985:6;35981:14;35974:58;36066:22;36061:2;36053:6;36049:15;36042:47;35857:239;:::o;36102:366::-;36244:3;36265:67;36329:2;36324:3;36265:67;:::i;:::-;36258:74;;36341:93;36430:3;36341:93;:::i;:::-;36459:2;36454:3;36450:12;36443:19;;36102:366;;;:::o;36474:419::-;36640:4;36678:2;36667:9;36663:18;36655:26;;36727:9;36721:4;36717:20;36713:1;36702:9;36698:17;36691:47;36755:131;36881:4;36755:131;:::i;:::-;36747:139;;36474:419;;;:::o;36899:1128::-;37226:4;37264:3;37253:9;37249:19;37241:27;;37278:71;37346:1;37335:9;37331:17;37322:6;37278:71;:::i;:::-;37359:72;37427:2;37416:9;37412:18;37403:6;37359:72;:::i;:::-;37441:66;37503:2;37492:9;37488:18;37479:6;37441:66;:::i;:::-;37517:72;37585:2;37574:9;37570:18;37561:6;37517:72;:::i;:::-;37599:73;37667:3;37656:9;37652:19;37643:6;37599:73;:::i;:::-;37682:81;37758:3;37747:9;37743:19;37734:6;37682:81;:::i;:::-;37773;37849:3;37838:9;37834:19;37825:6;37773:81;:::i;:::-;37864:73;37932:3;37921:9;37917:19;37908:6;37864:73;:::i;:::-;37947;38015:3;38004:9;38000:19;37991:6;37947:73;:::i;:::-;36899:1128;;;;;;;;;;;;:::o;38033:114::-;38070:7;38110:30;38103:5;38099:42;38088:53;;38033:114;;;:::o;38153:122::-;38226:24;38244:5;38226:24;:::i;:::-;38219:5;38216:35;38206:63;;38265:1;38262;38255:12;38206:63;38153:122;:::o;38281:143::-;38338:5;38369:6;38363:13;38354:22;;38385:33;38412:5;38385:33;:::i;:::-;38281:143;;;;:::o;38430:93::-;38466:7;38506:10;38499:5;38495:22;38484:33;;38430:93;;;:::o;38529:120::-;38601:23;38618:5;38601:23;:::i;:::-;38594:5;38591:34;38581:62;;38639:1;38636;38629:12;38581:62;38529:120;:::o;38655:141::-;38711:5;38742:6;38736:13;38727:22;;38758:32;38784:5;38758:32;:::i;:::-;38655:141;;;;:::o;38802:661::-;38889:6;38897;38905;38954:2;38942:9;38933:7;38929:23;38925:32;38922:119;;;38960:79;;:::i;:::-;38922:119;39080:1;39105:64;39161:7;39152:6;39141:9;39137:22;39105:64;:::i;:::-;39095:74;;39051:128;39218:2;39244:64;39300:7;39291:6;39280:9;39276:22;39244:64;:::i;:::-;39234:74;;39189:129;39357:2;39383:63;39438:7;39429:6;39418:9;39414:22;39383:63;:::i;:::-;39373:73;;39328:128;38802:661;;;;;:::o;39469:575::-;39686:4;39724:2;39713:9;39709:18;39701:26;;39737:71;39805:1;39794:9;39790:17;39781:6;39737:71;:::i;:::-;39855:9;39849:4;39845:20;39840:2;39829:9;39825:18;39818:48;39883:154;40032:4;40023:6;39883:154;:::i;:::-;39875:162;;39469:575;;;;;:::o;40050:224::-;40190:34;40186:1;40178:6;40174:14;40167:58;40259:7;40254:2;40246:6;40242:15;40235:32;40050:224;:::o;40280:366::-;40422:3;40443:67;40507:2;40502:3;40443:67;:::i;:::-;40436:74;;40519:93;40608:3;40519:93;:::i;:::-;40637:2;40632:3;40628:12;40621:19;;40280:366;;;:::o;40652:419::-;40818:4;40856:2;40845:9;40841:18;40833:26;;40905:9;40899:4;40895:20;40891:1;40880:9;40876:17;40869:47;40933:131;41059:4;40933:131;:::i;:::-;40925:139;;40652:419;;;:::o;41077:166::-;41217:18;41213:1;41205:6;41201:14;41194:42;41077:166;:::o;41249:366::-;41391:3;41412:67;41476:2;41471:3;41412:67;:::i;:::-;41405:74;;41488:93;41577:3;41488:93;:::i;:::-;41606:2;41601:3;41597:12;41590:19;;41249:366;;;:::o;41621:419::-;41787:4;41825:2;41814:9;41810:18;41802:26;;41874:9;41868:4;41864:20;41860:1;41849:9;41845:17;41838:47;41902:131;42028:4;41902:131;:::i;:::-;41894:139;;41621:419;;;:::o;42046:169::-;42186:21;42182:1;42174:6;42170:14;42163:45;42046:169;:::o;42221:366::-;42363:3;42384:67;42448:2;42443:3;42384:67;:::i;:::-;42377:74;;42460:93;42549:3;42460:93;:::i;:::-;42578:2;42573:3;42569:12;42562:19;;42221:366;;;:::o;42593:419::-;42759:4;42797:2;42786:9;42782:18;42774:26;;42846:9;42840:4;42836:20;42832:1;42821:9;42817:17;42810:47;42874:131;43000:4;42874:131;:::i;:::-;42866:139;;42593:419;;;:::o;43018:171::-;43158:23;43154:1;43146:6;43142:14;43135:47;43018:171;:::o;43195:366::-;43337:3;43358:67;43422:2;43417:3;43358:67;:::i;:::-;43351:74;;43434:93;43523:3;43434:93;:::i;:::-;43552:2;43547:3;43543:12;43536:19;;43195:366;;;:::o;43567:419::-;43733:4;43771:2;43760:9;43756:18;43748:26;;43820:9;43814:4;43810:20;43806:1;43795:9;43791:17;43784:47;43848:131;43974:4;43848:131;:::i;:::-;43840:139;;43567:419;;;:::o
Swarm Source
ipfs://f00b65cc8646a5452ffa641375892fbca85ff64ba5aef6ef3f998644dd967bb6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ 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.