1 tx
7.8k calls
constructor
constructor(address pool)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
ATOKEN_REVISION
viewfunction ATOKEN_REVISION() view returns (uint256)
balanceOf
viewfunction balanceOf(address user) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
EIP712_REVISION
viewfunction EIP712_REVISION() view returns (bytes)
getIncentivesController
viewfunction getIncentivesController() view returns (address)
getPreviousIndex
viewfunction getPreviousIndex(address user) view returns (uint256)
getScaledUserBalanceAndSupply
viewfunction getScaledUserBalanceAndSupply(address user) view returns (uint256, uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
PERMIT_TYPEHASH
viewfunction PERMIT_TYPEHASH() view returns (bytes32)
POOL
viewfunction POOL() view returns (address)
RESERVE_TREASURY_ADDRESS
viewfunction RESERVE_TREASURY_ADDRESS() view returns (address)
scaledBalanceOf
viewfunction scaledBalanceOf(address user) view returns (uint256)
scaledTotalSupply
viewfunction scaledTotalSupply() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
UNDERLYING_ASSET_ADDRESS
viewfunction UNDERLYING_ASSET_ADDRESS() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(address from, address receiverOfUnderlying, uint256 amount, uint256 index)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
handleRepayment
nonpayablefunction handleRepayment(address user, address onBehalfOf, uint256 amount)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address initializingPool, address treasury, address underlyingAsset, address incentivesController, uint8 aTokenDecimals, string aTokenName, string aTokenSymbol, bytes params)
mint
nonpayablefunction mint(address caller, address onBehalfOf, uint256 amount, uint256 index) returns (bool)
mintToTreasury
nonpayablefunction mintToTreasury(uint256 amount, uint256 index)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
rescueTokens
nonpayablefunction rescueTokens(address token, address to, uint256 amount)
setIncentivesController
nonpayablefunction setIncentivesController(address controller)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
transferOnLiquidation
nonpayablefunction transferOnLiquidation(address from, address to, uint256 value)
transferUnderlyingTo
nonpayablefunction transferUnderlyingTo(address target, uint256 amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BalanceTransfer
event BalanceTransfer(address indexed from, address indexed to, uint256 value, uint256 index)
Burn
event Burn(address indexed from, address indexed target, uint256 value, uint256 balanceIncrease, uint256 index)
Initialized
event Initialized(address indexed underlyingAsset, address indexed pool, address treasury, address incentivesController, uint8 aTokenDecimals, string aTokenName, string aTokenSymbol, bytes params)
Mint
event Mint(address indexed caller, address indexed onBehalfOf, uint256 value, uint256 balanceIncrease, uint256 index)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x60e06040525f805534801562000013575f80fd5b5060405162002b3538038062002b35833981016040819052620000369162000165565b80806040518060400160405280600b81526020016a105513d2d15397d253541360aa1b8152506040518060400160405280600b81526020016a105513d2d15397d253541360aa1b8152505f8383838383838383836001600160a01b0316630542975c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000ec919062000165565b6001600160a01b0316608052603762000106848262000228565b50603862000115838262000228565b506039805460ff191660ff9290921691909117905550506001600160a01b031660a05250504660c05250620002f49650505050505050565b6001600160a01b038116811462000162575f80fd5b50565b5f6020828403121562000176575f80fd5b815162000183816200014d565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620001b357607f821691505b602082108103620001d257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200022357805f5260205f20601f840160051c81016020851015620001ff5750805b601f840160051c820191505b8181101562000220575f81556001016200020b565b50505b505050565b81516001600160401b038111156200024457620002446200018a565b6200025c816200025584546200019e565b84620001d8565b602080601f83116001811462000292575f84156200027a5750858301515b5f19600386901b1c1916600185901b178555620002ec565b5f85815260208120601f198616915b82811015620002c257888601518255948401946001909101908401620002a1565b5085821015620002e057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c0516127b4620003815f395f61152601525f818161035801528181610626015281816107420152818161089601528181610a0101528181610a7f01528181610af301528181610b8901528181610bdf01528181610cc0015281816110e7015281816112c9015281816119a40152611a8701525f8181610d1f015261116401526127b45ff3fe608060405234801561000f575f80fd5b50600436106101fd575f3560e01c80637816037611610114578063b1bf962d116100a9578063d7020d0a11610079578063d7020d0a1461047f578063dd62ed3e14610492578063e0753986146104ca578063e655dbd814610502578063f866c31914610515575f80fd5b8063b1bf962d1461043e578063b3f1c93d14610446578063cea9d26f14610459578063d505accf1461046c575f80fd5b8063a457c2d7116100e4578063a457c2d7146103f6578063a9059cbb14610409578063ae1673351461041c578063b16a19de1461042d575f80fd5b806378160376146103a85780637df5bd3b146103c85780637ecebe00146103db57806395d89b41146103ee575f80fd5b806330adf81f116101955780634efecaa5116101655780634efecaa51461031a5780636fd976761461032d57806370a08231146103405780637535d2461461035357806375d2641314610392575f80fd5b806330adf81f146102c3578063313ce567146102ea5780633644e515146102ff5780633950935114610307575f80fd5b806318160ddd116101d057806318160ddd14610280578063183fb413146102885780631da24f3e1461029d57806323b872dd146102b0575f80fd5b806306fdde0314610201578063095ea7b31461021f5780630afbcdc9146102425780630bd7ad3b1461026a575b5f80fd5b610209610528565b604051610216919061218b565b60405180910390f35b61023261022d3660046121cb565b6105b8565b6040519015158152602001610216565b6102556102503660046121f5565b6105ce565b60408051928352602083019190915201610216565b610272600281565b604051908152602001610216565b6102726105e5565b61029b610296366004612265565b61069c565b005b6102726102ab3660046121f5565b61092f565b6102326102be36600461234f565b610939565b6102727f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60395460405160ff9091168152602001610216565b6102726109a1565b6102326103153660046121cb565b6109af565b61029b6103283660046121cb565b6109e5565b61029b61033b36600461234f565b610a63565b61027261034e3660046121f5565b610acb565b61037a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610216565b60395461010090046001600160a01b031661037a565b610209604051806040016040528060018152602001603160f81b81525081565b61029b6103d636600461238d565b610b6d565b6102726103e93660046121f5565b610c14565b610209610c31565b6102326104043660046121cb565b610c40565b6102326104173660046121cb565b610c76565b603c546001600160a01b031661037a565b603d546001600160a01b031661037a565b610272610c98565b6102326104543660046123ad565b610ca2565b61029b61046736600461234f565b610d1c565b61029b61047a3660046123f0565b610e9c565b61029b61048d3660046123ad565b6110cb565b6102726104a0366004612459565b6001600160a01b039182165f90815260356020908152604080832093909416825291909152205490565b6102726104d83660046121f5565b6001600160a01b03165f90815260346020526040902054600160801b90046001600160801b031690565b61029b6105103660046121f5565b611161565b61029b61052336600461234f565b6112ad565b60606037805461053790612490565b80601f016020809104026020016040519081016040528092919081815260200182805461056390612490565b80156105ae5780601f10610585576101008083540402835291602001916105ae565b820191905f5260205f20905b81548152906001019060200180831161059157829003601f168201915b5050505050905090565b5f6105c433848461131c565b5060015b92915050565b5f806105d98361137c565b60365491509150915091565b5f806105f060365490565b9050805f03610600575f91505090565b603d5460405163d15e005360e01b81526001600160a01b039182166004820152610696917f0000000000000000000000000000000000000000000000000000000000000000169063d15e005390602401602060405180830381865afa15801561066b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068f91906124c2565b829061139f565b91505090565b60015460029060ff16806106af5750303b155b806106ba57505f5481115b6107225760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b60015460ff16158015610740576001805460ff1916811790555f8290555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168d6001600160a01b03161460405180604001604052806002815260200161383760f01b815250906107ae5760405162461bcd60e51b8152600401610719919061218b565b506107ed88888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506113e192505050565b61082b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506113ed92505050565b6039805460ff191660ff8b16179055603c80546001600160a01b03808f166001600160a01b031992831617909255603d80548e8416921691909117905560398054918c1661010002610100600160a81b031990921691909117905561088e6113f9565b603b819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b03167fb19e051f8af41150ccccb3fc2c2d8d15f4a4cf434f32a559ba75fe73d6eea20b8e8d8d8d8d8d8d8d8d60405161090799989796959493929190612501565b60405180910390a38015610920576001805460ff191690555b50505050505050505050505050565b5f6105c88261137c565b5f80610944836114a1565b6001600160a01b0386165f9081526035602090815260408083203380855292529091205491925061098b91879190610986906001600160801b03861690612582565b61131c565b61099685858361150d565b506001949350505050565b5f6109aa611523565b905090565b335f8181526035602090815260408083206001600160a01b038716845290915281205490916105c4918590610986908690612595565b604080518082019091526002815261323360f01b6020820152337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610a475760405162461bcd60e51b8152600401610719919061218b565b50603d54610a5f906001600160a01b0316838361155a565b5050565b604080518082019091526002815261323360f01b6020820152337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610ac55760405162461bcd60e51b8152600401610719919061218b565b50505050565b603d5460405163d15e005360e01b81526001600160a01b0391821660048201525f916105c8917f00000000000000000000000000000000000000000000000000000000000000009091169063d15e005390602401602060405180830381865afa158015610b3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5e91906124c2565b610b678461137c565b9061139f565b604080518082019091526002815261323360f01b6020820152337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610bcf5760405162461bcd60e51b8152600401610719919061218b565b508115610a5f57603c54610c0f907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031684846115e2565b505050565b6001600160a01b0381165f908152603a60205260408120546105c8565b60606038805461053790612490565b335f8181526035602090815260408083206001600160a01b038716845290915281205490916105c4918590610986908690612582565b5f80610c81836114a1565b9050610c8e33858361150d565b5060019392505050565b5f6109aa60365490565b604080518082019091526002815261323360f01b60208201525f90337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610d065760405162461bcd60e51b8152600401610719919061218b565b50610d13858585856115e2565b95945050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663707cd7166040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9d91906125a8565b604051637be53ca160e01b81523360048201529091506001600160a01b03821690637be53ca190602401602060405180830381865afa158015610de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0691906125c3565b604051806040016040528060018152602001603160f81b81525090610e3e5760405162461bcd60e51b8152600401610719919061218b565b50603d54604080518082019091526002815261383560f01b6020820152906001600160a01b03868116911603610e875760405162461bcd60e51b8152600401610719919061218b565b50610ac56001600160a01b038516848461155a565b604080518082019091526002815261373760f01b60208201526001600160a01b038816610edc5760405162461bcd60e51b8152600401610719919061218b565b50834211156040518060400160405280600281526020016106e760f31b81525090610f1a5760405162461bcd60e51b8152600401610719919061218b565b506001600160a01b0387165f908152603a602052604081205490610f3c6109a1565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810184905260c0810188905260e00160405160208183030381529060405280519060200120604051602001610fd592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa15801561103a573d5f803e3d5ffd5b505050602060405103516001600160a01b0316896001600160a01b03161460405180604001604052806002815260200161373960f01b815250906110915760405162461bcd60e51b8152600401610719919061218b565b5061109d826001612595565b6001600160a01b038a165f908152603a60205260409020556110c089898961131c565b505050505050505050565b604080518082019091526002815261323360f01b6020820152337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461112d5760405162461bcd60e51b8152600401610719919061218b565b5061113a8484848461175f565b6001600160a01b0383163014610ac557603d54610ac5906001600160a01b0316848461155a565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663707cd7166040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e291906125a8565b604051637be53ca160e01b81523360048201529091506001600160a01b03821690637be53ca190602401602060405180830381865afa158015611227573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124b91906125c3565b604051806040016040528060018152602001603160f81b815250906112835760405162461bcd60e51b8152600401610719919061218b565b5050603980546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b604080518082019091526002815261323360f01b6020820152337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461130f5760405162461bcd60e51b8152600401610719919061218b565b50610c0f8383835f61197d565b6001600160a01b038381165f8181526035602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03165f908152603460205260409020546001600160801b031690565b5f81156b019d971e4fe8401e7400000019839004841115176113bf575f80fd5b506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b6037610a5f828261263a565b6038610a5f828261263a565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611423611b2c565b805160209182012060408051808201825260018152603160f81b90840152805192830193909352918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f6001600160801b038211156115095760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610719565b5090565b610c0f8383836001600160801b0316600161197d565b5f7f000000000000000000000000000000000000000000000000000000000000000046036115525750603b5490565b6109aa6113f9565b60405163a9059cbb60e01b8082526001600160a01b038416600483015260248201839052905f8060448382895af1611594573d5f803e3d5ffd5b5061159e84611b36565b610ac55760405162461bcd60e51b815260206004820152601560248201527423a83b191d103330b4b632b2103a3930b739b332b960591b6044820152606401610719565b5f806115ee8484611bd9565b6040805180820190915260028152610c8d60f21b6020820152909150816116285760405162461bcd60e51b8152600401610719919061218b565b505f6116338661137c565b6001600160a01b0387165f908152603460205260408120549192509061166a908390600160801b90046001600160801b031661139f565b611674838761139f565b61167e9190612582565b9050611689856114a1565b6001600160a01b0388165f90815260346020526040902080546001600160801b03928316600160801b0292169190911790556116cd876116c8856114a1565b611c16565b5f6116d88288612595565b9050876001600160a01b03165f6001600160a01b03165f805160206127888339815191528360405161170c91815260200190565b60405180910390a360408051828152602081018490529081018790526001600160a01b03808a1691908b16905f805160206127688339815191529060600160405180910390a35050159695505050505050565b5f61176a8383611bd9565b604080518082019091526002815261323560f01b6020820152909150816117a45760405162461bcd60e51b8152600401610719919061218b565b505f6117af8661137c565b6001600160a01b0387165f90815260346020526040812054919250906117e6908390600160801b90046001600160801b031661139f565b6117f0838661139f565b6117fa9190612582565b9050611805846114a1565b6001600160a01b0388165f90815260346020526040902080546001600160801b03928316600160801b02921691909117905561184987611844856114a1565b611d00565b848111156118d9575f61185c8683612582565b9050876001600160a01b03165f6001600160a01b03165f805160206127888339815191528360405161189091815260200190565b60405180910390a360408051828152602081018490529081018690526001600160a01b0389169081905f805160206127688339815191529060600160405180910390a350611974565b5f6118e48287612582565b90505f6001600160a01b0316886001600160a01b03165f805160206127888339815191528360405161191891815260200190565b60405180910390a360408051828152602081018490529081018690526001600160a01b0380891691908a16907f4cf25bc1d991c17529c25213d3cc0cda295eeaad5f13f361969b12ea48015f90906060015b60405180910390a3505b50505050505050565b603d5460405163d15e005360e01b81526001600160a01b0391821660048201819052915f917f00000000000000000000000000000000000000000000000000000000000000009091169063d15e005390602401602060405180830381865afa1580156119eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0f91906124c2565b90505f611a1f82610b678961137c565b90505f611a2f83610b678961137c565b9050611a3d88888886611d44565b8415611adf5760405163d5ed393360e01b81526001600160a01b03858116600483015289811660248301528881166044830152606482018890526084820184905260a482018390527f0000000000000000000000000000000000000000000000000000000000000000169063d5ed39339060c4015f604051808303815f87803b158015611ac8575f80fd5b505af1158015611ada573d5f803e3d5ffd5b505050505b6001600160a01b038088169089167f4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda8666611b188987611bd9565b60408051918252602082018890520161196a565b60606109aa610528565b5f611b58565b62461bcd60e51b5f52602060045280602452508060445260645ffd5b3d8015611b975760208114611bc857611b927f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f611b3c565b611bd3565b823b611bbf57611bbf7311d41d8c8e881b9bdd08184818dbdb9d1c9858dd60621b6014611b3c565b60019150611bd3565b3d5f803e5f51151591505b50919050565b5f81156b033b2e3c9fd0803ce800000060028404190484111715611bfb575f80fd5b506b033b2e3c9fd0803ce80000009190910260028204010490565b603654611c2c6001600160801b03831682612595565b6036556001600160a01b0383165f908152603460205260409020546001600160801b0316611c5a83826126f6565b6001600160a01b038581165f90815260346020526040902080546001600160801b0319166001600160801b0393909316929092179091556039546101009004168015611cf9576040516318c39f1760e11b81526001600160a01b038216906331873e2e90611cd09088908790879060040161271d565b5f604051808303815f87803b158015611ce7575f80fd5b505af11580156110c0573d5f803e3d5ffd5b5050505050565b603654611d166001600160801b03831682612582565b6036556001600160a01b0383165f908152603460205260409020546001600160801b0316611c5a8382612747565b5f611d4e8561137c565b6001600160a01b0386165f9081526034602052604081205491925090611d85908390600160801b90046001600160801b031661139f565b611d8f838561139f565b611d999190612582565b90505f611da58661137c565b6001600160a01b0387165f9081526034602052604081205491925090611ddc908390600160801b90046001600160801b031661139f565b611de6838761139f565b611df09190612582565b9050611dfb856114a1565b6001600160a01b0389165f90815260346020526040902080546001600160801b03928316600160801b029216919091179055611e36856114a1565b6001600160a01b0388165f90815260346020526040902080546001600160801b03928316600160801b029216919091179055611e848888611e7f611e7a8a8a611bd9565b6114a1565b611fb2565b8215611ef2576040518381526001600160a01b038916905f905f805160206127888339815191529060200160405180910390a3604080518481526020810185905280820187905290516001600160a01b038a169133915f805160206127688339815191529181900360600190a35b866001600160a01b0316886001600160a01b031614158015611f1357505f81115b15611f80576040518181526001600160a01b038816905f905f805160206127888339815191529060200160405180910390a3604080518281526020810183905280820187905290516001600160a01b0389169133915f805160206127688339815191529181900360600190a35b866001600160a01b0316886001600160a01b03165f805160206127888339815191528860405161196a91815260200190565b6001600160a01b0383165f908152603460205260409020546001600160801b0316611fdd8282612747565b6001600160a01b038581165f9081526034602052604080822080546001600160801b0319166001600160801b03958616179055918616815220541661202283826126f6565b6001600160a01b038581165f90815260346020526040902080546001600160801b0319166001600160801b0393909316929092179091556039546101009004168015612140576036546040516318c39f1760e11b81526001600160a01b038316906331873e2e9061209b908a908590899060040161271d565b5f604051808303815f87803b1580156120b2575f80fd5b505af11580156120c4573d5f803e3d5ffd5b50505050856001600160a01b0316876001600160a01b031614611974576040516318c39f1760e11b81526001600160a01b038316906331873e2e906121119089908590889060040161271d565b5f604051808303815f87803b158015612128575f80fd5b505af115801561213a573d5f803e3d5ffd5b50505050505b505050505050565b5f81518084525f5b8181101561216c57602081850181015186830182015201612150565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61219d6020830184612148565b9392505050565b6001600160a01b03811681146121b8575f80fd5b50565b80356121c6816121a4565b919050565b5f80604083850312156121dc575f80fd5b82356121e7816121a4565b946020939093013593505050565b5f60208284031215612205575f80fd5b813561219d816121a4565b803560ff811681146121c6575f80fd5b5f8083601f840112612230575f80fd5b50813567ffffffffffffffff811115612247575f80fd5b60208301915083602082850101111561225e575f80fd5b9250929050565b5f805f805f805f805f805f6101008c8e031215612280575f80fd5b6122898c6121bb565b9a5061229760208d016121bb565b99506122a560408d016121bb565b98506122b360608d016121bb565b97506122c160808d01612210565b965067ffffffffffffffff8060a08e013511156122dc575f80fd5b6122ec8e60a08f01358f01612220565b909750955060c08d0135811015612301575f80fd5b6123118e60c08f01358f01612220565b909550935060e08d0135811015612326575f80fd5b506123378d60e08e01358e01612220565b81935080925050509295989b509295989b9093969950565b5f805f60608486031215612361575f80fd5b833561236c816121a4565b9250602084013561237c816121a4565b929592945050506040919091013590565b5f806040838503121561239e575f80fd5b50508035926020909101359150565b5f805f80608085870312156123c0575f80fd5b84356123cb816121a4565b935060208501356123db816121a4565b93969395505050506040820135916060013590565b5f805f805f805f60e0888a031215612406575f80fd5b8735612411816121a4565b96506020880135612421816121a4565b9550604088013594506060880135935061243d60808901612210565b925060a0880135915060c0880135905092959891949750929550565b5f806040838503121561246a575f80fd5b8235612475816121a4565b91506020830135612485816121a4565b809150509250929050565b600181811c908216806124a457607f821691505b602082108103611bd357634e487b7160e01b5f52602260045260245ffd5b5f602082840312156124d2575f80fd5b5051919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b038a811682528916602082015260ff8816604082015260c0606082018190525f90612536908301888a6124d9565b82810360808401526125498187896124d9565b905082810360a084015261255e8185876124d9565b9c9b505050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105c8576105c861256e565b808201808211156105c8576105c861256e565b5f602082840312156125b8575f80fd5b815161219d816121a4565b5f602082840312156125d3575f80fd5b8151801515811461219d575f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f821115610c0f57805f5260205f20601f840160051c8101602085101561261b5750805b601f840160051c820191505b81811015611cf9575f8155600101612627565b815167ffffffffffffffff811115612654576126546125e2565b612668816126628454612490565b846125f6565b602080601f83116001811461269b575f84156126845750858301515b5f19600386901b1c1916600185901b178555612140565b5f85815260208120601f198616915b828110156126c9578886015182559484019460019091019084016126aa565b50858210156126e657878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160801b038181168382160190808211156127165761271661256e565b5092915050565b6001600160a01b0393909316835260208301919091526001600160801b0316604082015260600190565b6001600160801b038281168282160390808211156127165761271661256e56fe458f5fa412d0f69b08dd84872b0215675cc67bc1d5b6fd93300a1c3878b86196ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c6343000816000a000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8