37 txs
42 calls
constructor
constructor(address _veCakeAddress, address _pancakeProfileAddress, address _prevTradingFeeRebateAddress)
functions
canClaim
viewfunction canClaim(string _campaignId, address _sender, uint256 _selfTradingFee) view returns (uint256 amount)
canClaimMulti
viewfunction canClaimMulti(string[] _campaignIds, address[] _selfAddresses, uint256[] _selfTradingFees) view returns (uint256[] amounts)
getEncodedHash
purefunction getEncodedHash(address _sender, uint256 _volume) pure returns (bytes32)
getIncentiveCampaignIds
viewfunction getIncentiveCampaignIds() view returns (string[])
getTotalClaimedReward
viewfunction getTotalClaimedReward(address _token, address _sender) view returns (uint256)
getUserLockedAmount
viewfunction getUserLockedAmount(string _campaignId, address _sender) view returns (uint256)
getUserQualification
viewfunction getUserQualification() view returns (uint256, uint256, bool, uint256)
incentiveEndBlockNumber
viewfunction incentiveEndBlockNumber(string) view returns (uint256)
incentiveRewards
viewfunction incentiveRewards(string) view returns (address rewardToken, uint256 rewardPrice, uint256 rewardToLockRatio, uint256 rewardFeeRatio)
incentives
viewfunction incentives(string) view returns (uint256 totalRewardUnclaimed, uint256 totalReward, uint256 totalTradingFee, bytes32 proofRoot, uint256 campaignStart, uint256 campaignClaimTime, uint256 campaignClaimEndTime, bool isActivated, bool isDynamicReward)
isEligibleLockAmount
viewfunction isEligibleLockAmount(string _campaignId, address _sender) view returns (bool)
maxCampaignClaimPeriod
viewfunction maxCampaignClaimPeriod() view returns (uint256)
maxCampaignPeriod
viewfunction maxCampaignPeriod() view returns (uint256)
minAmountUSD
viewfunction minAmountUSD() view returns (uint256)
minCampaignClaimPeriod
viewfunction minCampaignClaimPeriod() view returns (uint256)
owner
viewfunction owner() view returns (address)
pancakeProfileAddress
viewfunction pancakeProfileAddress() view returns (address)
paused
viewfunction paused() view returns (bool)
prevTradingFeeRebateAddress
viewfunction prevTradingFeeRebateAddress() view returns (address)
ratio
viewfunction ratio() view returns (uint256)
RATION_PRECISION
viewfunction RATION_PRECISION() view returns (uint256)
tradingFeeClaimedRecord
viewfunction tradingFeeClaimedRecord() view returns (address)
userClaimedIncentives
viewfunction userClaimedIncentives(string, address) view returns (bool)
userClaimedRecords
viewfunction userClaimedRecords(address, address) view returns (uint256)
veCakeAddress
viewfunction veCakeAddress() view returns (address)
activateIncentive
nonpayablefunction activateIncentive(string _campaignId)
claimReward
nonpayablefunction claimReward(string _campaignId, bytes32[] _merkleProof, uint256 _selfTradingFee)
claimRewardMulti
nonpayablefunction claimRewardMulti(string[] _campaignIds, bytes32[][] _merkleProofs, uint256[] _selfTradingFees)
cleanUpIncentiveCampaignIds
nonpayablefunction cleanUpIncentiveCampaignIds()
createIncentive
nonpayablefunction createIncentive(string _campaignId, address _rewardToken, uint256 _rewardPrice, uint256 _rewardToLockRatio, uint256 _rewardFeeRatio, uint256 _campaignStart, uint256 _campaignClaimTime, uint256 _campaignClaimEndTime, bool _emergency)
depositIncentiveReward
nonpayablefunction depositIncentiveReward(string _campaignId, uint256 _amount, bool _isDynamicReward)
pause
nonpayablefunction pause()
prepareIncentive
nonpayablefunction prepareIncentive(string _campaignId, uint256 _totalTradingFee, bytes32 _proofRoot)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateCampaignPeriodParams
nonpayablefunction updateCampaignPeriodParams(uint256 _maxPeriod, uint256 _minClaimPeriod, uint256 _maxClaimPeriod)
updateEndBlockNumber
nonpayablefunction updateEndBlockNumber(string _campaignId, uint256 _newBlockNumber)
updateRatio
nonpayablefunction updateRatio(uint256 _newRatio)
updateRewardTokenParams
nonpayablefunction updateRewardTokenParams(string _campaignId, address _rewardToken, uint256 _rewardPrice, uint256 _rewardToLockRatio, uint256 _rewardFeeRatio)
updateTradingFeeClaimedRecordContract
nonpayablefunction updateTradingFeeClaimedRecordContract(address _tradingFeeClaimedRecord)
updateUserQualification
nonpayablefunction updateUserQualification(uint256 _thresholdLockTime, uint256 _thresholdLockAmount, bool _needProfileIsActivated, uint256 _minAmountUSD)
withdrawAll
nonpayablefunction withdrawAll(string _campaignId)
events
CampaignPeriodParamsUpdated
event CampaignPeriodParamsUpdated(uint256 maxPeriod, uint256 minClaimPeriod, uint256 maxClaimPeriod)
IncentiveActivated
event IncentiveActivated(string campaignId)
IncentiveCreated
event IncentiveCreated(string campaignId, address rewardToken, uint256 campaignStart, uint256 campaignClaimTime, uint256 campaignClaimEndTime)
IncentivePrepared
event IncentivePrepared(string campaignId, uint256 totalTradingFee)
IncentiveRewardDeposited
event IncentiveRewardDeposited(string campaignId, uint256 amount, bool isDynamicReward)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Pause
event Pause()
Paused
event Paused(address account)
RewardClaimed
event RewardClaimed(string campaignId, address indexed sender, uint256 amount)
RewardTokenParamsUpdated
event RewardTokenParamsUpdated(string campaignId, address indexed rewardToken, uint256 price, uint256 toLockRatio, uint256 feeRatio)
TradingFeeClaimedRecordContractUpdated
event TradingFeeClaimedRecordContractUpdated(address indexed topTradersExternal)
Unpause
event Unpause()
Unpaused
event Unpaused(address account)
UpdateEndBlockNumber
event UpdateEndBlockNumber(uint256 blockNumber)
UpdateRatio
event UpdateRatio(uint256 ratio)
UserQualificationUpdated
event UserQualificationUpdated(uint256 thresholdLockTime, uint256 thresholdLockAmount, bool needProfileIsActivated, uint256 minAmountUSD)
WithdrawAll
event WithdrawAll(string campaignId, uint256 amount)
errors
No errors.
creation bytecode
0x60e06040523480156200001157600080fd5b5060405162005582380380620055828339810160408190526200003491620000ef565b6200003f3362000082565b6000805460ff60a01b191690556001600160a01b0392831660805290821660a0521660c0526103e860015562278d00600281905561025860035560045562000139565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000ea57600080fd5b919050565b6000806000606084860312156200010557600080fd5b6200011084620000d2565b92506200012060208501620000d2565b91506200013060408501620000d2565b90509250925092565b60805160a05160c0516153da620001a86000396000818161052301528181610cda0152610d550152600081816107770152613556015260008181610416015281816137f9015281816138b3015281816139aa01528181613a4b01528181613b8d0152613c3a01526153da6000f3fe608060405234801561001057600080fd5b50600436106102e95760003560e01c80638b1e802811610191578063dc647e29116100e3578063e9c8045411610097578063f2fde38b11610071578063f2fde38b14610799578063f74f460c146107ac578063ff5bf06f146107ea57600080fd5b8063e9c8045414610756578063ef86cde11461075f578063f25930aa1461077257600080fd5b8063df3403d5116100c8578063df3403d51461071a578063e042d37d1461073a578063e43ef5e01461074357600080fd5b8063dc647e29146106f4578063defed5bd1461070757600080fd5b8063a52705d911610145578063cbfe405f1161011f578063cbfe405f14610628578063cc5be614146106b6578063dbc3b282146106e157600080fd5b8063a52705d9146105cc578063a61bea8d14610602578063bb67f2ca1461061557600080fd5b8063902ac9d011610176578063902ac9d01461058557806398816ff01461058e5780639a745624146105a157600080fd5b80638b1e80281461055f5780638da5cb5b1461056757600080fd5b80635740bfd31161024a57806371ca337d116101fe5780637a7cb489116101d85780637a7cb489146105455780637c3d3a501461054e5780638456cb591461055757600080fd5b806371ca337d146105025780637217a8811461050b578063792be0ab1461051e57600080fd5b80635c975abb1161022f5780635c975abb146104c4578063715018a6146104e75780637193451b146104ef57600080fd5b80635740bfd31461049e5780635899956a146104b157600080fd5b80633b616894116102a157806345d824fd1161028657806345d824fd1461046557806349bf7388146104785780634da1d0ad1461048b57600080fd5b80633b616894146104115780633f4ba83a1461045d57600080fd5b80631abbe661116102d25780631abbe661146103b85780632fe15a33146103cd57806338c85a8d146103ee57600080fd5b80630c744799146102ee578063189b0ba914610303575b600080fd5b6103016102fc366004614526565b61080a565b005b61036b610311366004614642565b80516020818301810180516009825292820191909301209152805460018201546002830154600384015460048501546005860154600687015460079097015495969495939492939192909160ff8082169161010090041689565b60408051998a5260208a0198909852968801959095526060870193909352608086019190915260a085015260c0840152151560e08301521515610100820152610120015b60405180910390f35b6103c0610aa9565b6040516103af91906146ed565b6103e06103db36600461478f565b610b82565b6040519081526020016103af565b6104016103fc3660046147c8565b610bbc565b60405190151581526020016103af565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103af565b610301610bd3565b6103e061047336600461481f565b610c16565b61030161048636600461487c565b6110b1565b6103016104993660046148db565b611276565b6103016104ac36600461491a565b61130b565b6103016104bf3660046149bf565b611a54565b60005474010000000000000000000000000000000000000000900460ff16610401565b610301611da8565b6103016104fd366004614526565b611dbc565b6103e060015481565b6103e0610519366004614a1e565b611f49565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b6103e060025481565b6103e060045481565b610301611fe5565b610301612028565b60005473ffffffffffffffffffffffffffffffffffffffff16610438565b6103e06103e881565b61030161059c366004614a4a565b61203c565b6103e06105af36600461478f565b600c60209081526000928352604080842090915290825290205481565b60055460065460075460085460408051948552602085019390935260ff90911615159183019190915260608201526080016103af565b610301610610366004614ab4565b61249a565b6103e06106233660046147c8565b6125a7565b61067f610636366004614642565b8051602081830181018051600a82529282019190930120915280546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff90921692909184565b6040805173ffffffffffffffffffffffffffffffffffffffff909516855260208501939093529183015260608201526080016103af565b6103e06106c4366004614642565b8051602081830181018051600f8252928201919093012091525481565b6103016106ef366004614af9565b612658565b610301610702366004614b16565b612772565b610301610715366004614b74565b61288d565b600e546104389073ffffffffffffffffffffffffffffffffffffffff1681565b6103e060035481565b610301610751366004614c0e565b6129f0565b6103e060085481565b61030161076d366004614c3a565b612ad4565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b6103016107a7366004614af9565b613265565b6104016107ba366004614cae565b8151602081840181018051600d825292820194820194909420919093529091526000908152604090205460ff1681565b6107fd6107f8366004614b74565b61331c565b6040516103af9190614cf5565b61081261347f565b600060098383604051610826929190614d39565b90815260405190819003602001902060038101549091506108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e63656e746976652070726f6f6620656d707479000000000000000000000060448201526064015b60405180910390fd5b6005810154610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e63656e74697665206e6f6e2d657869737400000000000000000000000000604482015260640161089f565b6000816001015411610981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e63656e746976652072657761726420656d70747900000000000000000000604482015260640161089f565b600781015460ff16156109f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e63656e746976652061637469766174656400000000000000000000000000604482015260640161089f565b6007810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055604051600f90610a309085908590614d39565b90815260200160405180910390205460001415610a6b5743600f8484604051610a5a929190614d39565b908152604051908190036020019020555b7fb3a74a3da32ffe1ba29e1cc816f6b782724de6b69bc5a2df37f1b4dbb2dcfaa28383604051610a9c929190614d92565b60405180910390a1505050565b6060600b805480602002602001604051908101604052809291908181526020016000905b82821015610b79578382906000526020600020018054610aec90614da6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1890614da6565b8015610b655780601f10610b3a57610100808354040283529160200191610b65565b820191906000526020600020905b815481529060010190602001808311610b4857829003601f168201915b505050505081526020019060010190610acd565b50505050905090565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600c60209081526040808320938616835292905220545b92915050565b6000610bc9848484613500565b90505b9392505050565b610bdb61347f565b610be361369e565b610beb613722565b6040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600e546040517f53f11e6d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260009216906353f11e6d90602401602060405180830381865afa158015610c87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cab9190614dfa565b15610cb8575060006110a9565b6000600854118015610ccb575060085482105b15610cd8575060006110a9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1615801590610dcf57506040517ff74f460c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063f74f460c90610d8e90889088908890600401614e17565b602060405180830381865afa158015610dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcf9190614dfa565b15610ddc575060006110a9565b610de7858585613500565b8015610e375750600d8585604051610e00929190614d39565b908152604080516020928190038301902073ffffffffffffffffffffffffffffffffffffffff86166000908152925290205460ff16155b156110a957600060098686604051610e50929190614d39565b908152604080519182900360209081018320610120840183528054845260018101549184019190915260028101549183018290526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460ff808216151560e08501526101009182900416151590830152909150156110a75760c08101511580610ee65750428160c00151115b156110a7576000600a8787604051610eff929190614d39565b908152604080519182900360209081018320608084018352805473ffffffffffffffffffffffffffffffffffffffff16808552600182015485840152600282015485850152600390910154606085015282517f313ce56700000000000000000000000000000000000000000000000000000000815292519394506000938493919263313ce56792600480820193918290030181865afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca9190614e51565b9050836101000151610ffb5760408401516020850151610fea9088614ea3565b610ff49190614ee0565b915061101e565b64e8d4a510008360600151876110119190614ea3565b61101b9190614ee0565b91505b602083015161102e82600a61503b565b6110389084614ea3565b6110429190614ee0565b945060006110568a8a8a8860a0015161379f565b905064e8d4a5100084604001518261106e9190614ea3565b6110789190614ee0565b8611156110a25764e8d4a510008460400151826110959190614ea3565b61109f9190614ee0565b95505b505050505b505b949350505050565b6110b961347f565b6000600985856040516110cd929190614d39565b9081526020016040518091039020905080600501546000141561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e63656e74697665206e6f6e2d657869737400000000000000000000000000604482015260640161089f565b600781015460ff16156111bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e63656e746976652061637469766174656400000000000000000000000000604482015260640161089f565b60008311611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f746f74616c20766f6c756d652073686f756c6420657863656564732030000000604482015260640161089f565b60028101839055600381018290556040517f914f919f80e7f5b23b01f44b25f69549b1b2b48013e137848ba44beb7694cafd906112679087908790879061504a565b60405180910390a15050505050565b61127e61347f565b60058490556006839055600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168315159081179091556008829055604080518681526020810186905290810191909152606081018290527f0efd26558ea121b0ed9ac0a2355632c2708929730baba5540c59819b83c628579060800160405180910390a150505050565b61131361347f565b808061131e57504284115b6113aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f63616d706169676e5374617274206d757374206265206578636565642074686160448201527f6e206e6f77000000000000000000000000000000000000000000000000000000606482015260840161089f565b80806113b557508383115b611441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616d706169676e436c61696d54696d65206d7573742062652065786365656460448201527f207468616e2063616d706169676e537461727400000000000000000000000000606482015260840161089f565b4260025461144f919061506e565b84106114b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f706572696f6420746f6f206c6f6e670000000000000000000000000000000000604482015260640161089f565b6002546114c48585615086565b1061152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f706572696f6420746f6f206c6f6e670000000000000000000000000000000000604482015260640161089f565b81156116195760035461153e8484615086565b116115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f636c61696d20706572696f6420746f6f2073686f727400000000000000000000604482015260640161089f565b6004546115b28484615086565b10611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636c61696d20706572696f6420746f6f206c6f6e670000000000000000000000604482015260640161089f565b600060098b8b60405161162d929190614d39565b9081526020016040518091039020905080600501546000146116ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e63656e746976652065786973747300000000000000000000000000000000604482015260640161089f565b6000808255600182018190556002820181905560038201556004810185905560058101849055600681018390556007810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905573ffffffffffffffffffffffffffffffffffffffff891661177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f72657761726420746f6b656e2061646472657373206e6f6e2d65786973740000604482015260640161089f565b6000881161180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f7265776172642070726963652068617320746f2065786365656473207468616e60448201527f2030000000000000000000000000000000000000000000000000000000000000606482015260840161089f565b600087118015611824575064e8d4a510008711155b6118af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726174696f2073686f756c64206c657373207468616e20746865206d6178207660448201527f616c756500000000000000000000000000000000000000000000000000000000606482015260840161089f565b6000861180156118c4575064e8d4a510008611155b61194f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726174696f2073686f756c64206c657373207468616e20746865206d6178207660448201527f616c756500000000000000000000000000000000000000000000000000000000606482015260840161089f565b6000600a8c8c604051611963929190614d39565b908152604051908190036020019020805473ffffffffffffffffffffffffffffffffffffffff8c167fffffffffffffffffffffffff000000000000000000000000000000000000000090911617815560018082018b9055600282018a905560038201899055600b80549182018155600052909150611a04907f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018d8d6143b1565b507fdb265e09ebf19434c97cc252659f260fea7c0fe6ca1e7026efa19861d096e33d8c8c8c898989604051611a3e9695949392919061509d565b60405180910390a1505050505050505050505050565b611a5c61347f565b600060098585604051611a70929190614d39565b908152602001604051809103902090506000600a8686604051611a94929190614d39565b908152604080519182900360209081018320608084018352805473ffffffffffffffffffffffffffffffffffffffff1684526001810154918401919091526002810154918301919091526003015460608201526005830154909150611b55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e63656e74697665206e6f6e2d657869737400000000000000000000000000604482015260640161089f565b600782015460ff161580611b7257506007820154610100900460ff165b611bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e63656e746976652061637469766174656400000000000000000000000000604482015260640161089f565b8215611d1b578160050154421015611c4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e63656e74697665206e6f6e2d656e64656400000000000000000000000000604482015260640161089f565b64e8d4a5100081606001518360020154611c669190614ea3565b611c709190614ee0565b848360010154611c80919061506e565b1115611ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f64796e616d69632072657761726420746f6f206d756368000000000000000000604482015260640161089f565b6007820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100851515021790555b8154611d2890859061506e565b82556001820154611d3a90859061506e565b60018301558051611d639073ffffffffffffffffffffffffffffffffffffffff16333087613d66565b7fb6239a92b2d497c83eca0904a993505080bdf7989c9f65c9189d2f01da0bbf6a86868686604051611d9894939291906150ec565b60405180910390a1505050505050565b611db061347f565b611dba6000613e48565b565b611dc461347f565b600060098383604051611dd8929190614d39565b908152602001604051809103902090506000816000015411611e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f696e63656e746976652062616c616e636520697320656d707479000000000000604482015260640161089f565b80546000808355600183018054839290611e71908490615086565b90915550506007820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556000600a8585604051611eb4929190614d39565b9081526040805160209281900383018120608082018352805473ffffffffffffffffffffffffffffffffffffffff1680835260018201549483019490945260028101549282019290925260039091015460608201529150611f16903384613ebd565b7fa6531a6e3b48dd2a110777ca8714997d0b189bbdcd0e0379ab0856db9d2ad5be8585846040516112679392919061504a565b6000610bcc83836040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b16602082015260348101829052600090605401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120908301520160405160208183030381529060405280519060200120905092915050565b611fed61347f565b611ff5613f18565b611ffd613f9d565b6040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b61203061347f565b611dba600b6000614453565b61204461347f565b60006009866040516120569190615118565b90815260200160405180910390209050428160050154116120f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f746f6f206c61746520746f207570646174652072657761726420746f6b656e2060448201527f706172616d657465727300000000000000000000000000000000000000000000606482015260840161089f565b73ffffffffffffffffffffffffffffffffffffffff8516612176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f72657761726420746f6b656e2061646472657373206e6f6e2d65786973740000604482015260640161089f565b60008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e79190614e51565b905060008511801561220f57506121ff81600a61503b565b61220c90620f4240614ea3565b85105b61229a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f7265776172642070726963652073686f756c64206e6f7420626520746f6f206360448201527f72617a7900000000000000000000000000000000000000000000000000000000606482015260840161089f565b6000841180156122af575064e8d4a510008411155b61233a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726174696f2073686f756c64206c657373207468616e20746865206d6178207660448201527f616c756500000000000000000000000000000000000000000000000000000000606482015260840161089f565b60008311801561234f575064e8d4a510008311155b6123da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726174696f2073686f756c64206c657373207468616e20746865206d6178207660448201527f616c756500000000000000000000000000000000000000000000000000000000606482015260840161089f565b6000600a886040516123ec9190615118565b908152604051908190036020018120805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681178255600182018990556002820188905560038201879055909250907f6f685b5b92ad510168fc9e86f1218e8d3f0daff36e4fd0c184a9baf659e7de7b90612488908b908a908a908a90615134565b60405180910390a25050505050505050565b6124a261347f565b60006009836040516124b49190615118565b9081526020016040518091039020905042816005015410612557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f746f6f206561726c7920746f2075706461746520656e6420626c6f636b206e7560448201527f6d62657220706172616d65746572730000000000000000000000000000000000606482015260840161089f565b81600f846040516125689190615118565b90815260405160209181900382018120929092558382527f9d54decf2242f47eb009dce37fa68bd284738541b243a453bf949491360f39e99101610a9c565b600080600985856040516125bc929190614d39565b908152604080516020928190038301812061012082018352805482526001810154938201939093526002830154918101919091526003820154606082015260048201546080820152600582015460a08201819052600683015460c083015260079092015460ff808216151560e08401526101009182900416151590820152915060009061264e9087908790879061379f565b9695505050505050565b61266061347f565b73ffffffffffffffffffffffffffffffffffffffff8116612703576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f74726164696e67466565436c61696d65645265636f726420636f6e747261637460448201527f20616464726573732073686f756c64206e6f7420626520300000000000000000606482015260840161089f565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f03d2d04324e143e326e03671efa1aff33058dc3b525cfb222e410153ffab11cd90600090a250565b61277a61347f565b6103e88111156127e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f757064617465526174696f3a20496e76616c696420726174696f000000000000604482015260640161089f565b806001541415612852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f757064617465526174696f3a20526174696f206e6f74206368616e6765640000604482015260640161089f565b60018190556040518181527f6ecbb4a8965a1b9d1e3ad7d543b0691b5c1c932616d7f75e3431f80810c6b9429060200160405180910390a150565b848381146128f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f706172616d6574657273206c656e677468206e6f742073616d65000000000000604482015260640161089f565b808214612960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f706172616d6574657273206c656e677468206e6f742073616d65000000000000604482015260640161089f565b60005b818110156129e6576129d488888381811061298057612980615163565b90506020028101906129929190615192565b8888858181106129a4576129a4615163565b90506020028101906129b691906151f7565b8888878181106129c8576129c8615163565b90506020020135612ad4565b806129de8161525f565b915050612963565b5050505050505050565b6129f861347f565b818111612a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f6d617820636c61696d20706572696f642073686f756c64206c6172676572207460448201527f68616e206d696e20636c61696d20706572696f64000000000000000000000000606482015260840161089f565b60028390556003829055600481905560408051848152602081018490529081018290527fa3e2d2e196f52bba74e550b67de7ad86cae3a32e9468cb309de50d6842844b1890606001610a9c565b612adc613f18565b60008111612b46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f766f6c756d652063616e2774206265206e656761746976650000000000000000604482015260640161089f565b600060098686604051612b5a929190614d39565b9081526020016040518091039020905042816005015410612bd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f746f6f206561726c790000000000000000000000000000000000000000000000604482015260640161089f565b600781015460ff16612c45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e63656e74697665206e6f7420616374697661746564000000000000000000604482015260640161089f565b6000816001015411612cb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e63656e74697665206973206e6f6e2d657869737400000000000000000000604482015260640161089f565b600681015415612d505742816006015411612d50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f696e63656e7469766520686173206f76657220636c61696d20656e642074696d60448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840161089f565b600d8686604051612d62929190614d39565b9081526040805160209281900383019020336000908152925290205460ff1615612e0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f7573657220616c726561647920636c61696d6564207468697320696e63656e7460448201527f6976650000000000000000000000000000000000000000000000000000000000606482015260840161089f565b6000612eaa33846040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b16602082015260348101829052600090605401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120908301520160405160208183030381529060405280519060200120905092915050565b9050612eed85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060038401548361400c565b612f53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206d65726b6c652070726f6f66000000000000000000000000604482015260640161089f565b6000612f6188883387610c16565b905060008111612ff3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e63656e74697665207265776172642073686f756c6420657863656564207460448201527f68616e2030000000000000000000000000000000000000000000000000000000606482015260840161089f565b825481111561305e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e63656e746976652062616c616e6365206973206e6f7420656e6f75676800604482015260640161089f565b825461306b908290615086565b8355604051600090600a90613083908b908b90614d39565b9081526040805160209281900383018120608082018352805473ffffffffffffffffffffffffffffffffffffffff168083526001820154858401526002820154838501526003909101546060830152336000908152600c8552838120828252909452918320805491945091928592916130fd90849061506e565b925050819055506001600d8b8b604051613118929190614d39565b9081526040805160209281900383018120336000818152919094529190912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001693151593909317909255600e547ffffa76cb000000000000000000000000000000000000000000000000000000008352600483019190915273ffffffffffffffffffffffffffffffffffffffff169063fffa76cb90602401600060405180830381600087803b1580156131cd57600080fd5b505af11580156131e1573d6000803e3d6000fd5b506132079250505073ffffffffffffffffffffffffffffffffffffffff82163385613ebd565b3373ffffffffffffffffffffffffffffffffffffffff167f6e5596fe4f25c687a26b2421b8816d678eb3615ab1a5a91fb9cb43ed8b92751d8b8b866040516132519392919061504a565b60405180910390a250505050505050505050565b61326d61347f565b73ffffffffffffffffffffffffffffffffffffffff8116613310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161089f565b61331981613e48565b50565b6060858214613387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f706172616d6574657273206c656e677468206e6f742073616d65000000000000604482015260640161089f565b858067ffffffffffffffff8111156133a1576133a1614568565b6040519080825280602002602001820160405280156133ca578160200160208202803683370190505b50915060005b81811015613473576134448989838181106133ed576133ed615163565b90506020028101906133ff9190615192565b89898581811061341157613411615163565b90506020020160208101906134269190614af9565b88888681811061343857613438615163565b90506020020135610c16565b83828151811061345657613456615163565b60209081029190910101528061346b8161525f565b9150506133d0565b50509695505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089f565b60075460009060ff16156135d6576040517fea0d5dcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063ea0d5dcd90602401602060405180830381865afa15801561359f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c39190614dfa565b9050806135d4576000915050610bcc565b505b6000600985856040516135ea929190614d39565b908152604080516020928190038301812061012082018352805482526001810154938201939093526002830154918101919091526003820154606082015260048201546080820152600582015460a08201819052600683015460c083015260079092015460ff808216151560e08401526101009182900416151590820152915060009061367c9087908790879061379f565b9050600654811061369257600192505050610bcc565b50600095945050505050565b60005474010000000000000000000000000000000000000000900460ff16611dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161089f565b61372a61369e565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60008082421015613a47576040517f3037408d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590526000917f000000000000000000000000000000000000000000000000000000000000000090911690633037408d90604401602060405180830381865afa158015613842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138669190615298565b6040517f6386c1c700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015291925060009182917f000000000000000000000000000000000000000000000000000000000000000090911690636386c1c79060240161010060405180830381865afa1580156138fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392191906152de565b505050505092505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613a18576040517f3037408d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152602482018890527f00000000000000000000000000000000000000000000000000000000000000001690633037408d90604401602060405180830381865afa1580156139f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a159190615298565b91505b6001546103e890613a29848661506e565b613a339190614ea3565b613a3d9190614ee0565b9350505050613d5d565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634ee2cd7e86600f8a8a604051613a98929190614d39565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252613aff929160040173ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602060405180830381865afa158015613b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b409190615298565b6040517f6386c1c700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015291925060009182917f000000000000000000000000000000000000000000000000000000000000000090911690636386c1c79060240161010060405180830381865afa158015613bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfb91906152de565b505050505092505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613d32577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634ee2cd7e82600f8c8c604051613c87929190614d39565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252613cee929160040173ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602060405180830381865afa158015613d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d2f9190615298565b91505b6001546103e890613d43848661506e565b613d4d9190614ea3565b613d579190614ee0565b93505050505b95945050505050565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052613e429085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614022565b50505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052613f139084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401613dc0565b505050565b60005474010000000000000000000000000000000000000000900460ff1615611dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161089f565b613fa5613f18565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586137753390565b6000826140198584614131565b14949350505050565b6000614084826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661417e9092919063ffffffff16565b90508051600014806140a55750808060200190518101906140a59190614dfa565b613f13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161089f565b600081815b8451811015614176576141628286838151811061415557614155615163565b602002602001015161418d565b91508061416e8161525f565b915050614136565b509392505050565b6060610bc984846000856141bc565b60008183106141a9576000828152602084905260409020610bcc565b6000838152602083905260409020610bcc565b60608247101561424e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161089f565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516142779190615118565b60006040518083038185875af1925050503d80600081146142b4576040519150601f19603f3d011682016040523d82523d6000602084013e6142b9565b606091505b50915091506142ca878383876142d5565b979650505050505050565b606083156143685782516143615773ffffffffffffffffffffffffffffffffffffffff85163b614361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089f565b50816110a9565b6110a9838381511561437d5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089f9190615391565b8280546143bd90614da6565b90600052602060002090601f0160209004810192826143df5760008555614443565b82601f10614416578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614443565b82800160010185558215614443579182015b82811115614443578235825591602001919060010190614428565b5061444f929150614471565b5090565b50805460008255906000526020600020908101906133199190614486565b5b8082111561444f5760008155600101614472565b8082111561444f57600061449a82826144a3565b50600101614486565b5080546144af90614da6565b6000825580601f106144bf575050565b601f0160209004906000526020600020908101906133199190614471565b60008083601f8401126144ef57600080fd5b50813567ffffffffffffffff81111561450757600080fd5b60208301915083602082850101111561451f57600080fd5b9250929050565b6000806020838503121561453957600080fd5b823567ffffffffffffffff81111561455057600080fd5b61455c858286016144dd565b90969095509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126145a857600080fd5b813567ffffffffffffffff808211156145c3576145c3614568565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561460957614609614568565b8160405283815286602085880101111561462257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561465457600080fd5b813567ffffffffffffffff81111561466b57600080fd5b6110a984828501614597565b60005b8381101561469257818101518382015260200161467a565b83811115613e425750506000910152565b600081518084526146bb816020860160208601614677565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614760577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261474e8583516146a3565b94509285019290850190600101614714565b5092979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461331957600080fd5b600080604083850312156147a257600080fd5b82356147ad8161476d565b915060208301356147bd8161476d565b809150509250929050565b6000806000604084860312156147dd57600080fd5b833567ffffffffffffffff8111156147f457600080fd5b614800868287016144dd565b90945092505060208401356148148161476d565b809150509250925092565b6000806000806060858703121561483557600080fd5b843567ffffffffffffffff81111561484c57600080fd5b614858878288016144dd565b909550935050602085013561486c8161476d565b9396929550929360400135925050565b6000806000806060858703121561489257600080fd5b843567ffffffffffffffff8111156148a957600080fd5b6148b5878288016144dd565b90989097506020870135966040013595509350505050565b801515811461331957600080fd5b600080600080608085870312156148f157600080fd5b8435935060208501359250604085013561490a816148cd565b9396929550929360600135925050565b6000806000806000806000806000806101208b8d03121561493a57600080fd5b8a3567ffffffffffffffff81111561495157600080fd5b61495d8d828e016144dd565b909b5099505060208b01356149718161476d565b975060408b0135965060608b0135955060808b0135945060a08b0135935060c08b0135925060e08b013591506101008b01356149ac816148cd565b809150509295989b9194979a5092959850565b600080600080606085870312156149d557600080fd5b843567ffffffffffffffff8111156149ec57600080fd5b6149f8878288016144dd565b909550935050602085013591506040850135614a13816148cd565b939692955090935050565b60008060408385031215614a3157600080fd5b8235614a3c8161476d565b946020939093013593505050565b600080600080600060a08688031215614a6257600080fd5b853567ffffffffffffffff811115614a7957600080fd5b614a8588828901614597565b9550506020860135614a968161476d565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215614ac757600080fd5b823567ffffffffffffffff811115614ade57600080fd5b614aea85828601614597565b95602094909401359450505050565b600060208284031215614b0b57600080fd5b8135610bcc8161476d565b600060208284031215614b2857600080fd5b5035919050565b60008083601f840112614b4157600080fd5b50813567ffffffffffffffff811115614b5957600080fd5b6020830191508360208260051b850101111561451f57600080fd5b60008060008060008060608789031215614b8d57600080fd5b863567ffffffffffffffff80821115614ba557600080fd5b614bb18a838b01614b2f565b90985096506020890135915080821115614bca57600080fd5b614bd68a838b01614b2f565b90965094506040890135915080821115614bef57600080fd5b50614bfc89828a01614b2f565b979a9699509497509295939492505050565b600080600060608486031215614c2357600080fd5b505081359360208301359350604090920135919050565b600080600080600060608688031215614c5257600080fd5b853567ffffffffffffffff80821115614c6a57600080fd5b614c7689838a016144dd565b90975095506020880135915080821115614c8f57600080fd5b50614c9c88828901614b2f565b96999598509660400135949350505050565b60008060408385031215614cc157600080fd5b823567ffffffffffffffff811115614cd857600080fd5b614ce485828601614597565b92505060208301356147bd8161476d565b6020808252825182820181905260009190848201906040850190845b81811015614d2d57835183529284019291840191600101614d11565b50909695505050505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000610bc9602083018486614d49565b600181811c90821680614dba57607f821691505b60208210811415614df4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600060208284031215614e0c57600080fd5b8151610bcc816148cd565b604081526000614e2b604083018587614d49565b905073ffffffffffffffffffffffffffffffffffffffff83166020830152949350505050565b600060208284031215614e6357600080fd5b815160ff81168114610bcc57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614edb57614edb614e74565b500290565b600082614f16577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600181815b80851115614f7457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614f5a57614f5a614e74565b80851615614f6757918102915b93841c9390800290614f20565b509250929050565b600082614f8b57506001610bb6565b81614f9857506000610bb6565b8160018114614fae5760028114614fb857614fd4565b6001915050610bb6565b60ff841115614fc957614fc9614e74565b50506001821b610bb6565b5060208310610133831016604e8410600b8410161715614ff7575081810a610bb6565b6150018383614f1b565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561503357615033614e74565b029392505050565b6000610bcc60ff841683614f7c565b60408152600061505e604083018587614d49565b9050826020830152949350505050565b6000821982111561508157615081614e74565b500190565b60008282101561509857615098614e74565b500390565b60a0815260006150b160a08301888a614d49565b905073ffffffffffffffffffffffffffffffffffffffff86166020830152846040830152836060830152826080830152979650505050505050565b606081526000615100606083018688614d49565b60208301949094525090151560409091015292915050565b6000825161512a818460208701614677565b9190910192915050565b60808152600061514760808301876146a3565b6020830195909552506040810192909252606090910152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126151c757600080fd5b83018035915067ffffffffffffffff8211156151e257600080fd5b60200191503681900382131561451f57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261522c57600080fd5b83018035915067ffffffffffffffff82111561524757600080fd5b6020019150600581901b360382131561451f57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561529157615291614e74565b5060010190565b6000602082840312156152aa57600080fd5b5051919050565b805165ffffffffffff811681146152c757600080fd5b919050565b805161ffff811681146152c757600080fd5b600080600080600080600080610100898b0312156152fb57600080fd5b885180600f0b811461530c57600080fd5b60208a015160408b015191995097506153248161476d565b60608a01519096506fffffffffffffffffffffffffffffffff8116811461534a57600080fd5b945061535860808a016152b1565b935061536660a08a016152b1565b925061537460c08a016152cc565b915061538260e08a016152cc565b90509295985092959890939650565b602081526000610bcc60208301846146a356fea26469706673582212204f9d62b48674c0959f4b405e1b8bf0ddaad1c2636ed79bfb905255b5418b82f564736f6c634300080a00330000000000000000000000005692db8177a81a6c6afc8084c2976c9933ec1bab000000000000000000000000df4dbf6536201370f95e06a0f8a7a70fe40e388a0000000000000000000000003a41495d8ae7081a106d33d83d50fd95b79c1c6f