[ { "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": "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": "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": [ { "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": [], "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": [ { "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": "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": "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" } ]
60806040526001600c5534801561001557600080fd5b5060408051808201825260098152685371756164204c507360b81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ee46cc88967f6e54ff5c9a678c02db834ef98e8fd5363cfff791534d82ff970818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b0319163317905561215e806101066000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610409578063d505accf1461041c578063dd62ed3e1461042f578063fff6cae91461045a57600080fd5b8063ba9a7a56146103da578063bc25cf77146103e3578063c45a0155146103f657600080fd5b80637ecebe00116100d35780637ecebe001461035857806389afcb441461037857806395d89b41146103a0578063a9059cbb146103c757600080fd5b80636a6278421461031c57806370a082311461032f5780637464fc3d1461034f57600080fd5b806323b872dd116101665780633644e515116101405780633644e515146102ee578063485cc955146102f75780635909c0d51461030a5780635a3d54931461031357600080fd5b806323b872dd1461029a57806330adf81f146102ad578063313ce567146102d457600080fd5b8063022c0d9f146101ae57806306fdde03146101c35780630902f1ac14610201578063095ea7b3146102355780630dfe16811461025857806318160ddd14610283575b600080fd5b6101c16101bc366004611cd3565b610462565b005b6101eb604051806040016040528060098152602001685371756164204c507360b81b81525081565b6040516101f89190611d99565b60405180910390f35b61020961097c565b604080516001600160701b03948516815293909216602084015263ffffffff16908201526060016101f8565b610248610243366004611dcc565b6109a6565b60405190151581526020016101f8565b60065461026b906001600160a01b031681565b6040516001600160a01b0390911681526020016101f8565b61028c60005481565b6040519081526020016101f8565b6102486102a8366004611df8565b6109bc565b61028c7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102dc601281565b60405160ff90911681526020016101f8565b61028c60035481565b6101c1610305366004611e39565b610a51565b61028c60095481565b61028c600a5481565b61028c61032a366004611e72565b610ad0565b61028c61033d366004611e72565b60016020526000908152604090205481565b61028c600b5481565b61028c610366366004611e72565b60046020526000908152604090205481565b61038b610386366004611e72565b610d9b565b604080519283526020830191909152016101f8565b6101eb60405180604001604052806008815260200167053717561642d4c560c41b81525081565b6102486103d5366004611dcc565b611100565b61028c6103e881565b6101c16103f1366004611e72565b61110d565b60055461026b906001600160a01b031681565b60075461026b906001600160a01b031681565b6101c161042a366004611e8f565b611220565b61028c61043d366004611e39565b600260209081526000928352604080842090915290825290205481565b6101c1611434565b600c5460011461048d5760405162461bcd60e51b815260040161048490611f06565b60405180910390fd5b6000600c55841515806104a05750600084115b6104fa5760405162461bcd60e51b815260206004820152602560248201527f5371756164737761703a20494e53554646494349454e545f4f55545055545f416044820152641353d5539560da1b6064820152608401610484565b60008061050561097c565b5091509150816001600160701b03168710801561052a5750806001600160701b031686105b6105805760405162461bcd60e51b815260206004820152602160248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152605960f81b6064820152608401610484565b60065460075460009182916001600160a01b039182169190811690891682148015906105be5750806001600160a01b0316896001600160a01b031614155b6106025760405162461bcd60e51b81526020600482015260156024820152745371756164737761703a20494e56414c49445f544f60581b6044820152606401610484565b8a1561061357610613828a8d611558565b891561062457610624818a8c611558565b86156106915760405163a691a9c960e01b81526001600160a01b038a169063a691a9c99061065e9033908f908f908e908e90600401611f31565b600060405180830381600087803b15801561067857600080fd5b505af115801561068c573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156106d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f99190611f7d565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107649190611f7d565b92505050600089856001600160701b031661077f9190611fac565b831161078c5760006107a9565b61079f8a6001600160701b038716611fac565b6107a99084611fac565b905060006107c08a6001600160701b038716611fac565b83116107cd5760006107ea565b6107e08a6001600160701b038716611fac565b6107ea9084611fac565b905060008211806107fb5750600081115b6108535760405162461bcd60e51b8152602060048201526024808201527f5371756164737761703a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b6064820152608401610484565b6000610860836002611fc3565b61086c866103e8611fc3565b6108769190611fac565b90506000610885836002611fc3565b610891866103e8611fc3565b61089b9190611fac565b90506108b36001600160701b03808916908a16611fc3565b6108c090620f4240611fc3565b6108ca8284611fc3565b10156109075760405162461bcd60e51b815260206004820152600c60248201526b5371756164737761703a204b60a01b6044820152606401610484565b5050610915848488886116a3565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600c55505050505050505050565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b60006109b333848461188f565b50600192915050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610a3c576001600160a01b0384166000908152600260209081526040808320338452909152902054610a17908390611fac565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610a478484846118f1565b5060019392505050565b6005546001600160a01b03163314610aa25760405162461bcd60e51b815260206004820152601460248201527329b8bab0b239bbb0b81d102327a92124a22222a760611b6044820152606401610484565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6000600c54600114610af45760405162461bcd60e51b815260040161048490611f06565b6000600c81905580610b0461097c565b506006546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611f7d565b6007546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bec9190611f7d565b90506000610c036001600160701b03861684611fac565b90506000610c1a6001600160701b03861684611fac565b90506000610c288787611999565b60005490915080610c66576103e8610c48610c438587611fc3565b611ae2565b610c529190611fac565b9850610c6160006103e8611b52565b610cad565b610caa6001600160701b038916610c7d8387611fc3565b610c879190611ff8565b6001600160701b038916610c9b8487611fc3565b610ca59190611ff8565b611be3565b98505b60008911610d0e5760405162461bcd60e51b815260206004820152602860248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152671657d3525395115160c21b6064820152608401610484565b610d188a8a611b52565b610d2486868a8a6116a3565b8115610d4d57600854610d49906001600160701b03600160701b820481169116611fc3565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600c5550949695505050505050565b600080600c54600114610dc05760405162461bcd60e51b815260040161048490611f06565b6000600c81905580610dd061097c565b506006546007546040516370a0823160e01b81523060048201529395509193506001600160a01b039081169291169060009083906370a0823190602401602060405180830381865afa158015610e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4e9190611f7d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190611f7d565b30600090815260016020526040812054919250610ed98888611999565b60005490915080610eea8685611fc3565b610ef49190611ff8565b9a5080610f018585611fc3565b610f0b9190611ff8565b995060008b118015610f1d575060008a115b610f7a5760405162461bcd60e51b815260206004820152602860248201527f5371756164737761703a20494e53554646494349454e545f4c495155494449546044820152671657d0955493915160c21b6064820152608401610484565b610f843084611bfb565b610f8f878d8d611558565b610f9a868d8c611558565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015610fde573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110029190611f7d565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa158015611049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106d9190611f7d565b935061107b85858b8b6116a3565b81156110a4576008546110a0906001600160701b03600160701b820481169116611fc3565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600c81905550915091565b60006109b33384846118f1565b600c5460011461112f5760405162461bcd60e51b815260040161048490611f06565b6000600c556006546007546008546040516370a0823160e01b81523060048201526001600160a01b0393841693909216916111ce91849186916001600160701b03169083906370a08231906024015b602060405180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf9190611f7d565b6111c99190611fac565b611558565b6008546040516370a0823160e01b81523060048201526112169183918691600160701b90046001600160701b0316906001600160a01b038416906370a082319060240161117e565b50506001600c5550565b428410156112655760405162461bcd60e51b815260206004820152601260248201527114dc5d58591cddd85c0e881156141254915160721b6044820152606401610484565b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876112b88361200c565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161133192919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa15801561139c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906113d25750886001600160a01b0316816001600160a01b0316145b61141e5760405162461bcd60e51b815260206004820152601c60248201527f5371756164737761703a20494e56414c49445f5349474e4154555245000000006044820152606401610484565b61142989898961188f565b505050505050505050565b600c546001146114565760405162461bcd60e51b815260040161048490611f06565b6000600c556006546040516370a0823160e01b8152306004820152611551916001600160a01b0316906370a0823190602401602060405180830381865afa1580156114a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c99190611f7d565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115359190611f7d565b6008546001600160701b0380821691600160701b9004166116a3565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b179052915160009283928716916115e49190612027565b6000604051808303816000865af19150503d8060008114611621576040519150601f19603f3d011682016040523d82523d6000602084013e611626565b606091505b50915091508180156116505750805115806116505750808060200190518101906116509190612043565b61169c5760405162461bcd60e51b815260206004820152601a60248201527f5371756164737761703a205452414e534645525f4641494c45440000000000006044820152606401610484565b5050505050565b6001600160701b0384118015906116c157506001600160701b038311155b6117035760405162461bcd60e51b81526020600482015260136024820152725371756164737761703a204f564552464c4f5760681b6044820152606401610484565b600061171464010000000042612065565b60085490915060009061173490600160e01b900463ffffffff1683612079565b905060008163ffffffff1611801561175457506001600160701b03841615155b801561176857506001600160701b03831615155b156117f7578063ffffffff166117908561178186611c87565b6001600160e01b031690611ca6565b6001600160e01b03166117a39190611fc3565b600960008282546117b4919061209e565b909155505063ffffffff81166117cd8461178187611c87565b6001600160e01b03166117e09190611fc3565b600a60008282546117f1919061209e565b90915550505b6008805463ffffffff8416600160e01b026001600160e01b036001600160701b03898116600160701b9081026001600160e01b03199095168c83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505050505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316600090815260016020526040902054611915908290611fac565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461194590829061209e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118e49085815260200190565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1391906120b6565b600b546001600160a01b038216158015945091925090611ace578015611ac9576000611a4e610c436001600160701b03808816908916611fc3565b90506000611a5b83611ae2565b905080821115611ac6576000611a718284611fac565b600054611a7e9190611fc3565b611a89906004611fc3565b90506000611a98836004611fc3565b611aa2908561209e565b90506000611ab08284611ff8565b90508015611ac257611ac28782611b52565b5050505b50505b611ada565b8015611ada576000600b555b505092915050565b60006003821115611b435750806000611afc600283611ff8565b611b0790600161209e565b90505b81811015611b3d57905080600281611b228186611ff8565b611b2c919061209e565b611b369190611ff8565b9050611b0a565b50919050565b8115611b4d575060015b919050565b80600054611b60919061209e565b60009081556001600160a01b038316815260016020526040902054611b8690829061209e565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bd79085815260200190565b60405180910390a35050565b6000818310611bf25781611bf4565b825b9392505050565b6001600160a01b038216600090815260016020526040902054611c1f908290611fac565b6001600160a01b03831660009081526001602052604081209190915554611c47908290611fac565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611bd7565b6000611ca0600160701b6001600160701b0384166120d3565b92915050565b6000611bf46001600160701b03831684612102565b6001600160a01b0381168114611cd057600080fd5b50565b600080600080600060808688031215611ceb57600080fd5b85359450602086013593506040860135611d0481611cbb565b9250606086013567ffffffffffffffff80821115611d2157600080fd5b818801915088601f830112611d3557600080fd5b813581811115611d4457600080fd5b896020828501011115611d5657600080fd5b9699959850939650602001949392505050565b60005b83811015611d84578181015183820152602001611d6c565b83811115611d93576000848401525b50505050565b6020815260008251806020840152611db8816040850160208701611d69565b601f01601f19169190910160400192915050565b60008060408385031215611ddf57600080fd5b8235611dea81611cbb565b946020939093013593505050565b600080600060608486031215611e0d57600080fd5b8335611e1881611cbb565b92506020840135611e2881611cbb565b929592945050506040919091013590565b60008060408385031215611e4c57600080fd5b8235611e5781611cbb565b91506020830135611e6781611cbb565b809150509250929050565b600060208284031215611e8457600080fd5b8135611bf481611cbb565b600080600080600080600060e0888a031215611eaa57600080fd5b8735611eb581611cbb565b96506020880135611ec581611cbb565b95506040880135945060608801359350608088013560ff81168114611ee957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60208082526011908201527014dc5d58591cddd85c0e881313d0d2d151607a1b604082015260600190565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b600060208284031215611f8f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611fbe57611fbe611f96565b500390565b6000816000190483118215151615611fdd57611fdd611f96565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261200757612007611fe2565b500490565b600060001982141561202057612020611f96565b5060010190565b60008251612039818460208701611d69565b9190910192915050565b60006020828403121561205557600080fd5b81518015158114611bf457600080fd5b60008261207457612074611fe2565b500690565b600063ffffffff8381169083168181101561209657612096611f96565b039392505050565b600082198211156120b1576120b1611f96565b500190565b6000602082840312156120c857600080fd5b8151611bf481611cbb565b60006001600160e01b03828116848216811515828404821116156120f9576120f9611f96565b02949350505050565b60006001600160e01b038381168061211c5761211c611fe2565b9216919091049291505056fea264697066735822122079258800045f5a40a4be0aef94f2047f32065c6d044e3d619de8c369674147ab64736f6c634300080c0033