[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountWETH", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountUSDB", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountGas", "type": "uint256" } ], "name": "ClaimYieldAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint112", "name": "reserve0", "type": "uint112" }, { "indexed": false, "internalType": "uint112", "name": "reserve1", "type": "uint112" } ], "name": "Sync", "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": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "BLAST", "outputs": [ { "internalType": "contract IBlast", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BlastPointsAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINIMUM_LIQUIDITY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "USDB", "outputs": [ { "internalType": "contract IERC20Rebasing", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WETHB", "outputs": [ { "internalType": "contract IERC20Rebasing", "name": "", "type": "address" } ], "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": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_minClaimRateBips", "type": "uint256" } ], "name": "claimGas", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amountWETH", "type": "uint256" }, { "internalType": "uint256", "name": "_amountUSDB", "type": "uint256" } ], "name": "claimYieldAll", "outputs": [ { "internalType": "uint256", "name": "amountWETH", "type": "uint256" }, { "internalType": "uint256", "name": "amountUSDB", "type": "uint256" }, { "internalType": "uint256", "name": "amountGas", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint112", "name": "_reserve0", "type": "uint112" }, { "internalType": "uint112", "name": "_reserve1", "type": "uint112" }, { "internalType": "uint32", "name": "_blockTimestampLast", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "kLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "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": "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": [], "name": "pointsOperator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price0CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price1CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_manager", "type": "address" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "skim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, { "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "swap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "value", "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": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040526001600c55600d80546001600160a01b0319908116732fc95838c71e76ec69ff817983bff17c710f34e017909155600e80548216735713a71747dff1c550b8e5c01452c7597178dff8908117909155600f80549092161790553480156200006a57600080fd5b5060408051808201825260098152685371756164204c507360b81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ee46cc88967f6e54ff5c9a678c02db834ef98e8fd5363cfff791534d82ff970818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0820180855281519190930120600355600580546001600160a01b03191633179055634e606c4760e01b909152905173430000000000000000000000000000000000000291634e606c479160c480830192600092919082900301818387803b1580156200019757600080fd5b505af1158015620001ac573d6000803e3d6000fd5b5050604051631a33757d60e01b81527342000000000000000000000000000000000000229250631a33757d9150620001ea906002906004016200031b565b6020604051808303816000875af11580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000230919062000344565b50604051631a33757d60e01b815273420000000000000000000000000000000000002390631a33757d906200026b906002906004016200031b565b6020604051808303816000875af11580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b1919062000344565b50600d54600e546040516336b91f2b60e01b81526001600160a01b0391821660048201529116906336b91f2b90602401600060405180830381600087803b158015620002fc57600080fd5b505af115801562000311573d6000803e3d6000fd5b505050506200035e565b60208101600383106200033e57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156200035757600080fd5b5051919050565b612698806200036e6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806366759ad911610125578063ad66aeb8116100ad578063d0ebdbe71161007c578063d0ebdbe71461051c578063d21220a71461052f578063d505accf14610542578063dd62ed3e14610555578063fff6cae91461058057600080fd5b8063ad66aeb8146104bf578063ba9a7a56146104ed578063bc25cf77146104f6578063c45a01551461050957600080fd5b80637ecebe00116100f45780637ecebe001461042f57806389afcb441461044f57806395d89b411461047757806397d757761461049e578063a9059cbb146104ac57600080fd5b806366759ad9146103e55780636a627842146103f357806370a08231146104065780637464fc3d1461042657600080fd5b806330adf81f116101a857806347fb45531161017757806347fb45531461039a578063481c6a75146103ad578063485cc955146103c05780635909c0d5146103d35780635a3d5493146103dc57600080fd5b806330adf81f14610342578063313ce5671461036957806331a0edec146103835780633644e5151461039157600080fd5b8063095ea7b3116101ef578063095ea7b3146102c55780630dfe1681146102e857806316cfaa161461031357806318160ddd1461032657806323b872dd1461032f57600080fd5b8063022c0d9f1461022157806305bafd921461023657806306fdde031461025c5780630902f1ac14610291575b600080fd5b61023461022f3660046121b5565b610588565b005b61024961024436600461224b565b610aa2565b6040519081526020015b60405180910390f35b610284604051806040016040528060098152602001685371756164204c507360b81b81525081565b60405161025391906122a7565b610299610c1c565b604080516001600160701b03948516815293909216602084015263ffffffff1690820152606001610253565b6102d86102d336600461224b565b610c46565b6040519015158152602001610253565b6006546102fb906001600160a01b031681565b6040516001600160a01b039091168152602001610253565b600d546102fb906001600160a01b031681565b61024960005481565b6102d861033d3660046122da565b610c5c565b6102497f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610371601281565b60405160ff9091168152602001610253565b6102fb6022602160991b0181565b61024960035481565b600e546102fb906001600160a01b031681565b600f546102fb906001600160a01b031681565b6102346103ce36600461231b565b610cf1565b61024960095481565b610249600a5481565b6102fb6023602160991b0181565b610249610401366004612354565b610d70565b610249610414366004612354565b60016020526000908152604090205481565b610249600b5481565b61024961043d366004612354565b60046020526000908152604090205481565b61046261045d366004612354565b61103b565b60408051928352602083019190915201610253565b61028460405180604001604052806008815260200167053717561642d4c560c41b81525081565b6102fb6002604360981b0181565b6102d86104ba36600461224b565b6113a0565b6104d26104cd366004612371565b6113ad565b60408051938452602084019290925290820152606001610253565b6102496103e881565b610234610504366004612354565b6115a3565b6005546102fb906001600160a01b031681565b61023461052a366004612354565b6116b6565b6007546102fb906001600160a01b031681565b6102346105503660046123a6565b611702565b61024961056336600461231b565b600260209081526000928352604080842090915290825290205481565b610234611916565b600c546001146105b35760405162461bcd60e51b81526004016105aa9061241d565b60405180910390fd5b6000600c55841515806105c65750600084115b6106205760405162461bcd60e51b815260206004820152602560248201527f5371756164737761703a20494e53554646494349454e545f4f55545055545f416044820152641353d5539560da1b60648201526084016105aa565b60008061062b610c1c565b5091509150816001600160701b0316871080156106505750806001600160701b031686105b6106a65760405162461bcd60e51b815260206004820152602160248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152605960f81b60648201526084016105aa565b60065460075460009182916001600160a01b039182169190811690891682148015906106e45750806001600160a01b0316896001600160a01b031614155b6107285760405162461bcd60e51b81526020600482015260156024820152745371756164737761703a20494e56414c49445f544f60581b60448201526064016105aa565b8a1561073957610739828a8d611a3a565b891561074a5761074a818a8c611a3a565b86156107b75760405163a691a9c960e01b81526001600160a01b038a169063a691a9c9906107849033908f908f908e908e90600401612448565b600060405180830381600087803b15801561079e57600080fd5b505af11580156107b2573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190612494565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a9190612494565b92505050600089856001600160701b03166108a591906124c3565b83116108b25760006108cf565b6108c58a6001600160701b0387166124c3565b6108cf90846124c3565b905060006108e68a6001600160701b0387166124c3565b83116108f3576000610910565b6109068a6001600160701b0387166124c3565b61091090846124c3565b905060008211806109215750600081115b6109795760405162461bcd60e51b8152602060048201526024808201527f5371756164737761703a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b60648201526084016105aa565b60006109868360026124da565b610992866103e86124da565b61099c91906124c3565b905060006109ab8360026124da565b6109b7866103e86124da565b6109c191906124c3565b90506109d96001600160701b03808916908a166124da565b6109e690620f42406124da565b6109f082846124da565b1015610a2d5760405162461bcd60e51b815260206004820152600c60248201526b5371756164737761703a204b60a01b60448201526064016105aa565b5050610a3b84848888611b85565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600c55505050505050505050565b600f546000906001600160a01b03163314610acf5760405162461bcd60e51b81526004016105aa906124f9565b81610b525760405163662aa11d60e01b81523060048201526001600160a01b03841660248201526002604360981b019063662aa11d906044016020604051808303816000875af1158015610b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4b9190612494565b9050610bd3565b604051630951888f60e01b81523060048201526001600160a01b0384166024820152604481018390526002604360981b0190630951888f906064016020604051808303816000875af1158015610bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd09190612494565b90505b826001600160a01b03167f5eadc4013530f38d8b7709b47915d0cef30eee941dad69669a5b45e0686879fa82604051610c0e91815260200190565b60405180910390a292915050565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610c53338484611d71565b50600192915050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610cdc576001600160a01b0384166000908152600260209081526040808320338452909152902054610cb79083906124c3565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610ce7848484611dd3565b5060019392505050565b6005546001600160a01b03163314610d425760405162461bcd60e51b815260206004820152601460248201527329b8bab0b239bbb0b81d102327a92124a22222a760611b60448201526064016105aa565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6000600c54600114610d945760405162461bcd60e51b81526004016105aa9061241d565b6000600c81905580610da4610c1c565b506006546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1a9190612494565b6007546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c9190612494565b90506000610ea36001600160701b038616846124c3565b90506000610eba6001600160701b038616846124c3565b90506000610ec88787611e7b565b60005490915080610f06576103e8610ee8610ee385876124da565b611fc4565b610ef291906124c3565b9850610f0160006103e8612034565b610f4d565b610f4a6001600160701b038916610f1d83876124da565b610f279190612532565b6001600160701b038916610f3b84876124da565b610f459190612532565b6120c5565b98505b60008911610fae5760405162461bcd60e51b815260206004820152602860248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152671657d3525395115160c21b60648201526084016105aa565b610fb88a8a612034565b610fc486868a8a611b85565b8115610fed57600854610fe9906001600160701b03600160701b8204811691166124da565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600c5550949695505050505050565b600080600c546001146110605760405162461bcd60e51b81526004016105aa9061241d565b6000600c81905580611070610c1c565b506006546007546040516370a0823160e01b81523060048201529395509193506001600160a01b039081169291169060009083906370a0823190602401602060405180830381865afa1580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee9190612494565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190612494565b306000908152600160205260408120549192506111798888611e7b565b6000549091508061118a86856124da565b6111949190612532565b9a50806111a185856124da565b6111ab9190612532565b995060008b1180156111bd575060008a115b61121a5760405162461bcd60e51b815260206004820152602860248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152671657d0955493915160c21b60648201526084016105aa565b61122430846120dd565b61122f878d8d611a3a565b61123a868d8c611a3a565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa15801561127e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a29190612494565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa1580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d9190612494565b935061131b85858b8b611b85565b811561134457600854611340906001600160701b03600160701b8204811691166124da565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600c81905550915091565b6000610c53338484611dd3565b600f54600090819081906001600160a01b031633146113de5760405162461bcd60e51b81526004016105aa906124f9565b604051635569f64b60e11b81526001600160a01b0387166004820152602481018690526023602160991b019063aad3ec96906044016020604051808303816000875af1158015611432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114569190612494565b604051635569f64b60e11b81526001600160a01b0388166004820152602481018690529093506022602160991b019063aad3ec96906044016020604051808303816000875af11580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d19190612494565b60405163662aa11d60e01b81523060048201526001600160a01b03881660248201529092506002604360981b019063662aa11d906044016020604051808303816000875af1158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190612494565b60408051858152602081018590529081018290529091506001600160a01b038716907f1943c53b7309df037b9077befdba52e1fd2c298ad0e91a0b4a4d163c7d095f189060600160405180910390a293509350939050565b600c546001146115c55760405162461bcd60e51b81526004016105aa9061241d565b6000600c556006546007546008546040516370a0823160e01b81523060048201526001600160a01b03938416939092169161166491849186916001600160701b03169083906370a08231906024015b602060405180830381865afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612494565b61165f91906124c3565b611a3a565b6008546040516370a0823160e01b81523060048201526116ac9183918691600160701b90046001600160701b0316906001600160a01b038416906370a0823190602401611614565b50506001600c5550565b600f546001600160a01b031633146116e05760405162461bcd60e51b81526004016105aa906124f9565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b428410156117475760405162461bcd60e51b815260206004820152601260248201527114dc5d58591cddd85c0e881156141254915160721b60448201526064016105aa565b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b91908761179a83612546565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161181392919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa15801561187e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906118b45750886001600160a01b0316816001600160a01b0316145b6119005760405162461bcd60e51b815260206004820152601c60248201527f5371756164737761703a20494e56414c49445f5349474e41545552450000000060448201526064016105aa565b61190b898989611d71565b505050505050505050565b600c546001146119385760405162461bcd60e51b81526004016105aa9061241d565b6000600c556006546040516370a0823160e01b8152306004820152611a33916001600160a01b0316906370a0823190602401602060405180830381865afa158015611987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ab9190612494565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156119f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a179190612494565b6008546001600160701b0380821691600160701b900416611b85565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291516000928392871691611ac69190612561565b6000604051808303816000865af19150503d8060008114611b03576040519150601f19603f3d011682016040523d82523d6000602084013e611b08565b606091505b5091509150818015611b32575080511580611b32575080806020019051810190611b32919061257d565b611b7e5760405162461bcd60e51b815260206004820152601a60248201527f5371756164737761703a205452414e534645525f4641494c454400000000000060448201526064016105aa565b5050505050565b6001600160701b038411801590611ba357506001600160701b038311155b611be55760405162461bcd60e51b81526020600482015260136024820152725371756164737761703a204f564552464c4f5760681b60448201526064016105aa565b6000611bf66401000000004261259f565b600854909150600090611c1690600160e01b900463ffffffff16836125b3565b905060008163ffffffff16118015611c3657506001600160701b03841615155b8015611c4a57506001600160701b03831615155b15611cd9578063ffffffff16611c7285611c6386612169565b6001600160e01b031690612188565b6001600160e01b0316611c8591906124da565b60096000828254611c9691906125d8565b909155505063ffffffff8116611caf84611c6387612169565b6001600160e01b0316611cc291906124da565b600a6000828254611cd391906125d8565b90915550505b6008805463ffffffff8416600160e01b026001600160e01b036001600160701b03898116600160701b9081026001600160e01b03199095168c83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505050505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316600090815260016020526040902054611df79082906124c3565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611e279082906125d8565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dc69085815260200190565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef591906125f0565b600b546001600160a01b038216158015945091925090611fb0578015611fab576000611f30610ee36001600160701b038088169089166124da565b90506000611f3d83611fc4565b905080821115611fa8576000611f5382846124c3565b600054611f6091906124da565b611f6b9060046124da565b90506000611f7a8360046124da565b611f8490856125d8565b90506000611f928284612532565b90508015611fa457611fa48782612034565b5050505b50505b611fbc565b8015611fbc576000600b555b505092915050565b600060038211156120255750806000611fde600283612532565b611fe99060016125d8565b90505b8181101561201f579050806002816120048186612532565b61200e91906125d8565b6120189190612532565b9050611fec565b50919050565b811561202f575060015b919050565b8060005461204291906125d8565b60009081556001600160a01b0383168152600160205260409020546120689082906125d8565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120b99085815260200190565b60405180910390a35050565b60008183106120d457816120d6565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121019082906124c3565b6001600160a01b038316600090815260016020526040812091909155546121299082906124c3565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016120b9565b6000612182600160701b6001600160701b03841661260d565b92915050565b60006120d66001600160701b0383168461263c565b6001600160a01b03811681146121b257600080fd5b50565b6000806000806000608086880312156121cd57600080fd5b853594506020860135935060408601356121e68161219d565b9250606086013567ffffffffffffffff8082111561220357600080fd5b818801915088601f83011261221757600080fd5b81358181111561222657600080fd5b89602082850101111561223857600080fd5b9699959850939650602001949392505050565b6000806040838503121561225e57600080fd5b82356122698161219d565b946020939093013593505050565b60005b8381101561229257818101518382015260200161227a565b838111156122a1576000848401525b50505050565b60208152600082518060208401526122c6816040850160208701612277565b601f01601f19169190910160400192915050565b6000806000606084860312156122ef57600080fd5b83356122fa8161219d565b9250602084013561230a8161219d565b929592945050506040919091013590565b6000806040838503121561232e57600080fd5b82356123398161219d565b915060208301356123498161219d565b809150509250929050565b60006020828403121561236657600080fd5b81356120d68161219d565b60008060006060848603121561238657600080fd5b83356123918161219d565b95602085013595506040909401359392505050565b600080600080600080600060e0888a0312156123c157600080fd5b87356123cc8161219d565b965060208801356123dc8161219d565b95506040880135945060608801359350608088013560ff8116811461240057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60208082526011908201527014dc5d58591cddd85c0e881313d0d2d151607a1b604082015260600190565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b6000602082840312156124a657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156124d5576124d56124ad565b500390565b60008160001904831182151516156124f4576124f46124ad565b500290565b6020808252600990820152682327a92124a22222a760b91b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b6000826125415761254161251c565b500490565b600060001982141561255a5761255a6124ad565b5060010190565b60008251612573818460208701612277565b9190910192915050565b60006020828403121561258f57600080fd5b815180151581146120d657600080fd5b6000826125ae576125ae61251c565b500690565b600063ffffffff838116908316818110156125d0576125d06124ad565b039392505050565b600082198211156125eb576125eb6124ad565b500190565b60006020828403121561260257600080fd5b81516120d68161219d565b60006001600160e01b0382811684821681151582840482111615612633576126336124ad565b02949350505050565b60006001600160e01b03838116806126565761265661251c565b9216919091049291505056fea2646970667358221220457da34895d9f340932595f4c3ace3d2f314b3655ef22e58dca95e55bdbba7bf64736f6c634300080c0033