0 txs
1 call
constructor
constructor()
functions
aprAfterDebtChange
viewfunction aprAfterDebtChange(address _strategy, int256 _delta) view returns (uint256)
getRewardsRate
viewfunction getRewardsRate() view returns (uint256)
getUnderlyingYield
viewfunction getUnderlyingYield(address _vault, int256 _delta) view returns (uint256)
governance
viewfunction governance() view returns (address)
morphoRate
viewfunction morphoRate() view returns (uint256)
name
viewfunction name() view returns (string)
wellRate
viewfunction wellRate() view returns (uint256)
setMorphoRate
nonpayablefunction setMorphoRate(uint256 _morphoRate)
setWellRate
nonpayablefunction setWellRate(uint256 _wellRate)
transferGovernance
nonpayablefunction transferGovernance(address _newGovernance)
events
GovernanceTransferred
event GovernanceTransferred(address indexed previousGovernance, address indexed newGovernance)
errors
R
error R()
T
error T()
creation bytecode
0x608060405268016f1146dca5150000600255685150ae84a8cdf000006003553480156200002a575f80fd5b5060408051808201825260118152704d6f7270686f20417072204f7261636c6560781b60208201525f80546001600160a01b0319163390811782559251919291829182917f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80908290a3506001620000a2838262000149565b50505062000215565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620000d457607f821691505b602082108103620000f357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200014457805f5260205f20601f840160051c81016020851015620001205750805b601f840160051c820191505b8181101562000141575f81556001016200012c565b50505b505050565b81516001600160401b03811115620001655762000165620000ab565b6200017d81620001768454620000bf565b84620000f9565b602080601f831160018114620001b3575f84156200019b5750858301515b5f19600386901b1c1916600185901b1785556200020d565b5f85815260208120601f198616915b82811015620001e357888601518255948401946001909101908401620001c2565b50858210156200020157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b612e0d80620002235f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c806383118ff41161006357806383118ff414610124578063a0df48b114610139578063b39e391d14610141578063d38bfff414610154578063e5cf16fe14610167575f80fd5b806306fdde031461009f5780632d9e85bd146100bd5780635aa6e675146100de5780635effd371146101085780636bf164db14610111575b5f80fd5b6100a7610170565b6040516100b491906125df565b60405180910390f35b6100d06100cb366004612642565b6101fc565b6040519081526020016100b4565b5f546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020016100b4565b6100d060035481565b6100d061011f366004612642565b6102a2565b61013761013236600461266c565b61075d565b005b6100d061076a565b61013761014f36600461266c565b6108d9565b610137610162366004612683565b6108e6565b6100d060025481565b6001805461017d9061269e565b80601f01602080910402602001604051908101604052809291908181526020018280546101a99061269e565b80156101f45780601f106101cb576101008083540402835291602001916101f4565b820191905f5260205f20905b8154815290600101906020018083116101d757829003601f168201915b505050505081565b5f80610267846001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026191906126d6565b846102a2565b90505f61271061027561076a565b6102819061251c612705565b61028b9190612730565b90506102978282612743565b925050505b92915050565b5f808390505f816001600160a01b03166333f91ebb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103089190612756565b90505f826001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610347573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036b9190612756565b90505f805b838110156106a0576040516362518ddf60e01b8152600481018290525f906001600160a01b038716906362518ddf90602401602060405180830381865afa1580156103bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e19190612756565b604051632c3c915760e01b8152600481018290529091505f9073bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb90632c3c91579060240160a060405180830381865afa158015610434573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061045891906127b2565b60608101519091506001600160a01b0316610474575050610698565b5f61049473bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb838d610987565b9050805f036104a557505050610698565b5f866104b18c84612841565b6104bb9190612870565b604051632e3071cd60e11b8152600481018690529091505f9073bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb90635c60e39a9060240160c060405180830381865afa15801561050e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053291906128b2565b90505f82825f01516001600160801b031661054d919061294f565b6001600160801b03811683526060860151604051638c00bf6b60e01b81529192505f916001600160a01b0390911690638c00bf6b906105929089908790600401612976565b602060405180830381865afa1580156105ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d19190612756565b90505f6105e26301e1855883612705565b90505f670de0b6b3a7640000808660a001516001600160801b0316670de0b6b3a76400006106109190612a0b565b866001600160801b0316670de0b6b3a764000089604001516001600160801b031661063b9190612705565b6106459190612730565b61064f9086612705565b6106599190612705565b6106639190612730565b61066d9190612730565b90506106826001600160801b03851682612705565b61068c908c612743565b9a505050505050505050505b600101610370565b50670de0b6b3a7640000876001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070a9190612a1e565b61072a906bffffffffffffffffffffffff16670de0b6b3a7640000612a0b565b610734888561294f565b61073e9084612730565b6107489190612705565b6107529190612730565b979650505050505050565b6107656109da565b600355565b5f806107ae732f42df4af5312b492e9d7f7b2110d9c7bf2d9e4f5f600254600173fffd8963efd1fc6a506488495d951d5263988d266107a99190612a49565b610a23565b50905064174876e80060035473bbf812fc0e45f58121983bd07c5079ff74433a616001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e9190612756565b6108389190612705565b61084183612a70565b7371041dddad3595f9ced3dccfbe3d1f4b0a16bb706001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610891573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b59190612756565b6108bf9190612705565b6108c99190612743565b6108d39190612730565b91505090565b6108e16109da565b600255565b6108ee6109da565b6001600160a01b0381166109385760405162461bcd60e51b815260206004820152600c60248201526b5a45524f204144445245535360a01b60448201526064015b60405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce809190a35050565b5f806109948460a0902090565b90505f6109ab6001600160a01b03871683866110cd565b90505f806109b98888611176565b5091935091506109cc90508383836113f1565b9450505050505b9392505050565b5f546001600160a01b03163314610a215760405162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015260640161092f565b565b5f80835f03610a595760405162461bcd60e51b8152602060048201526002602482015261415360f01b604482015260640161092f565b5f80876001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610a97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abb9190612abb565b50505050509150915086610b0b57816001600160a01b0316856001600160a01b0316118015610b06575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038616105b610b39565b816001600160a01b0316856001600160a01b0316108015610b3957506401000276a36001600160a01b038616115b610b6b5760405162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015260640161092f565b5f6040518060a00160405280846001600160a01b031681526020018360020b81526020018a6001600160a01b0316631a6865026040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef9190612b45565b6001600160801b031681526020018a6001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5d9190612b5e565b62ffffff1681526020018a6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc79190612b80565b600290810b9091526040805160a0810182528a81525f602080830182905285516001600160a01b03168385015285015190930b6060820152908301516001600160801b031660808201529192508813905b805115801590610d3e5750876001600160a01b031681604001516001600160a01b031614155b15611088576040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915260408201516001600160a01b03908116825260608301516080860151610daa928f1691635339c296918f61141d565b1515604083015260020b60208201819052620d89e7191315610dd557620d89e7196020820152610e09565b610de2620d89e719612b99565b60020b816020015160020b1315610e0957610e00620d89e719612b99565b60020b60208201525b610e1681602001516115fe565b6001600160a01b031660608201526040820151610e8b908c610e50578a6001600160a01b031683606001516001600160a01b031611610e6a565b8a6001600160a01b031683606001516001600160a01b0316105b610e78578260600151610e7a565b8a5b608085015185516060890151611919565b60c085015260a084015260808301526001600160a01b031660408301528215610eed57610ec18160c00151826080015101611b01565b825103825260a0810151610ed490611b01565b82602001818151610ee59190612bb9565b905250610f30565b610efa8160a00151611b01565b825101825260c08101516080820151610f1b91610f1691612743565b611b01565b82602001818151610f2c919061294f565b9052505b80606001516001600160a01b031682604001516001600160a01b03160361104c5780604001511561102757602081015160405163f30dba9360e01b815260029190910b60048201525f906001600160a01b038e169063f30dba939060240161010060405180830381865afa158015610faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fce9190612bd8565b5050505050509150508b15610fe0575f035b5f81600f0b12610fff57808360800151610ffa9190612c7a565b611017565b61100881612c9a565b83608001516110179190612cbf565b6001600160801b03166080840152505b8a61103657806020015161103f565b60018160200151035b60020b6060830152611082565b805f01516001600160a01b031682604001516001600160a01b031614611082576110798260400151611b15565b60020b60608301525b50610d18565b8115158a1515146110a957602081015181516110a4908b612bb9565b6110bb565b80516110b5908a612bb9565b81602001515b909c909b509950505050505050505050565b5f806110e16110dc8585611e1a565b611e8c565b604051637784c68560e01b81529091506001600160a01b03861690637784c68590611110908490600401612cdf565b5f60405180830381865afa15801561112a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111519190810190612d22565b5f8151811061116257611162612dc3565b60200260200101515f1c9150509392505050565b5f805f805f6111868660a0902090565b604051632e3071cd60e11b8152600481018290529091505f906001600160a01b03891690635c60e39a9060240160c060405180830381865afa1580156111ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f291906128b2565b90505f81608001516001600160801b03164261120e9190612a0b565b9050801580159061122b575060408201516001600160801b031615155b8015611243575060608801516001600160a01b031615155b156113bd576060880151604051638c00bf6b60e01b81525f916001600160a01b031690638c00bf6b9061127c908c908790600401612976565b602060405180830381865afa158015611297573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bb9190612756565b90505f6112df6112cb8385611ed5565b60408601516001600160801b031690611f3d565b90506112ea81611f51565b846040018181516112fb9190612c7a565b6001600160801b031690525061131081611f51565b8451859061131f908390612c7a565b6001600160801b0390811690915260a0860151161590506113ba575f61135b8560a001516001600160801b031683611f3d90919063ffffffff16565b90505f61138f82875f01516001600160801b03166113799190612a0b565b60208801518491906001600160801b0316611fad565b905061139a81611f51565b866020018181516113ab9190612c7a565b6001600160801b031690525050505b50505b508051602082015160408301516060909301516001600160801b039283169b9183169a509282169850911695509350505050565b5f611415611400600185612743565b61140d620f424085612743565b869190611fc9565b949350505050565b5f805f8460020b8660020b816114355761143561271c565b0590505f8660020b12801561146157508460020b8660020b8161145a5761145a61271c565b0760020b15155b1561146a575f19015b8315611531576040516001600160e01b031960e089901b168152600282900b600881901d600181810b600485015290926101009092079160ff83169190911b80015f1901905f9082908d908d90602401602060405180830381865afa1580156114d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f99190612756565b16801515965090508561151357888360ff16860302611526565b8861151d82611fdf565b840360ff168603025b9650505050506115f3565b60405160e088901b6001600160e01b0319168152600182810160020b600881901d80830b6004850152926101009091079160ff83161b5f190119905f9082908d908d90602401602060405180830381865afa158015611592573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b69190612756565b1680151596509050856115d657888360ff0360ff168660010101026115ec565b88836115e18361207e565b0360ff168660010101025b9650505050505b509550959350505050565b5f805f8360020b12611613578260020b61161a565b8260020b5f035b9050620d89e8811115611640576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361165557600160801b611667565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561169b576ffff97272373d413259a46990580e213a0260801c5b60048216156116ba576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156116d9576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156116f8576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611717576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611736576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611755576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611775576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611795576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156117b5576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156117d5576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156117f5576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611815576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611835576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611855576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611876576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611896576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156118b5576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156118d2576b048a170391f7dc42444e8fa20260801c5b5f8460020b13156118f157805f19816118ed576118ed61271c565b0490505b640100000000810615611905576001611907565b5f5b60ff16602082901c0192505050919050565b5f8080806001600160a01b03808916908a16101581871280159061199c575f6119508989620f42400362ffffff16620f4240612165565b905082611969576119648c8c8c600161220f565b611976565b6119768b8d8c6001612287565b9550858110611987578a9650611996565b6119938c8b8386612331565b96505b506119e2565b816119b2576119ad8b8b8b5f612287565b6119be565b6119be8a8c8b5f61220f565b935083885f03106119d1578995506119e2565b6119df8b8a8a5f0385612379565b95505b6001600160a01b038a8116908716148215611a4457808015611a015750815b611a1757611a12878d8c6001612287565b611a19565b855b9550808015611a26575081155b611a3b57611a36878d8c5f61220f565b611a3d565b845b9450611a8d565b808015611a4e5750815b611a6457611a5f8c888c600161220f565b611a66565b855b9550808015611a73575081155b611a8857611a838c888c5f612287565b611a8a565b845b94505b81158015611a9c5750885f0385115b15611aa757885f0394505b818015611ac657508a6001600160a01b0316876001600160a01b031614155b15611ad5578589039350611af2565b611aef868962ffffff168a620f42400362ffffff166123bf565b93505b50505095509550955095915050565b5f600160ff1b8210611b11575f80fd5b5090565b5f6401000276a36001600160a01b03831610801590611b50575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b611b6d576040516324c070df60e11b815260040160405180910390fd5b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110611c0157607f810383901c9150611c0b565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611e0b57886001600160a01b0316611df0826115fe565b6001600160a01b03161115611e055781611e0d565b80611e0d565b815b9998505050505050505050565b5f8082846002604051602001611e3a929190918252602082015260400190565b60408051601f1981840301815282825280516020918201206001600160a01b0390941690830152810191909152606001604051602081830303815290604052805190602001205f1c6109d39190612743565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f81518110611ec457611ec4612dc3565b602090810291909101015292915050565b5f80611ee18385612705565b90505f611f018280611efc670de0b6b3a76400006002612705565b611fc9565b90505f611f1c8284611efc670de0b6b3a76400006003612705565b905080611f298385612743565b611f339190612743565b9695505050505050565b5f6109d38383670de0b6b3a7640000611fc9565b6040805180820190915260148152731b585e081d5a5b9d0c4c8e08195e18d95959195960621b60208201525f906001600160801b03831115611fa65760405162461bcd60e51b815260040161092f91906125df565b5090919050565b5f611415611fbe620f424084612743565b61140d600186612743565b5f81611fd58486612705565b6114159190612730565b5f808211611feb575f80fd5b600160801b8210611ffe57608091821c91015b68010000000000000000821061201657604091821c91015b640100000000821061202a57602091821c91015b62010000821061203c57601091821c91015b610100821061204d57600891821c91015b6010821061205d57600491821c91015b6004821061206d57600291821c91015b60028210612079576001015b919050565b5f80821161208a575f80fd5b5060ff6001600160801b038216156120a557607f19016120ad565b608082901c91505b67ffffffffffffffff8216156120c657603f19016120ce565b604082901c91505b63ffffffff8216156120e357601f19016120eb565b602082901c91505b61ffff8216156120fe57600f1901612106565b601082901c91505b60ff8216156121185760071901612120565b600882901c91505b600f821615612132576003190161213a565b600482901c91505b600382161561214c5760011901612154565b600282901c91505b6001821615612079575f1901919050565b5f80805f19858709858702925082811083820303915050805f03612199575f841161218e575f80fd5b5082900490506109d3565b8084116121a4575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f836001600160a01b0316856001600160a01b0316111561222e579293925b8161225b57612256836001600160801b03168686036001600160a01b0316600160601b612165565b61227e565b61227e836001600160801b03168686036001600160a01b0316600160601b6123bf565b95945050505050565b5f836001600160a01b0316856001600160a01b031611156122a6579293925b600160601b600160e01b03606084901b166001600160a01b0386860381169087166122cf575f80fd5b8361230557866001600160a01b03166122f28383896001600160a01b0316612165565b816122ff576122ff61271c565b04610752565b61075261231c8383896001600160a01b03166123bf565b886001600160a01b0316808204910615150190565b5f80856001600160a01b031611612346575f80fd5b5f846001600160801b03161161235a575f80fd5b8161236c5761225685858560016123fb565b61227e85858560016124dd565b5f80856001600160a01b03161161238e575f80fd5b5f846001600160801b0316116123a2575f80fd5b816123b3576122568585855f6124dd565b61227e8585855f6123fb565b5f6123cb848484612165565b90505f82806123dc576123dc61271c565b84860911156109d3575f1981106123f1575f80fd5b6001019392505050565b5f811561246b575f6001600160a01b0384111561242f5761242a84600160601b876001600160801b0316612165565b612446565b6124466001600160801b038616606086901b612730565b905061246361245e826001600160a01b038916612743565b6125ca565b915050611415565b5f6001600160a01b038411156124985761249384600160601b876001600160801b03166123bf565b6124b5565b6124b5606085901b6001600160801b038716808204910615150190565b905080866001600160a01b0316116124cb575f80fd5b6001600160a01b038616039050611415565b5f825f036124ec575083611415565b600160601b600160e01b03606085901b16821561257e576001600160a01b038616848102908582816125205761252061271c565b04036125505781810182811061254e5761254483896001600160a01b0316836123bf565b9350505050611415565b505b5061246381856125696001600160a01b038a1683612730565b6125739190612743565b808204910615150190565b6001600160a01b0386168481029085828161259b5761259b61271c565b041480156125a857508082115b6125b0575f80fd5b80820361254461245e846001600160a01b038b16846123bf565b806001600160a01b0381168114612079575f80fd5b5f602080835283518060208501525f5b8181101561260b578581018301518582016040015282016125ef565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461263f575f80fd5b50565b5f8060408385031215612653575f80fd5b823561265e8161262b565b946020939093013593505050565b5f6020828403121561267c575f80fd5b5035919050565b5f60208284031215612693575f80fd5b81356109d38161262b565b600181811c908216806126b257607f821691505b6020821081036126d057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156126e6575f80fd5b81516109d38161262b565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761029c5761029c6126f1565b634e487b7160e01b5f52601260045260245ffd5b5f8261273e5761273e61271c565b500490565b8082018082111561029c5761029c6126f1565b5f60208284031215612766575f80fd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156127aa576127aa61276d565b604052919050565b5f60a082840312156127c2575f80fd5b60405160a0810181811067ffffffffffffffff821117156127e5576127e561276d565b60405282516127f38161262b565b815260208301516128038161262b565b602082015260408301516128168161262b565b604082015260608301516128298161262b565b60608201526080928301519281019290925250919050565b8082025f8212600160ff1b8414161561285c5761285c6126f1565b818105831482151761029c5761029c6126f1565b5f8261287e5761287e61271c565b600160ff1b82145f1984141615612897576128976126f1565b500590565b80516001600160801b0381168114612079575f80fd5b5f60c082840312156128c2575f80fd5b60405160c0810181811067ffffffffffffffff821117156128e5576128e561276d565b6040526128f18361289c565b81526128ff6020840161289c565b60208201526129106040840161289c565b60408201526129216060840161289c565b60608201526129326080840161289c565b608082015261294360a0840161289c565b60a08201529392505050565b8082018281125f83128015821682158216171561296e5761296e6126f1565b505092915050565b82516001600160a01b039081168252602080850151821681840152604080860151831681850152606080870151909316838501526080958601518685015284516001600160801b0390811660a08087019190915292860151811660c086015290850151811660e08501529184015182166101008401529383015181166101208301529190920151166101408201526101600190565b8181038181111561029c5761029c6126f1565b5f60208284031215612a2e575f80fd5b81516bffffffffffffffffffffffff811681146109d3575f80fd5b6001600160a01b03828116828216039080821115612a6957612a696126f1565b5092915050565b5f600160ff1b8201612a8457612a846126f1565b505f0390565b8051600281900b8114612079575f80fd5b805161ffff81168114612079575f80fd5b80518015158114612079575f80fd5b5f805f805f805f60e0888a031215612ad1575f80fd5b8751612adc8161262b565b9650612aea60208901612a8a565b9550612af860408901612a9b565b9450612b0660608901612a9b565b9350612b1460808901612a9b565b925060a088015160ff81168114612b29575f80fd5b9150612b3760c08901612aac565b905092959891949750929550565b5f60208284031215612b55575f80fd5b6109d38261289c565b5f60208284031215612b6e575f80fd5b815162ffffff811681146109d3575f80fd5b5f60208284031215612b90575f80fd5b6109d382612a8a565b5f8160020b627fffff198103612bb157612bb16126f1565b5f0392915050565b8181035f831280158383131683831282161715612a6957612a696126f1565b5f805f805f805f80610100898b031215612bf0575f80fd5b612bf98961289c565b9750602089015180600f0b8114612c0e575f80fd5b80975050604089015195506060890151945060808901518060060b8114612c33575f80fd5b60a08a0151909450612c448161262b565b60c08a015190935063ffffffff81168114612c5d575f80fd5b9150612c6b60e08a01612aac565b90509295985092959890939650565b6001600160801b03818116838216019080821115612a6957612a696126f1565b5f81600f0b6f7fffffffffffffffffffffffffffffff198103612bb157612bb16126f1565b6001600160801b03828116828216039080821115612a6957612a696126f1565b602080825282518282018190525f9190848201906040850190845b81811015612d1657835183529284019291840191600101612cfa565b50909695505050505050565b5f6020808385031215612d33575f80fd5b825167ffffffffffffffff80821115612d4a575f80fd5b818501915085601f830112612d5d575f80fd5b815181811115612d6f57612d6f61276d565b8060051b9150612d80848301612781565b8181529183018401918481019088841115612d99575f80fd5b938501935b83851015612db757845182529385019390850190612d9e565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffdfea264697066735822122050678289d9dbeddd72a0c3ca5b7f1a19abfef81488c5a51432a96872b52e0bf964736f6c63430008170033