[ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [], "name": "FailedCall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "InsufficientBalance", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "contract Authority", "name": "newAuthority", "type": "address" } ], "name": "AuthorityUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Enter", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Exit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "authority", "outputs": [ { "internalType": "contract Authority", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "contract ERC20", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "assetAmount", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "shareAmount", "type": "uint256" } ], "name": "enter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "contract ERC20", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "assetAmount", "type": "uint256" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "shareAmount", "type": "uint256" } ], "name": "exit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "hook", "outputs": [ { "internalType": "contract BeforeTransferHook", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "bytes[]", "name": "data", "type": "bytes[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "manage", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "manage", "outputs": [ { "internalType": "bytes", "name": "result", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract Authority", "name": "newAuthority", "type": "address" } ], "name": "setAuthority", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_hook", "type": "address" } ], "name": "setBeforeTransferHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e060405234801562000010575f80fd5b506040516200223f3803806200223f833981016040819052620000339162000263565b835f848484836200004584826200038c565b5060016200005483826200038c565b5060ff81166080524660a0526200006a6200010b565b60c0525050600680546001600160a01b038086166001600160a01b03199283168117909355600780549186169190921617905560405190915033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a3505050505050620004ce565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200013d919062000454565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620001c9575f80fd5b81516001600160401b0380821115620001e657620001e6620001a5565b604051601f8301601f19908116603f01168101908282118183101715620002115762000211620001a5565b816040528381526020925086838588010111156200022d575f80fd5b5f91505b8382101562000250578582018301518183018401529082019062000231565b5f93810190920192909252949350505050565b5f805f806080858703121562000277575f80fd5b84516001600160a01b03811681146200028e575f80fd5b60208601519094506001600160401b0380821115620002ab575f80fd5b620002b988838901620001b9565b94506040870151915080821115620002cf575f80fd5b50620002de87828801620001b9565b925050606085015160ff81168114620002f5575f80fd5b939692955090935050565b600181811c908216806200031557607f821691505b6020821081036200033457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000387575f81815260208120601f850160051c81016020861015620003625750805b601f850160051c820191505b8181101562000383578281556001016200036e565b5050505b505050565b81516001600160401b03811115620003a857620003a8620001a5565b620003c081620003b9845462000300565b846200033a565b602080601f831160018114620003f6575f8415620003de5750858301515b5f19600386901b1c1916600185901b17855562000383565b5f85815260208120601f198616915b82811015620004265788860151825594840194600190910190840162000405565b50858210156200044457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f808354620004638162000300565b600182811680156200047e57600181146200049457620004c2565b60ff1984168752821515830287019450620004c2565b875f526020805f205f5b85811015620004b95781548a8201529084019082016200049e565b50505082870194505b50929695505050505050565b60805160a05160c051611d46620004f95f395f61092801525f6108f301525f6102e00152611d465ff3fe60806040526004361061017e575f3560e01c80637ecebe00116100cd578063bc197c8111610087578063dd62ed3e11610062578063dd62ed3e146104cd578063f23a6e6114610503578063f2fde38b1461052e578063f6e715d01461054d575f80fd5b8063bc197c8114610464578063bf7e214f1461048f578063d505accf146104ae575f80fd5b80637ecebe00146103915780637f5a7c7b146103bc5780638929565f146103f35780638da5cb5b1461041257806395d89b4114610431578063a9059cbb14610445575f80fd5b8063224d8703116101385780633644e515116101135780633644e5151461031457806339d6ba321461032857806370a08231146103475780637a9e5e4b14610372575f80fd5b8063224d87031461028457806323b872dd146102b0578063313ce567146102cf575f80fd5b806301ffc9a71461018957806306fdde03146101bd578063095ea7b3146101de578063150b7a02146101fd57806318160ddd1461024057806318457e6114610263575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b506101a86101a336600461146a565b61056c565b60405190151581526020015b60405180910390f35b3480156101c8575f80fd5b506101d16105a2565b6040516101b491906114de565b3480156101e9575f80fd5b506101a86101f8366004611504565b61062d565b348015610208575f80fd5b506102276102173660046115df565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101b4565b34801561024b575f80fd5b5061025560025481565b6040519081526020016101b4565b34801561026e575f80fd5b5061028261027d366004611647565b610698565b005b34801561028f575f80fd5b506102a361029e3660046116e6565b61075d565b6040516101b49190611779565b3480156102bb575f80fd5b506101a86102ca3660046117d9565b6108d1565b3480156102da575f80fd5b506103027f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101b4565b34801561031f575f80fd5b506102556108f0565b348015610333575f80fd5b50610282610342366004611647565b61094a565b348015610352575f80fd5b50610255610361366004611817565b60036020525f908152604090205481565b34801561037d575f80fd5b5061028261038c366004611817565b6109f8565b34801561039c575f80fd5b506102556103ab366004611817565b60056020525f908152604090205481565b3480156103c7575f80fd5b506008546103db906001600160a01b031681565b6040516001600160a01b0390911681526020016101b4565b3480156103fe575f80fd5b5061028261040d366004611817565b610add565b34801561041d575f80fd5b506006546103db906001600160a01b031681565b34801561043c575f80fd5b506101d1610b30565b348015610450575f80fd5b506101a861045f366004611504565b610b3d565b34801561046f575f80fd5b5061022761047e3660046118af565b63bc197c8160e01b95945050505050565b34801561049a575f80fd5b506007546103db906001600160a01b031681565b3480156104b9575f80fd5b506102826104c8366004611956565b610b51565b3480156104d8575f80fd5b506102556104e73660046119c7565b600460209081525f928352604080842090915290825290205481565b34801561050e575f80fd5b5061022761051d3660046119fe565b63f23a6e6160e01b95945050505050565b348015610539575f80fd5b50610282610548366004611817565b610d8f565b348015610558575f80fd5b506101d1610567366004611a62565b610e0b565b5f6001600160e01b03198216630271189760e51b148061059c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f80546105ae90611ae6565b80601f01602080910402602001604051908101604052809291908181526020018280546105da90611ae6565b80156106255780601f106105fc57610100808354040283529160200191610625565b820191905f5260205f20905b81548152906001019060200180831161060857829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106879086815260200190565b60405180910390a350600192915050565b6106ad335f356001600160e01b031916610e91565b6106d25760405162461bcd60e51b81526004016106c990611b1e565b60405180910390fd5b6106dc8282610f38565b82156106f6576106f66001600160a01b0385168685610f9f565b816001600160a01b0316846001600160a01b0316866001600160a01b03167fe0c82280a1164680e0cf43be7db4c4c9f985423623ad7a544fb76c772bdc6043868560405161074e929190918252602082015260400190565b60405180910390a45050505050565b6060610774335f356001600160e01b031916610e91565b6107905760405162461bcd60e51b81526004016106c990611b1e565b858067ffffffffffffffff8111156107aa576107aa61152e565b6040519080825280602002602001820160405280156107dd57816020015b60608152602001906001900390816107c85790505b5091505f5b818110156108c5576108978787838181106107ff576107ff611b44565b90506020028101906108119190611b58565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525089925088915085905081811061085957610859611b44565b905060200201358b8b8581811061087257610872611b44565b90506020020160208101906108879190611817565b6001600160a01b03169190611022565b8382815181106108a9576108a9611b44565b6020026020010181905250806108be90611baf565b90506107e2565b50509695505050505050565b5f6108db846110c2565b6108e6848484611130565b90505b9392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146109255761092061120a565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b61095f335f356001600160e01b031916610e91565b61097b5760405162461bcd60e51b81526004016106c990611b1e565b8215610996576109966001600160a01b0385168630866112a2565b6109a08282611333565b816001600160a01b0316846001600160a01b0316866001600160a01b03167fea00f88768a86184a6e515238a549c171769fe7460a011d6fd0bcd48ca078ea4868560405161074e929190918252602082015260400190565b6006546001600160a01b0316331480610a8a575060075460405163b700961360e01b81526001600160a01b039091169063b700961390610a4b90339030906001600160e01b03195f351690600401611bc7565b602060405180830381865afa158015610a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8a9190611bf4565b610a92575f80fd5b600780546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b610af2335f356001600160e01b031916610e91565b610b0e5760405162461bcd60e51b81526004016106c990611b1e565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600180546105ae90611ae6565b5f610b47336110c2565b6108e98383611382565b42841015610ba15760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016106c9565b5f6001610bac6108f0565b6001600160a01b038a81165f8181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610cb4573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811615801590610cea5750876001600160a01b0316816001600160a01b0316145b610d275760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016106c9565b6001600160a01b039081165f9081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b610da4335f356001600160e01b031916610e91565b610dc05760405162461bcd60e51b81526004016106c990611b1e565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a350565b6060610e22335f356001600160e01b031916610e91565b610e3e5760405162461bcd60e51b81526004016106c990611b1e565b610e8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506001600160a01b03881691905084611022565b95945050505050565b6007545f906001600160a01b03168015801590610f18575060405163b700961360e01b81526001600160a01b0382169063b700961390610ed990879030908890600401611bc7565b602060405180830381865afa158015610ef4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f189190611bf4565b80610f3057506006546001600160a01b038581169116145b949350505050565b6001600160a01b0382165f9081526003602052604081208054839290610f5f908490611c13565b90915550506002805482900390556040518181525f906001600160a01b038416905f80516020611cf1833981519152906020015b60405180910390a35050565b5f60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af13d15601f3d1160015f51141617169150508061101c5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016106c9565b50505050565b60608147101561104e5760405163cf47918160e01b8152476004820152602481018390526044016106c9565b5f80856001600160a01b031684866040516110699190611c26565b5f6040518083038185875af1925050503d805f81146110a3576040519150601f19603f3d011682016040523d82523d5f602084013e6110a8565b606091505b50915091506110b88683836113e5565b9695505050505050565b6008546001600160a01b03161561112d5760085460405163e83931af60e01b81526001600160a01b0383811660048301529091169063e83931af906024015f6040518083038186803b158015611116575f80fd5b505afa158015611128573d5f803e3d5ffd5b505050505b50565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f198114611189576111658382611c13565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b6001600160a01b0385165f90815260036020526040812080548592906111b0908490611c13565b90915550506001600160a01b038085165f81815260036020526040908190208054870190555190918716905f80516020611cf1833981519152906111f79087815260200190565b60405180910390a3506001949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f60405161123a9190611c41565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f6040516323b872dd60e01b81526001600160a01b03851660048201526001600160a01b038416602482015282604482015260205f6064835f8a5af13d15601f3d1160015f5114161716915050806111285760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016106c9565b8060025f8282546113449190611cdd565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481525f80516020611cf18339815191529101610f93565b335f908152600360205260408120805483919083906113a2908490611c13565b90915550506001600160a01b0383165f81815260036020526040908190208054850190555133905f80516020611cf1833981519152906106879086815260200190565b6060826113fa576113f582611441565b6108e9565b815115801561141157506001600160a01b0384163b155b1561143a57604051639996b31560e01b81526001600160a01b03851660048201526024016106c9565b50806108e9565b8051156114515780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f6020828403121561147a575f80fd5b81356001600160e01b0319811681146108e9575f80fd5b5f5b838110156114ab578181015183820152602001611493565b50505f910152565b5f81518084526114ca816020860160208601611491565b601f01601f19169290920160200192915050565b602081525f6108e960208301846114b3565b6001600160a01b038116811461112d575f80fd5b5f8060408385031215611515575f80fd5b8235611520816114f0565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561156b5761156b61152e565b604052919050565b5f82601f830112611582575f80fd5b813567ffffffffffffffff81111561159c5761159c61152e565b6115af601f8201601f1916602001611542565b8181528460208386010111156115c3575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f80608085870312156115f2575f80fd5b84356115fd816114f0565b9350602085013561160d816114f0565b925060408501359150606085013567ffffffffffffffff81111561162f575f80fd5b61163b87828801611573565b91505092959194509250565b5f805f805f60a0868803121561165b575f80fd5b8535611666816114f0565b94506020860135611676816114f0565b935060408601359250606086013561168d816114f0565b949793965091946080013592915050565b5f8083601f8401126116ae575f80fd5b50813567ffffffffffffffff8111156116c5575f80fd5b6020830191508360208260051b85010111156116df575f80fd5b9250929050565b5f805f805f80606087890312156116fb575f80fd5b863567ffffffffffffffff80821115611712575f80fd5b61171e8a838b0161169e565b90985096506020890135915080821115611736575f80fd5b6117428a838b0161169e565b9096509450604089013591508082111561175a575f80fd5b5061176789828a0161169e565b979a9699509497509295939492505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b828110156117cc57603f198886030184526117ba8583516114b3565b9450928501929085019060010161179e565b5092979650505050505050565b5f805f606084860312156117eb575f80fd5b83356117f6816114f0565b92506020840135611806816114f0565b929592945050506040919091013590565b5f60208284031215611827575f80fd5b81356108e9816114f0565b5f82601f830112611841575f80fd5b8135602067ffffffffffffffff82111561185d5761185d61152e565b8160051b61186c828201611542565b9283528481018201928281019087851115611885575f80fd5b83870192505b848310156118a45782358252918301919083019061188b565b979650505050505050565b5f805f805f60a086880312156118c3575f80fd5b85356118ce816114f0565b945060208601356118de816114f0565b9350604086013567ffffffffffffffff808211156118fa575f80fd5b61190689838a01611832565b9450606088013591508082111561191b575f80fd5b61192789838a01611832565b9350608088013591508082111561193c575f80fd5b5061194988828901611573565b9150509295509295909350565b5f805f805f805f60e0888a03121561196c575f80fd5b8735611977816114f0565b96506020880135611987816114f0565b95506040880135945060608801359350608088013560ff811681146119aa575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f80604083850312156119d8575f80fd5b82356119e3816114f0565b915060208301356119f3816114f0565b809150509250929050565b5f805f805f60a08688031215611a12575f80fd5b8535611a1d816114f0565b94506020860135611a2d816114f0565b93506040860135925060608601359150608086013567ffffffffffffffff811115611a56575f80fd5b61194988828901611573565b5f805f8060608587031215611a75575f80fd5b8435611a80816114f0565b9350602085013567ffffffffffffffff80821115611a9c575f80fd5b818701915087601f830112611aaf575f80fd5b813581811115611abd575f80fd5b886020828501011115611ace575f80fd5b95986020929092019750949560400135945092505050565b600181811c90821680611afa57607f821691505b602082108103611b1857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112611b6d575f80fd5b83018035915067ffffffffffffffff821115611b87575f80fd5b6020019150368190038213156116df575f80fd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611bc057611bc0611b9b565b5060010190565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f60208284031215611c04575f80fd5b815180151581146108e9575f80fd5b8181038181111561059c5761059c611b9b565b5f8251611c37818460208701611491565b9190910192915050565b5f80835481600182811c915080831680611c5c57607f831692505b60208084108203611c7b57634e487b7160e01b86526022600452602486fd5b818015611c8f5760018114611ca457611ccf565b60ff1986168952841515850289019650611ccf565b5f8a8152602090205f5b86811015611cc75781548b820152908501908301611cae565b505084890196505b509498975050505050505050565b8082018082111561059c5761059c611b9b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d055d0f4d0f57850deef6357bd49776a3baaac01de55352da92a3e85a1df423b64736f6c6343000815003300000000000000000000000094544835cf97c631f101c5f538787fe14e2e04f6000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000009556e6946692045544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008756e696669455448000000000000000000000000000000000000000000000000