Contract 0x345DADb10A200F10814Ad8523fCA0f2d958C3370 1

 
 
Txn Hash
Method
Block
From
To
Value
0x7bbf3e3aceac5ded7ce3d8a1cc14705be15cf01b96f4ee8520bc4fec686f0169Approve153124982022-08-10 5:22:0518 hrs 30 mins ago0xdf8264a4af314c772fef16bbf744148dfdc20531 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00053453 10.85235686
0xccdf0733ccd8248d3b2f978ed2e2759a2fa527dddf4aac7e0396b2ce775bfb09Transfer153071372022-08-09 9:12:111 day 14 hrs ago0xf12fa5f6a3b1e2b11e0ae4915de012f55c7be061 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.000485766
0xf5db87939589857f08817b598696c126c6c1142842b050e77df83bdd43751ac6Transfer153001432022-08-08 7:11:322 days 16 hrs ago0xf12fa5f6a3b1e2b11e0ae4915de012f55c7be061 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.000728649
0x3b03d0c3ea1e5e342f72d29dc5bfbb1887cbd04f84957362ed36abaa74093e70Transfer153001252022-08-08 7:07:392 days 16 hrs ago0xbdddc60650f5e0b5ea61e957d665ecfb90f89a88 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00067758 11.47048126
0x48b0ab86df1fd049cb9b8d184b2bb1d1ebabde7156e2ba939d991b025b8246b3Transfer152988452022-08-08 2:01:172 days 21 hrs ago0xf12fa5f6a3b1e2b11e0ae4915de012f55c7be061 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.000647688
0xd0c7fe152d83027601633b7c299a326c183d39b65b4c6129ddc4a3108f90d629Approve152987322022-08-08 1:38:502 days 22 hrs ago0x549d2ace4e53f535fed5891274f66d828cafa956 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00028314 5.74852999
0xc8a264a32853273e66ae04f02d47d36fb4efb9a77894e2138729fe77cb842b76Transfer152987212022-08-08 1:37:262 days 22 hrs ago0xf12fa5f6a3b1e2b11e0ae4915de012f55c7be061 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.000647688
0xfea32192fc31ebb15c48e846ec21236e109d7a3820152c17d2d6e3e4b8d07952Approve152986672022-08-08 1:22:112 days 22 hrs ago0xf12fa5f6a3b1e2b11e0ae4915de012f55c7be061 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.000541811
0x0155cf1407890bdbe149dd0c23607d3485d79e5eb2d4ab7e387ec03f7d52ddbbApprove152973632022-08-07 20:30:073 days 3 hrs agoENS Name rexdomini.eth IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00059106 12
0x5b63d81a33e745f50530f5b7ad9ab4f5b88f109ab6b13bf98a6aa012fb898a54Approve152915402022-08-06 22:52:494 days 1 hr ago0x5afad9063b4666fc8d9bbf581f01b3be6bc09f25 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00041045 8.33336341
0xb1f14917ea8dfbd231cfd2ccde0953c2631661626975280eee8b66bd49ee3bc9Approve152822402022-08-05 12:11:115 days 11 hrs ago0x09b44efa943093e6a448b4cf25d150ef44b4ed54 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00078612 16.05807472
0xcb3723b52966d106d4a8230da7be17adc434d3bd90fe3d36bb7fe57e1bee37dbApprove152729672022-08-04 1:30:056 days 22 hrs ago0x322cfecbae63ca48b4beba9ac379fe60bbb5e835 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00042004 8.5278986
0xf24feff01dc6a357eaf910f307b693ff3816b59bce76b904b0b677e359f6d068Approve152560352022-08-01 10:10:519 days 13 hrs ago0xadf64d1a6e6dc4a498c3657caff8b8b5cfed73d7 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00033019 6.70383486
0xff380ca9bbfc705902d1ddcf506896959eaadd4c04ad21108551cd1578b21c00Approve152456522022-07-30 19:20:3911 days 4 hrs ago0x09b44efa943093e6a448b4cf25d150ef44b4ed54 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00032639 6.62654911
0xe7bbf07e9651e522d5a3330e188d60a85f261df422ec34d6e44ff2fc0547e981Approve152223642022-07-27 4:26:2014 days 19 hrs ago0x26033d2c18ff99eefaffba718bbc62b39995da0c IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00043783 8.88912027
0x0d02f116375b98e8f0c69a776b37ca43fb3466be9f113e1aa415dd0c62df7f3fApprove152186752022-07-26 14:38:0515 days 9 hrs ago0x30e8b02e0db5a05bbfc4eec38dd8b07cdbc96f12 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00151826 30.82463326
0x76c71f61ed2eaa3a22a0c257380f7880eccda1878d132ab7cb7009eb3626bf9cApprove152153132022-07-26 1:56:4815 days 21 hrs ago0x068166e653cbde03458238952aa5070b0b2b0c59 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00168102 34.12900024
0xc3ad40d1ab5ca351951d08a55ad68300db139f0db6a49dd335ebc53612b22c98Approve151718472022-07-19 7:59:2822 days 15 hrs ago0x43cd094e9540e00e2d92c648f254cc18911b8e9d IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.0007234 14.6868898
0xe73e7a7ef068e14d55b4deb6828dbbc4a6b968b7e381eace7fe5c4b665c6aaadApprove151601812022-07-17 12:33:4424 days 11 hrs ago0x4bf581d61e7c1af4965ce7ca32917afd6b9c202f IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00068282 13.86308397
0x8fda918591236721374692445b50421520e738bc6a040e566a2612eec9c3e533Approve151437382022-07-14 23:16:3827 days 36 mins ago0xc76093030654b5a11c54201c738b8e33cf17605e IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00084813 17.21933074
0x3ab63074c11e47f6e8c6207d81fe3e2329e7fcbd4cddecabeee3cc4753e1edb7Approve151437362022-07-14 23:16:2227 days 36 mins ago0x893c9b9bba22c962e2cf665b1f6a4b10e267e558 IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00075235 15.27470995
0x10b57827ba832de79c96dfa3f9ae427ba3d6ec6bab5ea13bd5ff9461b37ebcceApprove151367842022-07-13 21:54:5928 days 1 hr ago0x26033d2c18ff99eefaffba718bbc62b39995da0c IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00206307 41.88552384
0x80708478ab8f5149c46a3030051b534614998f7f138ca07a6c67a24f1302e585Approve151303682022-07-12 21:44:5329 days 2 hrs ago0x14439dbe3eacf79d66d11d866a38fff52fe67fac IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00136178 27.64759352
0x15e98b4965d032005801476fefdb1ef4894398c6d3434798011bb7c7f08ec3e6Transfer151108042022-07-09 21:24:2032 days 2 hrs ago0x21693b3c0a817c3d7e76b31523fd295c73594a4a IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00266804 35.02112675
0x7ab59a0a7d1737268505f64eed9da9bb41a114522fbc1f2d4d57a2c2e9021b1fApprove151006472022-07-08 7:45:1833 days 16 hrs ago0x6c1068723502a856f708acf1e1d48fd8dfe1022c IN  0x345dadb10a200f10814ad8523fca0f2d958c33700 Ether0.00080235 16.28975657
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x276afc3baed069c2ca0d9ce48a95d12a07b6f81e120aca43064a100cc8ce6a50153125102022-08-10 5:23:4218 hrs 29 mins ago 0x345dadb10a200f10814ad8523fca0f2d958c33700xd8cbc07014e844e7fe3455380c2e90dae2699d540.15528102 Ether
0x276afc3baed069c2ca0d9ce48a95d12a07b6f81e120aca43064a100cc8ce6a50153125102022-08-10 5:23:4218 hrs 29 mins ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.01397217 Ether
0x276afc3baed069c2ca0d9ce48a95d12a07b6f81e120aca43064a100cc8ce6a50153125102022-08-10 5:23:4218 hrs 29 mins ago 0x345dadb10a200f10814ad8523fca0f2d958c3370 Uniswap V2: Router 20.03101901 Ether
0x276afc3baed069c2ca0d9ce48a95d12a07b6f81e120aca43064a100cc8ce6a50153125102022-08-10 5:23:4218 hrs 29 mins ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.17232785 Ether
0x4f653cf60418943032077ddbf3ac845791fecede438571a33ca79b5639eff567152970332022-08-07 19:14:433 days 4 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c33700xd8cbc07014e844e7fe3455380c2e90dae2699d540.21532958 Ether
0x4f653cf60418943032077ddbf3ac845791fecede438571a33ca79b5639eff567152970332022-08-07 19:14:433 days 4 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.01939637 Ether
0x4f653cf60418943032077ddbf3ac845791fecede438571a33ca79b5639eff567152970332022-08-07 19:14:433 days 4 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c3370 Uniswap V2: Router 20.04300972 Ether
0x4f653cf60418943032077ddbf3ac845791fecede438571a33ca79b5639eff567152970332022-08-07 19:14:433 days 4 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.23894293 Ether
0xb33828d314d64468235ffb279b5315ebee1e9689a44748c88450a736919e07db152560642022-08-01 10:18:189 days 13 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c33700xd8cbc07014e844e7fe3455380c2e90dae2699d540.23155322 Ether
0xb33828d314d64468235ffb279b5315ebee1e9689a44748c88450a736919e07db152560642022-08-01 10:18:189 days 13 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.02086165 Ether
0xb33828d314d64468235ffb279b5315ebee1e9689a44748c88450a736919e07db152560642022-08-01 10:18:189 days 13 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c3370 Uniswap V2: Router 20.04624936 Ether
0xb33828d314d64468235ffb279b5315ebee1e9689a44748c88450a736919e07db152560642022-08-01 10:18:189 days 13 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.25694094 Ether
0x4280ab50df0b6cbc1679429bb254baf4b5fbc18a0691603d5ae7f5b87f4e732c152096432022-07-25 4:56:0916 days 18 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c33700xd8cbc07014e844e7fe3455380c2e90dae2699d540.2235461 Ether
0x4280ab50df0b6cbc1679429bb254baf4b5fbc18a0691603d5ae7f5b87f4e732c152096432022-07-25 4:56:0916 days 18 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.02013452 Ether
0x4280ab50df0b6cbc1679429bb254baf4b5fbc18a0691603d5ae7f5b87f4e732c152096432022-07-25 4:56:0916 days 18 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c3370 Uniswap V2: Router 20.04465132 Ether
0x4280ab50df0b6cbc1679429bb254baf4b5fbc18a0691603d5ae7f5b87f4e732c152096432022-07-25 4:56:0916 days 18 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.24806289 Ether
0xefae9afa716636c85576a9e2d4e122d2d2190731c9e66e4f13f8cfb9207dc150151569962022-07-17 0:43:4824 days 23 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c33700xd8cbc07014e844e7fe3455380c2e90dae2699d540.22525997 Ether
0xefae9afa716636c85576a9e2d4e122d2d2190731c9e66e4f13f8cfb9207dc150151569962022-07-17 0:43:4824 days 23 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.02028742 Ether
0xefae9afa716636c85576a9e2d4e122d2d2190731c9e66e4f13f8cfb9207dc150151569962022-07-17 0:43:4824 days 23 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c3370 Uniswap V2: Router 20.04499397 Ether
0xefae9afa716636c85576a9e2d4e122d2d2190731c9e66e4f13f8cfb9207dc150151569962022-07-17 0:43:4824 days 23 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.24996653 Ether
0x7b9923790a24daecb9e457da89dce2ca81aec2e43a2f28891ca149347a1070d1151070652022-07-09 7:35:3132 days 16 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c33700xd8cbc07014e844e7fe3455380c2e90dae2699d540.26441153 Ether
0x7b9923790a24daecb9e457da89dce2ca81aec2e43a2f28891ca149347a1070d1151070652022-07-09 7:35:3132 days 16 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.02382653 Ether
0x7b9923790a24daecb9e457da89dce2ca81aec2e43a2f28891ca149347a1070d1151070652022-07-09 7:35:3132 days 16 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c3370 Uniswap V2: Router 20.05281134 Ether
0x7b9923790a24daecb9e457da89dce2ca81aec2e43a2f28891ca149347a1070d1151070652022-07-09 7:35:3132 days 16 hrs ago Uniswap V2: Router 2 0x345dadb10a200f10814ad8523fca0f2d958c33700.29339633 Ether
0x90d2216457133a90cb5ff919c87eb8aa06d3883b2a7c9735261f22e8f3c64ca2149748162022-06-16 18:32:3355 days 5 hrs ago 0x345dadb10a200f10814ad8523fca0f2d958c33700xd8cbc07014e844e7fe3455380c2e90dae2699d540.21451778 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KORI

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-14
*/

//SPDX-License-Identifier: MIT 

pragma solidity ^0.8.9;

library SafeMath {
	function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b;	require(c >= a, "Addition overflow"); return c; }
	function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "Subtraction overflow"); }
	function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage);	uint256 c = a - b; return c; }
	function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "Multiplication overflow"); return c; }
	function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "Division by zero"); }
	function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c;	}
	function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "Modulo by zero"); }
	function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; }
}

interface IERC20 {
	function totalSupply() external view returns (uint256);
	function decimals() external view returns (uint8);
	function symbol() external view returns (string memory);
	function name() external view returns (string memory);
	function getOwner() external view returns (address);
	function balanceOf(address account) external view returns (uint256);
	function transfer(address recipient, 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 sender, address recipient, uint256 amount) external returns (bool);
	event Transfer(address indexed from, address indexed to, uint256 value);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
	address internal owner;
	constructor(address _owner) { owner = _owner; }
	modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; }
	function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner;	emit OwnershipTransferred(newOwner); }
	event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract KORI is IERC20, Auth {
	using SafeMath for uint256;
	string _name = "Kori Inu";
	string _symbol = "KORI";
	uint256 constant _totalSupply = 1 * (10**12) * (10 ** _decimals);
	uint8 constant _decimals = 9;
    uint32 _smd; uint32 _smr;
	mapping (address => uint256) _balances;
	mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) private _excludedFromFee;
    bool public tradingOpen;
    bool public taxPaused;
    uint256 public maxTxAmount; uint256 public maxWalletAmount;
  	uint256 private _taxSwapMin; uint256 private _taxSwapMax;
	address private _operator; 
    address private _uniLpAddr;
    uint16 public snipersCaught = 0;
	uint8 _defTaxRate = 11; 
	uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate;
    uint16 private _autoLPShares = 180;
	uint16 private _taxShares1 = 820;
    uint16 private _taxShares2 = 0;
    uint16 private _taxShares3 = 0;
    uint256 private _sbt = 0;

    uint256 private _humanBlock = 0;
    mapping (address => bool) private _nonSniper;
    mapping (address => uint256) private _sniperBlock;

	uint256 private _taxBreakEnd;
	address payable private _taxWallet1 = payable(0xD8cbC07014E844e7fe3455380C2E90dae2699d54);
	address payable private _taxWallet2 = payable(0xD8cbC07014E844e7fe3455380C2E90dae2699d54);
    address payable private _taxWallet3 = payable(0xD8cbC07014E844e7fe3455380C2E90dae2699d54);
	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UniswapV2
    IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	constructor (uint32 smd, uint32 smr) Auth(msg.sender) {      
		tradingOpen = false;
		taxPaused = false;
		_operator = msg.sender;
		maxTxAmount = _totalSupply;
		maxWalletAmount = _totalSupply;
		_taxSwapMin = _totalSupply * 10 / 10000;
		_taxSwapMax = _totalSupply * 50 / 10000;
		_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);
		_excludedFromFee[owner] = true;
		_excludedFromFee[address(this)] = true;
		_excludedFromFee[_uniswapV2RouterAddress] = true;
		_excludedFromFee[_taxWallet1] = true;
		_smd = smd; _smr = smr;
		_balances[address(this)] = _totalSupply;
		emit Transfer(address(0), address(this), _totalSupply);
	}
	
	receive() external payable {}
	
	function totalSupply() external pure override returns (uint256) { return _totalSupply; }
	function decimals() external pure override returns (uint8) { return _decimals; }
	function symbol() external view override returns (string memory) { return _symbol; }
	function name() external view override returns (string memory) { return _name; }
	function getOwner() external view override returns (address) { return owner; }
	function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
	function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

	function initLP(uint256 ethAmountWei) external onlyOwner {
		require(!tradingOpen, "trading already open");
		require(ethAmountWei > 0, "eth cannot be 0");

		_nonSniper[address(this)] = true;
		_nonSniper[owner] = true;
		_nonSniper[_taxWallet1] = true;
		_nonSniper[_taxWallet2] = true;
		_nonSniper[_taxWallet3] = true;

		_transferFrom(address(this), owner, _totalSupply * 25 / 100);
		uint256 _contractETHBalance = address(this).balance;
		require(_contractETHBalance >= ethAmountWei, "not enough eth");
		uint256 _contractTokenBalance = balanceOf(address(this));
		require(_contractTokenBalance > 0, "no tokens");
		_uniLpAddr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

		_nonSniper[_uniLpAddr] = true;

		_approveRouter(_contractTokenBalance);
		_addLiquidity(_contractTokenBalance, ethAmountWei, false);

		_openTrading();
	}

	function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
		address lpTokenRecipient = address(0);
		if (autoburn == false) { lpTokenRecipient = owner; }
		_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
	}

	function taxSwapSettings(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_taxSwapMin = _totalSupply * minValue / minDivider;
		_taxSwapMax = _totalSupply * maxValue / maxDivider;
	}

	function resetTax() external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_resetTax();
	}

	function _resetTax() internal {
		_buyTaxRate = _defTaxRate;
		_sellTaxRate = _defTaxRate;
		_txTaxRate = _defTaxRate;
	}

	function isSniper(address wallet) external view returns(bool) {
		if (_sniperBlock[wallet] != 0) { return true; }
		else { return false; }
	}

	function sniperBlock(address wallet) external view returns(uint256) {
		return _sniperBlock[wallet];
	}

	function disableFeesFor(address wallet) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_excludedFromFee[ wallet ] = true;
	}
	function enableFeesFor(address wallet) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_excludedFromFee[ wallet ] = false;
	}

    function decreaseTaxRate(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        require(newBuyTax <= _buyTaxRate && newSellTax <= _sellTaxRate && newTxTax <= _txTaxRate, "New tax must be lower");
		_buyTaxRate = newBuyTax;
		_sellTaxRate = newSellTax;
		_txTaxRate = newTxTax;
    }
  
    function changeTaxDistribution(uint16 sharesAutoLP, uint16 sharesWallet1, uint16 sharesWallet2, uint16 sharesWallet3) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        require(sharesAutoLP + sharesWallet1 + sharesWallet2 + sharesWallet3 == 1000, "Sum must be 1000" );
        _autoLPShares = sharesAutoLP;
        _taxShares1 = sharesWallet1;
        _taxShares2 = sharesWallet2;
        _taxShares3 = sharesWallet3;
    }
    
    function setTaxWallets(address newTaxWall1, address newTaxWall2, address newTaxWall3) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        _taxWallet1 = payable(newTaxWall1);
        _taxWallet2 = payable(newTaxWall2);
        _taxWallet3 = payable(newTaxWall3);
		_excludedFromFee[newTaxWall1] = true;
		_excludedFromFee[newTaxWall2] = true;
		_excludedFromFee[newTaxWall3] = true;
    }

	function approve(address spender, uint256 amount) public override returns (bool) {
		if (_humanBlock > block.number && _nonSniper[msg.sender] == false) {
			_markSniper(msg.sender, block.number);
		}

		_allowances[msg.sender][spender] = amount;
		emit Approval(msg.sender, spender, amount);
		return true;
	}

	function transfer(address recipient, uint256 amount) external override returns (bool) {
	    require(_checkTradingOpen(), "trading not open");
		return _transferFrom(msg.sender, recipient, amount);
	}
    
    function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000;
        require(newTxAmt >= maxTxAmount, "tx limit too low");
        maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000;
        require(newWalletAmt >= maxWalletAmount, "wallet limit too low");
        maxWalletAmount = newWalletAmt;
    }

    function openTrading() external onlyOwner{
        _openTrading();
	}
	
    function _openTrading() internal {
        require(_uniLpAddr != address(0), "LP not set");
        _taxBreakEnd = block.timestamp;
        _sbt = _sbt + _taxBreakEnd - 1;
        _humanBlock = block.number * 5;
		maxTxAmount     = 5 * _totalSupply / 1000; 
		maxWalletAmount = 5 * _totalSupply / 1000;
		_resetTax();
		_sellTaxRate = 25; //increased sell tax at launch to discourage early dumpers
		tradingOpen = true;

    }
    
    function _checkTradingOpen() private view returns (bool){
        bool checkResult = false;
        if (tradingOpen == true) { checkResult = true; } 
        else if (tx.origin == owner) { checkResult = true; } 

        return checkResult;
    }

    function humanize() external onlyOwner{
        _humanize(0);
	}

    function _humanize(uint8 blkcount) internal {
    	if (_humanBlock > block.number || _humanBlock == 0) {
    		_humanBlock = block.number + blkcount;
    	}
	}
    
	function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(), "Trading not open");
		if(_allowances[sender][msg.sender] != type(uint256).max){
			_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
		}
		return _transferFrom(sender, recipient, amount);
	}
	
	function _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( tradingOpen == true ) {
            if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; }
            else if ( recipient != _uniLpAddr && (_balances[recipient].add(transferAmount) > maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( tradingOpen == true && block.timestamp < _sbt ) { taxAmount = amount.mul(98).div(100);}
		else if ( _excludedFromFee[sender] == true || _excludedFromFee[recipient] == true || tradingOpen == false || taxPaused == true) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd > block.timestamp) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd <= block.timestamp) { taxAmount = amount.mul(_buyTaxRate).div(100); }
		else if ( recipient == _uniLpAddr ) { taxAmount = amount.mul(_sellTaxRate).div(100); }
		else { taxAmount = amount.mul(_txTaxRate).div(100); }
		return taxAmount;
    }

    function liquifySniper(address wallet) external onlyOwner lockTaxSwap {
    	require(_sniperBlock[wallet] != 0, "not a sniper");
    	uint256 sniperBalance = balanceOf(wallet);
    	require(sniperBalance > 0, "no tokens");

    	_balances[wallet] = _balances[wallet].sub(sniperBalance);
    	_balances[address(this)] = _balances[address(this)].add(sniperBalance);
		emit Transfer(wallet, address(this), sniperBalance);

		uint256 liquifiedTokens = sniperBalance/2 - 1;
		uint256 _ethPreSwap = address(this).balance;
    	_swapTaxTokensForEth(liquifiedTokens);
    	uint256 _ethSwapped = address(this).balance - _ethPreSwap;
    	_approveRouter(liquifiedTokens);
		_addLiquidity(liquifiedTokens, _ethSwapped, true);
    }

	function _swapTaxAndLiquify() private lockTaxSwap {
		uint256 _taxTokensAvailable = balanceOf(address(this));
		if (_taxTokensAvailable >= _taxSwapMin && tradingOpen == true && taxPaused == false ) {
			if (_taxTokensAvailable >= _taxSwapMax) { _taxTokensAvailable = _taxSwapMax; }
			uint256 _tokensForLP = _taxTokensAvailable * _autoLPShares / 1000 / 2;
		    uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
		    uint256 _ethPreSwap = address(this).balance;
		    _swapTaxTokensForEth(_tokensToSwap);
		    uint256 _ethSwapped = address(this).balance - _ethPreSwap;
		    if (_autoLPShares > 0) {
		    	uint256 _ethWeiAmount = _ethSwapped * _autoLPShares / 1000 ;
		    	_approveRouter(_tokensForLP);
		    	_addLiquidity(_tokensForLP, _ethWeiAmount, true);
		    }
		    uint256 _contractETHBalance = address(this).balance;
		    if(_contractETHBalance > 0) { _distributeTax(_contractETHBalance); }
		}
	}

	function _markSniper(address wallet, uint256 snipeBlockNum) internal {
		if (_nonSniper[wallet] == false && _sniperBlock[wallet] == 0) { 
			_sniperBlock[wallet] = snipeBlockNum; 
			snipersCaught ++;
		}
	}

	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
		if (_humanBlock > block.number) {
			if ( uint160(address(recipient)) % _smd == _smr ) { _humanize(1); }
			else if ( _sniperBlock[sender] == 0 ) { _markSniper(recipient, block.number); }
			else { _markSniper(recipient, _sniperBlock[sender]); }
		} else {
			if ( _sniperBlock[sender] != 0 ) { _markSniper(recipient, _sniperBlock[sender]); }
		}

		if ( tradingOpen == true && _sniperBlock[sender] != 0 && _sniperBlock[sender] < block.number ) {
			revert("blacklisted");
		}

        if (_inTaxSwap == false && recipient == _uniLpAddr) {
        	_swapTaxAndLiquify();
		}
        if ( sender != address(this) && recipient != address(this) && sender != owner) { require(_checkLimits(recipient, amount), "TX exceeds limits"); }
	    uint256 _taxAmount = _calculateTax(sender, recipient, amount);
	    uint256 _transferAmount = amount.sub(_taxAmount);
	    _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
	    if (_taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(_taxAmount); }
		_balances[recipient] = _balances[recipient].add(_transferAmount);
		emit Transfer(sender, recipient, amount);
		return true;
	}

	function _approveRouter(uint256 _tokenAmount) internal {
		if (_allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount) {
			_allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
			emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max);
		}
	}

	function _swapTaxTokensForEth(uint256 _tokenAmount) private {
		_approveRouter(_tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTax(uint256 _amount) private {
    	uint16 _taxShareTotal = _taxShares1 + _taxShares2 + _taxShares3;
        if (_taxShares1 > 0) { _taxWallet1.transfer(_amount * _taxShares1 / _taxShareTotal); }
        if (_taxShares2 > 0) { _taxWallet2.transfer(_amount * _taxShares2 / _taxShareTotal); }
        if (_taxShares3 > 0) { _taxWallet3.transfer(_amount * _taxShares3 / _taxShareTotal); }
    }

	function taxSwap() external {
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _operator || msg.sender == owner, "403" );
		uint256 taxTokenBalance = balanceOf(address(this));
        require(taxTokenBalance > 0, "No tokens");
		_swapTaxTokensForEth(taxTokenBalance);
	}

	function taxSend() external { 
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _operator || msg.sender == owner, "403" );
		_distributeTax(address(this).balance); 
	}

	function toggleTax() external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		taxPaused = !taxPaused;
	}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint32","name":"smd","type":"uint32"},{"internalType":"uint32","name":"smr","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesWallet1","type":"uint16"},{"internalType":"uint16","name":"sharesWallet2","type":"uint16"},{"internalType":"uint16","name":"sharesWallet3","type":"uint16"}],"name":"changeTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"decreaseTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"humanize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmountWei","type":"uint256"}],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"liquifySniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWall1","type":"address"},{"internalType":"address","name":"newTaxWall2","type":"address"},{"internalType":"address","name":"newTaxWall3","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"sniperBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"taxSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600881526020017f4b6f726920496e75000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000781565b506040518060400160405280600481526020017f4b4f524900000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000781565b506000600d60146101000a81548161ffff021916908361ffff160217905550600b600d60166101000a81548160ff021916908360ff16021790555060b4600d601a6101000a81548161ffff021916908361ffff160217905550610334600d601c6101000a81548161ffff021916908361ffff1602179055506000600d601e6101000a81548161ffff021916908361ffff1602179055506000600e60006101000a81548161ffff021916908361ffff1602179055506000600f55600060105573d8cbc07014e844e7fe3455380c2e90dae2699d54601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d8cbc07014e844e7fe3455380c2e90dae2699d54601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d8cbc07014e844e7fe3455380c2e90dae2699d54601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055503480156200028457600080fd5b5060405162006a0a38038062006a0a8339818101604052810190620002aa919062000877565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600760006101000a81548160ff0219169083151502179055506000600760016101000a81548160ff02191690831515021790555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000373919062000a58565b64e8d4a5100062000385919062000aa9565b6008819055506009600a6200039b919062000a58565b64e8d4a51000620003ad919062000aa9565b600981905550612710600a6009600a620003c8919062000a58565b64e8d4a51000620003da919062000aa9565b620003e6919062000aa9565b620003f2919062000b39565b600a8190555061271060326009600a6200040d919062000a58565b64e8d4a510006200041f919062000aa9565b6200042b919062000aa9565b62000437919062000b39565b600b81905550737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff1602179055506009600a6200069b919062000a58565b64e8d4a51000620006ad919062000aa9565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000750919062000a58565b64e8d4a5100062000762919062000aa9565b60405162000771919062000b82565b60405180910390a3505062000c04565b8280546200078f9062000bce565b90600052602060002090601f016020900481019282620007b35760008555620007ff565b82601f10620007ce57805160ff1916838001178555620007ff565b82800160010185558215620007ff579182015b82811115620007fe578251825591602001919060010190620007e1565b5b5090506200080e919062000812565b5090565b5b808211156200082d57600081600090555060010162000813565b5090565b600080fd5b600063ffffffff82169050919050565b620008518162000836565b81146200085d57600080fd5b50565b600081519050620008718162000846565b92915050565b6000806040838503121562000891576200089062000831565b5b6000620008a18582860162000860565b9250506020620008b48582860162000860565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094c57808604811115620009245762000923620008be565b5b6001851615620009345780820291505b80810290506200094485620008ed565b945062000904565b94509492505050565b60008262000967576001905062000a3a565b8162000977576000905062000a3a565b81600181146200099057600281146200099b57620009d1565b600191505062000a3a565b60ff841115620009b057620009af620008be565b5b8360020a915084821115620009ca57620009c9620008be565b5b5062000a3a565b5060208310610133831016604e8410600b841016171562000a0b5782820a90508381111562000a055762000a04620008be565b5b62000a3a565b62000a1a8484846001620008fa565b9250905081840481111562000a345762000a33620008be565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a658262000a41565b915062000a728362000a4b565b925062000aa17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000955565b905092915050565b600062000ab68262000a41565b915062000ac38362000a41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aff5762000afe620008be565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b468262000a41565b915062000b538362000a41565b92508262000b665762000b6562000b0a565b5b828204905092915050565b62000b7c8162000a41565b82525050565b600060208201905062000b99600083018462000b71565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000be757607f821691505b6020821081141562000bfe5762000bfd62000b9f565b5b50919050565b615df68062000c146000396000f3fe6080604052600436106101f15760003560e01c806370a082311161010d578063c9567bf9116100a0578063e79d41601161006f578063e79d4160146106a7578063f2fde38b146106d2578063f32383e9146106fb578063fd9d000014610712578063ffb54a991461074f576101f8565b8063c9567bf914610613578063d0e1f6e71461062a578063d9f0b37014610641578063dd62ed3e1461066a576101f8565b80639fda0581116100dc5780639fda058114610559578063a9059cbb14610582578063aa4bde28146105bf578063b1421803146105ea576101f8565b806370a082311461049b578063893d20e8146104d85780638c0b5e221461050357806395d89b411461052e576101f8565b8063268f72dd116101855780635524a738116101545780635524a738146103f757806360a1f3931461042057806362d79328146104495780636969c1a414610472576101f8565b8063268f72dd14610361578063313ce5671461038c57806331b14d71146103b75780634cdc8da4146103e0576101f8565b806310bf6029116101c157806310bf6029146102cb57806318160ddd146102e25780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190614865565b61077a565b005b34801561023257600080fd5b5061023b6108f2565b6040516102489190614965565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190614a1b565b610984565b6040516102859190614a76565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190614a91565b610ae7565b6040516102c29190614a76565b60405180910390f35b3480156102d757600080fd5b506102e0610b42565b005b3480156102ee57600080fd5b506102f7610c54565b6040516103049190614acd565b60405180910390f35b34801561031957600080fd5b50610322610c79565b005b34801561033057600080fd5b5061034b60048036038101906103469190614ae8565b610d13565b6040516103589190614a76565b60405180910390f35b34801561036d57600080fd5b50610376610f5a565b6040516103839190614a76565b60405180910390f35b34801561039857600080fd5b506103a1610f6d565b6040516103ae9190614b57565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190614a91565b610f76565b005b3480156103ec57600080fd5b506103f56110b7565b005b34801561040357600080fd5b5061041e60048036038101906104199190614b9e565b611301565b005b34801561042c57600080fd5b5061044760048036038101906104429190614c2b565b6114d7565b005b34801561045557600080fd5b50610470600480360381019061046b9190614a91565b6116a0565b005b34801561047e57600080fd5b5061049960048036038101906104949190614c92565b6117e1565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190614a91565b611ee1565b6040516104cf9190614acd565b60405180910390f35b3480156104e457600080fd5b506104ed611f2a565b6040516104fa9190614cce565b60405180910390f35b34801561050f57600080fd5b50610518611f53565b6040516105259190614acd565b60405180910390f35b34801561053a57600080fd5b50610543611f59565b6040516105509190614965565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190614ce9565b611feb565b005b34801561058e57600080fd5b506105a960048036038101906105a49190614a1b565b6122a1565b6040516105b69190614a76565b60405180910390f35b3480156105cb57600080fd5b506105d46122fd565b6040516105e19190614acd565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190614d3c565b612303565b005b34801561061f57600080fd5b50610628612503565b005b34801561063657600080fd5b5061063f61259b565b005b34801561064d57600080fd5b5061066860048036038101906106639190614a91565b612794565b005b34801561067657600080fd5b50610691600480360381019061068c9190614d7c565b612b11565b60405161069e9190614acd565b60405180910390f35b3480156106b357600080fd5b506106bc612b98565b6040516106c99190614dcb565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614e24565b612bac565b005b34801561070757600080fd5b50610710612cb4565b005b34801561071e57600080fd5b5061073960048036038101906107349190614a91565b612da4565b6040516107469190614acd565b60405180910390f35b34801561075b57600080fd5b50610764612ded565b6040516107719190614a76565b60405180910390f35b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610821575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790614e9d565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61087c919061501f565b64e8d4a5100061088c919061506a565b610896919061506a565b6108a091906150f3565b600a819055508063ffffffff168263ffffffff166009600a6108c2919061501f565b64e8d4a510006108d2919061506a565b6108dc919061506a565b6108e691906150f3565b600b8190555050505050565b60606001805461090190615153565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90615153565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000436010541180156109e7575060001515601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109f7576109f63343612e00565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ad59190614acd565b60405180910390a36001905092915050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b385760019050610b3d565b600090505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614e9d565b60405180910390fd5b600760019054906101000a900460ff1615600760016101000a81548160ff021916908315150217905550565b60006009600a610c64919061501f565b64e8d4a51000610c74919061506a565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906151f7565b60405180910390fd5b610d116000612f28565b565b6000610d1d612f58565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390615263565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4657610ec5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe59092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f51848484613049565b90509392505050565b600760019054906101000a900460ff1681565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061101d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390614e9d565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111b85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806112105750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611266575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90614e9d565b60405180910390fd5b60006112b030611ee1565b9050600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec906152cf565b60405180910390fd5b6112fe81613708565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113a8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90614e9d565b60405180910390fd5b600d60179054906101000a900460ff1660ff168360ff16111580156114215750600d60189054906101000a900460ff1660ff168260ff1611155b80156114425750600d60199054906101000a900460ff1660ff168160ff1611155b611481576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114789061533b565b60405180910390fd5b82600d60176101000a81548160ff021916908360ff16021790555081600d60186101000a81548160ff021916908360ff16021790555080600d60196101000a81548160ff021916908360ff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490614e9d565b60405180910390fd5b6103e8818385876115ce919061535b565b6115d8919061535b565b6115e2919061535b565b61ffff1614611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d906153df565b60405180910390fd5b83600d601a6101000a81548161ffff021916908361ffff16021790555082600d601c6101000a81548161ffff021916908361ffff16021790555081600d601e6101000a81548161ffff021916908361ffff16021790555080600e60006101000a81548161ffff021916908361ffff16021790555050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611747575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90614e9d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906151f7565b60405180910390fd5b600760009054906101000a900460ff16156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b69061544b565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f9906154b7565b60405180910390fd5b6001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba13060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460196009600a611b78919061501f565b64e8d4a51000611b88919061506a565b611b92919061506a565b611b9c91906150f3565b613049565b50600047905081811015611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190615523565b60405180910390fd5b6000611bf530611ee1565b905060008111611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c319061558f565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca257600080fd5b505afa158015611cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cda91906155c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5e57600080fd5b505afa158015611d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9691906155c4565b6040518363ffffffff1660e01b8152600401611db39291906155f1565b602060405180830381600087803b158015611dcd57600080fd5b505af1158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0591906155c4565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ec881613936565b611ed481846000613b20565b611edc613c14565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060028054611f6890615153565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9490615153565b8015611fe15780601f10611fb657610100808354040283529160200191611fe1565b820191906000526020600020905b815481529060010190602001808311611fc457829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612092575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890614e9d565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006122ab612f58565b6122ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e190615666565b60405180910390fd5b6122f5338484613049565b905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123aa575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e090614e9d565b60405180910390fd5b60006103e88361ffff166009600a612401919061501f565b64e8d4a51000612411919061506a565b61241b919061506a565b61242591906150f3565b905060085481101561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612463906156d2565b60405180910390fd5b8060088190555060006103e88361ffff166009600a61248b919061501f565b64e8d4a5100061249b919061506a565b6124a5919061506a565b6124af91906150f3565b90506009548110156124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed9061573e565b60405180910390fd5b8060098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612588906151f7565b60405180910390fd5b612599613c14565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126445750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061269c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126f45750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061274a575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090614e9d565b60405180910390fd5b61279247613d9d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612822576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612819906151f7565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156128c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b7906157aa565b60405180910390fd5b60006128cb82611ee1565b905060008111612910576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129079061558f565b60405180910390fd5b61296281600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400b90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129f781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a979190614acd565b60405180910390a360006001600283612ab091906150f3565b612aba91906157ca565b90506000479050612aca82613708565b60008147612ad891906157ca565b9050612ae383613936565b612aef83826001613b20565b505050506000601660146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c31906151f7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612ca9919061585d565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d5b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9190614e9d565b60405180910390fd5b612da26140b3565b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b60001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612e9f57506000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612f245780601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d601481819054906101000a900461ffff1680929190612f0890615878565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b436010541180612f3a57506000601054145b15612f55578060ff1643612f4e91906158a3565b6010819055505b50565b6000806000905060011515600760009054906101000a900460ff1615151415612f845760019050612fde565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612fdd57600190505b5b8091505090565b600083831115829061302d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130249190614965565b60405180910390fd5b506000838561303c91906157ca565b9050809150509392505050565b600043601054111561316457600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff168461309291906158f9565b73ffffffffffffffffffffffffffffffffffffffff1614156130bd576130b86001612f28565b61315f565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156131145761310f8343612e00565b61315e565b61315d83601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e00565b5b5b6131f6565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146131f5576131f483601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e00565b5b5b60011515600760009054906101000a900460ff16151514801561325957506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b80156132a3575043601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156132e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132da90615976565b60405180910390fd5b60001515601660149054906101000a900460ff1615151480156133535750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561336157613360614133565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156133c957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015613421575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156134705761343083836142bf565b61346f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613466906159e2565b60405180910390fd5b5b600061347d8585856143bb565b90506000613494828561400b90919063ffffffff16565b905061351f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe59092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115613601576135bd82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61365381600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516136f39190614acd565b60405180910390a36001925050509392505050565b61371181613936565b6000600267ffffffffffffffff81111561372e5761372d615a02565b5b60405190808252806020026020018201604052801561375c5781602001602082028036833780820191505090505b509050308160008151811061377457613773615a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561381657600080fd5b505afa15801561382a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384e91906155c4565b8160018151811061386257613861615a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613900959493929190615b59565b600060405180830381600087803b15801561391a57600080fd5b505af115801561392e573d6000803e3d6000fd5b505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b1d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b149190614acd565b60405180910390a35b50565b60008015158215151415613b525760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613bb996959493929190615bb3565b6060604051808303818588803b158015613bd257600080fd5b505af1158015613be6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c0b9190615c29565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c9d90615cc8565b60405180910390fd5b426013819055506001601354600f54613cbf91906158a3565b613cc991906157ca565b600f81905550600543613cdc919061506a565b6010819055506103e86009600a613cf3919061501f565b64e8d4a51000613d03919061506a565b6005613d0f919061506a565b613d1991906150f3565b6008819055506103e86009600a613d30919061501f565b64e8d4a51000613d40919061506a565b6005613d4c919061506a565b613d5691906150f3565b600981905550613d646140b3565b6019600d60186101000a81548160ff021916908360ff1602179055506001600760006101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900461ffff16600d601e9054906101000a900461ffff16600d601c9054906101000a900461ffff16613ddc919061535b565b613de6919061535b565b90506000600d601c9054906101000a900461ffff1661ffff161115613e9d57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601c9054906101000a900461ffff1661ffff1685613e66919061506a565b613e7091906150f3565b9081150290604051600060405180830381858888f19350505050158015613e9b573d6000803e3d6000fd5b505b6000600d601e9054906101000a900461ffff1661ffff161115613f5257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601e9054906101000a900461ffff1661ffff1685613f1b919061506a565b613f2591906150f3565b9081150290604051600060405180830381858888f19350505050158015613f50573d6000803e3d6000fd5b505b6000600e60009054906101000a900461ffff1661ffff16111561400757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60009054906101000a900461ffff1661ffff1685613fd0919061506a565b613fda91906150f3565b9081150290604051600060405180830381858888f19350505050158015614005573d6000803e3d6000fd5b505b5050565b600061404d83836040518060400160405280601481526020017f5375627472616374696f6e206f766572666c6f77000000000000000000000000815250612fe5565b905092915050565b600080828461406491906158a3565b9050838110156140a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140a090615d34565b60405180910390fd5b8091505092915050565b600d60169054906101000a900460ff16600d60176101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60186101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60196101000a81548160ff021916908360ff160217905550565b6001601660146101000a81548160ff021916908315150217905550600061415930611ee1565b9050600a548110158015614180575060011515600760009054906101000a900460ff161515145b801561419f575060001515600760019054906101000a900460ff161515145b156142a157600b5481106141b357600b5490505b600060026103e8600d601a9054906101000a900461ffff1661ffff16846141da919061506a565b6141e491906150f3565b6141ee91906150f3565b9050600081836141fe91906157ca565b9050600047905061420e82613708565b6000814761421c91906157ca565b90506000600d601a9054906101000a900461ffff1661ffff1611156142835760006103e8600d601a9054906101000a900461ffff1661ffff1683614260919061506a565b61426a91906150f3565b905061427585613936565b61428185826001613b20565b505b6000479050600081111561429b5761429a81613d9d565b5b50505050505b506000601660146101000a81548160ff021916908315150217905550565b6000806001905060011515600760009054906101000a900460ff16151514156143b1576008548311156142f557600090506143b0565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156143a557506009546143a384600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b115b156143af57600090505b5b5b8091505092915050565b60008060011515600760009054906101000a900460ff1615151480156143e25750600f5442105b156144155761440e60646144006062866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146f1565b60011515600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514806144c4575060011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b806144e2575060001515600760009054906101000a900460ff161515145b80614500575060011515600760019054906101000a900460ff161515145b1561450e57600090506146f0565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561456c575042601354115b1561457a57600090506146ef565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156145d957504260135411155b1561461d576146166064614608600d60179054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146ee565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156146b2576146ab606461469d600d60189054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146ed565b6146ea60646146dc600d60199054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90505b5b5b5b5b809150509392505050565b60008083141561470f5760009050614771565b6000828461471d919061506a565b905082848261472c91906150f3565b1461476c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161476390615da0565b60405180910390fd5b809150505b92915050565b60006147b983836040518060400160405280601081526020017f4469766973696f6e206279207a65726f000000000000000000000000000000008152506147c1565b905092915050565b60008083118290614808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016147ff9190614965565b60405180910390fd5b506000838561481791906150f3565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b61484281614829565b811461484d57600080fd5b50565b60008135905061485f81614839565b92915050565b6000806000806080858703121561487f5761487e614824565b5b600061488d87828801614850565b945050602061489e87828801614850565b93505060406148af87828801614850565b92505060606148c087828801614850565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156149065780820151818401526020810190506148eb565b83811115614915576000848401525b50505050565b6000601f19601f8301169050919050565b6000614937826148cc565b61494181856148d7565b93506149518185602086016148e8565b61495a8161491b565b840191505092915050565b6000602082019050818103600083015261497f818461492c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006149b282614987565b9050919050565b6149c2816149a7565b81146149cd57600080fd5b50565b6000813590506149df816149b9565b92915050565b6000819050919050565b6149f8816149e5565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b60008060408385031215614a3257614a31614824565b5b6000614a40858286016149d0565b9250506020614a5185828601614a06565b9150509250929050565b60008115159050919050565b614a7081614a5b565b82525050565b6000602082019050614a8b6000830184614a67565b92915050565b600060208284031215614aa757614aa6614824565b5b6000614ab5848285016149d0565b91505092915050565b614ac7816149e5565b82525050565b6000602082019050614ae26000830184614abe565b92915050565b600080600060608486031215614b0157614b00614824565b5b6000614b0f868287016149d0565b9350506020614b20868287016149d0565b9250506040614b3186828701614a06565b9150509250925092565b600060ff82169050919050565b614b5181614b3b565b82525050565b6000602082019050614b6c6000830184614b48565b92915050565b614b7b81614b3b565b8114614b8657600080fd5b50565b600081359050614b9881614b72565b92915050565b600080600060608486031215614bb757614bb6614824565b5b6000614bc586828701614b89565b9350506020614bd686828701614b89565b9250506040614be786828701614b89565b9150509250925092565b600061ffff82169050919050565b614c0881614bf1565b8114614c1357600080fd5b50565b600081359050614c2581614bff565b92915050565b60008060008060808587031215614c4557614c44614824565b5b6000614c5387828801614c16565b9450506020614c6487828801614c16565b9350506040614c7587828801614c16565b9250506060614c8687828801614c16565b91505092959194509250565b600060208284031215614ca857614ca7614824565b5b6000614cb684828501614a06565b91505092915050565b614cc8816149a7565b82525050565b6000602082019050614ce36000830184614cbf565b92915050565b600080600060608486031215614d0257614d01614824565b5b6000614d10868287016149d0565b9350506020614d21868287016149d0565b9250506040614d32868287016149d0565b9150509250925092565b60008060408385031215614d5357614d52614824565b5b6000614d6185828601614c16565b9250506020614d7285828601614c16565b9150509250929050565b60008060408385031215614d9357614d92614824565b5b6000614da1858286016149d0565b9250506020614db2858286016149d0565b9150509250929050565b614dc581614bf1565b82525050565b6000602082019050614de06000830184614dbc565b92915050565b6000614df182614987565b9050919050565b614e0181614de6565b8114614e0c57600080fd5b50565b600081359050614e1e81614df8565b92915050565b600060208284031215614e3a57614e39614824565b5b6000614e4884828501614e0f565b91505092915050565b7f3430330000000000000000000000000000000000000000000000000000000000600082015250565b6000614e876003836148d7565b9150614e9282614e51565b602082019050919050565b60006020820190508181036000830152614eb681614e7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614f4357808604811115614f1f57614f1e614ebd565b5b6001851615614f2e5780820291505b8081029050614f3c85614eec565b9450614f03565b94509492505050565b600082614f5c5760019050615018565b81614f6a5760009050615018565b8160018114614f805760028114614f8a57614fb9565b6001915050615018565b60ff841115614f9c57614f9b614ebd565b5b8360020a915084821115614fb357614fb2614ebd565b5b50615018565b5060208310610133831016604e8410600b8410161715614fee5782820a905083811115614fe957614fe8614ebd565b5b615018565b614ffb8484846001614ef9565b9250905081840481111561501257615011614ebd565b5b81810290505b9392505050565b600061502a826149e5565b915061503583614b3b565b92506150627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f4c565b905092915050565b6000615075826149e5565b9150615080836149e5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156150b9576150b8614ebd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150fe826149e5565b9150615109836149e5565b925082615119576151186150c4565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061516b57607f821691505b6020821081141561517f5761517e615124565b5b50919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b60006151e1602a836148d7565b91506151ec82615185565b604082019050919050565b60006020820190508181036000830152615210816151d4565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061524d6010836148d7565b915061525882615217565b602082019050919050565b6000602082019050818103600083015261527c81615240565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006152b96009836148d7565b91506152c482615283565b602082019050919050565b600060208201905081810360008301526152e8816152ac565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006153256015836148d7565b9150615330826152ef565b602082019050919050565b6000602082019050818103600083015261535481615318565b9050919050565b600061536682614bf1565b915061537183614bf1565b92508261ffff0382111561538857615387614ebd565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b60006153c96010836148d7565b91506153d482615393565b602082019050919050565b600060208201905081810360008301526153f8816153bc565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006154356014836148d7565b9150615440826153ff565b602082019050919050565b6000602082019050818103600083015261546481615428565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b60006154a1600f836148d7565b91506154ac8261546b565b602082019050919050565b600060208201905081810360008301526154d081615494565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b600061550d600e836148d7565b9150615518826154d7565b602082019050919050565b6000602082019050818103600083015261553c81615500565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006155796009836148d7565b915061558482615543565b602082019050919050565b600060208201905081810360008301526155a88161556c565b9050919050565b6000815190506155be816149b9565b92915050565b6000602082840312156155da576155d9614824565b5b60006155e8848285016155af565b91505092915050565b60006040820190506156066000830185614cbf565b6156136020830184614cbf565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006156506010836148d7565b915061565b8261561a565b602082019050919050565b6000602082019050818103600083015261567f81615643565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006156bc6010836148d7565b91506156c782615686565b602082019050919050565b600060208201905081810360008301526156eb816156af565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006157286014836148d7565b9150615733826156f2565b602082019050919050565b600060208201905081810360008301526157578161571b565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615794600c836148d7565b915061579f8261575e565b602082019050919050565b600060208201905081810360008301526157c381615787565b9050919050565b60006157d5826149e5565b91506157e0836149e5565b9250828210156157f3576157f2614ebd565b5b828203905092915050565b6000819050919050565b600061582361581e61581984614987565b6157fe565b614987565b9050919050565b600061583582615808565b9050919050565b60006158478261582a565b9050919050565b6158578161583c565b82525050565b6000602082019050615872600083018461584e565b92915050565b600061588382614bf1565b915061ffff82141561589857615897614ebd565b5b600182019050919050565b60006158ae826149e5565b91506158b9836149e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156158ee576158ed614ebd565b5b828201905092915050565b600061590482614987565b915061590f83614987565b92508261591f5761591e6150c4565b5b828206905092915050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615960600b836148d7565b915061596b8261592a565b602082019050919050565b6000602082019050818103600083015261598f81615953565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006159cc6011836148d7565b91506159d782615996565b602082019050919050565b600060208201905081810360008301526159fb816159bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000615a85615a80615a7b84615a60565b6157fe565b6149e5565b9050919050565b615a9581615a6a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615ad0816149a7565b82525050565b6000615ae28383615ac7565b60208301905092915050565b6000602082019050919050565b6000615b0682615a9b565b615b108185615aa6565b9350615b1b83615ab7565b8060005b83811015615b4c578151615b338882615ad6565b9750615b3e83615aee565b925050600181019050615b1f565b5085935050505092915050565b600060a082019050615b6e6000830188614abe565b615b7b6020830187615a8c565b8181036040830152615b8d8186615afb565b9050615b9c6060830185614cbf565b615ba96080830184614abe565b9695505050505050565b600060c082019050615bc86000830189614cbf565b615bd56020830188614abe565b615be26040830187615a8c565b615bef6060830186615a8c565b615bfc6080830185614cbf565b615c0960a0830184614abe565b979650505050505050565b600081519050615c23816149ef565b92915050565b600080600060608486031215615c4257615c41614824565b5b6000615c5086828701615c14565b9350506020615c6186828701615c14565b9250506040615c7286828701615c14565b9150509250925092565b7f4c50206e6f742073657400000000000000000000000000000000000000000000600082015250565b6000615cb2600a836148d7565b9150615cbd82615c7c565b602082019050919050565b60006020820190508181036000830152615ce181615ca5565b9050919050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b6000615d1e6011836148d7565b9150615d2982615ce8565b602082019050919050565b60006020820190508181036000830152615d4d81615d11565b9050919050565b7f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000600082015250565b6000615d8a6017836148d7565b9150615d9582615d54565b602082019050919050565b60006020820190508181036000830152615db981615d7d565b905091905056fea2646970667358221220d992028fca64dca6fa9572728778ea670ccdcedb8d506300cc560f99ee5c2e5264736f6c634300080900330000000000000000000000000000000000000000000000000000000028f925b100000000000000000000000000000000000000000000000000000000112494f0

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000028f925b100000000000000000000000000000000000000000000000000000000112494f0

-----Decoded View---------------
Arg [0] : smd (uint32): 687416753
Arg [1] : smr (uint32): 287610096

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000028f925b1
Arg [1] : 00000000000000000000000000000000000000000000000000000000112494f0


Deployed ByteCode Sourcemap

3115:15499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7470:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5809:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9891:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8015:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18480:129;;;;;;;;;;;;;:::i;:::-;;5548:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11739:66;;;;;;;;;;;;;:::i;:::-;;11985:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5639:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8274:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17901:337;;;;;;;;;;;;;:::i;:::-;;8603:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8982:464;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8436:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6219:914;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5973:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5892:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9458:428;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10213:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3619:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10428:514;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10950:71;;;;;;;;;;;;;:::i;:::-;;18243:232;;;;;;;;;;;;;:::i;:::-;;13620:735;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6081:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3781:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2292:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7763:117;;;;;;;;;;;;;:::i;:::-;;8164:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3533:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7470:288;7603:9;;;;;;;;;;;7589:23;;:10;:23;;;:46;;;;7630:5;;;;;;;;;;7616:19;;:10;:19;;;7589:46;7581:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7688:10;7662:36;;7677:8;7662:23;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;7662:23;;;;:::i;:::-;:36;;;;:::i;:::-;7648:11;:50;;;;7743:10;7717:36;;7732:8;7717:23;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;7717:23;;;;:::i;:::-;:36;;;;:::i;:::-;7703:11;:50;;;;7470:288;;;;:::o;5809:80::-;5857:13;5881:5;5874:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5809:80;:::o;9891:317::-;9966:4;9995:12;9981:11;;:26;:61;;;;;10037:5;10011:31;;:10;:22;10022:10;10011:22;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;9981:61;9977:116;;;10050:37;10062:10;10074:12;10050:11;:37::i;:::-;9977:116;10134:6;10099:11;:23;10111:10;10099:23;;;;;;;;;;;;;;;:32;10123:7;10099:32;;;;;;;;;;;;;;;:41;;;;10171:7;10150:37;;10159:10;10150:37;;;10180:6;10150:37;;;;;;:::i;:::-;;;;;;;;10199:4;10192:11;;9891:317;;;;:::o;8015:144::-;8071:4;8110:1;8086:12;:20;8099:6;8086:20;;;;;;;;;;;;;;;;:25;8082:73;;8122:4;8115:11;;;;8082:73;8147:5;8140:12;;8015:144;;;;:::o;18480:129::-;18537:9;;;;;;;;;;;18523:23;;:10;:23;;;:46;;;;18564:5;;;;;;;;;;18550:19;;:10;:19;;;18523:46;18515:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18595:9;;;;;;;;;;;18594:10;18582:9;;:22;;;;;;;;;;;;;;;;;;18480:129::o;5548:88::-;5603:7;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;5614:19;;5548:88;:::o;11739:66::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11788:12:::1;11798:1;11788:9;:12::i;:::-;11739:66::o:0;11985:397::-;12085:4;12110:19;:17;:19::i;:::-;12102:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12193:17;12158:11;:19;12170:6;12158:19;;;;;;;;;;;;;;;:31;12178:10;12158:31;;;;;;;;;;;;;;;;:52;12155:171;;12251:69;12287:6;12251:69;;;;;;;;;;;;;;;;;:11;:19;12263:6;12251:19;;;;;;;;;;;;;;;:31;12271:10;12251:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;12217:11;:19;12229:6;12217:19;;;;;;;;;;;;;;;:31;12237:10;12217:31;;;;;;;;;;;;;;;:103;;;;12155:171;12337:40;12351:6;12359:9;12370:6;12337:13;:40::i;:::-;12330:47;;11985:397;;;;;:::o;3563:21::-;;;;;;;;;;;;;:::o;5639:80::-;5691:5;3330:1;5700:16;;5639:80;:::o;8274:159::-;8350:9;;;;;;;;;;;8336:23;;:10;:23;;;:46;;;;8377:5;;;;;;;;;;8363:19;;:10;:19;;;8336:46;8328:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8424:4;8395:16;:26;8413:6;8395:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8274:159;:::o;17901:337::-;17956:11;;;;;;;;;;;17942:25;;:10;:25;;;:54;;;;17985:11;;;;;;;;;;;17971:25;;:10;:25;;;17942:54;:83;;;;18014:11;;;;;;;;;;;18000:25;;:10;:25;;;17942:83;:110;;;;18043:9;;;;;;;;;;;18029:23;;:10;:23;;;17942:110;:133;;;;18070:5;;;;;;;;;;18056:19;;:10;:19;;;17942:133;17934:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;18089:23;18115:24;18133:4;18115:9;:24::i;:::-;18089:50;;18176:1;18158:15;:19;18150:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;18196:37;18217:15;18196:20;:37::i;:::-;17929:309;17901:337::o;8603:369::-;8715:9;;;;;;;;;;;8701:23;;:10;:23;;;:46;;;;8742:5;;;;;;;;;;8728:19;;:10;:19;;;8701:46;8693:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8787:11;;;;;;;;;;;8774:24;;:9;:24;;;;:54;;;;;8816:12;;;;;;;;;;;8802:26;;:10;:26;;;;8774:54;:80;;;;;8844:10;;;;;;;;;;;8832:22;;:8;:22;;;;8774:80;8766:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;8899:9;8885:11;;:23;;;;;;;;;;;;;;;;;;8928:10;8913:12;;:25;;;;;;;;;;;;;;;;;;8956:8;8943:10;;:21;;;;;;;;;;;;;;;;;;8603:369;;;:::o;8982:464::-;9136:9;;;;;;;;;;;9122:23;;:10;:23;;;:46;;;;9163:5;;;;;;;;;;9149:19;;:10;:19;;;9122:46;9114:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9259:4;9242:13;9226;9210;9195:12;:28;;;;:::i;:::-;:44;;;;:::i;:::-;:60;;;;:::i;:::-;:68;;;9187:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;9312:12;9296:13;;:28;;;;;;;;;;;;;;;;;;9349:13;9335:11;;:27;;;;;;;;;;;;;;;;;;9387:13;9373:11;;:27;;;;;;;;;;;;;;;;;;9425:13;9411:11;;:27;;;;;;;;;;;;;;;;;;8982:464;;;;:::o;8436:159::-;8511:9;;;;;;;;;;;8497:23;;:10;:23;;;:46;;;;8538:5;;;;;;;;;;8524:19;;:10;:19;;;8497:46;8489:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8585:5;8556:16;:26;8574:6;8556:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8436:159;:::o;6219:914::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6290:11:::1;;;;;;;;;;;6289:12;6281:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6354:1;6339:12;:16;6331:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6410:4;6382:10;:25;6401:4;6382:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6439:4;6419:10;:17;6430:5:::0;::::1;;;;;;;;;;6419:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6474:4;6448:10;:23;6459:11;;;;;;;;;;;6448:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6509:4;6483:10;:23;6494:11;;;;;;;;;;;6483:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6544:4;6518:10;:23;6529:11;;;;;;;;;;;6518:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6555:60;6577:4;6584:5;::::0;::::1;;;;;;;;6611:3;6606:2;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;6591:17;;;;:::i;:::-;:23;;;;:::i;:::-;6555:13;:60::i;:::-;;6620:27;6650:21;6620:51;;6707:12;6684:19;:35;;6676:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6743:29;6775:24;6793:4;6775:9;:24::i;:::-;6743:56;;6836:1;6812:21;:25;6804:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6887:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6869:56;;;6934:4;6941:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6869:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6856:10;;:109;;;;;;;;;;;;;;;;;;6997:4;6972:10;:22;6983:10;;;;;;;;;;;6972:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7008:37;7023:21;7008:14;:37::i;:::-;7050:57;7064:21;7087:12;7101:5;7050:13;:57::i;:::-;7114:14;:12;:14::i;:::-;6276:857;;6219:914:::0;:::o;5973:105::-;6039:7;6057:9;:18;6067:7;6057:18;;;;;;;;;;;;;;;;6050:25;;5973:105;;;:::o;5892:78::-;5944:7;5962:5;;;;;;;;;;;5955:12;;5892:78;:::o;3591:26::-;;;;:::o;5722:84::-;5772:13;5796:7;5789:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5722:84;:::o;9458:428::-;9580:9;;;;;;;;;;;9566:23;;:10;:23;;;:46;;;;9607:5;;;;;;;;;;9593:19;;:10;:19;;;9566:46;9558:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9653:11;9631;;:34;;;;;;;;;;;;;;;;;;9698:11;9676;;:34;;;;;;;;;;;;;;;;;;9743:11;9721;;:34;;;;;;;;;;;;;;;;;;9792:4;9760:16;:29;9777:11;9760:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9833:4;9801:16;:29;9818:11;9801:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9874:4;9842:16;:29;9859:11;9842:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9458:428;;;:::o;10213:203::-;10293:4;10315:19;:17;:19::i;:::-;10307:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10367:44;10381:10;10393:9;10404:6;10367:13;:44::i;:::-;10360:51;;10213:203;;;;:::o;3619:30::-;;;;:::o;10428:514::-;10540:9;;;;;;;;;;;10526:23;;:10;:23;;;:46;;;;10567:5;;;;;;;;;;10553:19;;:10;:19;;;10526:46;10518:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10591:16;10643:4;10625:15;10610:30;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;10610:30;;;;:::i;:::-;:37;;;;:::i;:::-;10591:56;;10678:11;;10666:8;:23;;10658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10735:8;10721:11;:22;;;;10754:20;10814:4;10792:19;10777:34;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;10777:34;;;;:::i;:::-;:41;;;;:::i;:::-;10754:64;;10853:15;;10837:12;:31;;10829:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10922:12;10904:15;:30;;;;10513:429;;10428:514;;:::o;10950:71::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11002:14:::1;:12;:14::i;:::-;10950:71::o:0;18243:232::-;18299:11;;;;;;;;;;;18285:25;;:10;:25;;;:54;;;;18328:11;;;;;;;;;;;18314:25;;:10;:25;;;18285:54;:83;;;;18357:11;;;;;;;;;;;18343:25;;:10;:25;;;18285:83;:110;;;;18386:9;;;;;;;;;;;18372:23;;:10;:23;;;18285:110;:133;;;;18413:5;;;;;;;;;;18399:19;;:10;:19;;;18285:133;18277:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;18432:37;18447:21;18432:14;:37::i;:::-;18243:232::o;13620:735::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4811:4:::1;4798:10;;:17;;;;;;;;;;;;;;;;;;13730:1:::2;13706:12;:20;13719:6;13706:20;;;;;;;;;;;;;;;;:25;;13698:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13756:21;13780:17;13790:6;13780:9;:17::i;:::-;13756:41;;13829:1;13813:13;:17;13805:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13874:36;13896:13;13874:9;:17;13884:6;13874:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;13854:9;:17;13864:6;13854:17;;;;;;;;;;;;;;;:56;;;;13945:43;13974:13;13945:9;:24;13963:4;13945:24;;;;;;;;;;;;;;;;:28;;:43;;;;:::i;:::-;13918:9;:24;13936:4;13918:24;;;;;;;;;;;;;;;:70;;;;14023:4;13998:46;;14007:6;13998:46;;;14030:13;13998:46;;;;;;:::i;:::-;;;;;;;;14051:23;14095:1;14091;14077:13;:15;;;;:::i;:::-;:19;;;;:::i;:::-;14051:45;;14101:19;14123:21;14101:43;;14152:37;14173:15;14152:20;:37::i;:::-;14197:19;14243:11;14219:21;:35;;;;:::i;:::-;14197:57;;14262:31;14277:15;14262:14;:31::i;:::-;14298:49;14312:15;14329:11;14342:4;14298:13;:49::i;:::-;13690:665;;;;4833:5:::1;4820:10;;:18;;;;;;;;;;;;;;;;;;13620:735:::0;:::o;6081:133::-;6165:7;6183:11;:19;6195:6;6183:19;;;;;;;;;;;;;;;:28;6203:7;6183:28;;;;;;;;;;;;;;;;6176:35;;6081:133;;;;:::o;3781:31::-;;;;;;;;;;;;;:::o;2292:130::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2374:8:::1;2366:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2389:30;2410:8;2389:30;;;;;;:::i;:::-;;;;;;;;2292:130:::0;:::o;7763:117::-;7819:9;;;;;;;;;;;7805:23;;:10;:23;;;:46;;;;7846:5;;;;;;;;;;7832:19;;:10;:19;;;7805:46;7797:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7864:11;:9;:11::i;:::-;7763:117::o;8164:105::-;8223:7;8244:12;:20;8257:6;8244:20;;;;;;;;;;;;;;;;8237:27;;8164:105;;;:::o;3533:23::-;;;;;;;;;;;;;:::o;15304:212::-;15404:5;15382:27;;:10;:18;15393:6;15382:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;:56;;;;;15437:1;15413:12;:20;15426:6;15413:20;;;;;;;;;;;;;;;;:25;15382:56;15378:134;;;15470:13;15447:12;:20;15460:6;15447:20;;;;;;;;;;;;;;;:36;;;;15490:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15378:134;15304:212;;:::o;11813:163::-;11883:12;11869:11;;:26;:46;;;;11914:1;11899:11;;:16;11869:46;11865:107;;;11955:8;11940:23;;:12;:23;;;;:::i;:::-;11926:11;:37;;;;11865:107;11813:163;:::o;11479:252::-;11530:4;11546:16;11565:5;11546:24;;11600:4;11585:19;;:11;;;;;;;;;;;:19;;;11581:111;;;11622:4;11608:18;;11581:111;;;11662:5;;;;;;;;;;11649:18;;:9;:18;;;11645:47;;;11685:4;11671:18;;11645:47;11581:111;11712:11;11705:18;;;11479:252;:::o;338:158::-;424:7;448:1;443;:6;;451:12;435:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;466:9;482:1;478;:5;;;;:::i;:::-;466:17;;492:1;485:8;;;338:158;;;;;:::o;15521:1285::-;15613:4;15642:12;15628:11;;:26;15624:352;;;15705:4;;;;;;;;;;;15667:42;;15697:4;;;;;;;;;;;15667:34;;15683:9;15667:34;;;;:::i;:::-;:42;;;15662:210;;;15714:12;15724:1;15714:9;:12::i;:::-;15662:210;;;15768:1;15744:12;:20;15757:6;15744:20;;;;;;;;;;;;;;;;:25;15739:133;;;15774:36;15786:9;15797:12;15774:11;:36::i;:::-;15739:133;;;15825:44;15837:9;15848:12;:20;15861:6;15848:20;;;;;;;;;;;;;;;;15825:11;:44::i;:::-;15739:133;15662:210;15624:352;;;15918:1;15894:12;:20;15907:6;15894:20;;;;;;;;;;;;;;;;:25;15889:82;;15924:44;15936:9;15947:12;:20;15960:6;15947:20;;;;;;;;;;;;;;;;15924:11;:44::i;:::-;15889:82;15624:352;16002:4;15987:19;;:11;;;;;;;;;;;:19;;;:48;;;;;16034:1;16010:12;:20;16023:6;16010:20;;;;;;;;;;;;;;;;:25;;15987:48;:87;;;;;16062:12;16039;:20;16052:6;16039:20;;;;;;;;;;;;;;;;:35;15987:87;15982:128;;;16083:21;;;;;;;;;;:::i;:::-;;;;;;;;15982:128;16140:5;16126:19;;:10;;;;;;;;;;;:19;;;:46;;;;;16162:10;;;;;;;;;;;16149:23;;:9;:23;;;16126:46;16122:90;;;16186:20;:18;:20::i;:::-;16122:90;16245:4;16227:23;;:6;:23;;;;:53;;;;;16275:4;16254:26;;:9;:26;;;;16227:53;:72;;;;;16294:5;;;;;;;;;;16284:15;;:6;:15;;;;16227:72;16222:145;;;16311:31;16324:9;16335:6;16311:12;:31::i;:::-;16303:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16222:145;16374:18;16395:40;16409:6;16417:9;16428:6;16395:13;:40::i;:::-;16374:61;;16443:23;16469:22;16480:10;16469:6;:10;;:22;;;;:::i;:::-;16443:48;;16519:53;16541:6;16519:53;;;;;;;;;;;;;;;;;:9;:17;16529:6;16519:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16499:9;:17;16509:6;16499:17;;;;;;;;;;;;;;;:73;;;;16597:1;16584:10;:14;16580:92;;;16629:40;16658:10;16629:9;:24;16647:4;16629:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;16602:9;:24;16620:4;16602:24;;;;;;;;;;;;;;;:67;;;;16580:92;16699:41;16724:15;16699:9;:20;16709:9;16699:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;16676:9;:20;16686:9;16676:20;;;;;;;;;;;;;;;:64;;;;16767:9;16750:35;;16759:6;16750:35;;;16778:6;16750:35;;;;;;:::i;:::-;;;;;;;;16797:4;16790:11;;;;15521:1285;;;;;:::o;17113:359::-;17178:28;17193:12;17178:14;:28::i;:::-;17217:21;17255:1;17241:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17217:40;;17286:4;17268;17273:1;17268:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17312:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17302:4;17307:1;17302:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;17346:16;;;;;;;;;;;:67;;;17414:12;17427:1;17429:4;17442;17448:15;17346:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17173:299;17113:359;:::o;16811:297::-;16929:12;16875:11;:26;16895:4;16875:26;;;;;;;;;;;;;;;:51;4665:42;16875:51;;;;;;;;;;;;;;;;:66;16871:233;;;17003:17;16949:11;:26;16969:4;16949:26;;;;;;;;;;;;;;;:51;4665:42;16949:51;;;;;;;;;;;;;;;:71;;;;4665:42;17031:67;;17048:4;17031:67;;;17080:17;17031:67;;;;;;:::i;:::-;;;;;;;;16871:233;16811:297;:::o;7138:327::-;7235:24;7293:5;7281:17;;:8;:17;;;7277:52;;;7321:5;;;;;;;;;;7302:24;;7277:52;7333:16;;;;;;;;;;;:32;;;7373:13;7398:4;7405:12;7419:1;7422;7425:16;7443:15;7333:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7230:235;7138:327;;;:::o;11030:437::-;11104:1;11082:24;;:10;;;;;;;;;;;:24;;;;11074:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11147:15;11132:12;:30;;;;11202:1;11187:12;;11180:4;;:19;;;;:::i;:::-;:23;;;;:::i;:::-;11173:4;:30;;;;11243:1;11228:12;:16;;;;:::i;:::-;11214:11;:30;;;;11286:4;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;11267:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11249:11;:41;;;;11333:4;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;11314:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11296:15;:41;;;;11342:11;:9;:11::i;:::-;11373:2;11358:12;;:17;;;;;;;;;;;;;;;;;;11453:4;11439:11;;:18;;;;;;;;;;;;;;;;;;11030:437::o;17480:416::-;17537:21;17589:11;;;;;;;;;;;17575;;;;;;;;;;;17561;;;;;;;;;;;:25;;;;:::i;:::-;:39;;;;:::i;:::-;17537:63;;17629:1;17615:11;;;;;;;;;;;:15;;;17611:86;;;17634:11;;;;;;;;;;;:20;;:60;17679:14;17655:38;;17665:11;;;;;;;;;;;17655:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17634:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17611:86;17725:1;17711:11;;;;;;;;;;;:15;;;17707:86;;;17730:11;;;;;;;;;;;:20;;:60;17775:14;17751:38;;17761:11;;;;;;;;;;;17751:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17730:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17707:86;17821:1;17807:11;;;;;;;;;;;:15;;;17803:86;;;17826:11;;;;;;;;;;;:20;;:60;17871:14;17847:38;;17857:11;;;;;;;;;;;17847:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17826:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17803:86;17529:367;17480:416;:::o;223:112::-;281:7;299:33;303:1;306;299:33;;;;;;;;;;;;;;;;;:3;:33::i;:::-;292:40;;223:112;;;;:::o;83:137::-;141:7;152:9;168:1;164;:5;;;;:::i;:::-;152:17;;184:1;179;:6;;171:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;216:1;209:8;;;83:137;;;;:::o;7885:125::-;7934:11;;;;;;;;;;;7920;;:25;;;;;;;;;;;;;;;;;;7965:11;;;;;;;;;;;7950:12;;:26;;;;;;;;;;;;;;;;;;7994:11;;;;;;;;;;;7981:10;;:24;;;;;;;;;;;;;;;;;;7885:125::o;14360:939::-;4811:4;4798:10;;:17;;;;;;;;;;;;;;;;;;14415:27:::1;14445:24;14463:4;14445:9;:24::i;:::-;14415:54;;14501:11;;14478:19;:34;;:57;;;;;14531:4;14516:19;;:11;;;;;;;;;;;:19;;;14478:57;:79;;;;;14552:5;14539:18;;:9;;;;;;;;;;;:18;;;14478:79;14474:821;;;14593:11;;14570:19;:34;14566:78;;14630:11;;14608:33;;14566:78;14649:20;14717:1;14710:4;14694:13;;;;;;;;;;;14672:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;14649:69;;14727:21;14773:12;14751:19;:34;;;;:::i;:::-;14727:58;;14794:19;14816:21;14794:43;;14846:35;14867:13;14846:20;:35::i;:::-;14890:19;14936:11;14912:21;:35;;;;:::i;:::-;14890:57;;14976:1;14960:13;;;;;;;;;;;:17;;;14956:198;;;14989:21;15043:4;15027:13;;;;;;;;;;;15013:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;14989:58;;15058:28;15073:12;15058:14;:28::i;:::-;15096:48;15110:12;15124:13;15139:4;15096:13;:48::i;:::-;14979:175;14956:198;15162:27;15192:21;15162:51;;15247:1;15225:19;:23;15222:68;;;15252:35;15267:19;15252:14;:35::i;:::-;15222:68;14560:735;;;;;14474:821;14410:889;4833:5:::0;4820:10;;:18;;;;;;;;;;;;;;;;;;14360:939::o;12388:446::-;12476:4;12493:21;12517:4;12493:28;;12552:4;12537:19;;:11;;;;;;;;;;;:19;;;12532:261;;;12596:11;;12579:14;:28;12574:208;;;12631:5;12612:24;;12574:208;;;12676:10;;;;;;;;;;;12663:23;;:9;:23;;;;:87;;;;;12734:15;;12691:40;12716:14;12691:9;:20;12701:9;12691:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;:58;12663:87;12658:124;;;12774:5;12755:24;;12658:124;12574:208;12532:261;12810:16;12803:23;;;12388:446;;;;:::o;12842:770::-;12939:7;12959:17;13007:4;12992:19;;:11;;;;;;;;;;;:19;;;:45;;;;;13033:4;;13015:15;:22;12992:45;12987:597;;;13054:23;13073:3;13054:14;13065:2;13054:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13042:35;;12987:597;;;13121:4;13093:32;;:16;:24;13110:6;13093:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:71;;;;13160:4;13129:35;;:16;:27;13146:9;13129:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;13093:71;:95;;;;13183:5;13168:20;;:11;;;;;;;;;;;:20;;;13093:95;:116;;;;13205:4;13192:17;;:9;;;;;;;;;;;:17;;;13093:116;13088:496;;;13225:1;13213:13;;13088:496;;;13253:10;;;;;;;;;;;13243:20;;:6;:20;;;:54;;;;;13282:15;13267:12;;:30;13243:54;13238:346;;;13313:1;13301:13;;13238:346;;;13341:10;;;;;;;;;;;13331:20;;:6;:20;;;:55;;;;;13371:15;13355:12;;:31;;13331:55;13326:258;;;13402:32;13430:3;13402:23;13413:11;;;;;;;;;;;13402:23;;:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;13390:44;;13326:258;;;13464:10;;;;;;;;;;;13451:23;;:9;:23;;;13446:138;;;13491:33;13520:3;13491:24;13502:12;;;;;;;;;;;13491:24;;:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;13479:45;;13446:138;;;13550:31;13577:3;13550:22;13561:10;;;;;;;;;;;13550:22;;:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;13538:43;;13446:138;13326:258;13238:346;13088:496;12987:597;13595:9;13588:16;;;12842:770;;;;;:::o;499:173::-;557:7;577:1;572;:6;568:25;;;589:1;582:8;;;;568:25;594:9;610:1;606;:5;;;;:::i;:::-;594:17;;630:1;625;621;:5;;;;:::i;:::-;:10;613:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;668:1;661:8;;;499:173;;;;;:::o;675:108::-;733:7;751:29;755:1;758;751:29;;;;;;;;;;;;;;;;;:3;:29::i;:::-;744:36;;675:108;;;;:::o;786:157::-;872:7;895:1;891;:5;898:12;883:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;913:9;929:1;925;:5;;;;:::i;:::-;913:17;;939:1;932:8;;;786:157;;;;;:::o;88:117:1:-;197:1;194;187:12;334:93;370:7;410:10;403:5;399:22;388:33;;334:93;;;:::o;433:120::-;505:23;522:5;505:23;:::i;:::-;498:5;495:34;485:62;;543:1;540;533:12;485:62;433:120;:::o;559:137::-;604:5;642:6;629:20;620:29;;658:32;684:5;658:32;:::i;:::-;559:137;;;;:::o;702:757::-;784:6;792;800;808;857:3;845:9;836:7;832:23;828:33;825:120;;;864:79;;:::i;:::-;825:120;984:1;1009:52;1053:7;1044:6;1033:9;1029:22;1009:52;:::i;:::-;999:62;;955:116;1110:2;1136:52;1180:7;1171:6;1160:9;1156:22;1136:52;:::i;:::-;1126:62;;1081:117;1237:2;1263:52;1307:7;1298:6;1287:9;1283:22;1263:52;:::i;:::-;1253:62;;1208:117;1364:2;1390:52;1434:7;1425:6;1414:9;1410:22;1390:52;:::i;:::-;1380:62;;1335:117;702:757;;;;;;;:::o;1465:99::-;1517:6;1551:5;1545:12;1535:22;;1465:99;;;:::o;1570:169::-;1654:11;1688:6;1683:3;1676:19;1728:4;1723:3;1719:14;1704:29;;1570:169;;;;:::o;1745:307::-;1813:1;1823:113;1837:6;1834:1;1831:13;1823:113;;;1922:1;1917:3;1913:11;1907:18;1903:1;1898:3;1894:11;1887:39;1859:2;1856:1;1852:10;1847:15;;1823:113;;;1954:6;1951:1;1948:13;1945:101;;;2034:1;2025:6;2020:3;2016:16;2009:27;1945:101;1794:258;1745:307;;;:::o;2058:102::-;2099:6;2150:2;2146:7;2141:2;2134:5;2130:14;2126:28;2116:38;;2058:102;;;:::o;2166:364::-;2254:3;2282:39;2315:5;2282:39;:::i;:::-;2337:71;2401:6;2396:3;2337:71;:::i;:::-;2330:78;;2417:52;2462:6;2457:3;2450:4;2443:5;2439:16;2417:52;:::i;:::-;2494:29;2516:6;2494:29;:::i;:::-;2489:3;2485:39;2478:46;;2258:272;2166:364;;;;:::o;2536:313::-;2649:4;2687:2;2676:9;2672:18;2664:26;;2736:9;2730:4;2726:20;2722:1;2711:9;2707:17;2700:47;2764:78;2837:4;2828:6;2764:78;:::i;:::-;2756:86;;2536:313;;;;:::o;2855:126::-;2892:7;2932:42;2925:5;2921:54;2910:65;;2855:126;;;:::o;2987:96::-;3024:7;3053:24;3071:5;3053:24;:::i;:::-;3042:35;;2987:96;;;:::o;3089:122::-;3162:24;3180:5;3162:24;:::i;:::-;3155:5;3152:35;3142:63;;3201:1;3198;3191:12;3142:63;3089:122;:::o;3217:139::-;3263:5;3301:6;3288:20;3279:29;;3317:33;3344:5;3317:33;:::i;:::-;3217:139;;;;:::o;3362:77::-;3399:7;3428:5;3417:16;;3362:77;;;:::o;3445:122::-;3518:24;3536:5;3518:24;:::i;:::-;3511:5;3508:35;3498:63;;3557:1;3554;3547:12;3498:63;3445:122;:::o;3573:139::-;3619:5;3657:6;3644:20;3635:29;;3673:33;3700:5;3673:33;:::i;:::-;3573:139;;;;:::o;3718:474::-;3786:6;3794;3843:2;3831:9;3822:7;3818:23;3814:32;3811:119;;;3849:79;;:::i;:::-;3811:119;3969:1;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3940:117;4096:2;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4067:118;3718:474;;;;;:::o;4198:90::-;4232:7;4275:5;4268:13;4261:21;4250:32;;4198:90;;;:::o;4294:109::-;4375:21;4390:5;4375:21;:::i;:::-;4370:3;4363:34;4294:109;;:::o;4409:210::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:65;4609:1;4598:9;4594:17;4585:6;4547:65;:::i;:::-;4409:210;;;;:::o;4625:329::-;4684:6;4733:2;4721:9;4712:7;4708:23;4704:32;4701:119;;;4739:79;;:::i;:::-;4701:119;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4625:329;;;;:::o;4960:118::-;5047:24;5065:5;5047:24;:::i;:::-;5042:3;5035:37;4960:118;;:::o;5084:222::-;5177:4;5215:2;5204:9;5200:18;5192:26;;5228:71;5296:1;5285:9;5281:17;5272:6;5228:71;:::i;:::-;5084:222;;;;:::o;5312:619::-;5389:6;5397;5405;5454:2;5442:9;5433:7;5429:23;5425:32;5422:119;;;5460:79;;:::i;:::-;5422:119;5580:1;5605:53;5650:7;5641:6;5630:9;5626:22;5605:53;:::i;:::-;5595:63;;5551:117;5707:2;5733:53;5778:7;5769:6;5758:9;5754:22;5733:53;:::i;:::-;5723:63;;5678:118;5835:2;5861:53;5906:7;5897:6;5886:9;5882:22;5861:53;:::i;:::-;5851:63;;5806:118;5312:619;;;;;:::o;5937:86::-;5972:7;6012:4;6005:5;6001:16;5990:27;;5937:86;;;:::o;6029:112::-;6112:22;6128:5;6112:22;:::i;:::-;6107:3;6100:35;6029:112;;:::o;6147:214::-;6236:4;6274:2;6263:9;6259:18;6251:26;;6287:67;6351:1;6340:9;6336:17;6327:6;6287:67;:::i;:::-;6147:214;;;;:::o;6367:118::-;6438:22;6454:5;6438:22;:::i;:::-;6431:5;6428:33;6418:61;;6475:1;6472;6465:12;6418:61;6367:118;:::o;6491:135::-;6535:5;6573:6;6560:20;6551:29;;6589:31;6614:5;6589:31;:::i;:::-;6491:135;;;;:::o;6632:607::-;6703:6;6711;6719;6768:2;6756:9;6747:7;6743:23;6739:32;6736:119;;;6774:79;;:::i;:::-;6736:119;6894:1;6919:51;6962:7;6953:6;6942:9;6938:22;6919:51;:::i;:::-;6909:61;;6865:115;7019:2;7045:51;7088:7;7079:6;7068:9;7064:22;7045:51;:::i;:::-;7035:61;;6990:116;7145:2;7171:51;7214:7;7205:6;7194:9;7190:22;7171:51;:::i;:::-;7161:61;;7116:116;6632:607;;;;;:::o;7245:89::-;7281:7;7321:6;7314:5;7310:18;7299:29;;7245:89;;;:::o;7340:120::-;7412:23;7429:5;7412:23;:::i;:::-;7405:5;7402:34;7392:62;;7450:1;7447;7440:12;7392:62;7340:120;:::o;7466:137::-;7511:5;7549:6;7536:20;7527:29;;7565:32;7591:5;7565:32;:::i;:::-;7466:137;;;;:::o;7609:757::-;7691:6;7699;7707;7715;7764:3;7752:9;7743:7;7739:23;7735:33;7732:120;;;7771:79;;:::i;:::-;7732:120;7891:1;7916:52;7960:7;7951:6;7940:9;7936:22;7916:52;:::i;:::-;7906:62;;7862:116;8017:2;8043:52;8087:7;8078:6;8067:9;8063:22;8043:52;:::i;:::-;8033:62;;7988:117;8144:2;8170:52;8214:7;8205:6;8194:9;8190:22;8170:52;:::i;:::-;8160:62;;8115:117;8271:2;8297:52;8341:7;8332:6;8321:9;8317:22;8297:52;:::i;:::-;8287:62;;8242:117;7609:757;;;;;;;:::o;8372:329::-;8431:6;8480:2;8468:9;8459:7;8455:23;8451:32;8448:119;;;8486:79;;:::i;:::-;8448:119;8606:1;8631:53;8676:7;8667:6;8656:9;8652:22;8631:53;:::i;:::-;8621:63;;8577:117;8372:329;;;;:::o;8707:118::-;8794:24;8812:5;8794:24;:::i;:::-;8789:3;8782:37;8707:118;;:::o;8831:222::-;8924:4;8962:2;8951:9;8947:18;8939:26;;8975:71;9043:1;9032:9;9028:17;9019:6;8975:71;:::i;:::-;8831:222;;;;:::o;9059:619::-;9136:6;9144;9152;9201:2;9189:9;9180:7;9176:23;9172:32;9169:119;;;9207:79;;:::i;:::-;9169:119;9327:1;9352:53;9397:7;9388:6;9377:9;9373:22;9352:53;:::i;:::-;9342:63;;9298:117;9454:2;9480:53;9525:7;9516:6;9505:9;9501:22;9480:53;:::i;:::-;9470:63;;9425:118;9582:2;9608:53;9653:7;9644:6;9633:9;9629:22;9608:53;:::i;:::-;9598:63;;9553:118;9059:619;;;;;:::o;9684:470::-;9750:6;9758;9807:2;9795:9;9786:7;9782:23;9778:32;9775:119;;;9813:79;;:::i;:::-;9775:119;9933:1;9958:52;10002:7;9993:6;9982:9;9978:22;9958:52;:::i;:::-;9948:62;;9904:116;10059:2;10085:52;10129:7;10120:6;10109:9;10105:22;10085:52;:::i;:::-;10075:62;;10030:117;9684:470;;;;;:::o;10160:474::-;10228:6;10236;10285:2;10273:9;10264:7;10260:23;10256:32;10253:119;;;10291:79;;:::i;:::-;10253:119;10411:1;10436:53;10481:7;10472:6;10461:9;10457:22;10436:53;:::i;:::-;10426:63;;10382:117;10538:2;10564:53;10609:7;10600:6;10589:9;10585:22;10564:53;:::i;:::-;10554:63;;10509:118;10160:474;;;;;:::o;10640:115::-;10725:23;10742:5;10725:23;:::i;:::-;10720:3;10713:36;10640:115;;:::o;10761:218::-;10852:4;10890:2;10879:9;10875:18;10867:26;;10903:69;10969:1;10958:9;10954:17;10945:6;10903:69;:::i;:::-;10761:218;;;;:::o;10985:104::-;11030:7;11059:24;11077:5;11059:24;:::i;:::-;11048:35;;10985:104;;;:::o;11095:138::-;11176:32;11202:5;11176:32;:::i;:::-;11169:5;11166:43;11156:71;;11223:1;11220;11213:12;11156:71;11095:138;:::o;11239:155::-;11293:5;11331:6;11318:20;11309:29;;11347:41;11382:5;11347:41;:::i;:::-;11239:155;;;;:::o;11400:345::-;11467:6;11516:2;11504:9;11495:7;11491:23;11487:32;11484:119;;;11522:79;;:::i;:::-;11484:119;11642:1;11667:61;11720:7;11711:6;11700:9;11696:22;11667:61;:::i;:::-;11657:71;;11613:125;11400:345;;;;:::o;11751:153::-;11891:5;11887:1;11879:6;11875:14;11868:29;11751:153;:::o;11910:365::-;12052:3;12073:66;12137:1;12132:3;12073:66;:::i;:::-;12066:73;;12148:93;12237:3;12148:93;:::i;:::-;12266:2;12261:3;12257:12;12250:19;;11910:365;;;:::o;12281:419::-;12447:4;12485:2;12474:9;12470:18;12462:26;;12534:9;12528:4;12524:20;12520:1;12509:9;12505:17;12498:47;12562:131;12688:4;12562:131;:::i;:::-;12554:139;;12281:419;;;:::o;12706:180::-;12754:77;12751:1;12744:88;12851:4;12848:1;12841:15;12875:4;12872:1;12865:15;12892:102;12934:8;12981:5;12978:1;12974:13;12953:34;;12892:102;;;:::o;13000:848::-;13061:5;13068:4;13092:6;13083:15;;13116:5;13107:14;;13130:712;13151:1;13141:8;13138:15;13130:712;;;13246:4;13241:3;13237:14;13231:4;13228:24;13225:50;;;13255:18;;:::i;:::-;13225:50;13305:1;13295:8;13291:16;13288:451;;;13720:4;13713:5;13709:16;13700:25;;13288:451;13770:4;13764;13760:15;13752:23;;13800:32;13823:8;13800:32;:::i;:::-;13788:44;;13130:712;;;13000:848;;;;;;;:::o;13854:1073::-;13908:5;14099:8;14089:40;;14120:1;14111:10;;14122:5;;14089:40;14148:4;14138:36;;14165:1;14156:10;;14167:5;;14138:36;14234:4;14282:1;14277:27;;;;14318:1;14313:191;;;;14227:277;;14277:27;14295:1;14286:10;;14297:5;;;14313:191;14358:3;14348:8;14345:17;14342:43;;;14365:18;;:::i;:::-;14342:43;14414:8;14411:1;14407:16;14398:25;;14449:3;14442:5;14439:14;14436:40;;;14456:18;;:::i;:::-;14436:40;14489:5;;;14227:277;;14613:2;14603:8;14600:16;14594:3;14588:4;14585:13;14581:36;14563:2;14553:8;14550:16;14545:2;14539:4;14536:12;14532:35;14516:111;14513:246;;;14669:8;14663:4;14659:19;14650:28;;14704:3;14697:5;14694:14;14691:40;;;14711:18;;:::i;:::-;14691:40;14744:5;;14513:246;14784:42;14822:3;14812:8;14806:4;14803:1;14784:42;:::i;:::-;14769:57;;;;14858:4;14853:3;14849:14;14842:5;14839:25;14836:51;;;14867:18;;:::i;:::-;14836:51;14916:4;14909:5;14905:16;14896:25;;13854:1073;;;;;;:::o;14933:281::-;14991:5;15015:23;15033:4;15015:23;:::i;:::-;15007:31;;15059:25;15075:8;15059:25;:::i;:::-;15047:37;;15103:104;15140:66;15130:8;15124:4;15103:104;:::i;:::-;15094:113;;14933:281;;;;:::o;15220:348::-;15260:7;15283:20;15301:1;15283:20;:::i;:::-;15278:25;;15317:20;15335:1;15317:20;:::i;:::-;15312:25;;15505:1;15437:66;15433:74;15430:1;15427:81;15422:1;15415:9;15408:17;15404:105;15401:131;;;15512:18;;:::i;:::-;15401:131;15560:1;15557;15553:9;15542:20;;15220:348;;;;:::o;15574:180::-;15622:77;15619:1;15612:88;15719:4;15716:1;15709:15;15743:4;15740:1;15733:15;15760:185;15800:1;15817:20;15835:1;15817:20;:::i;:::-;15812:25;;15851:20;15869:1;15851:20;:::i;:::-;15846:25;;15890:1;15880:35;;15895:18;;:::i;:::-;15880:35;15937:1;15934;15930:9;15925:14;;15760:185;;;;:::o;15951:180::-;15999:77;15996:1;15989:88;16096:4;16093:1;16086:15;16120:4;16117:1;16110:15;16137:320;16181:6;16218:1;16212:4;16208:12;16198:22;;16265:1;16259:4;16255:12;16286:18;16276:81;;16342:4;16334:6;16330:17;16320:27;;16276:81;16404:2;16396:6;16393:14;16373:18;16370:38;16367:84;;;16423:18;;:::i;:::-;16367:84;16188:269;16137:320;;;:::o;16463:229::-;16603:34;16599:1;16591:6;16587:14;16580:58;16672:12;16667:2;16659:6;16655:15;16648:37;16463:229;:::o;16698:366::-;16840:3;16861:67;16925:2;16920:3;16861:67;:::i;:::-;16854:74;;16937:93;17026:3;16937:93;:::i;:::-;17055:2;17050:3;17046:12;17039:19;;16698:366;;;:::o;17070:419::-;17236:4;17274:2;17263:9;17259:18;17251:26;;17323:9;17317:4;17313:20;17309:1;17298:9;17294:17;17287:47;17351:131;17477:4;17351:131;:::i;:::-;17343:139;;17070:419;;;:::o;17495:166::-;17635:18;17631:1;17623:6;17619:14;17612:42;17495:166;:::o;17667:366::-;17809:3;17830:67;17894:2;17889:3;17830:67;:::i;:::-;17823:74;;17906:93;17995:3;17906:93;:::i;:::-;18024:2;18019:3;18015:12;18008:19;;17667:366;;;:::o;18039:419::-;18205:4;18243:2;18232:9;18228:18;18220:26;;18292:9;18286:4;18282:20;18278:1;18267:9;18263:17;18256:47;18320:131;18446:4;18320:131;:::i;:::-;18312:139;;18039:419;;;:::o;18464:159::-;18604:11;18600:1;18592:6;18588:14;18581:35;18464:159;:::o;18629:365::-;18771:3;18792:66;18856:1;18851:3;18792:66;:::i;:::-;18785:73;;18867:93;18956:3;18867:93;:::i;:::-;18985:2;18980:3;18976:12;18969:19;;18629:365;;;:::o;19000:419::-;19166:4;19204:2;19193:9;19189:18;19181:26;;19253:9;19247:4;19243:20;19239:1;19228:9;19224:17;19217:47;19281:131;19407:4;19281:131;:::i;:::-;19273:139;;19000:419;;;:::o;19425:171::-;19565:23;19561:1;19553:6;19549:14;19542:47;19425:171;:::o;19602:366::-;19744:3;19765:67;19829:2;19824:3;19765:67;:::i;:::-;19758:74;;19841:93;19930:3;19841:93;:::i;:::-;19959:2;19954:3;19950:12;19943:19;;19602:366;;;:::o;19974:419::-;20140:4;20178:2;20167:9;20163:18;20155:26;;20227:9;20221:4;20217:20;20213:1;20202:9;20198:17;20191:47;20255:131;20381:4;20255:131;:::i;:::-;20247:139;;19974:419;;;:::o;20399:242::-;20438:3;20457:19;20474:1;20457:19;:::i;:::-;20452:24;;20490:19;20507:1;20490:19;:::i;:::-;20485:24;;20583:1;20575:6;20571:14;20568:1;20565:21;20562:47;;;20589:18;;:::i;:::-;20562:47;20633:1;20630;20626:9;20619:16;;20399:242;;;;:::o;20647:166::-;20787:18;20783:1;20775:6;20771:14;20764:42;20647:166;:::o;20819:366::-;20961:3;20982:67;21046:2;21041:3;20982:67;:::i;:::-;20975:74;;21058:93;21147:3;21058:93;:::i;:::-;21176:2;21171:3;21167:12;21160:19;;20819:366;;;:::o;21191:419::-;21357:4;21395:2;21384:9;21380:18;21372:26;;21444:9;21438:4;21434:20;21430:1;21419:9;21415:17;21408:47;21472:131;21598:4;21472:131;:::i;:::-;21464:139;;21191:419;;;:::o;21616:170::-;21756:22;21752:1;21744:6;21740:14;21733:46;21616:170;:::o;21792:366::-;21934:3;21955:67;22019:2;22014:3;21955:67;:::i;:::-;21948:74;;22031:93;22120:3;22031:93;:::i;:::-;22149:2;22144:3;22140:12;22133:19;;21792:366;;;:::o;22164:419::-;22330:4;22368:2;22357:9;22353:18;22345:26;;22417:9;22411:4;22407:20;22403:1;22392:9;22388:17;22381:47;22445:131;22571:4;22445:131;:::i;:::-;22437:139;;22164:419;;;:::o;22589:165::-;22729:17;22725:1;22717:6;22713:14;22706:41;22589:165;:::o;22760:366::-;22902:3;22923:67;22987:2;22982:3;22923:67;:::i;:::-;22916:74;;22999:93;23088:3;22999:93;:::i;:::-;23117:2;23112:3;23108:12;23101:19;;22760:366;;;:::o;23132:419::-;23298:4;23336:2;23325:9;23321:18;23313:26;;23385:9;23379:4;23375:20;23371:1;23360:9;23356:17;23349:47;23413:131;23539:4;23413:131;:::i;:::-;23405:139;;23132:419;;;:::o;23557:164::-;23697:16;23693:1;23685:6;23681:14;23674:40;23557:164;:::o;23727:366::-;23869:3;23890:67;23954:2;23949:3;23890:67;:::i;:::-;23883:74;;23966:93;24055:3;23966:93;:::i;:::-;24084:2;24079:3;24075:12;24068:19;;23727:366;;;:::o;24099:419::-;24265:4;24303:2;24292:9;24288:18;24280:26;;24352:9;24346:4;24342:20;24338:1;24327:9;24323:17;24316:47;24380:131;24506:4;24380:131;:::i;:::-;24372:139;;24099:419;;;:::o;24524:159::-;24664:11;24660:1;24652:6;24648:14;24641:35;24524:159;:::o;24689:365::-;24831:3;24852:66;24916:1;24911:3;24852:66;:::i;:::-;24845:73;;24927:93;25016:3;24927:93;:::i;:::-;25045:2;25040:3;25036:12;25029:19;;24689:365;;;:::o;25060:419::-;25226:4;25264:2;25253:9;25249:18;25241:26;;25313:9;25307:4;25303:20;25299:1;25288:9;25284:17;25277:47;25341:131;25467:4;25341:131;:::i;:::-;25333:139;;25060:419;;;:::o;25485:143::-;25542:5;25573:6;25567:13;25558:22;;25589:33;25616:5;25589:33;:::i;:::-;25485:143;;;;:::o;25634:351::-;25704:6;25753:2;25741:9;25732:7;25728:23;25724:32;25721:119;;;25759:79;;:::i;:::-;25721:119;25879:1;25904:64;25960:7;25951:6;25940:9;25936:22;25904:64;:::i;:::-;25894:74;;25850:128;25634:351;;;;:::o;25991:332::-;26112:4;26150:2;26139:9;26135:18;26127:26;;26163:71;26231:1;26220:9;26216:17;26207:6;26163:71;:::i;:::-;26244:72;26312:2;26301:9;26297:18;26288:6;26244:72;:::i;:::-;25991:332;;;;;:::o;26329:166::-;26469:18;26465:1;26457:6;26453:14;26446:42;26329:166;:::o;26501:366::-;26643:3;26664:67;26728:2;26723:3;26664:67;:::i;:::-;26657:74;;26740:93;26829:3;26740:93;:::i;:::-;26858:2;26853:3;26849:12;26842:19;;26501:366;;;:::o;26873:419::-;27039:4;27077:2;27066:9;27062:18;27054:26;;27126:9;27120:4;27116:20;27112:1;27101:9;27097:17;27090:47;27154:131;27280:4;27154:131;:::i;:::-;27146:139;;26873:419;;;:::o;27298:166::-;27438:18;27434:1;27426:6;27422:14;27415:42;27298:166;:::o;27470:366::-;27612:3;27633:67;27697:2;27692:3;27633:67;:::i;:::-;27626:74;;27709:93;27798:3;27709:93;:::i;:::-;27827:2;27822:3;27818:12;27811:19;;27470:366;;;:::o;27842:419::-;28008:4;28046:2;28035:9;28031:18;28023:26;;28095:9;28089:4;28085:20;28081:1;28070:9;28066:17;28059:47;28123:131;28249:4;28123:131;:::i;:::-;28115:139;;27842:419;;;:::o;28267:170::-;28407:22;28403:1;28395:6;28391:14;28384:46;28267:170;:::o;28443:366::-;28585:3;28606:67;28670:2;28665:3;28606:67;:::i;:::-;28599:74;;28682:93;28771:3;28682:93;:::i;:::-;28800:2;28795:3;28791:12;28784:19;;28443:366;;;:::o;28815:419::-;28981:4;29019:2;29008:9;29004:18;28996:26;;29068:9;29062:4;29058:20;29054:1;29043:9;29039:17;29032:47;29096:131;29222:4;29096:131;:::i;:::-;29088:139;;28815:419;;;:::o;29240:162::-;29380:14;29376:1;29368:6;29364:14;29357:38;29240:162;:::o;29408:366::-;29550:3;29571:67;29635:2;29630:3;29571:67;:::i;:::-;29564:74;;29647:93;29736:3;29647:93;:::i;:::-;29765:2;29760:3;29756:12;29749:19;;29408:366;;;:::o;29780:419::-;29946:4;29984:2;29973:9;29969:18;29961:26;;30033:9;30027:4;30023:20;30019:1;30008:9;30004:17;29997:47;30061:131;30187:4;30061:131;:::i;:::-;30053:139;;29780:419;;;:::o;30205:191::-;30245:4;30265:20;30283:1;30265:20;:::i;:::-;30260:25;;30299:20;30317:1;30299:20;:::i;:::-;30294:25;;30338:1;30335;30332:8;30329:34;;;30343:18;;:::i;:::-;30329:34;30388:1;30385;30381:9;30373:17;;30205:191;;;;:::o;30402:60::-;30430:3;30451:5;30444:12;;30402:60;;;:::o;30468:142::-;30518:9;30551:53;30569:34;30578:24;30596:5;30578:24;:::i;:::-;30569:34;:::i;:::-;30551:53;:::i;:::-;30538:66;;30468:142;;;:::o;30616:126::-;30666:9;30699:37;30730:5;30699:37;:::i;:::-;30686:50;;30616:126;;;:::o;30748:134::-;30806:9;30839:37;30870:5;30839:37;:::i;:::-;30826:50;;30748:134;;;:::o;30888:147::-;30983:45;31022:5;30983:45;:::i;:::-;30978:3;30971:58;30888:147;;:::o;31041:238::-;31142:4;31180:2;31169:9;31165:18;31157:26;;31193:79;31269:1;31258:9;31254:17;31245:6;31193:79;:::i;:::-;31041:238;;;;:::o;31285:171::-;31323:3;31346:23;31363:5;31346:23;:::i;:::-;31337:32;;31391:6;31384:5;31381:17;31378:43;;;31401:18;;:::i;:::-;31378:43;31448:1;31441:5;31437:13;31430:20;;31285:171;;;:::o;31462:305::-;31502:3;31521:20;31539:1;31521:20;:::i;:::-;31516:25;;31555:20;31573:1;31555:20;:::i;:::-;31550:25;;31709:1;31641:66;31637:74;31634:1;31631:81;31628:107;;;31715:18;;:::i;:::-;31628:107;31759:1;31756;31752:9;31745:16;;31462:305;;;;:::o;31773:176::-;31805:1;31822:20;31840:1;31822:20;:::i;:::-;31817:25;;31856:20;31874:1;31856:20;:::i;:::-;31851:25;;31895:1;31885:35;;31900:18;;:::i;:::-;31885:35;31941:1;31938;31934:9;31929:14;;31773:176;;;;:::o;31955:161::-;32095:13;32091:1;32083:6;32079:14;32072:37;31955:161;:::o;32122:366::-;32264:3;32285:67;32349:2;32344:3;32285:67;:::i;:::-;32278:74;;32361:93;32450:3;32361:93;:::i;:::-;32479:2;32474:3;32470:12;32463:19;;32122:366;;;:::o;32494:419::-;32660:4;32698:2;32687:9;32683:18;32675:26;;32747:9;32741:4;32737:20;32733:1;32722:9;32718:17;32711:47;32775:131;32901:4;32775:131;:::i;:::-;32767:139;;32494:419;;;:::o;32919:167::-;33059:19;33055:1;33047:6;33043:14;33036:43;32919:167;:::o;33092:366::-;33234:3;33255:67;33319:2;33314:3;33255:67;:::i;:::-;33248:74;;33331:93;33420:3;33331:93;:::i;:::-;33449:2;33444:3;33440:12;33433:19;;33092:366;;;:::o;33464:419::-;33630:4;33668:2;33657:9;33653:18;33645:26;;33717:9;33711:4;33707:20;33703:1;33692:9;33688:17;33681:47;33745:131;33871:4;33745:131;:::i;:::-;33737:139;;33464:419;;;:::o;33889:180::-;33937:77;33934:1;33927:88;34034:4;34031:1;34024:15;34058:4;34055:1;34048:15;34075:180;34123:77;34120:1;34113:88;34220:4;34217:1;34210:15;34244:4;34241:1;34234:15;34261:85;34306:7;34335:5;34324:16;;34261:85;;;:::o;34352:158::-;34410:9;34443:61;34461:42;34470:32;34496:5;34470:32;:::i;:::-;34461:42;:::i;:::-;34443:61;:::i;:::-;34430:74;;34352:158;;;:::o;34516:147::-;34611:45;34650:5;34611:45;:::i;:::-;34606:3;34599:58;34516:147;;:::o;34669:114::-;34736:6;34770:5;34764:12;34754:22;;34669:114;;;:::o;34789:184::-;34888:11;34922:6;34917:3;34910:19;34962:4;34957:3;34953:14;34938:29;;34789:184;;;;:::o;34979:132::-;35046:4;35069:3;35061:11;;35099:4;35094:3;35090:14;35082:22;;34979:132;;;:::o;35117:108::-;35194:24;35212:5;35194:24;:::i;:::-;35189:3;35182:37;35117:108;;:::o;35231:179::-;35300:10;35321:46;35363:3;35355:6;35321:46;:::i;:::-;35399:4;35394:3;35390:14;35376:28;;35231:179;;;;:::o;35416:113::-;35486:4;35518;35513:3;35509:14;35501:22;;35416:113;;;:::o;35565:732::-;35684:3;35713:54;35761:5;35713:54;:::i;:::-;35783:86;35862:6;35857:3;35783:86;:::i;:::-;35776:93;;35893:56;35943:5;35893:56;:::i;:::-;35972:7;36003:1;35988:284;36013:6;36010:1;36007:13;35988:284;;;36089:6;36083:13;36116:63;36175:3;36160:13;36116:63;:::i;:::-;36109:70;;36202:60;36255:6;36202:60;:::i;:::-;36192:70;;36048:224;36035:1;36032;36028:9;36023:14;;35988:284;;;35992:14;36288:3;36281:10;;35689:608;;;35565:732;;;;:::o;36303:831::-;36566:4;36604:3;36593:9;36589:19;36581:27;;36618:71;36686:1;36675:9;36671:17;36662:6;36618:71;:::i;:::-;36699:80;36775:2;36764:9;36760:18;36751:6;36699:80;:::i;:::-;36826:9;36820:4;36816:20;36811:2;36800:9;36796:18;36789:48;36854:108;36957:4;36948:6;36854:108;:::i;:::-;36846:116;;36972:72;37040:2;37029:9;37025:18;37016:6;36972:72;:::i;:::-;37054:73;37122:3;37111:9;37107:19;37098:6;37054:73;:::i;:::-;36303:831;;;;;;;;:::o;37140:807::-;37389:4;37427:3;37416:9;37412:19;37404:27;;37441:71;37509:1;37498:9;37494:17;37485:6;37441:71;:::i;:::-;37522:72;37590:2;37579:9;37575:18;37566:6;37522:72;:::i;:::-;37604:80;37680:2;37669:9;37665:18;37656:6;37604:80;:::i;:::-;37694;37770:2;37759:9;37755:18;37746:6;37694:80;:::i;:::-;37784:73;37852:3;37841:9;37837:19;37828:6;37784:73;:::i;:::-;37867;37935:3;37924:9;37920:19;37911:6;37867:73;:::i;:::-;37140:807;;;;;;;;;:::o;37953:143::-;38010:5;38041:6;38035:13;38026:22;;38057:33;38084:5;38057:33;:::i;:::-;37953:143;;;;:::o;38102:663::-;38190:6;38198;38206;38255:2;38243:9;38234:7;38230:23;38226:32;38223:119;;;38261:79;;:::i;:::-;38223:119;38381:1;38406:64;38462:7;38453:6;38442:9;38438:22;38406:64;:::i;:::-;38396:74;;38352:128;38519:2;38545:64;38601:7;38592:6;38581:9;38577:22;38545:64;:::i;:::-;38535:74;;38490:129;38658:2;38684:64;38740:7;38731:6;38720:9;38716:22;38684:64;:::i;:::-;38674:74;;38629:129;38102:663;;;;;:::o;38771:160::-;38911:12;38907:1;38899:6;38895:14;38888:36;38771:160;:::o;38937:366::-;39079:3;39100:67;39164:2;39159:3;39100:67;:::i;:::-;39093:74;;39176:93;39265:3;39176:93;:::i;:::-;39294:2;39289:3;39285:12;39278:19;;38937:366;;;:::o;39309:419::-;39475:4;39513:2;39502:9;39498:18;39490:26;;39562:9;39556:4;39552:20;39548:1;39537:9;39533:17;39526:47;39590:131;39716:4;39590:131;:::i;:::-;39582:139;;39309:419;;;:::o;39734:167::-;39874:19;39870:1;39862:6;39858:14;39851:43;39734:167;:::o;39907:366::-;40049:3;40070:67;40134:2;40129:3;40070:67;:::i;:::-;40063:74;;40146:93;40235:3;40146:93;:::i;:::-;40264:2;40259:3;40255:12;40248:19;;39907:366;;;:::o;40279:419::-;40445:4;40483:2;40472:9;40468:18;40460:26;;40532:9;40526:4;40522:20;40518:1;40507:9;40503:17;40496:47;40560:131;40686:4;40560:131;:::i;:::-;40552:139;;40279:419;;;:::o;40704:173::-;40844:25;40840:1;40832:6;40828:14;40821:49;40704:173;:::o;40883:366::-;41025:3;41046:67;41110:2;41105:3;41046:67;:::i;:::-;41039:74;;41122:93;41211:3;41122:93;:::i;:::-;41240:2;41235:3;41231:12;41224:19;;40883:366;;;:::o;41255:419::-;41421:4;41459:2;41448:9;41444:18;41436:26;;41508:9;41502:4;41498:20;41494:1;41483:9;41479:17;41472:47;41536:131;41662:4;41536:131;:::i;:::-;41528:139;;41255:419;;;:::o

Swarm Source

ipfs://d992028fca64dca6fa9572728778ea670ccdcedb8d506300cc560f99ee5c2e52
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.