More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,038 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Buy For Investor | 7719372 | 2016 days ago | IN | 0 ETH | 0.00099809 | ||||
Pass KYC | 7719352 | 2016 days ago | IN | 0 ETH | 0.00040153 | ||||
Buy For Investor | 7666807 | 2024 days ago | IN | 0 ETH | 0.00039572 | ||||
Buy For Investor | 7564461 | 2040 days ago | IN | 0 ETH | 0.00055663 | ||||
Pass KYC | 7564450 | 2040 days ago | IN | 0 ETH | 0.0002238 | ||||
Set Rate | 7559194 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7558919 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7558661 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7558416 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7558159 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7557907 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7557647 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7557372 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7557068 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7556778 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7556530 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7556260 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7555984 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7555702 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7555427 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7555167 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7554897 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7554632 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7554346 | 2041 days ago | IN | 0 ETH | 0.00025882 | ||||
Set Rate | 7554084 | 2041 days ago | IN | 0 ETH | 0.00025882 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6920379 | 2155 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
WbcICO
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-12-20 */ pragma solidity ^ 0.4.21; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns(uint256) { assert(b > 0); uint256 c = a / b; assert(a == b * c + a % b); return c; } function sub(uint256 a, uint256 b) internal pure returns(uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns(uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title ERC20 * @dev Standart ERC20 token interface */ contract ERC20 { function balanceOf(address _owner) public constant returns(uint256); function transfer(address _to, uint256 _value) public returns(bool); function transferFrom(address _from, address _to, uint256 _value) public returns(bool); function approve(address _spender, uint256 _value) public returns(bool); function allowance(address _owner, address _spender) public constant returns(uint256); mapping(address => uint256) balances; mapping(address => mapping(address => uint256)) allowed; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } /** * @dev CRET token contract */ contract WbcToken is ERC20 { using SafeMath for uint256; string public name = "WhizBizCoin"; string public symbol = "WB"; uint256 public decimals = 18; uint256 public totalSupply = 888000000 * 1e18; uint256 public timeStamp = 0; uint256 constant fundPartYear = 44400000 * 1e18; uint256 constant trioPartYear = 8880000 * 1e18; //1% of tokens for CrowdSale, Film Comany and Investors in one year for 6 years uint256 constant minimumAge = 30 days; // minimum age for coins uint256 constant oneYear = 360 days; uint256 public minted = 0; address public teamCSN; address public teamFilmCompany; address public teamInvestors; address public teamFund; address public manager; address public reserveFund; struct transferStruct{ uint128 amount; uint64 time; } mapping(uint8 => bool) trioChecker; mapping(uint8 => bool) fundChecker; mapping(uint256 => bool) priceChecker; mapping(address => transferStruct[]) transferSt; mapping(uint256 => uint256) coinPriceNow; // Ico contract address address public owner; // Allows execution by the owner only modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyManager { require(msg.sender == manager); _; } constructor (address _owner, address _teamCSN, address _teamFilmCompany, address _teamInvestors, address _fund, address _manager, address _reserveFund) public { owner = _owner; teamCSN = _teamCSN; teamFilmCompany = _teamFilmCompany; teamInvestors = _teamInvestors; teamFund = _fund; manager = _manager; reserveFund = _reserveFund; } function doTimeStamp(uint256 _value) external onlyOwner { timeStamp = _value; } /** * @dev Mint tokens * @param _investor address the tokens will be issued to * @param _value number of tokens */ function mintTokens(address _investor, uint256 _value) external onlyOwner { require(_value > 0); require(minted.add(_value) <= totalSupply); balances[_investor] = balances[_investor].add(_value); minted = minted.add(_value); transferSt[_investor].push(transferStruct(uint128(_value),uint64(now))); emit Transfer(0x0, _investor, _value); } function mintTrio() external onlyManager { require(now > (timeStamp + 360 days)); if(now > (timeStamp + 360 days) && now <= (timeStamp + 720 days)){ require(trioChecker[1] != true); partingTrio(1); } if(now > (timeStamp + 720 days) && now <= (timeStamp + 1080 days)){ require(trioChecker[2] != true); partingTrio(2); } if(now > (timeStamp + 1080 days) && now <= (timeStamp + 1440 days)){ require(trioChecker[3] != true); partingTrio(3); } if(now > (timeStamp + 1440 days) && now <= (timeStamp + 1800 days)){ require(trioChecker[4] != true); partingTrio(4); } if(now > (timeStamp + 1800 days) && now <= (timeStamp + 2160 days)){ require(trioChecker[5] != true); partingTrio(5); } if(now > (timeStamp + 2160 days) && now <= (timeStamp + 2520 days)){ require(trioChecker[6] != true); partingTrio(6); } } function mintFund() external onlyManager { require(now > (timeStamp + 360 days)); if(now > (timeStamp + 360 days) && now <= (timeStamp + 720 days)){ require(fundChecker[1] != true); partingFund(1); } if(now > (timeStamp + 720 days) && now <= (timeStamp + 1080 days)){ require(fundChecker[2] != true); partingFund(2); } if(now > (timeStamp + 1080 days) && now <= (timeStamp + 1440 days)){ require(fundChecker[3] != true); partingFund(3); } if(now > (timeStamp + 1440 days) && now <= (timeStamp + 1800 days)){ require(fundChecker[4] != true); partingFund(4); } if(now > (timeStamp + 1800 days) && now <= (timeStamp + 2160 days)){ require(fundChecker[5] != true); partingFund(5); } if(now > (timeStamp + 2160 days) && now <= (timeStamp + 2520 days)){ require(fundChecker[6] != true); partingFund(6); } if(now > (timeStamp + 2520 days) && now <= (timeStamp + 2880 days)){ require(fundChecker[7] != true); partingFund(7); } } function partingFund(uint8 _x) internal { require(_x > 0 && _x <= 7); balances[teamFund] = balances[teamFund].add(fundPartYear); fundChecker[_x] = true; minted = minted.add(fundPartYear); transferSt[teamFund].push(transferStruct(uint128(fundPartYear),uint64(now))); emit Transfer(0x0, teamFund, fundPartYear); } function partingTrio(uint8 _x) internal { require(_x > 0 && _x <= 6); balances[teamCSN] = balances[teamCSN].add(trioPartYear); balances[teamFilmCompany] = balances[teamFilmCompany].add(trioPartYear); balances[teamInvestors] = balances[teamInvestors].add(trioPartYear); trioChecker[_x] = true; minted = minted.add(trioPartYear.mul(3)); transferSt[teamCSN].push(transferStruct(uint128(trioPartYear),uint64(now))); transferSt[teamFilmCompany].push(transferStruct(uint128(trioPartYear),uint64(now))); transferSt[teamInvestors].push(transferStruct(uint128(trioPartYear),uint64(now))); emit Transfer(0x0, teamCSN, trioPartYear); emit Transfer(0x0, teamFilmCompany, trioPartYear); emit Transfer(0x0, teamInvestors, trioPartYear); } /** * @dev Get balance of investor * @param _owner investor's address * @return balance of investor */ function balanceOf(address _owner) public constant returns(uint256) { return balances[_owner]; } /** * @return true if the transfer was successful */ function transfer(address _to, uint256 _amount) public returns(bool) { if(msg.sender == _to) {return POSMint();} balances[msg.sender] = balances[msg.sender].sub(_amount); balances[_to] = balances[_to].add(_amount); emit Transfer(msg.sender, _to, _amount); if(transferSt[msg.sender].length > 0) {delete transferSt[msg.sender];} uint64 _now = uint64(now); transferSt[msg.sender].push(transferStruct(uint128(balances[msg.sender]),_now)); transferSt[_to].push(transferStruct(uint128(_amount),_now)); return true; } /** * @return true if the transfer was successful */ function transferFrom(address _from, address _to, uint256 _amount) public returns(bool) { require(_amount <= allowed[_from][msg.sender]); require(_amount <= balances[_from]); balances[_from] = balances[_from].sub(_amount); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount); balances[_to] = balances[_to].add(_amount); emit Transfer(_from, _to, _amount); if(transferSt[_from].length > 0) {delete transferSt[_from];} uint64 _now = uint64(now); transferSt[_from].push(transferStruct(uint128(balances[_from]),_now)); transferSt[_to].push(transferStruct(uint128(_amount),_now)); return true; } function POSMint() internal returns (bool) { require(now > (timeStamp + minimumAge)); if(balances[msg.sender] <= 0) {return false;} if(transferSt[msg.sender].length <= 0) {return false;} uint256 _now = now; uint256 _year = getYear(); uint256 _phase = getPhase(_year); uint256 _coinsAmount = getCoinsAmount(msg.sender, _now); if(_coinsAmount <= 0) {return false;} uint256 _coinsPrice = getCoinPrice(_year, _phase); if(_coinsPrice <= 0) {return false;} uint256 reward = (_coinsAmount.mul(_coinsPrice)).div(100000); if(reward <= 0) {return false;} if(reward > 0) {require(minted.add(reward) <= totalSupply);} minted = minted.add(reward); balances[msg.sender] = balances[msg.sender].add(reward); delete transferSt[msg.sender]; transferSt[msg.sender].push(transferStruct(uint128(balances[msg.sender]),uint64(now))); emit Transfer(0x0, msg.sender, reward); return true; } function getCoinsAmount(address _address, uint _now) internal view returns (uint256) { if(transferSt[_address].length <= 0) {return 0;} uint256 Coins = 0; for (uint256 i = 0; i < transferSt[_address].length; i++){ if( _now < uint(transferSt[_address][i].time).add(minimumAge) ) {return Coins;} Coins = Coins.add(uint256(transferSt[_address][i].amount)); } return Coins; } function getYear() internal view returns (uint256) { require(timeStamp > 0); for(uint256 i = 0; i <= 99; i++) { if(now >= ((timeStamp + minimumAge).add((i.mul(oneYear)))) && now < ((timeStamp + minimumAge).add(((i+1).mul(oneYear))))) { return (i); // how many years gone } } if(now >= ((timeStamp + minimumAge).add((oneYear.mul(100))))) {return (100);} } function getPhase(uint256 _x) internal pure returns (uint256) { require(_x >= 0); if(_x >= 0 && _x < 3) {return 1;} if(_x >= 3 && _x < 6) {return 2;} if(_x >= 6 && _x < 9) {return 3;} if(_x >= 9 && _x < 12) {return 4;} if(_x >= 12) {return 5;} // last phase which include 18*3 years } function getMonthLimit(uint256 _x) internal pure returns (uint256) { require(_x > 0 && _x <=5); if(_x == 1) {return (2220000 * 1e18);} //limit in month in this phase for all if(_x == 2) {return (1480000 * 1e18);} if(_x == 3) {return (740000 * 1e18);} if(_x == 4) {return (370000 * 1e18);} if(_x == 5) {return (185000 * 1e18);} } function getCoinPrice(uint256 _year, uint256 _phase) internal returns (uint256) { require(_year >= 0); uint256 _monthLimit = getMonthLimit(_phase); uint256 _sumToAdd = _year.mul(oneYear); uint256 _monthInYear = _year.mul(12); for(uint256 i = 0; i <= 11; i++) { if(now >= (timeStamp + minimumAge).add(_sumToAdd).add(minimumAge.mul(i)) && now < (timeStamp + minimumAge).add(_sumToAdd).add(minimumAge.mul(i+1))) { uint256 _num = _monthInYear.add(i); if(priceChecker[_num] != true) { coinPriceNow[_num] = minted; priceChecker[_num] = true; return (_monthLimit.mul(100000)).div(minted);} if(priceChecker[_num] == true) { return (_monthLimit.mul(100000)).div(coinPriceNow[_num]);} } } } /** * @dev Allows another account/contract to spend some tokens on its behalf * approve has to be called twice in 2 separate transactions - once to * change the allowance to 0 and secondly to change it to the new allowance value * @param _spender approved address * @param _amount allowance amount * * @return true if the approval was successful */ function approve(address _spender, uint256 _amount) public returns(bool) { require((_amount == 0) || (allowed[msg.sender][_spender] == 0)); allowed[msg.sender][_spender] = _amount; emit Approval(msg.sender, _spender, _amount); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * * @param _owner the address which owns the funds * @param _spender the address which will spend the funds * * @return the amount of tokens still avaible for the spender */ function allowance(address _owner, address _spender) public constant returns(uint256) { return allowed[_owner][_spender]; } } contract WbcICO { using SafeMath for uint256; address public CSN; // address public FilmCompany; // address public Investors; // address public Fund; address public Manager; // Manager controls contract address public Reserve; address internal addressCompanion1; address internal addressCompanion2; WbcToken public WBC; mapping(address => bool) public kyc; // investor identification status // Possible ICO statuses enum StatusICO { Created, Ico, IcoFinished } StatusICO statusICO; /** * @dev Contract constructor function */ constructor ( address _CSN, address _FilmCompany, address _Investors, address _Fund, address _Manager, address _Reserve ) public { CSN = _CSN; FilmCompany = _FilmCompany; Investors = _Investors; Fund = _Fund; Manager = _Manager; Reserve = _Reserve; statusICO = StatusICO.Created; WBC = new WbcToken(this, _CSN, _FilmCompany, _Investors, _Fund, _Manager, _Reserve); } // Token price parameters uint256 public Rate_Eth = 700; // Rate USD per ETH uint256 internal Tokens_Per_Dollar = 77; // WBC token per dollar multiplied on 10 uint256 internal Token_Price_For_Ten_Ether = Tokens_Per_Dollar.mul(Rate_Eth); // WBC token per ETH uint256 constant trioPartIco = 5920000 * 1e18; //0.6% of tokens for CrowdSale, Film Comany and Investors uint256 constant reservePart = 17760000 * 1e18; //2% or 17mln and 760k for reserve fund uint256 constant MAX_TO_SOLD = 88800000 * 1e18; // tokens for sale in ICO uint256 public soldTotal; // total sold // Events Log event LogStartIco(); event LogFinishICO(); event LogBuyForInvestor(address investor, uint256 value); // Modifiers // Allows execution by the contract manager only modifier managerOnly { require(msg.sender == Manager); _; } // Allows execution by the companions only modifier companionsOnly { require(msg.sender == CSN || msg.sender == FilmCompany); _; } function currentStage() public view returns (string) { if(statusICO == StatusICO.Created){return "Created";} else if(statusICO == StatusICO.Ico){return "Ico";} else if(statusICO == StatusICO.IcoFinished){return "IcoFinished";} } /** * @dev Set rate of ETH and update token price * @param _RateEth current ETH rate */ function setRate(uint256 _RateEth) external managerOnly { Rate_Eth = _RateEth; Token_Price_For_Ten_Ether = Tokens_Per_Dollar.mul(_RateEth); } // passing KYC for investor function passKYC(address _investor) external managerOnly { kyc[_investor] = true; } /** * @dev Start ICO * Set ICO status */ function startIco() external managerOnly { require(statusICO == StatusICO.Created); WBC.mintTokens(CSN, trioPartIco); WBC.mintTokens(FilmCompany, trioPartIco); WBC.mintTokens(Investors, trioPartIco); WBC.mintTokens(Reserve, reservePart); statusICO = StatusICO.Ico; emit LogStartIco(); } /** * @dev Finish ICO and emit tokens for bounty advisors and team */ function finishIco() external managerOnly { require(statusICO == StatusICO.Ico); statusICO = StatusICO.IcoFinished; WBC.doTimeStamp(now); emit LogFinishICO(); } /** * @dev Fallback function calls function to create tokens * when investor sends ETH to address of ICO contract */ function() external payable { require(msg.value > 0); require(kyc[msg.sender]); createTokens(msg.sender, (msg.value.mul(Token_Price_For_Ten_Ether)).div(10)); // divide by 10 because multiplied "Per Dollar" on 10 } function buyToken() external payable { require(msg.value > 0); require(kyc[msg.sender]); createTokens(msg.sender, (msg.value.mul(Token_Price_For_Ten_Ether)).div(10)); // divide by 10 because multiplied "Per Dollar" on 10 } function buyForInvestor(address _investor, uint256 _value) external managerOnly { uint256 decvalue = _value.mul(1 ether); require(_value > 0); require(kyc[_investor]); require(statusICO != StatusICO.IcoFinished); require(statusICO != StatusICO.Created); require(soldTotal.add(decvalue) <= MAX_TO_SOLD); WBC.mintTokens(_investor, decvalue); soldTotal = soldTotal.add(decvalue); emit LogBuyForInvestor(_investor, _value); } function createTokens(address _investor, uint256 _value) internal { require(_value > 0); require(soldTotal.add(_value) <= MAX_TO_SOLD); require(statusICO != StatusICO.IcoFinished); require(statusICO != StatusICO.Created); WBC.mintTokens(_investor, _value); soldTotal = soldTotal.add(_value); } /** * @dev Allows Companions to add consensus address */ function consensusAddress(address _investor) external companionsOnly { require(CSN != 0x0 && FilmCompany != 0x0); if(msg.sender == CSN) { addressCompanion1 = _investor; } else { addressCompanion2 = _investor; } } /** * @dev Allows Companions withdraw investments */ function takeInvestments() external companionsOnly { require(addressCompanion1 != 0x0 && addressCompanion2 != 0x0); require(addressCompanion1 == addressCompanion2); addressCompanion1.transfer(address(this).balance); } } // gexabyte.com
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"kyc","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_RateEth","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"WBC","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"}],"name":"consensusAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentStage","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Fund","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Investors","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"CSN","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"},{"name":"_value","type":"uint256"}],"name":"buyForInvestor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"takeInvestments","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Reserve","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Rate_Eth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FilmCompany","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"}],"name":"passKYC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_CSN","type":"address"},{"name":"_FilmCompany","type":"address"},{"name":"_Investors","type":"address"},{"name":"_Fund","type":"address"},{"name":"_Manager","type":"address"},{"name":"_Reserve","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"LogStartIco","type":"event"},{"anonymous":false,"inputs":[],"name":"LogFinishICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogBuyForInvestor","type":"event"}]
Contract Creation Code
60806040526102bc600b55604d600c5562000036600b54600c54620004296401000000000262000692179091906401000000009004565b600d553480156200004657600080fd5b5060405160c08062005bcb833981018060405281019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050856000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548160ff021916908360028111156200024157fe5b021790555030868686868686620002576200045f565b808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001975050505050505050604051809103906000f080158015620003dc573d6000803e3d6000fd5b50600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000470565b600080828402905060008414806200044c57508284828115156200044957fe5b04145b15156200045557fe5b8091505092915050565b604051613c388062001f9383390190565b611b1380620004806000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632e0474ed146101a157806334fcf437146101fc5780633a8994481461022957806348d5a5c0146102805780635bf5d54c146102c35780636ce1417e1461035357806378357e53146103aa578063879bfa271461040157806389311e6f14610458578063a48217191461046f578063b27ffbf214610479578063baa9da15146104d0578063ca0c74be146104fb578063cd0643ee14610548578063cda95d801461055f578063e0d1ba52146105b6578063e42713e4146105e1578063eb93102414610638578063ec42f82f1461067b575b60003411151561011657600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561016e57600080fd5b61019f3361019a600a61018c600d543461069290919063ffffffff16565b6106c590919063ffffffff16565b610706565b005b3480156101ad57600080fd5b506101e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108a8565b604051808215151515815260200191505060405180910390f35b34801561020857600080fd5b50610227600480360381019080803590602001909291905050506108c8565b005b34801561023557600080fd5b5061023e610949565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028c57600080fd5b506102c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061096f565b005b3480156102cf57600080fd5b506102d8610b8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103185780820151818401526020810190506102fd565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035f57600080fd5b50610368610cd4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103b657600080fd5b506103bf610cfa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040d57600080fd5b50610416610d20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046457600080fd5b5061046d610d46565b005b61047761124f565b005b34801561048557600080fd5b5061048e6112e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104dc57600080fd5b506104e561130e565b6040518082815260200191505060405180910390f35b34801561050757600080fd5b50610546600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611314565b005b34801561055457600080fd5b5061055d6115f5565b005b34801561056b57600080fd5b50610574611835565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105c257600080fd5b506105cb61185b565b6040518082815260200191505060405180910390f35b3480156105ed57600080fd5b506105f6611861565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611887565b005b34801561068757600080fd5b5061069061193e565b005b600080828402905060008414806106b357508284828115156106b057fe5b04145b15156106bb57fe5b8091505092915050565b6000806000831115156106d457fe5b82848115156106df57fe5b04905082848115156106ed57fe5b0681840201841415156106fc57fe5b8091505092915050565b60008111151561071557600080fd5b6a497421a5557c070c00000061073682600e54611ac990919063ffffffff16565b1115151561074357600080fd5b60028081111561074f57fe5b600a60009054906101000a900460ff16600281111561076a57fe5b1415151561077757600080fd5b6000600281111561078457fe5b600a60009054906101000a900460ff16600281111561079f57fe5b141515156107ac57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b5050505061089e81600e54611ac990919063ffffffff16565b600e819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092457600080fd5b80600b8190555061094081600c5461069290919063ffffffff16565b600d8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a175750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610a2257600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610aa357506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1515610aae57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610b495780600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b8b565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b606060006002811115610b9d57fe5b600a60009054906101000a900460ff166002811115610bb857fe5b1415610bfb576040805190810160405280600781526020017f43726561746564000000000000000000000000000000000000000000000000008152509050610cd1565b60016002811115610c0857fe5b600a60009054906101000a900460ff166002811115610c2357fe5b1415610c66576040805190810160405280600381526020017f49636f00000000000000000000000000000000000000000000000000000000008152509050610cd1565b600280811115610c7257fe5b600a60009054906101000a900460ff166002811115610c8d57fe5b1415610cd0576040805190810160405280600b81526020017f49636f46696e69736865640000000000000000000000000000000000000000008152509050610cd1565b5b90565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da257600080fd5b60006002811115610daf57fe5b600a60009054906101000a900460ff166002811115610dca57fe5b141515610dd657600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a04e59bd7d27fbc340000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610ec757600080fd5b505af1158015610edb573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a04e59bd7d27fbc340000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610fd157600080fd5b505af1158015610fe5573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a04e59bd7d27fbc340000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156110db57600080fd5b505af11580156110ef573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a0eb0d387777f349c0000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156111e557600080fd5b505af11580156111f9573d6000803e3d6000fd5b505050506001600a60006101000a81548160ff0219169083600281111561121c57fe5b02179055507f397fcb1580ac3ebe35792e3c95e73d4d9883b07cfdd1a9f5bf1048560fedeccb60405160405180910390a1565b60003411151561125e57600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156112b657600080fd5b6112e7336112e2600a6112d4600d543461069290919063ffffffff16565b6106c590919063ffffffff16565b610706565b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137257600080fd5b61138d670de0b6b3a76400008361069290919063ffffffff16565b905060008211151561139e57600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156113f657600080fd5b60028081111561140257fe5b600a60009054906101000a900460ff16600281111561141d57fe5b1415151561142a57600080fd5b6000600281111561143757fe5b600a60009054906101000a900460ff16600281111561145257fe5b1415151561145f57600080fd5b6a497421a5557c070c00000061148082600e54611ac990919063ffffffff16565b1115151561148d57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561155257600080fd5b505af1158015611566573d6000803e3d6000fd5b5050505061157f81600e54611ac990919063ffffffff16565b600e819055507fcffc74f1caef052283cb6bc7c039efe8e6f2412afcf0a2e987111e6956debf5c8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061169d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156116a857600080fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561172a57506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b151561173557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156117b357600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611832573d6000803e3d6000fd5b50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118e357600080fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199a57600080fd5b600160028111156119a757fe5b600a60009054906101000a900460ff1660028111156119c257fe5b1415156119ce57600080fd5b6002600a60006101000a81548160ff021916908360028111156119ed57fe5b0217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636da7027c426040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611a8357600080fd5b505af1158015611a97573d6000803e3d6000fd5b505050507f94b829fc94722aadef185d94a750450dff7721fdf4495a9da0f258de6d33fc9c60405160405180910390a1565b6000808284019050838110151515611add57fe5b80915050929150505600a165627a7a7230582096b26f0b66f4a1889641a48fbf90815247b45f9f7717302bf1c67d65f8b97aa3002960806040526040805190810160405280600b81526020017f5768697a42697a436f696e000000000000000000000000000000000000000000815250600290805190602001906200005192919062000300565b506040805190810160405280600281526020017f5742000000000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000300565b5060126004556b02de89507556d8467800000060055560006006556000600755348015620000cc57600080fd5b5060405160e08062003c388339810180604052810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505086601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050620003af565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200034357805160ff191683800117855562000374565b8280016001018555821562000374579182015b828111156200037357825182559160200191906001019062000356565b5b50905062000383919062000387565b5090565b620003ac91905b80821115620003a85760008160009055506001016200038e565b5090565b90565b61387980620003bf6000396000f300608060405260043610610127576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680623777631461012c57806306fdde0314610183578063095ea7b3146102135780630ab0df87146102785780630d0e7117146102a357806318160ddd146102ba57806323b872dd146102e5578063313ce5671461036a578063481c6a75146103955780634a4a53f8146103ec5780634f02c420146104435780634f99e5241461046e5780635495699f146104c55780636da7027c1461051c57806370a08231146105495780638da5cb5b146105a05780639465a9a9146105f757806395d89b411461060e578063a9059cbb1461069e578063b7f92b7114610703578063dd62ed3e1461075a578063f0dda65c146107d1575b600080fd5b34801561013857600080fd5b5061014161081e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018f57600080fd5b50610198610844565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d85780820151818401526020810190506101bd565b50505050905090810190601f1680156102055780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021f57600080fd5b5061025e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108e2565b604051808215151515815260200191505060405180910390f35b34801561028457600080fd5b5061028d610a69565b6040518082815260200191505060405180910390f35b3480156102af57600080fd5b506102b8610a6f565b005b3480156102c657600080fd5b506102cf610d4d565b6040518082815260200191505060405180910390f35b3480156102f157600080fd5b50610350600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561037657600080fd5b5061037f6113bc565b6040518082815260200191505060405180910390f35b3480156103a157600080fd5b506103aa6113c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f857600080fd5b506104016113e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044f57600080fd5b5061045861140e565b6040518082815260200191505060405180910390f35b34801561047a57600080fd5b50610483611414565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d157600080fd5b506104da61143a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052857600080fd5b5061054760048036038101908080359060200190929190505050611460565b005b34801561055557600080fd5b5061058a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c6565b6040518082815260200191505060405180910390f35b3480156105ac57600080fd5b506105b561150e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060357600080fd5b5061060c611534565b005b34801561061a57600080fd5b50610623611879565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610663578082015181840152602081019050610648565b50505050905090810190601f1680156106905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106aa57600080fd5b506106e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611917565b604051808215151515815260200191505060405180910390f35b34801561070f57600080fd5b50610718611ddc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076657600080fd5b506107bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e02565b6040518082815260200191505060405180910390f35b3480156107dd57600080fd5b5061081c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e89565b005b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108da5780601f106108af576101008083540402835291602001916108da565b820191906000526020600020905b8154815290600101906020018083116108bd57829003601f168201915b505050505081565b60008082148061096e57506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561097957600080fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610acb57600080fd5b6301da9c006006540142111515610ae157600080fd5b6301da9c006006540142118015610b0057506303b53800600654014211155b15610b485760011515600e6000600160ff16815260200190815260200160002060009054906101000a900460ff16151514151515610b3d57600080fd5b610b476001612123565b5b6303b538006006540142118015610b67575063058fd400600654014211155b15610baf5760011515600e6000600260ff16815260200190815260200160002060009054906101000a900460ff16151514151515610ba457600080fd5b610bae6002612123565b5b63058fd4006006540142118015610bce575063076a7000600654014211155b15610c165760011515600e6000600360ff16815260200190815260200160002060009054906101000a900460ff16151514151515610c0b57600080fd5b610c156003612123565b5b63076a70006006540142118015610c3557506309450c00600654014211155b15610c7d5760011515600e6000600460ff16815260200190815260200160002060009054906101000a900460ff16151514151515610c7257600080fd5b610c7c6004612123565b5b6309450c006006540142118015610c9c5750630b1fa800600654014211155b15610ce45760011515600e6000600560ff16815260200190815260200160002060009054906101000a900460ff16151514151515610cd957600080fd5b610ce36005612123565b5b630b1fa8006006540142118015610d035750630cfa4400600654014211155b15610d4b5760011515600e6000600660ff16815260200190815260200160002060009054906101000a900460ff16151514151515610d4057600080fd5b610d4a6006612123565b5b565b60055481565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610de157600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610e2e57600080fd5b610e7f836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296f90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296f90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611021836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111561115f57601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061115e91906137cf565b5b429050601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060408051908101604052806000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280856fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505060019150509392505050565b60045481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114bc57600080fd5b8060068190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561159057600080fd5b6301da9c0060065401421115156115a657600080fd5b6301da9c0060065401421180156115c557506303b53800600654014211155b1561160d5760011515600f6000600160ff16815260200190815260200160002060009054906101000a900460ff1615151415151561160257600080fd5b61160c60016129a6565b5b6303b53800600654014211801561162c575063058fd400600654014211155b156116745760011515600f6000600260ff16815260200190815260200160002060009054906101000a900460ff1615151415151561166957600080fd5b61167360026129a6565b5b63058fd4006006540142118015611693575063076a7000600654014211155b156116db5760011515600f6000600360ff16815260200190815260200160002060009054906101000a900460ff161515141515156116d057600080fd5b6116da60036129a6565b5b63076a700060065401421180156116fa57506309450c00600654014211155b156117425760011515600f6000600460ff16815260200190815260200160002060009054906101000a900460ff1615151415151561173757600080fd5b61174160046129a6565b5b6309450c0060065401421180156117615750630b1fa800600654014211155b156117a95760011515600f6000600560ff16815260200190815260200160002060009054906101000a900460ff1615151415151561179e57600080fd5b6117a860056129a6565b5b630b1fa80060065401421180156117c85750630cfa4400600654014211155b156118105760011515600f6000600660ff16815260200190815260200160002060009054906101000a900460ff1615151415151561180557600080fd5b61180f60066129a6565b5b630cfa4400600654014211801561182f5750630ed4e000600654014211155b156118775760011515600f6000600760ff16815260200190815260200160002060009054906101000a900460ff1615151415151561186c57600080fd5b61187660076129a6565b5b565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561190f5780601f106118e45761010080835404028352916020019161190f565b820191906000526020600020905b8154815290600101906020018083116118f257829003601f168201915b505050505081565b6000808373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561195d57611956612cb7565b9150611dd5565b6119ae836000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296f90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a41836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115611b7f57601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611b7e91906137cf565b5b429050601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060408051908101604052806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280856fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050600191505b5092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ee557600080fd5b600081111515611ef457600080fd5b600554611f0c8260075461298890919063ffffffff16565b11151515611f1957600080fd5b611f6a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fc18160075461298890919063ffffffff16565b600781905550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280836fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050508173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008160ff1611801561213a575060068160ff1611155b151561214557600080fd5b6121c36a075869c3bbbf9a4e000000600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a56a075869c3bbbf9a4e000000600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123876a075869c3bbbf9a4e000000600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600e60008360ff1660ff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061245061243f60036a075869c3bbbf9a4e0000006130dc90919063ffffffff16565b60075461298890919063ffffffff16565b60078190555060116000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060408051908101604052806a075869c3bbbf9a4e0000006fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505060116000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060408051908101604052806a075869c3bbbf9a4e0000006fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505060116000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060408051908101604052806a075869c3bbbf9a4e0000006fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a075869c3bbbf9a4e0000006040518082815260200191505060405180910390a3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a075869c3bbbf9a4e0000006040518082815260200191505060405180910390a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a075869c3bbbf9a4e0000006040518082815260200191505060405180910390a350565b600082821115151561297d57fe5b818303905092915050565b600080828401905083811015151561299c57fe5b8091505092915050565b60008160ff161180156129bd575060078160ff1611155b15156129c857600080fd5b612a466a24ba10d2aabe0386000000600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60008360ff1660ff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612afc6a24ba10d2aabe038600000060075461298890919063ffffffff16565b60078190555060116000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060408051908101604052806a24ba10d2aabe03860000006fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a24ba10d2aabe03860000006040518082815260200191505060405180910390a350565b600080600080600080600062278d006006540142111515612cd757600080fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612d2857600096506130d3565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515612d7d57600096506130d3565b429550612d8861310f565b9450612d9385613203565b9350612d9f33876132a9565b9250600083111515612db457600096506130d3565b612dbe85856134a6565b9150600082111515612dd357600096506130d3565b612dfb620186a0612ded84866130dc90919063ffffffff16565b6136e290919063ffffffff16565b9050600081111515612e1057600096506130d3565b6000811115612e3f57600554612e318260075461298890919063ffffffff16565b11151515612e3e57600080fd5b5b612e548160075461298890919063ffffffff16565b600781905550612eab816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298890919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000612f3891906137cf565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060408051908101604052806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050503373ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600196505b50505050505090565b600080828402905060008414806130fd57508284828115156130fa57fe5b04145b151561310557fe5b8091505092915050565b600080600060065411151561312357600080fd5b600090505b6063811115156131bc5761316261314c6301da9c00836130dc90919063ffffffff16565b62278d006006540161298890919063ffffffff16565b42101580156131a2575061319f6131896301da9c00600184016130dc90919063ffffffff16565b62278d006006540161298890919063ffffffff16565b42105b156131af578091506131ff565b8080600101915050613128565b6131ed6131d760646301da9c006130dc90919063ffffffff16565b62278d006006540161298890919063ffffffff16565b421015156131fe57606491506131ff565b5b5090565b600080821015151561321457600080fd5b600082101580156132255750600382105b1561323357600190506132a4565b600382101580156132445750600682105b1561325257600290506132a4565b600682101580156132635750600982105b1561327157600390506132a4565b600982101580156132825750600c82105b1561329057600490506132a4565b600c821015156132a357600590506132a4565b5b919050565b600080600080601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515613302576000925061349e565b60009150600090505b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561349a576133e262278d00601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156133a857fe5b9060005260206000200160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1661298890919063ffffffff16565b8410156133f15781925061349e565b61348b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561344057fe5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168361298890919063ffffffff16565b9150808060010191505061330b565b8192505b505092915050565b600080600080600080600088101515156134bf57600080fd5b6134c887613723565b94506134e16301da9c00896130dc90919063ffffffff16565b93506134f7600c896130dc90919063ffffffff16565b9250600091505b600b821115156136d6576135496135218362278d006130dc90919063ffffffff16565b61353b8662278d006006540161298890919063ffffffff16565b61298890919063ffffffff16565b421015801561359a575061359761356f6001840162278d006130dc90919063ffffffff16565b6135898662278d006006540161298890919063ffffffff16565b61298890919063ffffffff16565b42105b156136c9576135b2828461298890919063ffffffff16565b9050600115156010600083815260200190815260200160002060009054906101000a900460ff16151514151561365957600754601260008381526020019081526020016000208190555060016010600083815260200190815260200160002060006101000a81548160ff021916908315150217905550613652600754613644620186a0886130dc90919063ffffffff16565b6136e290919063ffffffff16565b95506136d7565b600115156010600083815260200190815260200160002060009054906101000a900460ff16151514156136c8576136c160126000838152602001908152602001600020546136b3620186a0886130dc90919063ffffffff16565b6136e290919063ffffffff16565b95506136d7565b5b81806001019250506134fe565b5b505050505092915050565b6000806000831115156136f157fe5b82848115156136fc57fe5b049050828481151561370a57fe5b06818402018414151561371957fe5b8091505092915050565b60008082118015613735575060058211155b151561374057600080fd5b600182141561375c576a01d61a70eeefe69380000090506137ca565b6002821415613778576a013966f5f49fef0d00000090506137ca565b600382141561379357699cb37afa4ff78680000090506137ca565b60048214156137ae57694e59bd7d27fbc340000090506137ca565b60058214156137c95769272cdebe93fde1a0000090506137ca565b5b919050565b50805460008255906000526020600020908101906137ed91906137f0565b50565b61384a91905b8082111561384657600080820160006101000a8154906fffffffffffffffffffffffffffffffff02191690556000820160106101000a81549067ffffffffffffffff0219169055506001016137f6565b5090565b905600a165627a7a72305820f680cf848876aed58d8d97fdaef7c5ea3a118b4842a4fd4c67cf1aea366af0a50029000000000000000000000000199f395944e8e9f1cb88ab256d7795fb9acd6b320000000000000000000000005b9364643bd8529e6f542ae9480d7889770e48640000000000000000000000008d20baefc893495696230a091789b13af3ca4a330000000000000000000000000dcf8b982a286873ecc27987a3198bb521a8ef06000000000000000000000000a3a106f1d081f5b9fc0b2a1b46613f55ea308cdc0000000000000000000000005f9100aa68836dd4979b4b2ef94e8e1d8546380b
Deployed Bytecode
0x608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632e0474ed146101a157806334fcf437146101fc5780633a8994481461022957806348d5a5c0146102805780635bf5d54c146102c35780636ce1417e1461035357806378357e53146103aa578063879bfa271461040157806389311e6f14610458578063a48217191461046f578063b27ffbf214610479578063baa9da15146104d0578063ca0c74be146104fb578063cd0643ee14610548578063cda95d801461055f578063e0d1ba52146105b6578063e42713e4146105e1578063eb93102414610638578063ec42f82f1461067b575b60003411151561011657600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561016e57600080fd5b61019f3361019a600a61018c600d543461069290919063ffffffff16565b6106c590919063ffffffff16565b610706565b005b3480156101ad57600080fd5b506101e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108a8565b604051808215151515815260200191505060405180910390f35b34801561020857600080fd5b50610227600480360381019080803590602001909291905050506108c8565b005b34801561023557600080fd5b5061023e610949565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028c57600080fd5b506102c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061096f565b005b3480156102cf57600080fd5b506102d8610b8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103185780820151818401526020810190506102fd565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035f57600080fd5b50610368610cd4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103b657600080fd5b506103bf610cfa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040d57600080fd5b50610416610d20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046457600080fd5b5061046d610d46565b005b61047761124f565b005b34801561048557600080fd5b5061048e6112e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104dc57600080fd5b506104e561130e565b6040518082815260200191505060405180910390f35b34801561050757600080fd5b50610546600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611314565b005b34801561055457600080fd5b5061055d6115f5565b005b34801561056b57600080fd5b50610574611835565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105c257600080fd5b506105cb61185b565b6040518082815260200191505060405180910390f35b3480156105ed57600080fd5b506105f6611861565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611887565b005b34801561068757600080fd5b5061069061193e565b005b600080828402905060008414806106b357508284828115156106b057fe5b04145b15156106bb57fe5b8091505092915050565b6000806000831115156106d457fe5b82848115156106df57fe5b04905082848115156106ed57fe5b0681840201841415156106fc57fe5b8091505092915050565b60008111151561071557600080fd5b6a497421a5557c070c00000061073682600e54611ac990919063ffffffff16565b1115151561074357600080fd5b60028081111561074f57fe5b600a60009054906101000a900460ff16600281111561076a57fe5b1415151561077757600080fd5b6000600281111561078457fe5b600a60009054906101000a900460ff16600281111561079f57fe5b141515156107ac57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b5050505061089e81600e54611ac990919063ffffffff16565b600e819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092457600080fd5b80600b8190555061094081600c5461069290919063ffffffff16565b600d8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a175750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610a2257600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610aa357506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1515610aae57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610b495780600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b8b565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b606060006002811115610b9d57fe5b600a60009054906101000a900460ff166002811115610bb857fe5b1415610bfb576040805190810160405280600781526020017f43726561746564000000000000000000000000000000000000000000000000008152509050610cd1565b60016002811115610c0857fe5b600a60009054906101000a900460ff166002811115610c2357fe5b1415610c66576040805190810160405280600381526020017f49636f00000000000000000000000000000000000000000000000000000000008152509050610cd1565b600280811115610c7257fe5b600a60009054906101000a900460ff166002811115610c8d57fe5b1415610cd0576040805190810160405280600b81526020017f49636f46696e69736865640000000000000000000000000000000000000000008152509050610cd1565b5b90565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da257600080fd5b60006002811115610daf57fe5b600a60009054906101000a900460ff166002811115610dca57fe5b141515610dd657600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a04e59bd7d27fbc340000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610ec757600080fd5b505af1158015610edb573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a04e59bd7d27fbc340000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610fd157600080fd5b505af1158015610fe5573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a04e59bd7d27fbc340000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156110db57600080fd5b505af11580156110ef573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a0eb0d387777f349c0000006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156111e557600080fd5b505af11580156111f9573d6000803e3d6000fd5b505050506001600a60006101000a81548160ff0219169083600281111561121c57fe5b02179055507f397fcb1580ac3ebe35792e3c95e73d4d9883b07cfdd1a9f5bf1048560fedeccb60405160405180910390a1565b60003411151561125e57600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156112b657600080fd5b6112e7336112e2600a6112d4600d543461069290919063ffffffff16565b6106c590919063ffffffff16565b610706565b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137257600080fd5b61138d670de0b6b3a76400008361069290919063ffffffff16565b905060008211151561139e57600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156113f657600080fd5b60028081111561140257fe5b600a60009054906101000a900460ff16600281111561141d57fe5b1415151561142a57600080fd5b6000600281111561143757fe5b600a60009054906101000a900460ff16600281111561145257fe5b1415151561145f57600080fd5b6a497421a5557c070c00000061148082600e54611ac990919063ffffffff16565b1115151561148d57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561155257600080fd5b505af1158015611566573d6000803e3d6000fd5b5050505061157f81600e54611ac990919063ffffffff16565b600e819055507fcffc74f1caef052283cb6bc7c039efe8e6f2412afcf0a2e987111e6956debf5c8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061169d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156116a857600080fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561172a57506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b151561173557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156117b357600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611832573d6000803e3d6000fd5b50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118e357600080fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199a57600080fd5b600160028111156119a757fe5b600a60009054906101000a900460ff1660028111156119c257fe5b1415156119ce57600080fd5b6002600a60006101000a81548160ff021916908360028111156119ed57fe5b0217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636da7027c426040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611a8357600080fd5b505af1158015611a97573d6000803e3d6000fd5b505050507f94b829fc94722aadef185d94a750450dff7721fdf4495a9da0f258de6d33fc9c60405160405180910390a1565b6000808284019050838110151515611add57fe5b80915050929150505600a165627a7a7230582096b26f0b66f4a1889641a48fbf90815247b45f9f7717302bf1c67d65f8b97aa30029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000199f395944e8e9f1cb88ab256d7795fb9acd6b320000000000000000000000005b9364643bd8529e6f542ae9480d7889770e48640000000000000000000000008d20baefc893495696230a091789b13af3ca4a330000000000000000000000000dcf8b982a286873ecc27987a3198bb521a8ef06000000000000000000000000a3a106f1d081f5b9fc0b2a1b46613f55ea308cdc0000000000000000000000005f9100aa68836dd4979b4b2ef94e8e1d8546380b
-----Decoded View---------------
Arg [0] : _CSN (address): 0x199F395944e8e9F1Cb88AB256d7795FB9acd6b32
Arg [1] : _FilmCompany (address): 0x5B9364643bD8529e6F542aE9480D7889770E4864
Arg [2] : _Investors (address): 0x8D20BAeFC893495696230A091789b13af3Ca4A33
Arg [3] : _Fund (address): 0x0DCf8b982A286873ecc27987a3198BB521A8Ef06
Arg [4] : _Manager (address): 0xA3A106F1D081F5B9fC0b2A1B46613F55eA308cdC
Arg [5] : _Reserve (address): 0x5F9100AA68836DD4979b4B2Ef94e8e1d8546380b
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000199f395944e8e9f1cb88ab256d7795fb9acd6b32
Arg [1] : 0000000000000000000000005b9364643bd8529e6f542ae9480d7889770e4864
Arg [2] : 0000000000000000000000008d20baefc893495696230a091789b13af3ca4a33
Arg [3] : 0000000000000000000000000dcf8b982a286873ecc27987a3198bb521a8ef06
Arg [4] : 000000000000000000000000a3a106f1d081f5b9fc0b2a1b46613f55ea308cdc
Arg [5] : 0000000000000000000000005f9100aa68836dd4979b4b2ef94e8e1d8546380b
Swarm Source
bzzr://f680cf848876aed58d8d97fdaef7c5ea3a118b4842a4fd4c67cf1aea366af0a5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.