0 txs
2 calls
constructor
No constructor.
functions
initialize
nonpayablefunction initialize(address _accessManager, address _tokenP, tuple[] _collaterals, tuple _redemptionSetup)
events
CollateralAdded
event CollateralAdded(address indexed collateral)
FeesSet
event FeesSet(address indexed collateral, uint64[] xFee, int64[] yFee, bool mint)
OracleSet
event OracleSet(address indexed collateral, bytes oracleConfig)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PauseToggled
event PauseToggled(address indexed collateral, uint256 pausedType, bool isPaused)
RedemptionCurveParamsSet
event RedemptionCurveParamsSet(uint64[] xFee, int64[] yFee)
StablecoinCapSet
event StablecoinCapSet(address indexed collateral, uint256 stablecoinCap)
errors
AlreadyAdded
error AlreadyAdded()
InvalidAccessManager
error InvalidAccessManager()
InvalidChainlinkRate
error InvalidChainlinkRate()
InvalidNegativeFees
error InvalidNegativeFees()
InvalidParams
error InvalidParams()
NotCollateral
error NotCollateral()
NotGovernor
error NotGovernor()
OracleUpdateFailed
error OracleUpdateFailed()
creation bytecode
0x608080604052346015576135f6908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c63f2238ad414610025575f80fd5b3461159357608036600319011261159357600435906001600160a01b038216809203611593576024356001600160a01b038116809103611593576044356001600160401b038111611593573660238201121561159357806004013561008981611ecc565b916100976040519384611eab565b8183526024602084019260051b820101903682116115935760248101925b828410611d335750505050606435916001600160401b03831161159357604060031984360301126115935760405192604084018481106001600160401b038211176115575760405280600401356001600160401b038111611593576101209060043691840101611efe565b84526024810135906001600160401b0382116115935760046101459236920101611f6c565b9460208401958652803b15611d0b576001600160a01b037fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d54168173ffffffffffffffffffffffffffffffffffffffff197fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d5416177fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7580547f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7680546fffffffffffffffffffffffffffffffff167b033b2e3c9fd0803ce8000000000000000000000000000000000000001790557fffffffffffffffffffff00ff00000000000000000000000000000000000000001691909117750100000000000000000000000000000000000000000017905580515f915b818310610bbe575050508051516102d2575080f35b818015610b245750610301826001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b80549060ff8260181c1615610b155783610aea575f809161032760ff8560101c1661215e565b9362ff00008560101b169062ff000019161790555b61048c57507f3da495aea17ab24773f3161f4707961a797e39147ce4f8a8fbac0309a4a2d2e46040849260ff8251916002835216156020820152a25191519180519280518414801590610b0d575b610afe578283848015610a42575b50610a33575f198501948511948491865b610a1f57818310156104a0578061048c57508491858680156103e4575b506103d55760010191866103a9565b600486635435b28960e11b8152fd5b90506104785760016001600160401b036103fe8388611ff5565b51169082018083116104645761041c6001600160401b039188611ff5565b51161180159061044e575b8015610434575b866103c6565b50633b9aca006104448286611ff5565b5160070b1361042e565b508561045a8286611ff5565b5160070b12610427565b602488634e487b7160e01b81526011600452fd5b602486634e487b7160e01b81526021600452fd5b80634e487b7160e01b602492526021600452fd5b9295505050806104af85611fd4565b5160070b126108b4575b5080516001600160401b0381116107b057600160401b81116107b0577f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7854817f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7855808210610861575b5060208201907f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c788452602084208160021c91855b83811061081c575060031981169003806107c4575b505050508251926001600160401b0384116107b057600160401b84116107b0577f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7954847f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c795580851061073b575b5060208101937f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c798452602084208160021c91855b8381106106f657506003198116900380610679575b5050507fdd1690e851f57f138700d42b0a081b3b1b9a97dd2cb2aabc25c926587362906492935090610672610664926040519384936040855260408501906120ec565b908382036020850152612128565b0390a18080f35b958596865b8181106106be57505050019390935590918291906106726106647fdd1690e851f57f138700d42b0a081b3b1b9a97dd2cb2aabc25c9265873629064610621565b90919760206106ec6001928b5160070b908560031b6001600160401b03809160031b9316831b921b19161790565b990192910161067e565b86875b6004811061070e57508382015560010161060c565b89519099916001916020916001600160401b0360068e901b81811b199092169216901b17920199016106f9565b610789907f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c79855260208520600380880160021c820192601889831b168061078f575b500160021c019061204f565b5f6105d8565b6107aa905f198601908154905f199060200360031b1c169055565b5f61077d565b602483634e487b7160e01b81526041600452fd5b928593865b8181106107de5750505001555f80808061056b565b90919460206108126001926001600160401b03895116908560031b6001600160401b03809160031b9316831b921b19161790565b96019291016107c9565b86875b60048110610834575083820155600101610556565b86519096916001916020916001600160401b0360068b901b81811b199092169216901b179201960161081f565b6108ae907f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c78855260208520600380850160021c820192601886831b168061078f57500160021c019061204f565b5f610522565b604460406001600160a01b037fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d54168151928380926368fc2b7760e11b8252600a60048301523360248301525afa908115610a145782916109c2575b50156109b357806040518060207f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c77549182815201907f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7784526020842090845b818110610991575050509080610986920390611eab565b61048c5750816104b9565b82546001600160a01b031684528695506020909301926001928301920161096f565b80633b8d9d7560e21b60049252fd5b90506040813d604011610a0c575b816109dd60409383611eab565b81010312610a08578051908115158203610a045760206109fd9101612bf6565b505f610910565b8280fd5b5080fd5b3d91506109d0565b6040513d84823e3d90fd5b80634e487b7160e01b602492526011600452fd5b600484635435b28960e11b8152fd5b9050610aea575f1985018581119081610ad657633b9aca006001600160401b03610a6c8388611ff5565b511611918215610abc575b8215610a86575b505084610398565b909150610aa857610a9c633b9aca009184611ff5565b5160070b135f80610a7e565b602485634e487b7160e01b81526011600452fd5b5085915081610acb8286611ff5565b5160070b1291610a77565b602486634e487b7160e01b81526011600452fd5b602484634e487b7160e01b81526021600452fd5b600483635435b28960e11b8152fd5b50831561038a565b600484630dcfc57f60e21b8152fd5b7f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c75549080610b5760ff8460a01c1661215e565b927fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b169116177f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c755561033c565b610bce8382979697959495611ff5565b51936001600160a01b03855116610c02816001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b805460ff8160181c16611ce3576040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481875afa8015611cd8578b90611c98575b63ff000000915060181b169063ff00000019161790557f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7754600160401b811015611c845760018101807f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7755811015611c70577f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7789527f83745245930c5ea665f7d67c93434aa3e54c73e6ed3f6f245cc3d5c311286bfa01805473ffffffffffffffffffffffffffffffffffffffff1916821790557f7db05e63d635a68c62fd7fd8f3107ae8ab584a383e102d1bd8a40f4c977e465f8880a26001600160a01b038551166040860151610d7a826001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b60ff815460181c1615611c6157600590610d9383612199565b500181516001600160401b038111611c4d57610daf8254612017565b601f8111611c1d575b5060208b601f8311600114611b97579180610e1e94927fba11329c0b0f98b91c254755aa8d698feac3b46fab65b65fe5ab7570de2ff928969491611b8c575b508160011b915f199060031b1c19161790555b604051918291602083526020830190612065565b0390a26001600160a01b0385511660608601516080870151610e5d836001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b60ff815460181c1615611b7d57610e758b838561236e565b8251600182016001600160401b038211611b6957600160401b8211611b69579081610ea6828f9454818455836120b0565b6020860190835260208320908260021c92845b848110611b2457506003198116900380611acd575b50505050506002018151906001600160401b038211611ab957600160401b8211611ab9579081610f04828e9454818455836120b0565b6020840190835260208320908260021c92845b848110611a74575060031981169003806119ff575b50505050507f8abfb482e6f6ae87066f0006f10aff1738f4182d4f66b7a084685e4a6c51cfad91610f6e610664926040519384936060855260608501906120ec565b600160408301520390a26001600160a01b038551169660a08601519760c087015198610fb7826001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b9960ff8b5460181c1615610b155760019a610fd38c838561236e565b84156117b6578251818d016001600160401b0382116117a257600160401b82116117a257908161100a8f93839054818455836120b0565b6020860190885260208820908260021c92895b84811061175e57506003198116900380611703575b50505050506002018151906001600160401b0382116116ef57600160401b82116116ef579081611068828f9454818455836120b0565b6020840190875260208720908260021c92885b8481106116a65750600319811690038061162d575b50505050507f8abfb482e6f6ae87066f0006f10aff1738f4182d4f66b7a084685e4a6c51cfad916110d3610664925b6040519384936060855260608501906120ec565b8560408301520390a26001600160a01b038651169061110f826001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b9060ff825460181c161561161e578061048c578082549261113560ff8560081c1661215e565b9361ff008560081b169061ff00191617905561048c575060407f3da495aea17ab24773f3161f4707961a797e39147ce4f8a8fbac0309a4a2d2e49160ff8251915f835216156020820152a26001600160a01b03855116946111b3866001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b95865460ff8160181c161561160f575f80986111d460ff8460101c1661215e565b9262ff00008460101b169062ff000019161790556115975760407f3da495aea17ab24773f3161f4707961a797e39147ce4f8a8fbac0309a4a2d2e49160ff8251918d835216156020820152a280516001600160a01b03165f8181525f5160206135a15f395f51905f526020526040902060ff815460181c161561160f5760096a52b7d2dcc80cd2e40000009101557feb6fe4a9f159360e971932dac27da07532267236a5423eaa27ea9f1cc641354e60206040516a52b7d2dcc80cd2e40000008152a260208101516112b3575b506001919293949596500191906102bd565b6001600160a01b039051169660ff6112e8896001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b5460181c161561160f57600561131b896001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b604051910180545f9161132d82612017565b808552918581169081156115e857506001146115ab575b5050906113568161135b930382611eab565b612b3a565b91600a849d959410156115975760088d0361156b5761137a8185612c6c565b9160208151918180820193849201010312611593575182111561156b57604051916020830152602082526113af604083611eab565b6040519c8d94602086016113c29161216f565b604085016113cf9161216f565b6060840160a0905260c084016113e491612065565b838103601f190160808501526113f991612065565b828103601f190160a084015261140e91612065565b03601f1981018a52611420908a611eab565b611447906001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b600501908851906001600160401b038211611557576114668354612017565b601f811161151c575b50602099601f83116001146114b85782916001969798999a9b83925f946114ad575b50501b915f199060031b1c19161790555b8695949392916112a1565b015192505f80611491565b601f9291921982169a845f52805f20915f5b8d8110611506575083600198999a9b9c9d106114ee575b505050811b0190556114a2565b01515f1960f88460031b161c191690555f80806114e1565b81830151845592850192602092830192016114ca565b61154790845f5260205f20601f850160051c8101916020861061154d575b601f0160051c019061204f565b5f61146f565b909150819061153a565b634e487b7160e01b5f52604160045260245ffd5b7faa2d4fb6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f80fd5b634e487b7160e01b5f52602160045260245ffd5b9091505f5260205f2090835f925b8284106115d157505050810160200161135682611344565b9081602092548386880101520192019184906115b9565b60ff191660208087019190915292151560051b850190920192506113569150839050611344565b630dcfc57f60e21b5f5260045ffd5b80630dcfc57f60e21b60049252fd5b93889489915b81831061166e575050505001558a6110d36106647f8abfb482e6f6ae87066f0006f10aff1738f4182d4f66b7a084685e4a6c51cfad5f611090565b602061169b8598839495965160070b908760031b6001600160401b03809160031b9316831b921b19161790565b970193019190611633565b9d9e9d898a5b600481106116c35750848201559d9e9d850161107b565b845190949188916020916001600160401b03600689901b81811b199092169216901b17920194016116ac565b602486634e487b7160e01b81526041600452fd5b9389948a915b818310611720575050505001558b5f808080611032565b602061175385986001600160401b03849596975116908760031b6001600160401b03809160031b9316831b921b19161790565b970193019190611709565b85908b8c5b600481106117765750818601550161101d565b855160209096019589946001600160401b03918216600684901b90811b92901b19909316179101611763565b602487634e487b7160e01b81526041600452fd5b6003810183516001600160401b03811161155757600160401b811161155757816117e78f93839054818455836120b0565b60208601905f5260205f20908260021c925f5b8481106119bb57506003198116900380611960575b505050505060040181516001600160401b03811161155757600160401b81116115575781611843828f9454818455836120b0565b60208401905f5260205f20908260021c925f5b8481106119175750600319811690038061189e575b50505050507f8abfb482e6f6ae87066f0006f10aff1738f4182d4f66b7a084685e4a6c51cfad916110d3610664926110bf565b935f945f915b8183106118df575050505001558a6110d36106647f8abfb482e6f6ae87066f0006f10aff1738f4182d4f66b7a084685e4a6c51cfad5f61186b565b602061190c8598839495965160070b908760031b6001600160401b03809160031b9316831b921b19161790565b9701930191906118a4565b9d9e9d5f5f5b600481106119345750848201559d9e9d8501611856565b845190949188916020916001600160401b03600689901b81811b199092169216901b179201940161191d565b935f945f915b81831061197d575050505001558b5f80808061180f565b60206119b085986001600160401b03849596975116908760031b6001600160401b03809160031b9316831b921b19161790565b970193019190611966565b85905f5f5b600481106119d3575081860155016117fa565b855160209096019589946001600160401b03918216600684901b90811b92901b199093161791016119c0565b84905b808210611a3c57505050015589610f6e6106647f8abfb482e6f6ae87066f0006f10aff1738f4182d4f66b7a084685e4a6c51cfad5f610f2c565b9091946020611a6a600192885160070b908660031b6001600160401b03809160031b9316831b921b19161790565b9601920190611a02565b85865b60048110611a8c575084820155600101610f17565b84519094916001916020916001600160401b03600689901b81811b199092169216901b1792019401611a77565b60248c634e487b7160e01b81526041600452fd5b84905b808210611ae65750505001558a5f808080610ece565b9091946020611b1a6001926001600160401b03895116908660031b6001600160401b03809160031b9316831b921b19161790565b9601920190611ad0565b85865b60048110611b3c575084820155600101610eb9565b84519094916001916020916001600160401b03600689901b81811b199092169216901b1792019401611b27565b60248d634e487b7160e01b81526041600452fd5b60048b630dcfc57f60e21b8152fd5b90508301515f610df7565b50828c52808c2090601f1983168d5b818110611c05575092610e1e9492600192827fba11329c0b0f98b91c254755aa8d698feac3b46fab65b65fe5ab7570de2ff928989610611bed575b5050811b019055610e0a565b8501515f1960f88460031b161c191690555f80611be1565b9192602060018192868a015181550194019201611ba6565b611c4790838d5260208d20601f840160051c8101916020851061154d57601f0160051c019061204f565b5f610db8565b60248b634e487b7160e01b81526041600452fd5b60048a630dcfc57f60e21b8152fd5b602489634e487b7160e01b81526032600452fd5b602489634e487b7160e01b81526041600452fd5b506020813d8211611cd0575b81611cb160209383611eab565b81010312611ccc57611cc763ff00000091612009565b610c4b565b8a80fd5b3d9150611ca4565b6040513d8d823e3d90fd5b60048a7ff411c327000000000000000000000000000000000000000000000000000000008152fd5b7fa98154e2000000000000000000000000000000000000000000000000000000005f5260045ffd5b83356001600160401b03811161159357820160e06023198236030112611593576040519160e083018381106001600160401b038211176115575760405260248201356001600160a01b03811681036115935783526044820135801515810361159357602084015260648201356001600160401b0381116115935760249083010136601f82011215611593578035611dc981611ee3565b91611dd76040519384611eab565b818352366020838301011161159357815f9260208093018386013783010152604084015260848201356001600160401b03811161159357611e1e9060243691850101611efe565b606084015260a48201356001600160401b03811161159357611e469060243691850101611f6c565b608084015260c48201356001600160401b03811161159357611e6e9060243691850101611efe565b60a084015260e4820135926001600160401b03841161159357611e9b602094936024869536920101611f6c565b60c08201528152019301926100b5565b90601f801991011681019081106001600160401b0382111761155757604052565b6001600160401b0381116115575760051b60200190565b6001600160401b03811161155757601f01601f191660200190565b9080601f8301121561159357813590611f1682611ecc565b92611f246040519485611eab565b82845260208085019360051b82010191821161159357602001915b818310611f4c5750505090565b82356001600160401b038116810361159357815260209283019201611f3f565b9080601f8301121561159357813590611f8482611ecc565b92611f926040519485611eab565b82845260208085019360051b82010191821161159357602001915b818310611fba5750505090565b82358060070b810361159357815260209283019201611fad565b805115611fe15760200190565b634e487b7160e01b5f52603260045260245ffd5b8051821015611fe15760209160051b010190565b519060ff8216820361159357565b90600182811c92168015612045575b602083101461203157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612026565b81811061205a575050565b5f815560010161204f565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b8181029291811591840414171561209c57565b634e487b7160e01b5f52601160045260245ffd5b91908082106120be57505050565b6120ea925f52600360205f2091601882850160021c840194831b168061078f57500160021c019061204f565b565b90602080835192838152019201905f5b8181106121095750505090565b82516001600160401b03168452602093840193909201916001016120fc565b90602080835192838152019201905f5b8181106121455750505090565b825160070b845260209384019390920191600101612138565b60ff166001039060ff821161209c57565b90600a8210156115975752565b51906fffffffffffffffffffffffffffffffff8216820361159357565b6121a290612b3a565b600a85949695939293101561159757600184146122a05760408180518101031261159357612206926fffffffffffffffffffffffffffffffff826121f760406121f060206121ff970161217c565b920161217c565b501696612c6c565b8093613085565b9280670de0b6b3a764000003670de0b6b3a7640000811161209c5761222b9083612089565b670de0b6b3a7640000850290858204670de0b6b3a7640000148615171561209c5781119182612272575b505061226a575b8281106122665750565b9150565b91508161225c565b909150670de0b6b3a76400000180670de0b6b3a76400001161209c576122989083612089565b115f80612255565b508093945060209250809150518101031261159357602001516001600160a01b038116809103611593576020600491604051928380927f5ade93550000000000000000000000000000000000000000000000000000000082525afa90811561233b575f9161230c575090565b90506020813d602011612333575b8161232760209383611eab565b81010312611593575190565b3d915061231a565b6040513d5f823e3d90fd5b9060070b9060070b0190677fffffffffffffff198212677fffffffffffffff83131761209c57565b9092919281519381518514801590612aec575b6123ed57600381101580611597578115948580612a76575b80156129e5575b828115612955575b506123ed575f198701968711965f885b61209c578181101561256457836115975787806124fb575b8015612484575b8481156123fc575b506123ed57600101886123b8565b635435b28960e11b5f5260045ffd5b9050611597576002851480612412575b846123df565b506001600160401b036124258289611ff5565b51166001820180831161209c576124446001600160401b03918a611ff5565b51161180159061246e575b8061240c5750633b9aca006124648288611ff5565b5160070b1361240c565b505f61247a8288611ff5565b5160070b1261244f565b505f93506001851480156123d757506001600160401b036124a58289611ff5565b5116600182019081831161209c576001600160401b036124c5838b611ff5565b511610908115916124d7575b506123d7565b6124e2915087611ff5565b5160070b6124f08288611ff5565b5160070b135f6124d1565b506001600160401b0361250e8289611ff5565b5116600182019081831161209c576001600160401b0361252e838b611ff5565b51161190811591612540575b506123d0565b61254b915087611ff5565b5160070b6125598288611ff5565b5160070b135f61253a565b5050955092509290925f61257785611fd4565b5160070b12612587575b50505050565b604460406001600160a01b037fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d54168151928380926368fc2b7760e11b8252600a60048301523360248301525afa90811561233b575f9161290b575b50156128fc5760405191828360207f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c775492838152017f4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c775f5260205f20925f5b8181106128da57505061265792500384611eab565b825193611597576127fd575b600114612671575b80612581565b5f5b828110612680575061266b565b60026126bc6001600160a01b036126978486611ff5565b51166001600160a01b03165f525f5160206135a15f395f51905f5260205260405f2090565b016040519081602082549182815201915f5260205f20905f915b8160038401106127c05793612735938193612715935f9754918181106127ac575b818110612795575b81811061277e575b1061276d575b500382611eab565b61272b61272188611fd4565b5160070b91611fd4565b5160070b90612346565b60070b1261274557600101612673565b7f11336121000000000000000000000000000000000000000000000000000000005f5260045ffd5b60c01d60070b81526020015f61270d565b9260206001918460801c60070b8152019301612707565b9260206001918460401c60070b81520193016126ff565b9260206001918460070b81520193016126f7565b926001608060049286548060070b82528060401c60070b602083015280831c60070b604083015260c01d60070b60608201520194019201916126d6565b5f5b83811061280c5750612663565b60046128236001600160a01b036126978487611ff5565b016040519081602082549182815201915f5260205f20905f915b81600384011061289d578461288d94612880945f979461287b9454918181106127ac578181106127955781811061277e571061276d57500382611eab565b611fd4565b5160070b61272b88611fd4565b60070b12612745576001016127ff565b926001608060049286548060070b82528060401c60070b602083015280831c60070b604083015260c01d60070b606082015201940192019161283d565b84546001600160a01b0316835260019485019488945060209093019201612642565b633b8d9d7560e21b5f5260045ffd5b90506040813d60401161294d575b8161292660409383611eab565b810103126115935780519081151582036115935760206129469101612bf6565b505f6125e3565b3d9150612919565b905061159757600283148061296b575b826123a8565b505f198701878111908161209c57633b9aca006001600160401b03612990838a611ff5565b5116119182156129cb575b82156129a9575b5050612965565b90915061209c576129bf633b9aca009186611ff5565b5160070b135f806129a2565b505f9150816129da8288611ff5565b5160070b129161299b565b505f915060018314806129f8575b6123a0565b50633b9aca006001600160401b03612a0f87611fd4565b511614801590612a51575b806123a057506001871180156129f35750612a3484611fd4565b5160070b845160011015611fe157604085015160070b14156123a0565b505f19870187811161209c57612a6c633b9aca009186611ff5565b5160070b13612a1a565b505f19870187811161209c57633b9aca006001600160401b03612a998389611ff5565b51161090811591612acf575b8115612ab2575b50612399565b64e8d4a510009150612ac49086611ff5565b5160070b135f612aac565b90506001600160401b03612ae287611fd4565b5116151590612aa5565b508415612381565b81601f8201121561159357805190612b0b82611ee3565b92612b196040519485611eab565b8284526020838301011161159357815f9260208093018386015e8301015290565b8051810160a08260208301920312611593576020820151600a81101561159357604083015193600a8510156115935760608401516001600160401b03811161159357836020612b8b92870101612af4565b9360808101516001600160401b03811161159357846020612bae92840101612af4565b9360a0820151916001600160401b03831161159357612bd09201602001612af4565b919493929190565b8115612be2570490565b634e487b7160e01b5f52601260045260245ffd5b519063ffffffff8216820361159357565b9080601f83011215611593578151612c1e81611ecc565b92612c2c6040519485611eab565b81845260208085019260051b82010192831161159357602001905b828210612c545750505090565b60208091612c6184612009565b815201910190612c47565b600a8110156115975780612e74575090815182019160a081602085019403126115935760208101516001600160401b0381116115935781019280603f85011215611593576020840151612cbe81611ecc565b94612ccc6040519687611eab565b8186526020808088019360051b830101019083821161159357604001915b818310612e545750505060408201516001600160401b03811161159357820181603f8201121561159357602081015190612d2382611ecc565b91612d316040519384611eab565b8083526020808085019260051b840101019184831161159357604001905b828210612e3c5750505060608301516001600160401b03811161159357826020612d7b92860101612c07565b9160808401516001600160401b0381116115935760a0916020612da092870101612c07565b930151600281101561159357670de0b6b3a7640000612dc3919694929596613426565b938351915f935b838510612dda5750505050505090565b90919293949695612e2f6001916001600160a01b03612df9898c611ff5565b511660ff612e078a87611ff5565b511660ff612e158b89611ff5565b51169163ffffffff612e278c8b611ff5565b511693613465565b9697950193929190612dca565b60208091612e4984612bf6565b815201910190612d4f565b82516001600160a01b038116810361159357815260209283019201612cea565b60038103612e8a575050670de0b6b3a764000090565b60028103612ea0575050670de0b6b3a764000090565b60048103612ef3575050604051630f451f7160e31b8152670de0b6b3a7640000600482015260208160248173ae7ab96520de3a18e5e111b5eaab095312d7fe845afa90811561233b575f9161230c575090565b60058103612f38575050604051633ba0b9a960e01b815260208160048173be9895146f7af43049ca1c1ae358b0541ea497045afa90811561233b575f9161230c575090565b60068103612f7d5750506040516339aa885b60e21b815260208160048173ae78736cd615f374d3085123a210448e74fc63935afa90811561233b575f9161230c575090565b60078103612fc2575050604051634ca9858360e11b815260208160048173ac3e018457b222d93114458476f3e3416abbe38f5afa90811561233b575f9161230c575090565b60088103612fe3575060208151918180820193849201010312611593575190565b600903613078576040818051810103126115935760208101516001600160a01b03811680910361159357602060406004930151916040519384809263501ad8ff60e11b82525afa801561233b575f90613044575b6130419250612bd8565b90565b506020823d602011613070575b8161305e60209383611eab565b81010312611593576130419151613037565b3d9150613051565b50670de0b6b3a764000090565b92919092600a811015611597578061325257508051810160a082602083019203126115935760208201516001600160401b0381116115935782019381603f860112156115935760208501516130d981611ecc565b956130e76040519788611eab565b8187526020808089019360051b830101019084821161159357604001915b8183106132325750505060408301516001600160401b0381116115935783019082603f830112156115935760208201519161313f83611ecc565b9261314d6040519485611eab565b8084526020808086019260051b840101019185831161159357604001905b82821061321a5750505060608401516001600160401b0381116115935783602061319792870101612c07565b9260808501516001600160401b0381116115935760a09160206131bc92880101612c07565b940151906002821015611593576131d7919694929596613426565b938351915f935b8385106131ee5750505050505090565b9091929394969561320d6001916001600160a01b03612df9898c611ff5565b96979501939291906131de565b6020809161322784612bf6565b81520191019061316b565b82516001600160a01b038116810361159357815260209283019201613105565b919290916003810361326d57505050670de0b6b3a764000090565b6002810361327b5750905090565b600481036132cf57505050604051630f451f7160e31b8152670de0b6b3a7640000600482015260208160248173ae7ab96520de3a18e5e111b5eaab095312d7fe845afa90811561233b575f9161230c575090565b6005810361331557505050604051633ba0b9a960e01b815260208160048173be9895146f7af43049ca1c1ae358b0541ea497045afa90811561233b575f9161230c575090565b6006810361335b575050506040516339aa885b60e21b815260208160048173ae78736cd615f374d3085123a210448e74fc63935afa90811561233b575f9161230c575090565b600781036133a157505050604051634ca9858360e11b815260208160048173ac3e018457b222d93114458476f3e3416abbe38f5afa90811561233b575f9161230c575090565b600881036133c357505060208151918180820193849201010312611593575190565b60090361342157506040818051810103126115935760208101516001600160a01b03811680910361159357602060406004930151916040519384809263501ad8ff60e11b82525afa801561233b575f90613044576130419250612bd8565b905090565b6002811015611597576130415750670de0b6b3a764000090565b519069ffffffffffffffffffff8216820361159357565b604d811161209c57600a0a90565b91909360a06001600160a01b0394956004604051809781937ffeaf968c000000000000000000000000000000000000000000000000000000008352165afa90811561233b575f945f9261354a575b505f851391821592613530575b50506135085760ff166001036134ed576134e161304193926134e792612089565b91613457565b90612bd8565b613503906134fd61304194613457565b90612089565b612bd8565b7fae193563000000000000000000000000000000000000000000000000000000005f5260045ffd5b429081039250821161209c5763ffffffff16105f806134c0565b9450905060a0843d60a011613598575b8161356760a09383611eab565b810103126115935761357884613440565b50602084015161358f608060608701519601613440565b5093905f6134b3565b3d915061355a56fe4b2dd303f68b99d244b702089c802b6e9ea1b5d4ef61fd436d6c41abb1178c7aa2646970667358221220148c5b80053dd83b1f0de97c2c0279a8d424b040e1818d591cfde1d464395a9464736f6c634300081c0033