0 txs
0 calls
constructor
No constructor.
functions
ADDRESSES_PROVIDER
viewfunction ADDRESSES_PROVIDER() view returns (address)
getStrategies
viewfunction getStrategies() view returns (address[])
lastRebalanceTimestamp
viewfunction lastRebalanceTimestamp() view returns (uint256)
POOL
viewfunction POOL() view returns (address)
__Vault_init
nonpayablefunction __Vault_init(address[] _strategies, tuple[] _initOperations)
deposit
nonpayablefunction deposit(address token, uint256 amount)
executeOperation
nonpayablefunction executeOperation(address token, uint256 amount, uint256 premium, address initiator, bytes params) returns (bool)
onMorphoFlashLoan
nonpayablefunction onMorphoFlashLoan(address token, uint256 amount, bytes data)
readState
nonpayablefunction readState() returns (tuple)
rebalance
nonpayablefunction rebalance(uint256 stateTimestamp, int256 _maxLoss, tuple[] _operations) returns (int256 loss)
setOperator
nonpayablefunction setOperator(address account, bool _operator)
setStrategies
nonpayablefunction setStrategies(address[] _strategies)
withdraw
nonpayablefunction withdraw(address token, uint256 amount)
events
Deposit
event Deposit(address token, uint256 amount)
Init
event Init()
Initialized
event Initialized(uint64 version)
Loss
event Loss(int256 loss)
Withdraw
event Withdraw(address token, uint256 amount)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60806040523461002057610011610025565b612b2a620000318239612b2a90f35b61002b565b60405190565b600080fdfe60806040526004361015610013575b610ab3565b61001e6000356100ed565b80630542975c146100e85780631b11d0ff146100e35780632187efef146100de5780632778c334146100d957806347e7ef24146100d4578063558a7297146100cf5780637535d246146100ca57806381e7d101146100c55780639a4620b7146100c0578063b49a60bb146100bb578063b83d8157146100b6578063cbeb4c10146100b15763f3fef3a30361000e57610a7f565b610a46565b610974565b6108df565b61080a565b61079c565b610714565b6106b1565b61062b565b610598565b610410565b6102f0565b610178565b60e01c90565b60405190565b600080fd5b600080fd5b600091031261010e57565b6100fe565b60018060a01b031690565b90565b61013561013061013a92610113565b61011e565b610113565b90565b61014690610121565b90565b6101529061013d565b90565b61015e90610149565b9052565b919061017690600060208501940190610155565b565b346101a857610188366004610103565b6101a4610193610d59565b61019b6100f3565b91829182610162565b0390f35b6100f9565b600080fd5b6101bb90610113565b90565b6101c7816101b2565b036101ce57565b600080fd5b905035906101e0826101be565b565b90565b6101ee816101e2565b036101f557565b600080fd5b90503590610207826101e5565b565b600080fd5b600080fd5b600080fd5b909182601f830112156102525781359167ffffffffffffffff831161024d57602001926001830284011161024857565b610213565b61020e565b610209565b91909160a0818403126102c35761027183600083016101d3565b9261027f81602084016101fa565b9261028d82604085016101fa565b9261029b83606083016101d3565b92608082013567ffffffffffffffff81116102be576102ba9201610218565b9091565b6101ad565b6100fe565b151590565b6102d6906102c8565b9052565b91906102ee906000602085019401906102cd565b565b3461032757610323610312610306366004610257565b949390939291926111d6565b61031a6100f3565b918291826102da565b0390f35b6100f9565b909182601f830112156103665781359167ffffffffffffffff831161036157602001926020830284011161035c57565b610213565b61020e565b610209565b909182601f830112156103a55781359167ffffffffffffffff83116103a057602001926020830284011161039b57565b610213565b61020e565b610209565b909160408284031261040557600082013567ffffffffffffffff811161040057836103d691840161032c565b929093602082013567ffffffffffffffff81116103fb576103f7920161036b565b9091565b6101ad565b6101ad565b6100fe565b60000190565b346104425761042c6104233660046103aa565b92919091611628565b6104346100f3565b8061043e8161040a565b0390f35b6100f9565b610450906101e2565b9052565b5190565b60209181520190565b60200190565b5190565b60209181520190565b60005b838110610488575050906000910152565b806020918301518185015201610477565b601f801991011690565b6104c26104cb6020936104d0936104b981610467565b9384809361046b565b95869101610474565b610499565b0190565b906104de916104a3565b90565b60200190565b906104fb6104f483610454565b8092610458565b908161050c60208302840194610461565b926000915b83831061052057505050505090565b9091929394602061054261053c838560019503875289516104d4565b976104e1565b9301930191939290610511565b61057c916020604082019261056c60008201516000850190610447565b01519060208184039101526104e7565b90565b610595916020820191600081840391015261054f565b90565b346105c8576105a8366004610103565b6105c46105b3611783565b6105bb6100f3565b9182918261057f565b0390f35b6100f9565b6105d6906101b2565b90565b6105e2816105cd565b036105e957565b600080fd5b905035906105fb826105d9565b565b9190604083820312610626578061061a61062392600086016105ee565b936020016101fa565b90565b6100fe565b3461065a5761064461063e3660046105fd565b90611a91565b61064c6100f3565b806106568161040a565b0390f35b6100f9565b610668816102c8565b0361066f57565b600080fd5b905035906106818261065f565b565b91906040838203126106ac57806106a06106a992600086016101d3565b93602001610674565b90565b6100fe565b346106e0576106ca6106c4366004610683565b90611b43565b6106d26100f3565b806106dc8161040a565b0390f35b6100f9565b6106ee9061013d565b90565b6106fa906106e5565b9052565b9190610712906000602085019401906106f1565b565b3461074457610724366004610103565b61074061072f611b6c565b6107376100f3565b918291826106fe565b0390f35b6100f9565b916060838303126107975761076182600085016101d3565b9261076f83602083016101fa565b92604082013567ffffffffffffffff81116107925761078e9201610218565b9091565b6101ad565b6100fe565b346107ce576107b86107af366004610749565b92919091611d09565b6107c06100f3565b806107ca8161040a565b0390f35b6100f9565b9060208282031261080557600082013567ffffffffffffffff8111610800576107fc920161032c565b9091565b6101ad565b6100fe565b346108395761082361081d3660046107d3565b90611f66565b61082b6100f3565b806108358161040a565b0390f35b6100f9565b5190565b60209181520190565b60200190565b61085a906101b2565b9052565b9061086b81602093610851565b0190565b60200190565b9061089261088c6108858461083e565b8093610842565b9261084b565b9060005b8181106108a35750505090565b9091926108bc6108b6600192865161085e565b9461086f565b9101919091610896565b6108dc9160208201916000818403910152610875565b90565b3461090f576108ef366004610103565b61090b6108fa61203a565b6109026100f3565b918291826108c6565b0390f35b6100f9565b1c90565b90565b61092b9060086109309302610914565b610918565b90565b9061093e915461091b565b90565b61094e6002600090610933565b90565b61095a906101e2565b9052565b919061097290600060208501940190610951565b565b346109a457610984366004610103565b6109a061098f610941565b6109976100f3565b9182918261095e565b0390f35b6100f9565b90565b6109b5816109a9565b036109bc57565b600080fd5b905035906109ce826109ac565b565b91606083830312610a1e576109e882600085016101fa565b926109f683602083016109c1565b92604082013567ffffffffffffffff8111610a1957610a15920161036b565b9091565b6101ad565b6100fe565b610a2c906109a9565b9052565b9190610a4490600060208501940190610a23565b565b34610a7a57610a76610a65610a5c3660046109d0565b9291909161231f565b610a6d6100f3565b91829182610a30565b0390f35b6100f9565b34610aae57610a98610a923660046105fd565b90612445565b610aa06100f3565b80610aaa8161040a565b0390f35b6100f9565b600080fd5b600090565b90565b61ffff1690565b610adb610ad6610ae092610abd565b61011e565b610ac0565b90565b634e487b7160e01b600052601160045260246000fd5b610b0290610ac0565b61ffff8114610b115760010190565b610ae3565b5490565b610b2e610b29610b3392610ac0565b61011e565b6101e2565b90565b634e487b7160e01b600052603260045260246000fd5b600052602060002090565b610b6081610b16565b821015610b7b57610b72600191610b4c565b91020190600090565b610b36565b60018060a01b031690565b610b9b906008610ba09302610914565b610b80565b90565b90610bae9154610b8b565b90565b634e487b7160e01b600052604160045260246000fd5b90610bd190610499565b810190811067ffffffffffffffff821117610beb57604052565b610bb1565b90610c03610bfc6100f3565b9283610bc7565b565b67ffffffffffffffff8111610c2357610c1f602091610499565b0190565b610bb1565b90610c3a610c3583610c05565b610bf0565b918252565b606090565b3d600014610c6157610c553d610c28565b903d6000602084013e5b565b610c69610c3f565b90610c5f565b90565b610c86610c81610c8b92610c6f565b61011e565b6101e2565b90565b610c9790610113565b90565b610ca381610c8e565b03610caa57565b600080fd5b90505190610cbc82610c9a565b565b90602082820312610cd857610cd591600001610caf565b90565b6100fe565b610ce690610121565b90565b610cf290610cdd565b90565b60209181520190565b60007f4d6f7270686f2061646472657373206e6f7420666f756e640000000000000000910152565b610d336018602092610cf5565b610d3c81610cfe565b0190565b610d569060208101906000818303910152610d26565b90565b610d61610ab8565b50610d6c6000610ac7565b5b80610d89610d83610d7e6001610b16565b6101e2565b91610b1a565b1015610e5057600080610da7610da160018590610b57565b90610ba3565b610daf6100f3565b610ddb81610dcc600460208301630bd0e0e960e31b81520161040a565b60208201810382520382610bc7565b602081019051915afa90610ded610c44565b9180610e2d575b610e0757610e029150610af9565b610d6d565b50610e25610e2a916020610e1a82610467565b818301019101610cbe565b610ce9565b90565b50610e3782610467565b610e4a610e446020610c72565b916101e2565b14610df4565b610e586100f3565b62461bcd60e51b815280610e6e60048201610d40565b0390fd5b600090565b60001c90565b60ff1690565b610e8f610e9491610e77565b610e7d565b90565b610ea19054610e83565b90565b60007f214e6f74526562616c616e63696e670000000000000000000000000000000000910152565b610ed9600f602092610cf5565b610ee281610ea4565b0190565b610efc9060208101906000818303910152610ecc565b90565b15610f0657565b610f0e6100f3565b62461bcd60e51b815280610f2460048201610ee6565b0390fd5b610f319061013d565b90565b15610f3b57565b600080fd5b67ffffffffffffffff8111610f585760208091020190565b610bb1565b600080fd5b600080fd5b610f7081610ac0565b03610f7757565b600080fd5b90503590610f8982610f67565b565b600080fd5b90826000939282370152565b90929192610fb1610fac82610c05565b610bf0565b93818552602085019082840111610fcd57610fcb92610f90565b565b610f8b565b9080601f83011215610ff057816020610fed93359101610f9c565b90565b610209565b9190916040818403126110495761100c6040610bf0565b9261101a8160008401610f7c565b6000850152602082013567ffffffffffffffff81116110445761103d9201610fd2565b6020830152565b610f62565b610f5d565b92919061106261105d82610f40565b610bf0565b93818552602080860192028101918383116110b95781905b838210611088575050505050565b813567ffffffffffffffff81116110b4576020916110a98784938701610ff5565b81520191019061107a565b610209565b610213565b9080601f830112156110dc578160206110d99335910161104e565b90565b610209565b9060208282031261111257600082013567ffffffffffffffff811161110d5761110a92016110be565b90565b6101ad565b6100fe565b61112090610121565b90565b61112c90611117565b90565b6111389061013d565b90565b61114a611150919392936101e2565b926101e2565b820180921161115b57565b610ae3565b60e01b90565b905051906111738261065f565b565b9060208282031261118f5761118c91600001611166565b90565b6100fe565b61119d906101b2565b9052565b9160206111c39294936111bc60408201966000830190611194565b0190610951565b565b6111cd6100f3565b3d6000823e3d90fd5b611235611230611240949760209761122761123b96986111f4610e72565b506112076112026003610e97565b610eff565b61122161121b61121630610f28565b6101b2565b916101b2565b14610f34565b908101906110e1565b612502565b50611123565b61112f565b61127c600061126463095ea7b39661125e611259611b6c565b6106e5565b9561113b565b956112876112706100f3565b97889687958694611160565b8452600484016111a1565b03925af180156112c85761129c575b50600190565b6112bc9060203d81116112c1575b6112b48183610bc7565b810190611175565b611296565b503d6112aa565b6111c5565b60401c90565b6112df6112e4916112cd565b610e7d565b90565b6112f190546112d3565b90565b67ffffffffffffffff1690565b61130d61131291610e77565b6112f4565b90565b61131f9054611301565b90565b67ffffffffffffffff1690565b61134361133e61134892610abd565b61011e565b611322565b90565b90565b61136261135d6113679261134b565b61011e565b611322565b90565b6113739061013d565b90565b61138a61138561138f92610abd565b61011e565b6101e2565b90565b60001b90565b906113ab67ffffffffffffffff91611392565b9181191691161790565b6113c96113c46113ce92611322565b61011e565b611322565b90565b90565b906113e96113e46113f0926113b5565b6113d1565b8254611398565b9055565b60401b90565b9061140e68ff0000000000000000916113f4565b9181191691161790565b611421906102c8565b90565b90565b9061143c61143761144392611418565b611424565b82546113fa565b9055565b6114509061134e565b9052565b919061146890600060208501940190611447565b565b9091926114756125e1565b9361148b611485600087016112e7565b156102c8565b9361149860008701611315565b806114ac6114a6600061132f565b91611322565b14806115d1575b906114c76114c1600161134e565b91611322565b14806115a8575b6114d99091156102c8565b9081611597575b506115745761150a936114ff6114f6600161134e565b600089016113d4565b85611561575b6115d8565b611512575b50565b611520906000809101611427565b60016115587fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29161154f6100f3565b91829182611454565b0390a13861150f565b61156f600160008901611427565b611505565b61157c6100f3565b63f92ee8a960e01b8152806115936004820161040a565b0390fd5b6115a29150156102c8565b386114e0565b506114d96115b53061136a565b3b6115c96115c36000611376565b916101e2565b1490506114ce565b50856114b3565b916115f09391926115e761260f565b92909192612619565b7f57a86f7d14ccde89e22870afe839e3011216827daa9b24e18629f0a1e9d6cc146116196100f3565b806116238161040a565b0390a1565b9061163493929161146a565b565b6116406040610bf0565b90565b600090565b606090565b611655611636565b9060208083611662611643565b81520161166d611648565b81525050565b61167b61164d565b90565b67ffffffffffffffff81116116965760208091020190565b610bb1565b906116ad6116a88361167e565b610bf0565b918252565b606090565b60005b8281106116c657505050565b6020906116d16116b2565b81840152016116ba565b906117006116e88361169b565b926020806116f6869361167e565b92019103906116b7565b565b600161170e91016101e2565b90565b63ffffffff60e01b1690565b90565b61172c61173191611711565b61171d565b9052565b61174181600493611720565b0190565b9061174f82610454565b811015611760576020809102010190565b610b36565b61176f6040610bf0565b90565b9061177c906101e2565b9052565b52565b61178b611673565b5061179461263f565b6117ae6117a86117a330610f28565b6101b2565b916101b2565b148015611895575b6117bf90610f34565b6117c96001610b16565b906117d3826116db565b906117de6000611376565b5b806117f26117ec866101e2565b916101e2565b101561186c576118679061186061184d61183961181a61181460018690610b57565b90610ba3565b6118486309de30cd60e21b61182d6100f3565b93849160208301611735565b60208201810382520383610bc7565b61277a565b85839161185a8383611745565b52611745565b5150611702565b6117df565b509150611892429161188961187f611765565b9360008501611772565b60208301611780565b90565b506117bf6118a161263f565b6118ba6118b46118af61264c565b6101b2565b916101b2565b1490506117b6565b60007f4e4f545f415554484f52495a4544000000000000000000000000000000000000910152565b6118f7600e602092610cf5565b611900816118c2565b0190565b61191a90602081019060008183039101526118ea565b90565b1561192457565b61192c6100f3565b62461bcd60e51b81528061194260048201611904565b0390fd5b9061197a9161197561195661263f565b61196f61196961196461264c565b6101b2565b916101b2565b1461191d565b6119af565b565b6040906119a66119ad949695939661199c60608401986000850190611194565b6020830190611194565b0190610951565b565b6119b88161112f565b9060206323b872dd926119c961263f565b906119f160006119d830610f28565b966119fc896119e56100f3565b998a9788968795611160565b85526004850161197c565b03925af1918215611a8c57611a2292611a1d91600091611a5e575b50610f34565b61112f565b907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c91611a59611a506100f3565b928392836111a1565b0390a1565b611a7f915060203d8111611a85575b611a778183610bc7565b810190611175565b38611a17565b503d611a6d565b6111c5565b90611a9b91611946565b565b90611ad191611acc611aad61263f565b611ac6611ac0611abb61264c565b6101b2565b916101b2565b1461191d565b611b2d565b565b611adc9061013d565b90565b90611ae990611ad3565b600052602052604060002090565b90611b0360ff91611392565b9181191691161790565b90611b22611b1d611b2992611418565b611424565b8254611af7565b9055565b611b3c611b4192916000611adf565b611b0d565b565b90611b4d91611a9d565b565b600090565b611b5d90610121565b90565b611b6990611b54565b90565b611b74611b4f565b50611b7f6000610ac7565b5b80611b9c611b96611b916001610b16565b6101e2565b91610b1a565b1015611c6357600080611bba611bb460018590610b57565b90610ba3565b611bc26100f3565b611bee81611bdf6004602083016313561b5560e01b81520161040a565b60208201810382520382610bc7565b602081019051915afa90611c00610c44565b9180611c40575b611c1a57611c159150610af9565b611b80565b50611c38611c3d916020611c2d82610467565b818301019101610cbe565b611b60565b90565b50611c4a82610467565b611c5d611c576020610c72565b916101e2565b14611c07565b611c6b6100f3565b62461bcd60e51b815280611c8160048201610d40565b0390fd5b60007f43616c6c6572206d757374206265204d6f7270686f0000000000000000000000910152565b611cba6015602092610cf5565b611cc381611c85565b0190565b611cdd9060208101906000818303910152611cad565b90565b15611ce757565b611cef6100f3565b62461bcd60e51b815280611d0560048201611cc7565b0390fd5b611d6290611d5c611d57611d6a96611d1f6127f5565b96611d32611d2d6003610e97565b610eff565b611d4e33611d48611d428b6101b2565b916101b2565b14611ce0565b908101906110e1565b612502565b50611123565b919091612933565b565b90611da091611d9b611d7c61263f565b611d95611d8f611d8a61264c565b6101b2565b916101b2565b1461191d565b611f58565b565b600190818003010490565b1b90565b91906008611dcd910291611dc760001984611dad565b92611dad565b9181191691161790565b611deb611de6611df0926101e2565b61011e565b6101e2565b90565b90565b9190611e0c611e07611e1493611dd7565b611df3565b908354611db1565b9055565b600090565b611e2f91611e29611e18565b91611df6565b565b5b818110611e3d575050565b80611e4b6000600193611e1d565b01611e32565b9091828110611e60575b505050565b611e7e611e78611e72611e8995611da2565b92611da2565b92610b4c565b918201910190611e31565b388080611e5b565b90680100000000000000008111611eba5781611eaf611eb893610b16565b90828155611e51565b565b610bb1565b5090565b35611ecd816101be565b90565b90565b90565b9091611ee29083611ebf565b9167ffffffffffffffff8311611f4657611f10611f0a600192611f058686611e91565b611ed0565b92610b4c565b92049160005b838110611f235750505050565b6001906020611f39611f3486611ec3565b611ed3565b9401938184015501611f16565b610bb1565b90611f569291611ed6565b565b90611f64916001611f4b565b565b90611f7091611d6c565b565b606090565b60209181520190565b611f8c611f9191610e77565b610b80565b90565b611f9e9054611f80565b90565b60010190565b90611fc4611fbe611fb784610b16565b8093611f77565b92610b4c565b9060005b818110611fd55750505090565b909192611ff5611fef600192611fea87611f94565b61085e565b94611fa1565b9101919091611fc8565b9061200991611fa7565b90565b9061202c6120259261201c6100f3565b93848092611fff565b0383610bc7565b565b6120379061200c565b90565b612042611f72565b5061204d600161202e565b90565b600090565b60007f4e6f744f70657261746f72000000000000000000000000000000000000000000910152565b61208a600b602092610cf5565b61209381612055565b0190565b6120ad906020810190600081830391015261207d565b90565b156120b757565b6120bf6100f3565b62461bcd60e51b8152806120d560048201612097565b0390fd5b906120f6949392916120f16120ec612981565b6120b0565b612267565b90565b61210561210a91610e77565b610918565b90565b61211790546120f9565b90565b60007f5374616c65537461746521000000000000000000000000000000000000000000910152565b61214f600b602092610cf5565b6121588161211a565b0190565b6121729060208101906000818303910152612142565b90565b1561217c57565b6121846100f3565b62461bcd60e51b81528061219a6004820161215c565b0390fd5b6121a991369161104e565b90565b60007f214c6f7373457863656564730000000000000000000000000000000000000000910152565b6121e1600c602092610cf5565b6121ea816121ac565b0190565b61220490602081019060008183039101526121d4565b90565b1561220e57565b6122166100f3565b62461bcd60e51b81528061222c600482016121ee565b0390fd5b9061223d60001991611392565b9181191691161790565b9061225c61225761226392611dd7565b611df3565b8254612230565b9055565b93612306936122a76122ac936122b19598975061228660016003611b0d565b6122a161229b612296600261210d565b6101e2565b916101e2565b11612175565b61219e565b612502565b92836122e97fdfc9e5f35b8a47d7e7c4e705cdbe661e5b32470501b38cffce5de28bdeecc493916122e06100f3565b91829182610a30565b0390a16122ff6122f985926109a9565b916109a9565b1315612207565b612311426002612247565b61231d60006003611b0d565b565b9061233393929161232e612050565b6120d9565b90565b9061236a9161236561234661263f565b61235f61235961235461264c565b6101b2565b916101b2565b1461191d565b61236c565b565b6123758161112f565b90602063a9059cbb9261238661263f565b906123a5600087966123b06123996100f3565b98899687958694611160565b8452600484016111a1565b03925af1918215612440576123d6926123d191600091612412575b50610f34565b61112f565b907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649161240d6124046100f3565b928392836111a1565b0390a1565b612433915060203d8111612439575b61242b8183610bc7565b810190611175565b386123cb565b503d612421565b6111c5565b9061244f91612336565b565b61246561246061246a92610abd565b61011e565b6109a9565b90565b5190565b9061247b8261246d565b81101561248c576020809102010190565b610b36565b61249b9051610ac0565b90565b905051906124ab826109ac565b565b906020828203126124c7576124c49160000161249e565b90565b6100fe565b6124db6124e1919392936109a9565b926109a9565b808301926000828512158183121692851291121516176124fd57565b610ae3565b9061250b612050565b506125166000612451565b916125216000611376565b5b8061253d6125376125328561246d565b6101e2565b916101e2565b10156125dd5761257d612551838390612471565b51602061257461256e600161256860008601612491565b90610b57565b90610ba3565b9101519061277a565b61258681610467565b6125996125936000611376565b916101e2565b116125ae575b506125a990611702565b612522565b6125a991946125d06125d69260206125c582610467565b8183010191016124ad565b906124cc565b939061259f565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b61260d6129a8565b565b612617612605565b565b9161262d6126379492612632946001611f4b565b61219e565b612502565b50565b600090565b61264761263a565b503390565b61265461263a565b507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b67ffffffffffffffff811161269857612694602091610499565b0190565b610bb1565b909291926126b26126ad8261267a565b610bf0565b938185526020850190828401116126ce576126cc92610474565b565b610f8b565b9080601f830112156126f1578160206126ee9351910161269d565b90565b610209565b9060208282031261272757600082015167ffffffffffffffff81116127225761271f92016126d3565b90565b6101ad565b6100fe565b5190565b61274f61275860209361275d936127468161272c565b93848093610cf5565b95869101610474565b610499565b0190565b6127779160208201916000818403910152612730565b90565b6000918291612787610c3f565b5090602081019051915af46127a461279d610c44565b91156102c8565b6127ab5790565b6127c86127e59160206127bd82610467565b8183010191016126f6565b6127d06100f3565b91829162461bcd60e51b835260048301612761565b0390fd5b6127f29061013d565b90565b6127fd61263a565b506128086000610ac7565b5b8061282561281f61281a6001610b16565b6101e2565b91610b1a565b10156128ec5760008061284361283d60018590610b57565b90610ba3565b61284b6100f3565b61287781612868600460208301631ccef8dd60e21b81520161040a565b60208201810382520382610bc7565b602081019051915afa90612889610c44565b91806128c9575b6128a35761289e9150610af9565b612809565b506128c16128c69160206128b682610467565b818301019101610cbe565b6127e9565b90565b506128d382610467565b6128e66128e06020610c72565b916101e2565b14612890565b6128f46100f3565b62461bcd60e51b81528061290a60048201610d40565b0390fd5b63ffffffff1690565b61292b6129266129309261290e565b611160565b611711565b90565b9061297a61297f9361296b6004949361295263a9059cbb919391612917565b9261295b6100f3565b96879460208601908152016111a1565b60208201810382520383610bc7565b612a14565b565b612989610e72565b506129a56129a0600061299a61263f565b90611adf565b610e97565b90565b6129b96129b3612ad5565b156102c8565b6129bf57565b6129c76100f3565b631afcd79f60e31b8152806129de6004820161040a565b0390fd5b6129f66129f16129fb9261134b565b61011e565b6101e2565b90565b9190612a1290600060208501940190611194565b565b906000602091612a22611e18565b50612a2b611e18565b50828151910182855af115612ac9573d60005190612a52612a4c6000611376565b916101e2565b14600014612aaf5750612a648161112f565b3b612a78612a726000611376565b916101e2565b145b612a815750565b612a8d612aab9161112f565b612a956100f3565b918291635274afe760e01b8352600483016129fe565b0390fd5b612ac2612abc60016129e2565b916101e2565b1415612a7a565b6040513d6000823e3d90fd5b612add610e72565b50612af16000612aeb6125e1565b016112e7565b9056fea2646970667358221220fd34f86aab4921bada5942888dde01de62324b3c8a3596427ef2ed02347bdcd864736f6c63430008180033