1.5k txs
1.5k calls
constructor
constructor(address _dlinkToken, address _oracle)
functions
allUsers
viewfunction allUsers(uint256) view returns (address)
DAY_IN_SECONDS
viewfunction DAY_IN_SECONDS() view returns (uint256)
directReferrals
viewfunction directReferrals(address, uint256) view returns (address)
dlinkToken
viewfunction dlinkToken() view returns (address)
getAllUsers
viewfunction getAllUsers() view returns (address[])
getDirectReferralsWithInvestmentPaginated
viewfunction getDirectReferralsWithInvestmentPaginated(address user, uint256 start, uint256 count) view returns (address[] refs, uint256[] selfInvestments)
getDownlineBusiness
viewfunction getDownlineBusiness(address user) view returns (address[] addrs, uint256[] amounts)
getReferralCount
viewfunction getReferralCount(address user) view returns (uint256)
getReferralIncomeHistory
viewfunction getReferralIncomeHistory(address user) view returns (tuple[])
getTotalDownlineBusiness
viewfunction getTotalDownlineBusiness(address user) view returns (uint256 totalDLINK, uint256 totalUSD)
getUserInvestments
viewfunction getUserInvestments(address userAddr) view returns (tuple[])
getWithdrawalHistory
viewfunction getWithdrawalHistory(address user) view returns (tuple[])
isRegistered
viewfunction isRegistered(address) view returns (bool)
NONSTAKED_ROI
viewfunction NONSTAKED_ROI() view returns (uint256)
owner
viewfunction owner() view returns (address)
PERCENT_DIVIDER
viewfunction PERCENT_DIVIDER() view returns (uint256)
priceOracle
viewfunction priceOracle() view returns (address)
referralIncomeHistory
viewfunction referralIncomeHistory(address, uint256) view returns (uint256 amount, uint256 timestamp, uint8 level)
referralPercents
viewfunction referralPercents(uint256) view returns (uint256)
requiredBusinessPerLeg
viewfunction requiredBusinessPerLeg(uint256) view returns (uint256)
rewardLevelClaimed
viewfunction rewardLevelClaimed(address) view returns (uint8)
rewardPercents
viewfunction rewardPercents(uint256) view returns (uint256)
STAKE_LOCK_DAYS
viewfunction STAKE_LOCK_DAYS() view returns (uint256)
STAKE_LOCK_SECONDS
viewfunction STAKE_LOCK_SECONDS() view returns (uint256)
stakedROI
viewfunction stakedROI() view returns (uint256)
totalFeesPaid
viewfunction totalFeesPaid(address) view returns (uint256)
userAchievedLevels
viewfunction userAchievedLevels(address, uint256) view returns (uint8)
users
viewfunction users(address) view returns (address referrer, uint256 directs)
userStakedBusiness
viewfunction userStakedBusiness(address) view returns (uint256)
viewUpcomingReward
viewfunction viewUpcomingReward(address user) view returns (uint8 nextLevel, uint256 requiredPerLeg, uint256[3] currentBusiness, uint256[3] businessNeeded)
withdrawalHistory
viewfunction withdrawalHistory(address, uint256) view returns (uint256 amount, uint256 timestamp, bool isROI, uint256 investmentIndex)
adminWithdraw
nonpayablefunction adminWithdraw(uint256 amount)
claimAll
nonpayablefunction claimAll()
claimRewardBonus
nonpayablefunction claimRewardBonus()
invest
nonpayablefunction invest(uint256 amount, bool isStaked)
register
nonpayablefunction register(address referrer)
renounceOwnership
nonpayablefunction renounceOwnership()
setStakedROI
nonpayablefunction setStakedROI(uint256 _roi)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawNonStaked
nonpayablefunction withdrawNonStaked(uint256 index)
withdrawStaked
nonpayablefunction withdrawStaked(uint256 index)
events
Claimed
event Claimed(address indexed user, uint256 amount)
DLINKTransferred
event DLINKTransferred(address indexed user, uint256 dlinkAmount, uint256 usdAmount)
FeeCollected
event FeeCollected(address indexed user, uint256 feeAmount)
Invested
event Invested(address indexed user, uint256 amount, bool staked)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Registered
event Registered(address indexed user, address indexed referrer)
RewardClaimed
event RewardClaimed(address indexed user, uint8 level, uint256 rewardAmount)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60806040526064600355604051806101e001604052806105dc61ffff1681526020016103e861ffff16815260200161032061ffff1681526020016102bc61ffff16815260200161025861ffff1681526020016101f461ffff16815260200161019061ffff16815260200161012c61ffff16815260200160c861ffff16815260200161012c61ffff16815260200161019061ffff16815260200161019061ffff1681526020016101f461ffff1681526020016101f461ffff16815260200161025861ffff16815250600e90600f6100d69291906106b7565b50604051806101e00160405280690a968163f0a57b4000006affffffffffffffffffffff168152602001691fc3842bd1f071c000006affffffffffffffffffffff168152602001693f870857a3e0e38000006affffffffffffffffffffff168152602001697f0e10af47c1c70000006affffffffffffffffffffff16815260200169fe1c215e8f838e0000006affffffffffffffffffffff1681526020016a02116545850052128000006affffffffffffffffffffff1681526020016a0422ca8b0a00a4250000006affffffffffffffffffffff1681526020016a084595161401484a0000006affffffffffffffffffffff1681526020016a108b2a2c280290940000006affffffffffffffffffffff1681526020016a18d0bf423c03d8de0000006affffffffffffffffffffff1681526020016a295be96e640669720000006affffffffffffffffffffff1681526020016a39e7139a8c08fa060000006affffffffffffffffffffff1681526020016a52b7d2dcc80cd2e40000006affffffffffffffffffffff1681526020016a7c13bc4b2c133c560000006affffffffffffffffffffff1681526020016aa56fa5b99019a5c80000006affffffffffffffffffffff16815250601d90600f6102ae9291906106fd565b50604051806101e0016040528060c861ffff16815260200160c861ffff16815260200161012c61ffff16815260200161019061ffff1681526020016101f461ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815260200161025861ffff16815250601e90600f61037b929190610759565b5034801561038857600080fd5b506040516166fd3803806166fd83398181016040528101906103aa919061086a565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361041d5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161041491906108b9565b60405180910390fd5b61042c816105f360201b60201c565b5081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506108d4565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82600f81019282156106ec579160200282015b828111156106eb578251829061ffff169055916020019190600101906106ca565b5b5090506106f991906107ac565b5090565b828054828255906000526020600020908101928215610748579160200282015b8281111561074757825182906affffffffffffffffffffff1690559160200191906001019061071d565b5b50905061075591906107ac565b5090565b82805482825590600052602060002090810192821561079b579160200282015b8281111561079a578251829061ffff16905591602001919060010190610779565b5b5090506107a891906107ac565b5090565b5b808211156107c55760008160009055506001016107ad565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107f9826107ce565b9050919050565b600061080b826107ee565b9050919050565b61081b81610800565b811461082657600080fd5b50565b60008151905061083881610812565b92915050565b610847816107ee565b811461085257600080fd5b50565b6000815190506108648161083e565b92915050565b60008060408385031215610881576108806107c9565b5b600061088f85828601610829565b92505060206108a085828601610855565b9150509250929050565b6108b3816107ee565b82525050565b60006020820190506108ce60008301846108aa565b92915050565b615e1a806108e36000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80637b03cfe111610146578063b252da0e116100c3578063d1058e5911610087578063d1058e591461078b578063dcb26b0414610795578063e2842d79146107c5578063f2fde38b146107e3578063f670e0ac146107ff578063f8a5764e1461083257610253565b8063b252da0e146106d3578063b6ca8260146106f1578063b7bd15261461070f578063c3c5a5471461072b578063c52c5c881461075b57610253565b80639598078b1161010a5780639598078b146105f3578063963920a3146106115780639b4cfdae14610641578063a2bdedf414610672578063a87430ba146106a257610253565b80637b03cfe1146105515780637c5b4a3714610581578063830aa5371461059d5780638da5cb5b146105b957806393e2b01b146105d757610253565b8063429a0a56116101d45780636c1fcfe8116101985780636c1fcfe8146104ad5780636c927dc6146104dd5780636d8d526c1461050d578063715018a6146105295780637416e4ae1461053357610253565b8063429a0a56146103df5780634420e4861461040f5780634a56c9a71461042b5780634c87d7bd1461045e5780635fdc62811461048f57610253565b806329fc7bd81161021b57806329fc7bd8146103255780633114740e14610343578063349249c8146103735780633d3a6825146103a357806340376900146103d557610253565b806305ad3935146102585780630f881a13146102885780631703c9c1146102b957806324acbd69146102d75780632630c12f14610307575b600080fd5b610272600480360381019061026d9190614856565b610862565b60405161027f91906148a5565b60405180910390f35b6102a2600480360381019061029d91906148c0565b6108b0565b6040516102b0929190614a8f565b60405180910390f35b6102c1610bd3565b6040516102ce9190614b25565b60405180910390f35b6102f160048036038101906102ec9190614b40565b610bf9565b6040516102fe9190614b7c565b60405180910390f35b61030f610c45565b60405161031c9190614bb8565b60405180910390f35b61032d610c6b565b60405161033a9190614b7c565b60405180910390f35b61035d60048036038101906103589190614b40565b610c71565b60405161036a9190614cf2565b60405180910390f35b61038d60048036038101906103889190614b40565b610d48565b60405161039a9190614e21565b60405180910390f35b6103bd60048036038101906103b89190614856565b610e17565b6040516103cc93929190614e52565b60405180910390f35b6103dd610e6b565b005b6103f960048036038101906103f49190614e89565b611730565b6040516104069190614b7c565b60405180910390f35b61042960048036038101906104249190614b40565b611754565b005b61044560048036038101906104409190614856565b611ba8565b6040516104559493929190614ec5565b60405180910390f35b61047860048036038101906104739190614b40565b611c02565b604051610486929190614a8f565b60405180910390f35b610497611f31565b6040516104a49190614b7c565b60405180910390f35b6104c760048036038101906104c29190614b40565b611f38565b6040516104d49190614f0a565b60405180910390f35b6104f760048036038101906104f29190614b40565b611f58565b6040516105049190614b7c565b60405180910390f35b61052760048036038101906105229190614e89565b611f70565b005b610531612299565b005b61053b6122ad565b6040516105489190614b7c565b60405180910390f35b61056b60048036038101906105669190614e89565b6122c0565b6040516105789190614b7c565b60405180910390f35b61059b60048036038101906105969190614e89565b6122e4565b005b6105b760048036038101906105b29190614e89565b6123ce565b005b6105c1612425565b6040516105ce91906148a5565b60405180910390f35b6105f160048036038101906105ec9190614f51565b61244e565b005b6105fb61277d565b6040516106089190614b7c565b60405180910390f35b61062b60048036038101906106269190614e89565b612783565b6040516106389190614b7c565b60405180910390f35b61065b60048036038101906106569190614b40565b61279e565b604051610669929190614f91565b60405180910390f35b61068c60048036038101906106879190614e89565b612a00565b60405161069991906148a5565b60405180910390f35b6106bc60048036038101906106b79190614b40565b612a3f565b6040516106ca929190614fba565b60405180910390f35b6106db612a83565b6040516106e89190614b7c565b60405180910390f35b6106f9612a88565b6040516107069190614b7c565b60405180910390f35b61072960048036038101906107249190614e89565b612a8d565b005b61074560048036038101906107409190614b40565b612d56565b6040516107529190614fe3565b60405180910390f35b61077560048036038101906107709190614b40565b612d76565b6040516107829190615102565b60405180910390f35b610793612e50565b005b6107af60048036038101906107aa9190614856565b6133bd565b6040516107bc9190614f0a565b60405180910390f35b6107cd613400565b6040516107da9190615124565b60405180910390f35b6107fd60048036038101906107f89190614b40565b61348e565b005b61081960048036038101906108149190614b40565b613514565b60405161082994939291906151ca565b60405180910390f35b61084c60048036038101906108479190614b40565b613a32565b6040516108599190614b7c565b60405180910390f35b6008602052816000526040600020818154811061087e57600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060808267ffffffffffffffff8111156108cd576108cc615210565b5b6040519080825280602002602001820160405280156108fb5781602001602082028036833780820191505090505b5091508267ffffffffffffffff81111561091857610917615210565b5b6040519080825280602002602001820160405280156109465781602001602082028036833780820191505090505b50905060008060005b600d805490508110801561096257508582105b15610bb9576000600d828154811061097d5761097c61523f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508873ffffffffffffffffffffffffffffffffffffffff16600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ba557878410610b965780868481518110610a5a57610a5961523f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000805b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020180549050811015610b6557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018181548110610b3957610b3861523f565b5b90600052602060002090600402016000015482610b56919061529d565b91508080600101915050610a98565b5080868581518110610b7a57610b7961523f565b5b6020026020010181815250508380610b91906152d1565b945050505b8380610ba1906152d1565b9450505b508080610bb1906152d1565b91505061094f565b5084811015610bc9578084528083525b5050935093915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b6060600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610d3d578382906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff1615151515815260200160038201548152505081526020019060010190610cd2565b505050509050919050565b6060600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610e0c578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff1660ff1660ff168152505081526020019060010190610da9565b505050509050919050565b60046020528160005260406000208181548110610e3357600080fd5b9060005260206000209060030201600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b60003390506003600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541015610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90615376565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610fb757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f6d575b50505050509050600381511015611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa906153e2565b60405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb91d37e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110969190615417565b9050600081116110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d290615490565b60405180910390fd5b6110e3614778565b60005b8351811015611202576000670de0b6b3a7640000846111208785815181106111115761111061523f565b5b60200260200101516001613a4a565b61112a91906154b0565b6111349190615521565b905060005b60038110156111f3578381600381106111555761115461523f565b5b60200201518211156111e6576000600290505b818111156111c3578460018261117e9190615552565b6003811061118f5761118e61523f565b5b60200201518582600381106111a7576111a661523f565b5b60200201818152505080806111bb90615586565b915050611168565b50818482600381106111d8576111d761523f565b5b6020020181815250506111f3565b8080600101915050611139565b505080806001019150506110e6565b506000805b601d805490508160ff16101561130f57601d8160ff168154811061122e5761122d61523f565b5b90600052602060002001548360006003811061124d5761124c61523f565b5b6020020151101580156112995750601d8160ff16815481106112725761127161523f565b5b9060005260206000200154836001600381106112915761129061523f565b5b602002015110155b80156112de5750601d8160ff16815481106112b7576112b661523f565b5b9060005260206000200154836002600381106112d6576112d561523f565b5b602002015110155b156112f7576001816112f091906155af565b91506112fc565b61130f565b8080611307906155e4565b915050611207565b50600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff16116113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b90615659565b60405180910390fd5b600080600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690505b8260ff168160ff16101561157c5760006003601d8360ff16815481106114205761141f61523f565b5b906000526020600020015461143591906154b0565b90506000612710601e8460ff16815481106114535761145261523f565b5b90600052602060002001548361146991906154b0565b6114739190615521565b90508084611481919061529d565b9350600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001846114cf91906155af565b90806001815401808255809150506001900390600052602060002090602091828204019190069091909190916101000a81548160ff021916908360ff1602179055508873ffffffffffffffffffffffffffffffffffffffff167f889047e3a24dbcfa359bc1ed9fefeae51ca3d0e7ec4bc9db63eec5e3095493da60018561155691906155af565b83604051611565929190615679565b60405180910390a2505080806001019150506113f7565b5081600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600084670de0b6b3a7640000836115ec91906154b0565b6115f69190615521565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88836040518363ffffffff1660e01b8152600401611655929190614fba565b6020604051808303816000875af1158015611674573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169891906156b7565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90615730565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff167fed36a8df33089453b13fd926d9d17e244279ece30227788dec530c44d7e344b4828460405161171f929190614f91565b60405180910390a250505050505050565b601d818154811061174057600080fd5b906000526020600020016000915090505481565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d89061579c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561184a5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090615808565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190c90615874565b60405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546119e9919061529d565b925050819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0a31ee9d46a828884b81003c8498156ea6aa15b9b54bdd0ef0b533d9eba57e5560405160405180910390a350565b60056020528160005260406000208181548110611bc457600080fd5b9060005260206000209060040201600091509150508060000154908060010154908060020160009054906101000a900460ff16908060030154905084565b6060806000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508067ffffffffffffffff811115611c6657611c65615210565b5b604051908082528060200260200182016040528015611c945781602001602082028036833780820191505090505b5092508067ffffffffffffffff811115611cb157611cb0615210565b5b604051908082528060200260200182016040528015611cdf5781602001602082028036833780820191505090505b5091506000805b600d80549050811015611f29576000600d8281548110611d0957611d0861523f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff16600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611f1b5780868481518110611ddf57611dde61523f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000805b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020180549050811015611eea57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018181548110611ebe57611ebd61523f565b5b90600052602060002090600402016000015482611edb919061529d565b91508080600101915050611e1d565b5080868581518110611eff57611efe61523f565b5b6020026020010181815250508380611f16906152d1565b945050505b508080600101915050611ce6565b505050915091565b6201518081565b600a6020528060005260406000206000915054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018281548110611fc657611fc561523f565b5b906000526020600020906004020190508060030160009054906101000a900460ff16612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e90615906565b60405180910390fd5b6201518060b461203791906154b0565b8160010154612046919061529d565b421015612088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207f90615972565b60405180910390fd5b60008160000154905060008260000181905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016120f8929190614fba565b6020604051808303816000875af1158015612117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213b91906156b7565b61217a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612171906159de565b60405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405280838152602001428152602001600015158152602001858152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055506060820151816003015550503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260405161228c9190614b7c565b60405180910390a2505050565b6122a1613bcd565b6122ab6000613c54565b565b6201518060b46122bd91906154b0565b81565b601e81815481106122d057600080fd5b906000526020600020016000915090505481565b6122ec613bcd565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612349929190614fba565b6020604051808303816000875af1158015612368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238c91906156b7565b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906159de565b60405180910390fd5b50565b6123d6613bcd565b61271081111561241b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241290615a4a565b60405180910390fd5b8060038190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d190615ab6565b60405180910390fd5b6000821161251d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251490615b22565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161257c93929190615b42565b6020604051808303816000875af115801561259b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bf91906156b7565b6125fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f590615bc5565b60405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016040518060800160405280848152602001428152602001428152602001831515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550505080156127295781600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612721919061529d565b925050819055505b3373ffffffffffffffffffffffffffffffffffffffff167fa97f63a2301907bc3f25410cba7a893b7ef6ef46ba9323f168d4f956f8bba4f08383604051612771929190615be5565b60405180910390a25050565b60035481565b600e81600f811061279357600080fd5b016000915090505481565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb91d37e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128349190615417565b905060005b600d805490508110156129f957600080612891600d84815481106128605761285f61523f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688613d18565b915091508180156128a65750600f8160ff1611155b156129ea57600060066000600d86815481106128c5576128c461523f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201905060005b81805490508110156129e7578181815481106129515761295061523f565b5b906000526020600020906004020160030160009054906101000a900460ff16156129da57600082828154811061298a5761298961523f565b5b906000526020600020906004020160000154905080896129aa919061529d565b9850670de0b6b3a764000087826129c191906154b0565b6129cb9190615521565b886129d6919061529d565b9750505b8080600101915050612932565b50505b50508080600101915050612839565b5050915091565b600d8181548110612a1057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b601481565b60b481565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018281548110612ae357612ae261523f565b5b906000526020600020906004020190508060030160009054906101000a900460ff1615612b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3c90615c80565b60405180910390fd5b60008160000154905060008260000181905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612bb5929190614fba565b6020604051808303816000875af1158015612bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bf891906156b7565b612c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2e906159de565b60405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405280838152602001428152602001600015158152602001858152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055506060820151816003015550503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d582604051612d499190614b7c565b60405180910390a2505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6060600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201805480602002602001604051908101604052809291908181526020016000905b82821015612e4557838290600052602060002090600402016040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff16151515158152505081526020019060010190612dda565b505050509050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb91d37e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f279190615417565b905060008111612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6390615cec565b60405180910390fd5b60005b83600201805490508110156130a7576000846002018281548110612f9657612f9561523f565b5b906000526020600020906004020190506000670de0b6b3a7640000848360000154612fc191906154b0565b612fcb9190615521565b905068056bc75e2d63100000811015612fe557505061309a565b6000826002015442612ff79190615552565b9050600181101561300a5750505061309a565b60008360030160009054906101000a900460ff1661302957601461302d565b6003545b905060006201518061271061304291906154b0565b8383876000015461305391906154b0565b61305d91906154b0565b6130679190615521565b9050600081111561309457808861307e919061529d565b975061308a3382613e44565b4285600201819055505b50505050505b8080600101915050612f6f565b50600082116130eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e290615d58565b60405180910390fd5b600060646005846130fc91906154b0565b6131069190615521565b9050600081846131169190615552565b905081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613167919061529d565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f06c5efeff5c320943d265dc4e5f1af95ad523555ce0c1957e367dda5514572df836040516131b49190614b7c565b60405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401613219929190614fba565b6020604051808303816000875af1158015613238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325c91906156b7565b61329b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329290615bc5565b60405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806080016040528083815260200142815260200160011515815260200160008152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055506060820151816003015550503373ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a826040516133ae9190614b7c565b60405180910390a25050505050565b600b60205281600052604060002081815481106133d957600080fd5b9060005260206000209060209182820401919006915091509054906101000a900460ff1681565b6060600d80548060200260200160405190810160405280929190818152602001828054801561348457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161343a575b5050505050905090565b613496613bcd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036135085760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016134ff91906148a5565b60405180910390fd5b61351181613c54565b50565b60008061351f614778565b613527614778565b6003600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410156135be576000806040518060600160405280600081526020016000815260200160008152506040518060600160405280600081526020016000815260200160008152509350935093509350613a2b565b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561367f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613635575b505050505090506003815110156136dd57600080604051806060016040528060008152602001600081526020016000815250604051806060016040528060008152602001600081526020016000815250945094509450945050613a2b565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb91d37e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561374c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137709190615417565b905061377a614778565b60005b8351811015613899576000670de0b6b3a7640000846137b78785815181106137a8576137a761523f565b5b60200260200101516001613a4a565b6137c191906154b0565b6137cb9190615521565b905060005b600381101561388a578381600381106137ec576137eb61523f565b5b602002015182111561387d576000600290505b8181111561385a57846001826138159190615552565b600381106138265761382561523f565b5b602002015185826003811061383e5761383d61523f565b5b602002018181525050808061385290615586565b9150506137ff565b508184826003811061386f5761386e61523f565b5b60200201818152505061388a565b80806001019150506137d0565b5050808060010191505061377d565b506000600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050601d805490508160ff161061392d5760008083604051806060016040528060008152602001600081526020016000815250975097509750975050505050613a2b565b60018161393a91906155af565b9750601d8160ff16815481106139535761395261523f565b5b9060005260206000200154965060005b60038160ff161015613a2557828160ff16600381106139855761398461523f565b5b6020020151878260ff16600381106139a05761399f61523f565b5b60200201818152505087838260ff16600381106139c0576139bf61523f565b5b602002015110156139f657828160ff16600381106139e1576139e061523f565b5b6020020151886139f19190615552565b6139f9565b60005b868260ff1660038110613a0f57613a0e61523f565b5b6020020181815250508080600101915050613963565b50505050505b9193509193565b600c6020528060005260406000206000915090505481565b6000603260ff168260ff161115613a645760009050613bc7565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015613b6757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613b1d575b5050505050905060005b8151811015613bc457613baa828281518110613b9057613b8f61523f565b5b6020026020010151600186613ba591906155af565b613a4a565b83613bb5919061529d565b92508080600101915050613b71565b50505b92915050565b613bd5614770565b73ffffffffffffffffffffffffffffffffffffffff16613bf3612425565b73ffffffffffffffffffffffffffffffffffffffff1614613c5257613c16614770565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401613c4991906148a5565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000806000849050600091505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613d655750600f8260ff16105b15613e34576000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613e1d5760018084613e1291906155af565b935093505050613e3d565b8091508280613e2b906155e4565b93505050613d25565b60008092509250505b9250929050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613eb361479a565b68056bc75e2d63100000816000600f8110613ed157613ed061523f565b5b602002018181525050681043561a8829300000816001600f8110613ef857613ef761523f565b5b602002018181525050681b1ae4d6e2ef500000816002600f8110613f1f57613f1e61523f565b5b602002018181525050682b5e3af16b18800000816003600f8110613f4657613f4561523f565b5b60200201818152505068410d586a20a4c00000816004600f8110613f6d57613f6c61523f565b5b602002018181525050686c6b935b8bbd400000816005600f8110613f9457613f9361523f565b5b60200201818152505068a2a15d09519be00000816006600f8110613fbb57613fba61523f565b5b60200201818152505069010f0cf064dd59200000816007600f8110613fe357613fe261523f565b5b6020020181815250506901b1ae4d6e2ef5000000816008600f811061400b5761400a61523f565b5b60200201818152505069028a857425466f800000816009600f81106140335761403261523f565b5b60200201818152505069032d26d12e980b60000081600a600f811061405b5761405a61523f565b5b6020020181815250506903cfc82e37e9a740000081600b600f81106140835761408261523f565b5b6020020181815250506904a89f54ef0121c0000081600c600f81106140ab576140aa61523f565b5b60200201818152505069054b40b1f852bda0000081600d600f81106140d3576140d261523f565b5b60200201818152505069065a4da25d3016c0000081600e600f81106140fb576140fa61523f565b5b6020020181815250506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb91d37e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141979190615417565b905060005b600f81101561476857600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160315614768576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018261422a919061529d565b8160010154106146f557600080600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156142f657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116142ac575b5050505050905060005b815181101561444057600080600660008585815181106143235761432261523f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201905060005b81805490508110156143f05781818154811061438c5761438b61523f565b5b906000526020600020906004020160030160009054906101000a900460ff16156143e3578181815481106143c3576143c261523f565b5b906000526020600020906004020160000154836143e0919061529d565b92505b808060010191505061436d565b506000670de0b6b3a7640000898461440891906154b0565b6144129190615521565b90506802b5e3af16b188000081106144305760019550505050614440565b5050508080600101915050614300565b5081156146f2576000805b84600201805490508110156144f5578460020181815481106144705761446f61523f565b5b906000526020600020906004020160030160009054906101000a900460ff16156144e857670de0b6b3a7640000878660020183815481106144b4576144b361523f565b5b9060005260206000209060040201600001546144d091906154b0565b6144da9190615521565b826144e5919061529d565b91505b808060010191505061444b565b508685600f81106145095761450861523f565b5b602002015181106146f0576000612710600e87600f811061452d5761452c61523f565b5b01548b61453a91906154b0565b6145449190615521565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a836040518363ffffffff1660e01b81526004016145a3929190614fba565b6020604051808303816000875af11580156145c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e691906156b7565b614625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161461c90615dc4565b60405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405280838152602001428152602001600189614688919061529d565b60ff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908360ff1602179055505050505b505b50505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945050808060010191505061419c565b505050505050565b600033905090565b6040518060600160405280600390602082028036833780820191505090505090565b604051806101e00160405280600f90602082028036833780820191505090505090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006147ed826147c2565b9050919050565b6147fd816147e2565b811461480857600080fd5b50565b60008135905061481a816147f4565b92915050565b6000819050919050565b61483381614820565b811461483e57600080fd5b50565b6000813590506148508161482a565b92915050565b6000806040838503121561486d5761486c6147bd565b5b600061487b8582860161480b565b925050602061488c85828601614841565b9150509250929050565b61489f816147e2565b82525050565b60006020820190506148ba6000830184614896565b92915050565b6000806000606084860312156148d9576148d86147bd565b5b60006148e78682870161480b565b93505060206148f886828701614841565b925050604061490986828701614841565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614948816147e2565b82525050565b600061495a838361493f565b60208301905092915050565b6000602082019050919050565b600061497e82614913565b614988818561491e565b93506149938361492f565b8060005b838110156149c45781516149ab888261494e565b97506149b683614966565b925050600181019050614997565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a0681614820565b82525050565b6000614a1883836149fd565b60208301905092915050565b6000602082019050919050565b6000614a3c826149d1565b614a4681856149dc565b9350614a51836149ed565b8060005b83811015614a82578151614a698882614a0c565b9750614a7483614a24565b925050600181019050614a55565b5085935050505092915050565b60006040820190508181036000830152614aa98185614973565b90508181036020830152614abd8184614a31565b90509392505050565b6000819050919050565b6000614aeb614ae6614ae1846147c2565b614ac6565b6147c2565b9050919050565b6000614afd82614ad0565b9050919050565b6000614b0f82614af2565b9050919050565b614b1f81614b04565b82525050565b6000602082019050614b3a6000830184614b16565b92915050565b600060208284031215614b5657614b556147bd565b5b6000614b648482850161480b565b91505092915050565b614b7681614820565b82525050565b6000602082019050614b916000830184614b6d565b92915050565b6000614ba282614af2565b9050919050565b614bb281614b97565b82525050565b6000602082019050614bcd6000830184614ba9565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b614c1481614bff565b82525050565b608082016000820151614c3060008501826149fd565b506020820151614c4360208501826149fd565b506040820151614c566040850182614c0b565b506060820151614c6960608501826149fd565b50505050565b6000614c7b8383614c1a565b60808301905092915050565b6000602082019050919050565b6000614c9f82614bd3565b614ca98185614bde565b9350614cb483614bef565b8060005b83811015614ce5578151614ccc8882614c6f565b9750614cd783614c87565b925050600181019050614cb8565b5085935050505092915050565b60006020820190508181036000830152614d0c8184614c94565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600060ff82169050919050565b614d5681614d40565b82525050565b606082016000820151614d7260008501826149fd565b506020820151614d8560208501826149fd565b506040820151614d986040850182614d4d565b50505050565b6000614daa8383614d5c565b60608301905092915050565b6000602082019050919050565b6000614dce82614d14565b614dd88185614d1f565b9350614de383614d30565b8060005b83811015614e14578151614dfb8882614d9e565b9750614e0683614db6565b925050600181019050614de7565b5085935050505092915050565b60006020820190508181036000830152614e3b8184614dc3565b905092915050565b614e4c81614d40565b82525050565b6000606082019050614e676000830186614b6d565b614e746020830185614b6d565b614e816040830184614e43565b949350505050565b600060208284031215614e9f57614e9e6147bd565b5b6000614ead84828501614841565b91505092915050565b614ebf81614bff565b82525050565b6000608082019050614eda6000830187614b6d565b614ee76020830186614b6d565b614ef46040830185614eb6565b614f016060830184614b6d565b95945050505050565b6000602082019050614f1f6000830184614e43565b92915050565b614f2e81614bff565b8114614f3957600080fd5b50565b600081359050614f4b81614f25565b92915050565b60008060408385031215614f6857614f676147bd565b5b6000614f7685828601614841565b9250506020614f8785828601614f3c565b9150509250929050565b6000604082019050614fa66000830185614b6d565b614fb36020830184614b6d565b9392505050565b6000604082019050614fcf6000830185614896565b614fdc6020830184614b6d565b9392505050565b6000602082019050614ff86000830184614eb6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60808201600082015161504060008501826149fd565b50602082015161505360208501826149fd565b50604082015161506660408501826149fd565b5060608201516150796060850182614c0b565b50505050565b600061508b838361502a565b60808301905092915050565b6000602082019050919050565b60006150af82614ffe565b6150b98185615009565b93506150c48361501a565b8060005b838110156150f55781516150dc888261507f565b97506150e783615097565b9250506001810190506150c8565b5085935050505092915050565b6000602082019050818103600083015261511c81846150a4565b905092915050565b6000602082019050818103600083015261513e8184614973565b905092915050565b600060039050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b61517c81615146565b6151868184615151565b92506151918261515c565b8060005b838110156151c25781516151a98782614a0c565b96506151b483615166565b925050600181019050615195565b505050505050565b6000610100820190506151e06000830187614e43565b6151ed6020830186614b6d565b6151fa6040830185615173565b61520760a0830184615173565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006152a882614820565b91506152b383614820565b92508282019050808211156152cb576152ca61526e565b5b92915050565b60006152dc82614820565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361530e5761530d61526e565b5b600182019050919050565b600082825260208201905092915050565b7f4e656564206174206c6561737420332064697265637420726566657272616c73600082015250565b6000615360602083615319565b915061536b8261532a565b602082019050919050565b6000602082019050818103600083015261538f81615353565b9050919050565b7f4c657373207468616e20332061637469766520726566657272616c7300000000600082015250565b60006153cc601c83615319565b91506153d782615396565b602082019050919050565b600060208201905081810360008301526153fb816153bf565b9050919050565b6000815190506154118161482a565b92915050565b60006020828403121561542d5761542c6147bd565b5b600061543b84828501615402565b91505092915050565b7f496e76616c696420444c494e4b20707269636500000000000000000000000000600082015250565b600061547a601383615319565b915061548582615444565b602082019050919050565b600060208201905081810360008301526154a98161546d565b9050919050565b60006154bb82614820565b91506154c683614820565b92508282026154d481614820565b915082820484148315176154eb576154ea61526e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061552c82614820565b915061553783614820565b925082615547576155466154f2565b5b828204905092915050565b600061555d82614820565b915061556883614820565b92508282039050818111156155805761557f61526e565b5b92915050565b600061559182614820565b9150600082036155a4576155a361526e565b5b600182039050919050565b60006155ba82614d40565b91506155c583614d40565b9250828201905060ff8111156155de576155dd61526e565b5b92915050565b60006155ef82614d40565b915060ff82036156025761560161526e565b5b600182019050919050565b7f4e6f206e657720726577617264206c6576656c20616368696576656400000000600082015250565b6000615643601c83615319565b915061564e8261560d565b602082019050919050565b6000602082019050818103600083015261567281615636565b9050919050565b600060408201905061568e6000830185614e43565b61569b6020830184614b6d565b9392505050565b6000815190506156b181614f25565b92915050565b6000602082840312156156cd576156cc6147bd565b5b60006156db848285016156a2565b91505092915050565b7f526577617264207472616e73666572206661696c656400000000000000000000600082015250565b600061571a601683615319565b9150615725826156e4565b602082019050919050565b600060208201905081810360008301526157498161570d565b9050919050565b7f416c726561647920726567697374657265640000000000000000000000000000600082015250565b6000615786601283615319565b915061579182615750565b602082019050919050565b600060208201905081810360008301526157b581615779565b9050919050565b7f496e76616c696420726566657272657200000000000000000000000000000000600082015250565b60006157f2601083615319565b91506157fd826157bc565b602082019050919050565b60006020820190508181036000830152615821816157e5565b9050919050565b7f5265666572726572206e6f742072656769737465726564000000000000000000600082015250565b600061585e601783615319565b915061586982615828565b602082019050919050565b6000602082019050818103600083015261588d81615851565b9050919050565b7f43616e6e6f74207769746864726177206e6f6e2d7374616b656420696e76657360008201527f746d656e74000000000000000000000000000000000000000000000000000000602082015250565b60006158f0602583615319565b91506158fb82615894565b604082019050919050565b6000602082019050818103600083015261591f816158e3565b9050919050565b7f5374616b65206973207374696c6c206c6f636b65640000000000000000000000600082015250565b600061595c601583615319565b915061596782615926565b602082019050919050565b6000602082019050818103600083015261598b8161594f565b9050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b60006159c8600f83615319565b91506159d382615992565b602082019050919050565b600060208201905081810360008301526159f7816159bb565b9050919050565b7f524f4920746f6f20686967680000000000000000000000000000000000000000600082015250565b6000615a34600c83615319565b9150615a3f826159fe565b602082019050919050565b60006020820190508181036000830152615a6381615a27565b9050919050565b7f506c656173652072656769737465722066697273740000000000000000000000600082015250565b6000615aa0601583615319565b9150615aab82615a6a565b602082019050919050565b60006020820190508181036000830152615acf81615a93565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000615b0c601d83615319565b9150615b1782615ad6565b602082019050919050565b60006020820190508181036000830152615b3b81615aff565b9050919050565b6000606082019050615b576000830186614896565b615b646020830185614896565b615b716040830184614b6d565b949350505050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000615baf600f83615319565b9150615bba82615b79565b602082019050919050565b60006020820190508181036000830152615bde81615ba2565b9050919050565b6000604082019050615bfa6000830185614b6d565b615c076020830184614eb6565b9392505050565b7f43616e6e6f74207769746864726177207374616b656420696e766573746d656e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000615c6a602183615319565b9150615c7582615c0e565b604082019050919050565b60006020820190508181036000830152615c9981615c5d565b9050919050565b7f496e76616c6964206f7261636c65207072696365000000000000000000000000600082015250565b6000615cd6601483615319565b9150615ce182615ca0565b602082019050919050565b60006020820190508181036000830152615d0581615cc9565b9050919050565b7f4e6f2076616c696420524f4920746f20636c61696d0000000000000000000000600082015250565b6000615d42601583615319565b9150615d4d82615d0c565b602082019050919050565b60006020820190508181036000830152615d7181615d35565b9050919050565b7f526566657272616c20626f6e7573207472616e73666572206661696c65640000600082015250565b6000615dae601e83615319565b9150615db982615d78565b602082019050919050565b60006020820190508181036000830152615ddd81615da1565b905091905056fea26469706673582212205e934e27dd6f80431b7554f3de38042cf0937c6403dfef58b3abf8a0c204797264736f6c634300081c0033000000000000000000000000edb389ae211b253d4a763982d7cbfd0e33c44e420000000000000000000000004e7a99db9567b02928fa0f21e5e0208b4b45339e