[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CooldownPeriodActive", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "LiquidityNotAdded", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "ethAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokenAmount", "type": "uint256" } ], "name": "TokensPurchased", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferRecorded", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" } ], "name": "addToWhitelistBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "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": "user", "type": "address" } ], "name": "availableBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "confirmLiquidityAdded", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endIDOAndMintLPTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "idoEnded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityAdded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_referrer", "type": "address" } ], "name": "mintTokens", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "removeFromWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalETHReceived", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalTokensMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "transactionCooldown", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transactions", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "withdrawERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040525f600560146101000a81548160ff0219169083151502179055505f600560156101000a81548160ff021916908315150217905550610708600855348015610049575f80fd5b50336040518060400160405280600581526020017f42657474650000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f426574746500000000000000000000000000000000000000000000000000000081525081600390816100c6919061045b565b5080600490816100d6919061045b565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610149575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101409190610569565b60405180910390fd5b6101588161015e60201b60201c565b50610582565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061029c57607f821691505b6020821081036102af576102ae610258565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102d6565b61031b86836102d6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61035f61035a61035584610333565b61033c565b610333565b9050919050565b5f819050919050565b61037883610345565b61038c61038482610366565b8484546102e2565b825550505050565b5f90565b6103a0610394565b6103ab81848461036f565b505050565b5b818110156103ce576103c35f82610398565b6001810190506103b1565b5050565b601f821115610413576103e4816102b5565b6103ed846102c7565b810160208510156103fc578190505b610410610408856102c7565b8301826103b0565b50505b505050565b5f82821c905092915050565b5f6104335f1984600802610418565b1980831691505092915050565b5f61044b8383610424565b9150826002028217905092915050565b61046482610221565b67ffffffffffffffff81111561047d5761047c61022b565b5b6104878254610285565b6104928282856103d2565b5f60209050601f8311600181146104c3575f84156104b1578287015190505b6104bb8582610440565b865550610522565b601f1984166104d1866102b5565b5f5b828110156104f8578489015182556001820191506020850194506020810190506104d3565b868310156105155784890151610511601f891682610424565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105538261052a565b9050919050565b61056381610549565b82525050565b5f60208201905061057c5f83018461055a565b92915050565b61275e8061058f5f395ff3fe60806040526004361061019b575f3560e01c80638da5cb5b116100eb578063a9059cbb11610089578063d944392311610063578063d944392314610594578063dd62ed3e146105be578063e086e5ec146105fa578063f2fde38b146106105761019b565b8063a9059cbb14610512578063bcfaa79d1461054e578063d63e63a01461056a5761019b565b80639b19251a116100c55780639b19251a1461045c5780639fd7b39b14610498578063a0821be3146104ae578063a6177139146104ea5761019b565b80638da5cb5b146103f257806391dd80d21461041c57806395d89b41146104325761019b565b80635fc3ea0b1161015857806370a082311161013257806370a082311461034e578063715018a61461038a5780637d549e99146103a05780638ab1d681146103ca5761019b565b80635fc3ea0b146102d257806365fda1f7146102fa5780636e1682a0146103245761019b565b806306fdde031461019f578063095ea7b3146101c9578063145381281461020557806318160ddd1461024257806323b872dd1461026c578063313ce567146102a8575b5f80fd5b3480156101aa575f80fd5b506101b3610638565b6040516101c09190611deb565b60405180910390f35b3480156101d4575f80fd5b506101ef60048036038101906101ea9190611ea0565b6106c8565b6040516101fc9190611ef8565b60405180910390f35b348015610210575f80fd5b5061022b60048036038101906102269190611ea0565b6106ea565b604051610239929190611f20565b60405180910390f35b34801561024d575f80fd5b50610256610724565b6040516102639190611f47565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d9190611f60565b61072d565b60405161029f9190611ef8565b60405180910390f35b3480156102b3575f80fd5b506102bc6107ef565b6040516102c99190611fcb565b60405180910390f35b3480156102dd575f80fd5b506102f860048036038101906102f39190611fe4565b6107f7565b005b348015610305575f80fd5b5061030e610880565b60405161031b9190611f47565b60405180910390f35b34801561032f575f80fd5b50610338610886565b6040516103459190611f47565b60405180910390f35b348015610359575f80fd5b50610374600480360381019061036f9190612034565b61088c565b6040516103819190611f47565b60405180910390f35b348015610395575f80fd5b5061039e6108d1565b005b3480156103ab575f80fd5b506103b46108e4565b6040516103c19190611f47565b60405180910390f35b3480156103d5575f80fd5b506103f060048036038101906103eb9190612034565b6108ea565b005b3480156103fd575f80fd5b50610406610949565b604051610413919061206e565b60405180910390f35b348015610427575f80fd5b50610430610971565b005b34801561043d575f80fd5b50610446610a35565b6040516104539190611deb565b60405180910390f35b348015610467575f80fd5b50610482600480360381019061047d9190612034565b610ac5565b60405161048f9190611ef8565b60405180910390f35b3480156104a3575f80fd5b506104ac610ae2565b005b3480156104b9575f80fd5b506104d460048036038101906104cf9190612034565b610b6f565b6040516104e19190611f47565b60405180910390f35b3480156104f5575f80fd5b50610510600480360381019061050b91906120e8565b610c8a565b005b34801561051d575f80fd5b5061053860048036038101906105339190611ea0565b610d81565b6040516105459190611ef8565b60405180910390f35b61056860048036038101906105639190612034565b610e3e565b005b348015610575575f80fd5b5061057e61109f565b60405161058b9190611ef8565b60405180910390f35b34801561059f575f80fd5b506105a86110b2565b6040516105b59190611ef8565b60405180910390f35b3480156105c9575f80fd5b506105e460048036038101906105df9190612133565b6110c5565b6040516105f19190611f47565b60405180910390f35b348015610605575f80fd5b5061060e611147565b005b34801561061b575f80fd5b5061063660048036038101906106319190612034565b6111ff565b005b6060600380546106479061219e565b80601f01602080910402602001604051908101604052809291908181526020018280546106739061219e565b80156106be5780601f10610695576101008083540402835291602001916106be565b820191905f5260205f20905b8154815290600101906020018083116106a157829003601f168201915b5050505050905090565b5f806106d2611283565b90506106df81858561128a565b600191505092915050565b6009602052815f5260405f208181548110610703575f80fd5b905f5260205f2090600202015f9150915050805f0154908060010154905082565b5f600254905090565b5f83600560149054906101000a900460ff1615801561077f575061074f610949565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156107b6576040517f9ee2194000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6107bf611283565b90506107cc86868661129c565b6107d78682866113e7565b6107e2868686611479565b6001925050509392505050565b5f6012905090565b6107ff611569565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b815260040161083a9291906121ce565b6020604051808303815f875af1158015610856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087a919061221f565b50505050565b60085481565b60065481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108d9611569565b6108e25f6115f0565b565b60075481565b6108f2611569565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610979611569565b600560159054906101000a900460ff166109c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bf906122ba565b60405180910390fd5b600560149054906101000a900460ff1615610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90612322565b60405180910390fd5b6001600560146101000a81548160ff021916908315150217905550565b606060048054610a449061219e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a709061219e565b8015610abb5780601f10610a9257610100808354040283529160200191610abb565b820191905f5260205f20905b815481529060010190602001808311610a9e57829003601f168201915b5050505050905090565b600a602052805f5260405f205f915054906101000a900460ff1681565b610aea611569565b600560159054906101000a900460ff1615610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b319061238a565b60405180910390fd5b6001600560156101000a81548160ff0219169083151502179055505f6007549050610b6c610b66610949565b826116b3565b50565b5f80610b7a8361088c565b90505f4290505f5b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811015610c7f575f60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110610c1a57610c196123a8565b5b905f5260205f2090600202016040518060400160405290815f82015481526020016001820154815250509050826008548260200151610c599190612402565b1115610c7157805f015184610c6e9190612435565b93505b508080600101915050610b82565b508192505050919050565b610c92611569565b5f5b82829050811015610d7c575f838383818110610cb357610cb26123a8565b5b9050602002016020810190610cc89190612034565b9050600a5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610d6e576001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b508080600101915050610c94565b505050565b5f610d8a611283565b600560149054906101000a900460ff16158015610dda5750610daa610949565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610e11576040517f9ee2194000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610e1a611283565b9050610e2781868661129c565b610e32818686611479565b60019250505092915050565b600560159054906101000a900460ff1615610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e859061238a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef3906124b2565b60405180910390fd5b5f3411610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f359061251a565b60405180910390fd5b5f633b9aca0034610f4f9190612538565b9050610f5b33826116b3565b8060075f828254610f6c9190612402565b925050819055503460065f828254610f849190612402565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610ff057503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561100057610ffd610949565b91505b5f60646005600a846110129190612538565b61101c9190612402565b61102691906125a6565b905061103283826116b3565b8060075f8282546110439190612402565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f333484604051611092929190611f20565b60405180910390a2505050565b600560159054906101000a900460ff1681565b600560149054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61114f611569565b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff168260405161117890612603565b5f6040518083038185875af1925050503d805f81146111b2576040519150601f19603f3d011682016040523d82523d5f602084013e6111b7565b606091505b50509050806111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f290612661565b60405180910390fd5b5050565b611207611569565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611277575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161126e919061206e565b60405180910390fd5b611280816115f0565b50565b5f33905090565b6112978383836001611732565b505050565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611389576112f383611901565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561135157508061134f84610b6f565b105b15611388576040517f998d019b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166113e2576113e18282611a84565b5b505050565b5f6113f284846110c5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114735781811015611464578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161145b9392919061267f565b60405180910390fd5b61147284848484035f611732565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114e9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114e0919061206e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611559575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611550919061206e565b60405180910390fd5b611564838383611b62565b505050565b611571611283565b73ffffffffffffffffffffffffffffffffffffffff1661158f610949565b73ffffffffffffffffffffffffffffffffffffffff16146115ee576115b2611283565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016115e5919061206e565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611723575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161171a919061206e565b60405180910390fd5b61172e5f8383611b62565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117a2575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611799919061206e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611812575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611809919061206e565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156118fb578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516118f29190611f47565b60405180910390a35b50505050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f818054905090505f5b818110801561198957504260085484838154811061196c5761196b6123a8565b5b905f5260205f209060020201600101546119869190612402565b11155b156119a1578080611999906126b4565b91505061194b565b5f811115611a7e575f8190505b82811015611a21578381815481106119c9576119c86123a8565b5b905f5260205f2090600202018483836119e29190612435565b815481106119f3576119f26123a8565b5b905f5260205f2090600202015f820154815f01556001820154816001015590505080806001019150506119ae565b505f8183611a2f9190612435565b90505b82811015611a7c5783805480611a4b57611a4a6126fb565b5b600190038181905f5260205f2090600202015f8082015f9055600182015f9055505090558080600101915050611a32565b505b50505050565b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20604051806040016040528083815260200142815250908060018154018082558091505060019003905f5260205f2090600202015f909190919091505f820151815f01556020820151816001015550508173ffffffffffffffffffffffffffffffffffffffff167f59a1d9801932a1fc3b1a37608c0121b7eaea4380b37ada7c30fe503c4c9e5bf582604051611b569190611f47565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb2578060025f828254611ba69190612402565b92505081905550611c80565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c3b578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611c329392919061267f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc7578060025f8282540392505081905550611d11565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d6e9190611f47565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611dbd82611d7b565b611dc78185611d85565b9350611dd7818560208601611d95565b611de081611da3565b840191505092915050565b5f6020820190508181035f830152611e038184611db3565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e3c82611e13565b9050919050565b611e4c81611e32565b8114611e56575f80fd5b50565b5f81359050611e6781611e43565b92915050565b5f819050919050565b611e7f81611e6d565b8114611e89575f80fd5b50565b5f81359050611e9a81611e76565b92915050565b5f8060408385031215611eb657611eb5611e0b565b5b5f611ec385828601611e59565b9250506020611ed485828601611e8c565b9150509250929050565b5f8115159050919050565b611ef281611ede565b82525050565b5f602082019050611f0b5f830184611ee9565b92915050565b611f1a81611e6d565b82525050565b5f604082019050611f335f830185611f11565b611f406020830184611f11565b9392505050565b5f602082019050611f5a5f830184611f11565b92915050565b5f805f60608486031215611f7757611f76611e0b565b5b5f611f8486828701611e59565b9350506020611f9586828701611e59565b9250506040611fa686828701611e8c565b9150509250925092565b5f60ff82169050919050565b611fc581611fb0565b82525050565b5f602082019050611fde5f830184611fbc565b92915050565b5f805f60608486031215611ffb57611ffa611e0b565b5b5f61200886828701611e59565b935050602061201986828701611e8c565b925050604061202a86828701611e59565b9150509250925092565b5f6020828403121561204957612048611e0b565b5b5f61205684828501611e59565b91505092915050565b61206881611e32565b82525050565b5f6020820190506120815f83018461205f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126120a8576120a7612087565b5b8235905067ffffffffffffffff8111156120c5576120c461208b565b5b6020830191508360208202830111156120e1576120e061208f565b5b9250929050565b5f80602083850312156120fe576120fd611e0b565b5b5f83013567ffffffffffffffff81111561211b5761211a611e0f565b5b61212785828601612093565b92509250509250929050565b5f806040838503121561214957612148611e0b565b5b5f61215685828601611e59565b925050602061216785828601611e59565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806121b557607f821691505b6020821081036121c8576121c7612171565b5b50919050565b5f6040820190506121e15f83018561205f565b6121ee6020830184611f11565b9392505050565b6121fe81611ede565b8114612208575f80fd5b50565b5f81519050612219816121f5565b92915050565b5f6020828403121561223457612233611e0b565b5b5f6122418482850161220b565b91505092915050565b7f49444f206d75737420656e64206265666f726520616464696e67206c697175695f8201527f6469747900000000000000000000000000000000000000000000000000000000602082015250565b5f6122a4602483611d85565b91506122af8261224a565b604082019050919050565b5f6020820190508181035f8301526122d181612298565b9050919050565b7f4c697175696469747920616c72656164792061646465640000000000000000005f82015250565b5f61230c601783611d85565b9150612317826122d8565b602082019050919050565b5f6020820190508181035f83015261233981612300565b9050919050565b7f49444f2068617320656e646564000000000000000000000000000000000000005f82015250565b5f612374600d83611d85565b915061237f82612340565b602082019050919050565b5f6020820190508181035f8301526123a181612368565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61240c82611e6d565b915061241783611e6d565b925082820190508082111561242f5761242e6123d5565b5b92915050565b5f61243f82611e6d565b915061244a83611e6d565b9250828203905081811115612462576124616123d5565b5b92915050565b7f4f6e6c7920454f412063616e2063616c6c20746869732066756e6374696f6e005f82015250565b5f61249c601f83611d85565b91506124a782612468565b602082019050919050565b5f6020820190508181035f8301526124c981612490565b9050919050565b7f4d7573742073656e642045544820746f20707572636861736520746f6b656e735f82015250565b5f612504602083611d85565b915061250f826124d0565b602082019050919050565b5f6020820190508181035f830152612531816124f8565b9050919050565b5f61254282611e6d565b915061254d83611e6d565b925082820261255b81611e6d565b91508282048414831517612572576125716123d5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125b082611e6d565b91506125bb83611e6d565b9250826125cb576125ca612579565b5b828204905092915050565b5f81905092915050565b50565b5f6125ee5f836125d6565b91506125f9826125e0565b5f82019050919050565b5f61260d826125e3565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61264b601483611d85565b915061265682612617565b602082019050919050565b5f6020820190508181035f8301526126788161263f565b9050919050565b5f6060820190506126925f83018661205f565b61269f6020830185611f11565b6126ac6040830184611f11565b949350505050565b5f6126be82611e6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126f0576126ef6123d5565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea264697066735822122023f1efd2d3d8c1de64e4eb1f619e0862b10569ed41847386f0407d48ee373b6464736f6c634300081a0033