0 txs
4 calls
constructor
constructor()
functions
controllerAddress
viewfunction controllerAddress() view returns (address)
currentPeriod
viewfunction currentPeriod() view returns (uint256)
feesAddress
viewfunction feesAddress() view returns (address)
flatFeePercent
viewfunction flatFeePercent() view returns (uint256)
getDailyInterest
viewfunction getDailyInterest() view returns (uint256)
getDeployableCapital
viewfunction getDeployableCapital() view returns (uint256)
getMaxWithdrawalAmount
viewfunction getMaxWithdrawalAmount() view returns (uint256)
getPeriodOfCurrentEpoch
viewfunction getPeriodOfCurrentEpoch() view returns (uint256)
getSnapshot
viewfunction getSnapshot(uint256 i) view returns (uint256 apr, uint256 tokenPrice, uint256 totalDeposited, uint256 dailyInterest)
getTokenPrice
viewfunction getTokenPrice() view returns (uint256)
getTotalDeposited
viewfunction getTotalDeposited() view returns (uint256)
investmentPercent
viewfunction investmentPercent() view returns (uint8)
minDepositAmount
viewfunction minDepositAmount() view returns (uint256)
owner
viewfunction owner() view returns (address)
priceChangedOn
viewfunction priceChangedOn() view returns (uint256)
toErc20Amount
viewfunction toErc20Amount(uint256 receiptTokenAmount) view returns (uint256)
underlyingTokenInterface
viewfunction underlyingTokenInterface() view returns (address)
yieldReserveAddress
viewfunction yieldReserveAddress() view returns (address)
changeApr
nonpayablefunction changeApr(uint256 newApr)
claimDailyInterest
nonpayablefunction claimDailyInterest()
compute
nonpayablefunction compute()
deposit
nonpayablefunction deposit(uint256 depositAmount)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address destinationAddr)
initialize
nonpayablefunction initialize(address ownerAddr, address controllerAddr, address receiptTokenInterface, address eip20Interface, uint256 initialApr, uint256 initialTokenPrice, uint256 initialMinDepositAmount, uint256 flatFeePerc, address feesAddr)
initializeV2
nonpayablefunction initializeV2()
lockCapital
nonpayablefunction lockCapital()
setController
nonpayablefunction setController(address controllerAddr)
setFeeAddress
nonpayablefunction setFeeAddress(address addr)
setFlatWithdrawalFee
nonpayablefunction setFlatWithdrawalFee(uint256 newFeeWithMultiplier)
setInvestmentPercent
nonpayablefunction setInvestmentPercent(uint8 newPercent)
setMinDepositAmount
nonpayablefunction setMinDepositAmount(uint256 minAmount)
setTokenPrice
nonpayablefunction setTokenPrice(uint256 newTokenPrice)
setTotalDepositedAmount
nonpayablefunction setTotalDepositedAmount(uint256 newAmount)
setYieldReserveAddress
nonpayablefunction setYieldReserveAddress(address addr)
transferOwnership
nonpayablefunction transferOwnership(address addr)
withdraw
nonpayablefunction withdraw(uint256 receiptTokenAmount)
events
Initialized
event Initialized(uint8 version)
OnAprChanged
event OnAprChanged(uint256 prevApr, uint256 newApr)
OnCapitalLocked
event OnCapitalLocked(uint256 amountLocked)
OnCompute
event OnCompute()
OnControllerChanged
event OnControllerChanged(address prevAddress, address newAddress)
OnEmergencyWithdraw
event OnEmergencyWithdraw(uint256 withdrawalAmount)
OnFeesAddressChanged
event OnFeesAddressChanged(address prevAddress, address newAddress)
OnFlatWithdrawalFeeChanged
event OnFlatWithdrawalFeeChanged(uint256 prevValue, uint256 newValue)
OnInterestClaimed
event OnInterestClaimed(uint256 interestAmount)
OnInvestmentPercentChanged
event OnInvestmentPercentChanged(uint8 prevValue, uint8 newValue)
OnOwnershipTransferred
event OnOwnershipTransferred(address previousOwner, address newOwner)
OnTokenPriceChanged
event OnTokenPriceChanged(uint256 prevTokenPrice, uint256 newTokenPrice)
OnVaultDeposit
event OnVaultDeposit(address tokenAddress, address fromAddress, uint256 depositAmount, uint256 receiptTokensAmount)
OnVaultWithdrawal
event OnVaultWithdrawal(address tokenAddress, address toAddress, uint256 erc20Amount, uint256 receiptTokensAmount, uint256 fee)
OnYieldReserveAddressChanged
event OnYieldReserveAddressChanged(address prevAddress, address newAddress)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61384a80620000f36000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80636a61e5fc116101255780639c256eef116100ad578063b6b55f251161007c578063b6b55f25146104aa578063b9eec7a7146104bd578063bced9117146104d0578063f2fde38b146104d8578063f36932b7146104eb5761021c565b80639c256eef146104625780639ce7f67014610475578063addf8f211461047d578063b68ef559146104905761021c565b80638da5cb5b116100f45780638da5cb5b146103fe578063919cfa211461041657806391dd75e714610429578063922f21231461043c57806392eefe9b1461044f5761021c565b80636a61e5fc1461036f5780636ff1c9bc1461038257806376f10ad0146103955780638705fcd4146103eb5761021c565b806332e5af5a116101a85780634b94f50e116101775780634b94f50e1461031e5780635798ef311461033857806357e0bf941461034b5780635cd8a76b1461035e578063645006ca146103665761021c565b806332e5af5a146102e15780633a621d37146102ea5780634378f0ec146102f25780634b24ea471461030b5761021c565b8063292bbd32116101ef578063292bbd321461026e5780632a40eb72146102a05780632a80cda3146102a85780632e1a7d4d146102bb57806331cbd148146102ce5761021c565b80630301310b14610221578063060406181461024557806308b4a9941461025c5780631a43c33814610264575b600080fd5b60075461022e9060ff1681565b60405160ff90911681526020015b60405180910390f35b61024e60035481565b60405190815260200161023c565b61024e6104f4565b61026c6105d7565b005b60075461028890630100000090046001600160a01b031681565b6040516001600160a01b03909116815260200161023c565b61026c610619565b61026c6102b636600461336b565b610831565b61026c6102c936600461336b565b6108fa565b600954610288906001600160a01b031681565b61024e600c5481565b61024e610f42565b600380546000908152600b60205260409020015461024e565b600154610288906001600160a01b031681565b6003546000908152600b602052604090206001015461024e565b61026c6103463660046132a6565b610f55565b61024e61035936600461336b565b6110f7565b61026c611136565b61024e60045481565b61026c61037d36600461336b565b6111cb565b61026c6103903660046132a6565b6113d2565b6103cb6103a336600461336b565b6000908152600b60205260409020805460018201546002830154600390930154919390929190565b60408051948552602085019390935291830152606082015260800161023c565b61026c6103f93660046132a6565b611676565b6102886000546201000090046001600160a01b031690565b61026c61042436600461336b565b6117c0565b600854610288906001600160a01b031681565b61026c61044a36600461336b565b611875565b61026c61045d3660046132a6565b61197a565b61026c61047036600461339b565b611b24565b61024e611c51565b61026c61048b36600461336b565b611c90565b6003546000908152600b602052604090206002015461024e565b61026c6104b836600461336b565b611e23565b61026c6104cb3660046132c0565b612482565b61026c61255e565b61026c6104e63660046132a6565b6127e6565b61024e60055481565b600754600090819060649061050c9060ff16826137a7565b6003546000908152600b602052604090206002015461052b9190613749565b610535919061359e565b6009546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a082319060240160206040518083038186803b15801561057e57600080fd5b505afa158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b69190613383565b90508181116105c65760006105d0565b6105d082826137a7565b9250505090565b60ff6105e560005460ff1690565b60ff16141561060f5760405162461bcd60e51b8152600401610606906133d3565b60405180910390fd5b610617612880565b565b60ff61062760005460ff1690565b60ff1614156106485760405162461bcd60e51b8152600401610606906133d3565b6001546001600160a01b031633148061067157506000546201000090046001600160a01b031633145b61068d5760405162461bcd60e51b8152600401610606906134e0565b60075462010000900460ff16156106b65760405162461bcd60e51b81526004016106069061342c565b6007805462ff00001916620100001790556106cf612880565b60006106d96104f4565b9050600081116107225760405162461bcd60e51b81526020600482015260146024820152734e6f206361706974616c20746f206465706c6f7960601b6044820152606401610606565b60095460075460405163a9059cbb60e01b81526001600160a01b036301000000909204821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b15801561077957600080fd5b505af115801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b1919061334b565b6107ef5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610606565b6040518181527fa0c74edaedd64a934c208860c6fabae3e8a26c05dea32da0d43af5c0d6eff2559060200160405180910390a1506007805462ff000019169055565b60ff61083f60005460ff1690565b60ff1614156108605760405162461bcd60e51b8152600401610606906133d3565b6001546001600160a01b031633148061088957506000546201000090046001600160a01b031633145b6108a55760405162461bcd60e51b8152600401610606906134e0565b600081116108f55760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206d696e696d756d206465706f73697420616d6f756e7400006044820152606401610606565b600455565b60ff61090860005460ff1690565b60ff1614156109295760405162461bcd60e51b8152600401610606906133d3565b60075462010000900460ff16156109525760405162461bcd60e51b81526004016106069061342c565b6000811161099e5760405162461bcd60e51b8152602060048201526019602482015278125b9d985b1a59081dda5d1a191c985dd85b08185b5bdd5b9d603a1b6044820152606401610606565b6007805462ff00001916620100001790556109b7612880565b600a546040516370a0823160e01b815233600482015282916001600160a01b0316906370a082319060240160206040518083038186803b1580156109fa57600080fd5b505afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a329190613383565b1015610a805760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742062616c616e6365206f6620746f6b656e7300006044820152606401610606565b6000610a8b826110f7565b6003546000908152600b6020526040902060020154909150811115610aee5760405162461bcd60e51b8152602060048201526019602482015278125b9d985b1a59081dda5d1a191c985dd85b08185b5bdd5b9d603a1b6044820152606401610606565b600754600090606490610b049060ff16826137a7565b6003546000908152600b6020526040902060020154610b239190613749565b610b2d919061359e565b905080821115610b7f5760405162461bcd60e51b815260206004820152601e60248201527f4d6178207769746864726177616c20616d6f756e7420657863656564656400006044820152606401610606565b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610bc357600080fd5b505afa158015610bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfb9190613383565b905082811015610c4d5760405162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742066756e647320696e20746865206275666665726044820152606401610606565b60008060055411610c5f576000610c86565b600654606460055486610c729190613749565b610c7c919061359e565b610c86919061359e565b9050838110610cc55760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642066656560a81b6044820152606401610606565b6000610cd182866137a7565b905084600b600060035481526020019081526020016000206002016000828254610cfb91906137a7565b9091555050600a54604051632770a7eb60e21b8152336004820152602481018890526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015610d4c57600080fd5b505af1158015610d60573d6000803e3d6000fd5b505060095460405163a9059cbb60e01b8152336004820152602481018590526001600160a01b03909116925063a9059cbb9150604401602060405180830381600087803b158015610db057600080fd5b505af1158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de8919061334b565b610e045760405162461bcd60e51b815260040161060690613463565b8115610ed45760095460085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291169063a9059cbb90604401602060405180830381600087803b158015610e5a57600080fd5b505af1158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e92919061334b565b610ed45760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610606565b600954604080516001600160a01b039092168252336020830152810186905260608101879052608081018390527f297b983b359127be0bb37e151a4fec683bc9012dd4d0ac96db47cfc17019c1e49060a00160405180910390a150506007805462ff00001916905550505050565b6000610f5060025442612ab9565b905090565b60ff610f6360005460ff1690565b60ff161415610f845760405162461bcd60e51b8152600401610606906133d3565b6001546001600160a01b0316331480610fad57506000546201000090046001600160a01b031633145b610fc95760405162461bcd60e51b8152600401610606906134e0565b6001600160a01b03811615801590610fea57506001600160a01b0381163014155b6110285760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610606565b61103181612b2a565b61107d5760405162461bcd60e51b815260206004820152601e60248201527f5468652061646472657373206d757374206265206120636f6e747261637400006044820152606401610606565b600754604080516001600160a01b0363010000009093048316815291831660208301527f0aebc9026561f275e982d855dff9cf49033009d9f31ba8acc0b619ce6b5b2e4b910160405180910390a1600780546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60006111056006600a6135f8565b6003546000908152600b60205260409020600101546111249084613749565b61112e919061359e565b90505b919050565b600054600290610100900460ff16158015611158575060005460ff8083169116105b6111745760405162461bcd60e51b815260040161060690613492565b60008054600c82905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60ff6111d960005460ff1690565b60ff1614156111fa5760405162461bcd60e51b8152600401610606906133d3565b6000546201000090046001600160a01b0316331461122a5760405162461bcd60e51b815260040161060690613408565b600081116112705760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420746f6b656e20707269636560681b6044820152606401610606565b62015180600c544261128291906137a7565b116112cf5760405162461bcd60e51b815260206004820152601960248201527f5072696365206c6f636b656420666f7220323420686f757273000000000000006044820152606401610606565b6112d7612880565b6003546000908152600b6020526040812060019081015491906064906112fd9084613749565b611307919061359e565b90506113138183613558565b831115801561132b575061132781836137a7565b8310155b6113775760405162461bcd60e51b815260206004820152601860248201527f5072696365206368616e676520746f6f206472617374696300000000000000006044820152606401610606565b6003546000908152600b602090815260409182902060010185905542600c5581518481529081018590527f1107a79eab721b565f7d6a0bd7847e7021dd0f721c65eadc1d6c35eb08dbc0ed91015b60405180910390a1505050565b60ff6113e060005460ff1690565b60ff1614156114015760405162461bcd60e51b8152600401610606906133d3565b6000546201000090046001600160a01b031633146114315760405162461bcd60e51b815260040161060690613408565b60075462010000900460ff161561145a5760405162461bcd60e51b81526004016106069061342c565b6001600160a01b0381161580159061147b57506001600160a01b0381163014155b6114b95760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610606565b6007805462ff00001916620100001790556009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561150e57600080fd5b505afa158015611522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115469190613383565b9050600081116115915760405162461bcd60e51b8152602060048201526016602482015275546865207661756c7420686173206e6f2066756e647360501b6044820152606401610606565b60095460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156115df57600080fd5b505af11580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611617919061334b565b6116335760405162461bcd60e51b815260040161060690613463565b6040518181527f55abaad61a326c0cc8618401ad343a21179b6f621dc9247617973a61b0d81d1e9060200160405180910390a150506007805462ff000019169055565b60ff61168460005460ff1690565b60ff1614156116a55760405162461bcd60e51b8152600401610606906133d3565b6001546001600160a01b03163314806116ce57506000546201000090046001600160a01b031633145b6116ea5760405162461bcd60e51b8152600401610606906134e0565b6001600160a01b0381161580159061171057506008546001600160a01b03828116911614155b6117575760405162461bcd60e51b8152602060048201526018602482015277496e76616c6964206164647265737320666f72206665657360401b6044820152606401610606565b600854604080516001600160a01b03928316815291831660208301527f3b4be58da14251f504968b7257dff9b9c1ecb07ac50130d7a4bf5533acf20d23910160405180910390a1600880546001600160a01b0319166001600160a01b0392909216919091179055565b60ff6117ce60005460ff1690565b60ff1614156117ef5760405162461bcd60e51b8152600401610606906133d3565b6001546001600160a01b031633148061181857506000546201000090046001600160a01b031633145b6118345760405162461bcd60e51b8152600401610606906134e0565b60055460408051918252602082018390527f120fd6c83629ae96124876a9b5b025e47fb83d42972ca449a5a3405dbccfb986910160405180910390a1600555565b60ff61188360005460ff1690565b60ff1614156118a45760405162461bcd60e51b8152600401610606906133d3565b6000546201000090046001600160a01b031633146118d45760405162461bcd60e51b815260040161060690613408565b600081116119125760405162461bcd60e51b815260206004820152600b60248201526a24b73b30b634b21020a82960a91b6044820152606401610606565b61191a612880565b6003546000908152600b60209081526040918290205482519081529081018390527fc827555e5522aeda7e894c1d924063a0e0cb6e782418a59fcd72c6c23cbac06b910160405180910390a16003546000908152600b6020526040902055565b6000546201000090046001600160a01b031633146119aa5760405162461bcd60e51b815260040161060690613408565b6001600160a01b038116611a005760405162461bcd60e51b815260206004820152601b60248201527f436f6e74726f6c6c6572206164647265737320726571756972656400000000006044820152606401610606565b6000546001600160a01b0382811662010000909204161415611a645760405162461bcd60e51b815260206004820152601e60248201527f4f776e65722063616e6e6f742062652074686520436f6e74726f6c6c657200006044820152606401610606565b6001546001600160a01b0382811691161415611abb5760405162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c88185b1c9958591e481cd95d60521b6044820152606401610606565b600154604080516001600160a01b03928316815291831660208301527f3df96927933b869a51e4444ecd13bc819f0a1396ef6b6c3af44369afcb3e05b1910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b60ff611b3260005460ff1690565b60ff161415611b535760405162461bcd60e51b8152600401610606906133d3565b6001546001600160a01b0316331480611b7c57506000546201000090046001600160a01b031633145b611b985760405162461bcd60e51b8152600401610606906134e0565b60008160ff16118015611bae575060648160ff16105b611bfa5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e766573746d656e742070657263656e740000000000006044820152606401610606565b6007546040805160ff928316815291831660208301527ff6a34f02b83ccdde55c05d6d6e72262bae32f03d30abd8168b5a10f367967696910160405180910390a16007805460ff191660ff92909216919091179055565b600754600090606490611c679060ff16826137a7565b6003546000908152600b6020526040902060020154611c869190613749565b610f50919061359e565b60ff611c9e60005460ff1690565b60ff161415611cbf5760405162461bcd60e51b8152600401610606906133d3565b6000546201000090046001600160a01b03163314611cef5760405162461bcd60e51b815260040161060690613408565b60008111611d3f5760405162461bcd60e51b815260206004820152601860248201527f4e6f6e2d7a65726f20616d6f756e7420726571756972656400000000000000006044820152606401610606565b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190613383565b90508015611e0b5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369747320616c726561647920617661696c61626c650000000000006044820152606401610606565b506003546000908152600b6020526040902060020155565b60ff611e3160005460ff1690565b60ff161415611e525760405162461bcd60e51b8152600401610606906133d3565b600754610100900460ff1615611eaa5760405162461bcd60e51b815260206004820152601a60248201527f5265656e7472616e74206465706f7369742072656a65637465640000000000006044820152606401610606565b600454811015611efc5760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d206465706f73697420616d6f756e74206e6f74206d657400006044820152606401610606565b6007805461ff001916610100179055611f13612880565b6009546040516370a0823160e01b815233600482015282916001600160a01b0316906370a082319060240160206040518083038186803b158015611f5657600080fd5b505afa158015611f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8e9190613383565b1015611fd15760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610606565b600954604051636eb1769f60e11b815233600482015230602482015282916001600160a01b03169063dd62ed3e9060440160206040518083038186803b15801561201a57600080fd5b505afa15801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190613383565b10156120995760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b6044820152606401610606565b6003546000908152600b60205260408120600101546120ba6006600a6135f8565b6120c49084613749565b6120ce919061359e565b600a54604051635dd871a360e01b8152600481018390529192506001600160a01b031690635dd871a39060240160206040518083038186803b15801561211357600080fd5b505afa158015612127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214b919061334b565b6121975760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e20737570706c79206c696d697420657863656564656400000000006044820152606401610606565b6003546000908152600b6020526040812060020180548492906121bb908490613558565b90915550506009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561220457600080fd5b505afa158015612218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223c9190613383565b6009546040516323b872dd60e01b8152336004820152306024820152604481018690529192506001600160a01b0316906323b872dd90606401602060405180830381600087803b15801561228f57600080fd5b505af11580156122a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c7919061334b565b6122e35760405162461bcd60e51b815260040161060690613463565b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561232757600080fd5b505afa15801561233b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235f9190613383565b905061236b8483613558565b81146123b95760405162461bcd60e51b815260206004820152601b60248201527f42616c616e636520766572696669636174696f6e206661696c656400000000006044820152606401610606565b600a546040516340c10f1960e01b8152336004820152602481018590526001600160a01b03909116906340c10f1990604401600060405180830381600087803b15801561240557600080fd5b505af1158015612419573d6000803e3d6000fd5b5050600954604080516001600160a01b0390921682523360208301528101879052606081018690527f6c6941772efad791f0e8f0ff7e3e76b52034604c1427fc1bbda4dbd3d2570fc69250608001905060405180910390a150506007805461ff00191690555050565b600054610100900460ff16158080156124a25750600054600160ff909116105b806124bc5750303b1580156124bc575060005460ff166001145b6124d85760405162461bcd60e51b815260040161060690613492565b6000805460ff1916600117905580156124fb576000805461ff0019166101001790555b61250c8a8a8a8a8a8a8a8a8a612b66565b8015612552576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b60ff61256c60005460ff1690565b60ff16141561258d5760405162461bcd60e51b8152600401610606906133d3565b6001546001600160a01b03163314806125b657506000546201000090046001600160a01b031633145b6125d25760405162461bcd60e51b8152600401610606906134e0565b6125da612880565b60006125f6600380546000908152600b60205260409020015490565b6009546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a082319060240160206040518083038186803b15801561263f57600080fd5b505afa158015612653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126779190613383565b60075460405163379607f560e01b815260048101859052919250630100000090046001600160a01b03169063379607f590602401600060405180830381600087803b1580156126c557600080fd5b505af11580156126d9573d6000803e3d6000fd5b50506009546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a082319060240160206040518083038186803b15801561272357600080fd5b505afa158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b9190613383565b90506127678383613558565b8110156127b65760405162461bcd60e51b815260206004820152601b60248201527f42616c616e636520766572696669636174696f6e206661696c656400000000006044820152606401610606565b6040518381527f652ad68d3e623a25d824203054acc050881d6da7ad6deb10e684f1aa1ca719aa906020016113c5565b6000546201000090046001600160a01b031633146128165760405162461bcd60e51b815260040161060690613408565b6001546001600160a01b03828116911614156128745760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207472616e7366657220746f20636f6e74726f6c6c65720000006044820152606401610606565b61287d81612de6565b50565b6000429050600061289360025483612ab9565b905060035481116128a5575050610617565b60008060035460016128b79190613558565b90505b828111612a7357816128cb816137be565b9250600b905060006128de6001846137a7565b81526020808201929092526040908101600090812054848252600b938490529181209190915561290f6001846137a7565b815260200190815260200160002060020154600b6000838152602001908152602001600020600201819055506000618e9460646006600a61295091906135f8565b600b600061295f6001886137a7565b81526020019081526020016000206000015461297b9190613749565b6129859190613749565b61298f919061359e565b905061299d6127108261359e565b600b60006129ac6001866137a7565b8152602001908152602001600020600101546129c89190613558565b600b6000848152602001908152602001600020600101819055506237b1d0600b60006001856129f791906137a7565b815260200190815260200160002060000154600b6000600186612a1a91906137a7565b815260200190815260200160002060020154612a369190613749565b612a40919061359e565b6000838152600b6020526040902060030155601e8310612a605750612a73565b5080612a6b816137be565b9150506128ba565b508060036000828254612a869190613558565b90915550506040517ff2eb0d6f17ed77827b94b524ebff9142ec50c557059b5617444ad54ee7bf71bf90600090a1505050565b600081831115612b0b5760405162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206f7264657220666f722074696d657374616d7073000000006044820152606401610606565b62015180612b1984846137a7565b612b23919061359e565b9392505050565b60007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470823f808214801590612b5e57508015155b949350505050565b600054610100900460ff16612bd15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610606565b60008311612c215760405162461bcd60e51b815260206004820152601a60248201527f496e76616c6964206d696e206465706f73697420616d6f756e740000000000006044820152606401610606565b6001600160a01b038116612c725760405162461bcd60e51b8152602060048201526018602482015277496e76616c6964206164647265737320666f72206665657360401b6044820152606401610606565b612c7c8989612e57565b600980546001600160a01b038089166001600160a01b03199283168117909355600a8054918b169190921617905560048481556040805163313ce56760e01b8152905163313ce56792828101926020929190829003018186803b158015612ce257600080fd5b505afa158015612cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1a91906133b7565b612d289060ff16600a6135f8565b600655426000612d3782612f37565b9050612d4a816001806000806000612f57565b6002819055612d599083612ab9565b600381815560408051608081018252998a526020808b01998a5260008b830181815260608d01828152958252600b9092529190912099518a55975160018a015596516002890155519690950195909555600591909155600880546001600160a01b039092166001600160a01b031990921691909117905550506007805460ff1916605a1790555050505050565b600080546001600160a01b038381166201000090810262010000600160b01b03198416179384905560408051938290048316808552919094049091166020830152917ff77c6eb92f5003da08a86ab833733c2f7f05480f4cc11bf57bf9fecb10873ad7910160405180910390a15050565b6001600160a01b038116612ead5760405162461bcd60e51b815260206004820152601b60248201527f436f6e74726f6c6c6572206164647265737320726571756972656400000000006044820152606401610606565b816001600160a01b0316816001600160a01b03161415612f0f5760405162461bcd60e51b815260206004820152601e60248201527f4f776e65722063616e6e6f742062652074686520436f6e74726f6c6c657200006044820152606401610606565b600180546001600160a01b0319166001600160a01b038316179055612f3382612de6565b5050565b6000612f4e612f49620151808461359e565b612fb3565b50909392505050565b600081612f65603c85613749565b612f71610e1087613749565b62015180612f808b8b8b613127565b612f8a9190613749565b612f949190613558565b612f9e9190613558565b612fa89190613558565b979650505050505050565b60008080838162253d8c612fca8362010bd9613517565b612fd49190613517565b9050600062023ab1612fe78360046136c6565b612ff19190613570565b905060046130028262023ab16136c6565b61300d906003613517565b6130179190613570565b6130219083613768565b9150600062164b09613034846001613517565b61304090610fa06136c6565b61304a9190613570565b9050600461305a826105b56136c6565b6130649190613570565b61306e9084613768565b61307990601f613517565b9250600061098f61308b8560506136c6565b6130959190613570565b9050600060506130a78361098f6136c6565b6130b19190613570565b6130bb9086613768565b90506130c8600b83613570565b94506130d585600c6136c6565b6130e0836002613517565b6130ea9190613768565b915084836130f9603187613768565b6131049060646136c6565b61310e9190613517565b6131189190613517565b9a919950975095505050505050565b60006107b28410156131635760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610606565b838383600062253d8c60046064600c61317d600e88613768565b6131879190613570565b61319388611324613517565b61319d9190613517565b6131a79190613570565b6131b29060036136c6565b6131bc9190613570565b600c806131ca600e88613768565b6131d49190613570565b6131df90600c6136c6565b6131ea600288613768565b6131f49190613768565b6132009061016f6136c6565b61320a9190613570565b6004600c613219600e89613768565b6132239190613570565b61322f896112c0613517565b6132399190613517565b613245906105b56136c6565b61324f9190613570565b61325b617d4b87613768565b6132659190613517565b61326f9190613517565b6132799190613768565b6132839190613768565b98975050505050505050565b80356001600160a01b038116811461113157600080fd5b6000602082840312156132b7578081fd5b612b238261328f565b60008060008060008060008060006101208a8c0312156132de578485fd5b6132e78a61328f565b98506132f560208b0161328f565b975061330360408b0161328f565b965061331160608b0161328f565b955060808a0135945060a08a0135935060c08a0135925060e08a0135915061333c6101008b0161328f565b90509295985092959850929598565b60006020828403121561335c578081fd5b81518015158114612b23578182fd5b60006020828403121561337c578081fd5b5035919050565b600060208284031215613394578081fd5b5051919050565b6000602082840312156133ac578081fd5b8135612b2381613805565b6000602082840312156133c8578081fd5b8151612b2381613805565b6020808252818101527f436f6e747261637420776173206e6f7420696e697469616c697a656420796574604082015260600190565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b6020808252601d908201527f5265656e7472616e74207769746864726177616c2072656a6563746564000000604082015260600190565b602080825260159082015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526018908201527f4f6e6c79206f776e6572206f7220636f6e74726f6c6c65720000000000000000604082015260600190565b600080821280156001600160ff1b0384900385131615613539576135396137d9565b600160ff1b8390038412811615613552576135526137d9565b50500190565b6000821982111561356b5761356b6137d9565b500190565b60008261357f5761357f6137ef565b600160ff1b821460001984141615613599576135996137d9565b500590565b6000826135ad576135ad6137ef565b500490565b80825b60018086116135c457506135ef565b8187048211156135d6576135d66137d9565b808616156135e357918102915b9490941c9380026135b5565b94509492505050565b6000612b23600019848460008261361157506001612b23565b8161361e57506000612b23565b8160018114613634576002811461363e5761366b565b6001915050612b23565b60ff84111561364f5761364f6137d9565b6001841b915084821115613665576136656137d9565b50612b23565b5060208310610133831016604e8410600b841016171561369e575081810a83811115613699576136996137d9565b612b23565b6136ab84848460016135b2565b8086048211156136bd576136bd6137d9565b02949350505050565b60006001600160ff1b03818413828413808216868404861116156136ec576136ec6137d9565b600160ff1b8487128281168783058912161561370a5761370a6137d9565b858712925087820587128484161615613725576137256137d9565b8785058712818416161561373b5761373b6137d9565b505050929093029392505050565b6000816000190483118215151615613763576137636137d9565b500290565b60008083128015600160ff1b850184121615613786576137866137d9565b6001600160ff1b03840183138116156137a1576137a16137d9565b50500390565b6000828210156137b9576137b96137d9565b500390565b60006000198214156137d2576137d26137d9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60ff8116811461287d57600080fdfea2646970667358221220e3b33d92c9bbad53a666e32043c9fb7d30e0c65ac23bd637a626e449b4e71a3564736f6c63430008030033