0 txs
1 call
constructor
constructor(address _btcbToken, address _projectToken, address initialOwner)
functions
btcbToken
viewfunction btcbToken() view returns (address)
cumulativePrice
viewfunction cumulativePrice() view returns (uint256)
currentObservationIndex
viewfunction currentObservationIndex() view returns (uint8)
getAmountOut
purefunction getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) pure returns (uint256 amountOut)
getCurrentPrice
viewfunction getCurrentPrice() view returns (uint256)
getReserves
viewfunction getReserves() view returns (uint256 btcbReserve, uint256 projectTokenReserve)
getTWAP
viewfunction getTWAP(uint256 period) view returns (uint256)
lastPrice
viewfunction lastPrice() view returns (uint256)
lastTimestamp
viewfunction lastTimestamp() view returns (uint256)
liquidity
viewfunction liquidity(address) view returns (uint256)
MINIMUM_LIQUIDITY
viewfunction MINIMUM_LIQUIDITY() view returns (uint256)
owner
viewfunction owner() view returns (address)
projectToken
viewfunction projectToken() view returns (address)
totalLiquidity
viewfunction totalLiquidity() view returns (uint256)
TWAP_PERIOD
viewfunction TWAP_PERIOD() view returns (uint256)
twapObservations
viewfunction twapObservations(uint256) view returns (uint256 timestamp, uint256 cumulativePrice)
addLiquidity
nonpayablefunction addLiquidity(uint256 btcbAmount, uint256 projectTokenAmount) returns (uint256 liquidityMinted)
removeLiquidity
nonpayablefunction removeLiquidity(uint256 liquidityAmount) returns (uint256 btcbAmount, uint256 projectTokenAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setProjectToken
nonpayablefunction setProjectToken(address newProjectToken)
swap
nonpayablefunction swap(uint256 btcbIn, uint256 projectTokenIn, uint256 minBtcbOut, uint256 minProjectTokenOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
LiquidityAdded
event LiquidityAdded(address indexed provider, uint256 btcbAmount, uint256 projectTokenAmount, uint256 liquidityMinted)
LiquidityRemoved
event LiquidityRemoved(address indexed provider, uint256 btcbAmount, uint256 projectTokenAmount, uint256 liquidityBurned)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProjectTokenUpdated
event ProjectTokenUpdated(address indexed newProjectToken)
Swap
event Swap(address indexed user, uint256 btcbIn, uint256 projectTokenIn, uint256 btcbOut, uint256 projectTokenOut)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162002cfe38038062002cfe8339818101604052810190620000379190620002ee565b806001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000b55760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000ac91906200035b565b60405180910390fd5b620000c681620001be60201b60201c565b508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260058190555060005b60088160ff161015620001b4576040518060400160405280428152602001600081525060088260ff166008811062000183576200018262000378565b5b6002020160008201518160000155602082015181600101559050508080620001ab90620003e3565b91505062000146565b5050505062000411565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b68262000289565b9050919050565b620002c881620002a9565b8114620002d457600080fd5b50565b600081519050620002e881620002bd565b92915050565b6000806000606084860312156200030a576200030962000284565b5b60006200031a86828701620002d7565b93505060206200032d86828701620002d7565b92505060406200034086828701620002d7565b9150509250925092565b6200035581620002a9565b82525050565b60006020820190506200037260008301846200034a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff82169050919050565b6000620003f082620003d6565b915060ff8203620004065762000405620003a7565b5b600182019050919050565b6080516128ae62000450600039600081816104f9015281816107600152818161089d01528181610b2101528181610d0b0152610e4601526128ae6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063ba9a7a561161007c578063ba9a7a561461036e578063de9a7e191461038c578063eb91d37e146103aa578063efe9c9e2146103c8578063f2fde38b146103e4578063f30d3d1b1461040057610142565b80638da5cb5b146102a15780639c8f9f23146102bf5780639cd441da146102f0578063aed3aff714610320578063b8c876b11461033e57610142565b806343653f191161010a57806343653f19146101f05780634b60ce77146102215780634e12d6761461023f5780635673b02d1461025d578063715018a6146102795780637ca251841461028357610142565b8063053f14da14610147578063054d50d4146101655780630902f1ac1461019557806315770f92146101b457806319d8ac61146101d2575b600080fd5b61014f610430565b60405161015c9190611c73565b60405180910390f35b61017f600480360381019061017a9190611cbf565b610436565b60405161018c9190611c73565b60405180910390f35b61019d6104f4565b6040516101ab929190611d12565b60405180910390f35b6101bc610635565b6040516101c99190611c73565b60405180910390f35b6101da61063b565b6040516101e79190611c73565b60405180910390f35b61020a60048036038101906102059190611d3b565b610641565b604051610218929190611d12565b60405180910390f35b61022961066b565b6040516102369190611de7565b60405180910390f35b610247610691565b6040516102549190611c73565b60405180910390f35b61027760048036038101906102729190611e02565b610697565b005b610281610950565b005b61028b610964565b6040516102989190611c73565b60405180910390f35b6102a961096b565b6040516102b69190611e8a565b60405180910390f35b6102d960048036038101906102d49190611d3b565b610995565b6040516102e7929190611d12565b60405180910390f35b61030a60048036038101906103059190611ea5565b610bc1565b6040516103179190611c73565b60405180910390f35b610328610e13565b6040516103359190611f01565b60405180910390f35b61035860048036038101906103539190611f48565b610e26565b6040516103659190611c73565b60405180910390f35b610376610e3e565b6040516103839190611c73565b60405180910390f35b610394610e44565b6040516103a19190611de7565b60405180910390f35b6103b2610e68565b6040516103bf9190611c73565b60405180910390f35b6103e260048036038101906103dd9190611f48565b610ee2565b005b6103fe60048036038101906103f99190611f48565b610fe0565b005b61041a60048036038101906104159190611d3b565b611066565b6040516104279190611c73565b60405180910390f35b60075481565b600080841161047a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047190611fd2565b60405180910390fd5b60008311801561048a5750600082115b6104c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c09061203e565b60405180910390fd5b83836104d5919061208d565b82856104e191906120c1565b6104eb9190612132565b90509392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105509190611e8a565b602060405180830381865afa15801561056d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105919190612178565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105ee9190611e8a565b602060405180830381865afa15801561060b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062f9190612178565b90509091565b60035481565b60055481565b6008816008811061065157600080fd5b600202016000915090508060000154908060010154905082565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b61069f611357565b60008411806106ae5750600083115b6106ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e490611fd2565b60405180910390fd5b6000806106f86104f4565b9150915060008060008811156107f757610713888585610436565b905084811015610758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074f90612217565b60405180910390fd5b6107a533308a7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661139d909392919063ffffffff16565b6107f23382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661141f9092919063ffffffff16565b6108e2565b610802878486610436565b915085821015610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e90612283565b60405180910390fd5b610896333089600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661139d909392919063ffffffff16565b6108e133837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661141f9092919063ffffffff16565b5b6108ea61149e565b3373ffffffffffffffffffffffffffffffffffffffff167f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7378989858560405161093694939291906122a3565b60405180910390a25050505061094a6115d4565b50505050565b6109586115de565b6109626000611665565b565b6201518081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806109a0611357565b82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a199061203e565b60405180910390fd5b600080610a2d6104f4565b915091506003548286610a4091906120c1565b610a4a9190612132565b93506003548186610a5b91906120c1565b610a659190612132565b9250600084118015610a775750600083115b610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90612334565b60405180910390fd5b610ac0338661172b565b610ac861149e565b3373ffffffffffffffffffffffffffffffffffffffff167f1dc8bb69df2b8e91fbdcbfcf93d951b3f0000f085a95fe3f7946d6161439245d858588604051610b1293929190612354565b60405180910390a2610b6533857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661141f9092919063ffffffff16565b610bb23384600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661141f9092919063ffffffff16565b5050610bbc6115d4565b915091565b6000610bcb611357565b600080610bd66104f4565b91509150600082148015610bea5750600081145b15610c24576103e8610c068587610c0191906120c1565b61179e565b610c10919061238b565b9250610c1f60006103e8611897565b610cc0565b6000828287610c3391906120c1565b610c3d9190612132565b905080851015610c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7990612431565b60405180910390fd5b610cbc8360035488610c9491906120c1565b610c9e9190612132565b8360035488610cad91906120c1565b610cb79190612132565b61190a565b9350505b60008311610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa9061249d565b60405180910390fd5b610d503330877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661139d909392919063ffffffff16565b610d9f333086600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661139d909392919063ffffffff16565b610da93384611897565b610db161149e565b3373ffffffffffffffffffffffffffffffffffffffff167f64b83944e79c3ce8d4c297411de637c3e102d064677aac0c163976ebdcd6f50e868686604051610dfb93929190612354565b60405180910390a25050610e0d6115d4565b92915050565b601860009054906101000a900460ff1681565b60046020528060005260406000206000915090505481565b6103e881565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000610e756104f4565b9150915060008111610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390612509565b60405180910390fd5b80670de0b6b3a764000083610ed191906120c1565b610edb9190612132565b9250505090565b610eea6115de565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090612575565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7d4472c87c10f649366c8f885beb86eaf0979d29afe4c6d21d9a1a0985a9dc0560405160405180910390a250565b610fe86115de565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361105a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016110519190611e8a565b60405180910390fd5b61106381611665565b50565b6000620151808211156110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a5906125e1565b60405180910390fd5b600082116110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061264d565b60405180910390fd5b6000429050600554810361110f57611107610e68565b915050611352565b6000838261111d919061238b565b905060008060005b60088160ff1610156113235760006008826001601860009054906101000a900460ff16611152919061266d565b61115c919061266d565b61116691906126a2565b90506000600883601860009054906101000a900460ff16611187919061266d565b61119191906126a2565b9050600060088260ff16600881106111ac576111ab6126d3565b5b60020201604051806040016040529081600082015481526020016001820154815250509050600060088460ff16600881106111ea576111e96126d3565b5b60020201604051806040016040529081600082015481526020016001820154815250509050600082600001511480611226575060008160000151145b156112345750505050611310565b806000015182600001511061124c5750505050611310565b60008883600001511161125f5788611265565b82600001515b905060008a83600001511161127e578260000151611280565b8a5b905081811161129457505050505050611310565b600082826112a2919061238b565b90506000856020015185602001516112ba919061238b565b90506000866000015186600001516112d2919061238b565b83836112de91906120c1565b6112e89190612132565b9050808c6112f6919061208d565b9b50828b611304919061208d565b9a505050505050505050505b808061131b90612702565b915050611125565b506000810361133f57611334610e68565b945050505050611352565b808261134b9190612132565b9450505050505b919050565b600260005403611393576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b611419848573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016113d29392919061272b565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611923565b50505050565b611499838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611452929190612762565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611923565b505050565b6000806114a96104f4565b915091506000600554426114bd919061238b565b90506000811180156114d0575060008314155b80156114dd575060008214155b1561150957806007546114f091906120c1565b60066000828254611501919061208d565b925050819055505b81670de0b6b3a76400008461151e91906120c1565b6115289190612132565b6007819055504260058190555060086001601860009054906101000a900460ff16611553919061266d565b61155d91906126a2565b601860006101000a81548160ff021916908360ff16021790555060405180604001604052804281526020016006548152506008601860009054906101000a900460ff1660ff16600881106115b4576115b36126d3565b5b600202016000820151816000015560208201518160010155905050505050565b6001600081905550565b6115e66119ba565b73ffffffffffffffffffffffffffffffffffffffff1661160461096b565b73ffffffffffffffffffffffffffffffffffffffff1614611663576116276119ba565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161165a9190611e8a565b60405180910390fd5b565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177a919061238b565b925050819055508060036000828254611793919061238b565b925050819055505050565b60008082036117b05760009050611892565b600060016117bd846119c2565b901c6001901b905060018184816117d7576117d6612103565b5b048201901c905060018184816117f0576117ef612103565b5b048201901c9050600181848161180957611808612103565b5b048201901c9050600181848161182257611821612103565b5b048201901c9050600181848161183b5761183a612103565b5b048201901c9050600181848161185457611853612103565b5b048201901c9050600181848161186d5761186c612103565b5b048201901c905061188e8182858161188857611887612103565b5b0461190a565b9150505b919050565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118e6919061208d565b9250508190555080600360008282546118ff919061208d565b925050819055505050565b6000818310611919578161191b565b825b905092915050565b600061194e828473ffffffffffffffffffffffffffffffffffffffff16611aa390919063ffffffff16565b9050600081511415801561197357508080602001905181019061197191906127c3565b155b156119b557826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016119ac9190611e8a565b60405180910390fd5b505050565b600033905090565b600080600090506000608084901c11156119e457608083901c92506080810190505b6000604084901c11156119ff57604083901c92506040810190505b6000602084901c1115611a1a57602083901c92506020810190505b6000601084901c1115611a3557601083901c92506010810190505b6000600884901c1115611a5057600883901c92506008810190505b6000600484901c1115611a6b57600483901c92506004810190505b6000600284901c1115611a8657600283901c92506002810190505b6000600184901c1115611a9a576001810190505b80915050919050565b6060611ab183836000611ab9565b905092915050565b606081471015611b0057306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401611af79190611e8a565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051611b299190612861565b60006040518083038185875af1925050503d8060008114611b66576040519150601f19603f3d011682016040523d82523d6000602084013e611b6b565b606091505b5091509150611b7b868383611b86565b925050509392505050565b606082611b9b57611b9682611c15565b611c0d565b60008251148015611bc3575060008473ffffffffffffffffffffffffffffffffffffffff163b145b15611c0557836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401611bfc9190611e8a565b60405180910390fd5b819050611c0e565b5b9392505050565b600081511115611c285780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000819050919050565b611c6d81611c5a565b82525050565b6000602082019050611c886000830184611c64565b92915050565b600080fd5b611c9c81611c5a565b8114611ca757600080fd5b50565b600081359050611cb981611c93565b92915050565b600080600060608486031215611cd857611cd7611c8e565b5b6000611ce686828701611caa565b9350506020611cf786828701611caa565b9250506040611d0886828701611caa565b9150509250925092565b6000604082019050611d276000830185611c64565b611d346020830184611c64565b9392505050565b600060208284031215611d5157611d50611c8e565b5b6000611d5f84828501611caa565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611dad611da8611da384611d68565b611d88565b611d68565b9050919050565b6000611dbf82611d92565b9050919050565b6000611dd182611db4565b9050919050565b611de181611dc6565b82525050565b6000602082019050611dfc6000830184611dd8565b92915050565b60008060008060808587031215611e1c57611e1b611c8e565b5b6000611e2a87828801611caa565b9450506020611e3b87828801611caa565b9350506040611e4c87828801611caa565b9250506060611e5d87828801611caa565b91505092959194509250565b6000611e7482611d68565b9050919050565b611e8481611e69565b82525050565b6000602082019050611e9f6000830184611e7b565b92915050565b60008060408385031215611ebc57611ebb611c8e565b5b6000611eca85828601611caa565b9250506020611edb85828601611caa565b9150509250929050565b600060ff82169050919050565b611efb81611ee5565b82525050565b6000602082019050611f166000830184611ef2565b92915050565b611f2581611e69565b8114611f3057600080fd5b50565b600081359050611f4281611f1c565b92915050565b600060208284031215611f5e57611f5d611c8e565b5b6000611f6c84828501611f33565b91505092915050565b600082825260208201905092915050565b7f496e73756666696369656e7420696e70757420616d6f756e7400000000000000600082015250565b6000611fbc601983611f75565b9150611fc782611f86565b602082019050919050565b60006020820190508181036000830152611feb81611faf565b9050919050565b7f496e73756666696369656e74206c697175696469747900000000000000000000600082015250565b6000612028601683611f75565b915061203382611ff2565b602082019050919050565b600060208201905081810360008301526120578161201b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061209882611c5a565b91506120a383611c5a565b92508282019050808211156120bb576120ba61205e565b5b92915050565b60006120cc82611c5a565b91506120d783611c5a565b92508282026120e581611c5a565b915082820484148315176120fc576120fb61205e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061213d82611c5a565b915061214883611c5a565b92508261215857612157612103565b5b828204905092915050565b60008151905061217281611c93565b92915050565b60006020828403121561218e5761218d611c8e565b5b600061219c84828501612163565b91505092915050565b7f496e73756666696369656e742070726f6a65637420746f6b656e206f7574707560008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612201602183611f75565b915061220c826121a5565b604082019050919050565b60006020820190508181036000830152612230816121f4565b9050919050565b7f496e73756666696369656e742042544342206f75747075740000000000000000600082015250565b600061226d601883611f75565b915061227882612237565b602082019050919050565b6000602082019050818103600083015261229c81612260565b9050919050565b60006080820190506122b86000830187611c64565b6122c56020830186611c64565b6122d26040830185611c64565b6122df6060830184611c64565b95945050505050565b7f496e73756666696369656e74206c6971756964697479206275726e6564000000600082015250565b600061231e601d83611f75565b9150612329826122e8565b602082019050919050565b6000602082019050818103600083015261234d81612311565b9050919050565b60006060820190506123696000830186611c64565b6123766020830185611c64565b6123836040830184611c64565b949350505050565b600061239682611c5a565b91506123a183611c5a565b92508282039050818111156123b9576123b861205e565b5b92915050565b7f496e73756666696369656e742070726f6a65637420746f6b656e20616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061241b602183611f75565b9150612426826123bf565b604082019050919050565b6000602082019050818103600083015261244a8161240e565b9050919050565b7f496e73756666696369656e74206c6971756964697479206d696e746564000000600082015250565b6000612487601d83611f75565b915061249282612451565b602082019050919050565b600060208201905081810360008301526124b68161247a565b9050919050565b7f4e6f206c69717569646974790000000000000000000000000000000000000000600082015250565b60006124f3600c83611f75565b91506124fe826124bd565b602082019050919050565b60006020820190508181036000830152612522816124e6565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b600061255f601583611f75565b915061256a82612529565b602082019050919050565b6000602082019050818103600083015261258e81612552565b9050919050565b7f506572696f6420746f6f206c6f6e670000000000000000000000000000000000600082015250565b60006125cb600f83611f75565b91506125d682612595565b602082019050919050565b600060208201905081810360008301526125fa816125be565b9050919050565b7f506572696f64206d7573742062652067726561746572207468616e2030000000600082015250565b6000612637601d83611f75565b915061264282612601565b602082019050919050565b600060208201905081810360008301526126668161262a565b9050919050565b600061267882611ee5565b915061268383611ee5565b9250828201905060ff81111561269c5761269b61205e565b5b92915050565b60006126ad82611ee5565b91506126b883611ee5565b9250826126c8576126c7612103565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061270d82611ee5565b915060ff82036127205761271f61205e565b5b600182019050919050565b60006060820190506127406000830186611e7b565b61274d6020830185611e7b565b61275a6040830184611c64565b949350505050565b60006040820190506127776000830185611e7b565b6127846020830184611c64565b9392505050565b60008115159050919050565b6127a08161278b565b81146127ab57600080fd5b50565b6000815190506127bd81612797565b92915050565b6000602082840312156127d9576127d8611c8e565b5b60006127e7848285016127ae565b91505092915050565b600081519050919050565b600081905092915050565b60005b83811015612824578082015181840152602081019050612809565b60008484015250505050565b600061283b826127f0565b61284581856127fb565b9350612855818560208601612806565b80840191505092915050565b600061286d8284612830565b91508190509291505056fea26469706673582212209403dea322ad6b2398c5da3ad39b68950eccbe917c5ef9a8b54936396ea7906764736f6c634300081400330000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c0000000000000000000000002c25eaca82e885a1afbc73aacd861318caaf974300000000000000000000000082503946e026e9f3c82a5a494e6f27fbfd3f7350