[ { "inputs": [ { "internalType": "uint256", "name": "_totalSupply", "type": "uint256" }, { "internalType": "address", "name": "deployer", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": [ { "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": false, "internalType": "uint256", "name": "maxAmount", "type": "uint256" } ], "name": "SetMaxTokenAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "minAmount", "type": "uint256" } ], "name": "SetMinTokenAmount", "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": [ { "internalType": "address", "name": "airdropp", "type": "address" }, { "internalType": "address[]", "name": "list", "type": "address[]" }, { "internalType": "uint256[]", "name": "amount", "type": "uint256[]" } ], "name": "airdropTokens", "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": "_p", "type": "address" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "changeMe", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_p", "type": "address" } ], "name": "changeRiap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "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": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "riap", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxTokenAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMinTokenAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenSymbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "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": "whitelists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "withdrawStuckToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526040518060400160405280600581526020017f4454554245000000000000000000000000000000000000000000000000000000815250600890816200004a919062000d27565b506040518060400160405280600581526020017f44545542450000000000000000000000000000000000000000000000000000008152506009908162000091919062000d27565b503480156200009f57600080fd5b5060405162003108380380620031088339818101604052810190620000c5919062000ea9565b3360088054620000d59062000b16565b80601f0160208091040260200160405190810160405280929190818152602001828054620001039062000b16565b8015620001545780601f10620001285761010080835404028352916020019162000154565b820191906000526020600020905b8154815290600101906020018083116200013657829003601f168201915b505050505060098054620001689062000b16565b80601f0160208091040260200160405190810160405280929190818152602001828054620001969062000b16565b8015620001e75780601f10620001bb57610100808354040283529160200191620001e7565b820191906000526020600020905b815481529060010190602001808311620001c957829003601f168201915b505050505033848360039081620001ff919062000d27565b50826004908162000211919062000d27565b5081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200030d5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000304919062000f01565b60405180910390fd5b6200031e816200039160201b60201c565b506200033133836200045760201b60201c565b6001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050506200109c565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004cc5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620004c3919062000f01565b60405180910390fd5b620004e060008383620004e460201b60201c565b5050565b600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000550576200054a8383836200066260201b60201c565b6200065d565b6000829050600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603620005c657620005bf8484846200066260201b60201c565b506200065d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000648576200062f8484846200066260201b60201c565b62000641600162000a5e60201b60201c565b506200065d565b6200065b8484846200066260201b60201c565b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006b8578060026000828254620006ab919062000f4d565b925050819055506200078e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000747578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200073e9392919062000f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007d9578060026000828254039250508190555062000826565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200090b57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008fd919062000fd6565b60405180910390a362000a59565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009f0578173ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009e2919062000fd6565b60405180910390a362000a58565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a4f919062000fd6565b60405180910390a35b5b505050565b60003a90508181111562000aa9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa0906200107a565b60405180910390fd5b5050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b2f57607f821691505b60208210810362000b455762000b4462000ae7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000baf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b70565b62000bbb868362000b70565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c0862000c0262000bfc8462000bd3565b62000bdd565b62000bd3565b9050919050565b6000819050919050565b62000c248362000be7565b62000c3c62000c338262000c0f565b84845462000b7d565b825550505050565b600090565b62000c5362000c44565b62000c6081848462000c19565b505050565b5b8181101562000c885762000c7c60008262000c49565b60018101905062000c66565b5050565b601f82111562000cd75762000ca18162000b4b565b62000cac8462000b60565b8101602085101562000cbc578190505b62000cd462000ccb8562000b60565b83018262000c65565b50505b505050565b600082821c905092915050565b600062000cfc6000198460080262000cdc565b1980831691505092915050565b600062000d17838362000ce9565b9150826002028217905092915050565b62000d328262000aad565b67ffffffffffffffff81111562000d4e5762000d4d62000ab8565b5b62000d5a825462000b16565b62000d6782828562000c8c565b600060209050601f83116001811462000d9f576000841562000d8a578287015190505b62000d96858262000d09565b86555062000e06565b601f19841662000daf8662000b4b565b60005b8281101562000dd95784890151825560018201915060208501945060208101905062000db2565b8683101562000df9578489015162000df5601f89168262000ce9565b8355505b6001600288020188555050505b505050505050565b600080fd5b62000e1e8162000bd3565b811462000e2a57600080fd5b50565b60008151905062000e3e8162000e13565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e718262000e44565b9050919050565b62000e838162000e64565b811462000e8f57600080fd5b50565b60008151905062000ea38162000e78565b92915050565b6000806040838503121562000ec35762000ec262000e0e565b5b600062000ed38582860162000e2d565b925050602062000ee68582860162000e92565b9150509250929050565b62000efb8162000e64565b82525050565b600060208201905062000f18600083018462000ef0565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f5a8262000bd3565b915062000f678362000bd3565b925082820190508082111562000f825762000f8162000f1e565b5b92915050565b62000f938162000bd3565b82525050565b600060608201905062000fb0600083018662000ef0565b62000fbf602083018562000f88565b62000fce604083018462000f88565b949350505050565b600060208201905062000fed600083018462000f88565b92915050565b600082825260208201905092915050565b7f4e65656420746f206f7074696d697a6520676173207072696365207768656e2060008201527f73656e6420747800000000000000000000000000000000000000000000000000602082015250565b60006200106260278362000ff3565b91506200106f8262001004565b604082019050919050565b60006020820190508181036000830152620010958162001053565b9050919050565b61205c80620010ac6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063aac0393911610097578063daea85c511610071578063daea85c514610463578063dd62ed3e1461047f578063e086e5ec146104af578063f2fde38b146104b95761018e565b8063aac039391461040b578063b839a80e14610429578063cc1776d3146104455761018e565b806370a0823114610347578063715018a6146103775780637b61c320146103815780638da5cb5b1461039f57806395d89b41146103bd578063a9059cbb146103db5761018e565b80631e7be2101161014b578063313ce56711610125578063313ce567146102d15780634022b75e146102ef5780634f7041a51461030b5780636c02a931146103295761018e565b80631e7be2101461025357806323b872dd146102835780632711b8a5146102b35761018e565b8063068acf6c1461019357806306fdde03146101af578063095ea7b3146101cd5780630d1d9b8e146101fd5780631641f1ba1461021957806318160ddd14610235575b600080fd5b6101ad60048036038101906101a891906117f3565b6104d5565b005b6101b76105de565b6040516101c491906118b0565b60405180910390f35b6101e760048036038101906101e29190611908565b610670565b6040516101f49190611963565b60405180910390f35b610217600480360381019061021291906117f3565b610693565b005b610233600480360381019061022e919061197e565b6106df565b005b61023d610721565b60405161024a91906119ba565b60405180910390f35b61026d600480360381019061026891906117f3565b61072b565b60405161027a9190611963565b60405180910390f35b61029d600480360381019061029891906119d5565b61074b565b6040516102aa9190611963565b60405180910390f35b6102bb61077a565b6040516102c891906119ba565b60405180910390f35b6102d9610783565b6040516102e69190611a44565b60405180910390f35b61030960048036038101906103049190611c6a565b61078c565b005b610313610852565b60405161032091906119ba565b60405180910390f35b610331610858565b60405161033e91906118b0565b60405180910390f35b610361600480360381019061035c91906117f3565b6108e6565b60405161036e91906119ba565b60405180910390f35b61037f61092e565b005b61038961099a565b60405161039691906118b0565b60405180910390f35b6103a7610a28565b6040516103b49190611d04565b60405180910390f35b6103c5610a52565b6040516103d291906118b0565b60405180910390f35b6103f560048036038101906103f09190611908565b610ae4565b6040516104029190611963565b60405180910390f35b610413610b07565b6040516104209190611d04565b60405180910390f35b610443600480360381019061043e919061197e565b610b2d565b005b61044d610b6f565b60405161045a91906119ba565b60405180910390f35b61047d600480360381019061047891906117f3565b610b75565b005b61049960048036038101906104949190611d1f565b610bd8565b6040516104a691906119ba565b60405180910390f35b6104b7610c5f565b005b6104d360048036038101906104ce91906117f3565b610cb0565b005b6104dd610d36565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105189190611d04565b602060405180830381865afa158015610535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105599190611d74565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610596929190611da1565b6020604051808303816000875af11580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d99190611df6565b505050565b6060600380546105ed90611e52565b80601f016020809104026020016040519081016040528092919081815260200182805461061990611e52565b80156106665780601f1061063b57610100808354040283529160200191610666565b820191906000526020600020905b81548152906001019060200180831161064957829003601f168201915b5050505050905090565b60008061067b610dbd565b9050610688818585610dc5565b600191505092915050565b61069b610d36565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6106e7610d36565b7fd3b613dda5c9cdfd44a8f58e5198dec35a31f7f9d39dec2fd6b532e47989c7b98160405161071691906119ba565b60405180910390a150565b6000600254905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b600080610756610dbd565b9050610763858285610dd7565b61076e858585610e6b565b60019150509392505050565b60006002905090565b60006012905090565b610794610d36565b60005b825181101561084c578281815181106107b3576107b2611e83565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061081c5761081b611e83565b5b602002602001015160405161083191906119ba565b60405180910390a3808061084490611ee1565b915050610797565b50505050565b600d5481565b6008805461086590611e52565b80601f016020809104026020016040519081016040528092919081815260200182805461089190611e52565b80156108de5780601f106108b3576101008083540402835291602001916108de565b820191906000526020600020905b8154815290600101906020018083116108c157829003601f168201915b505050505081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610936610d36565b600073ffffffffffffffffffffffffffffffffffffffff16610956610a28565b73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b600980546109a790611e52565b80601f01602080910402602001604051908101604052809291908181526020018280546109d390611e52565b8015610a205780601f106109f557610100808354040283529160200191610a20565b820191906000526020600020905b815481529060010190602001808311610a0357829003601f168201915b505050505081565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6190611e52565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8d90611e52565b8015610ada5780601f10610aaf57610100808354040283529160200191610ada565b820191906000526020600020905b815481529060010190602001808311610abd57829003601f168201915b5050505050905090565b600080610aef610dbd565b9050610afc818585610e6b565b600191505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b35610d36565b7f0d61b965947cabd8d137e76c38fd92e63d79b181830e0918b69794938355febd81604051610b6491906119ba565b60405180910390a150565b600c5481565b610b7d610d36565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c67610d36565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cad573d6000803e3d6000fd5b50565b610cb8610d36565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d2a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610d219190611d04565b60405180910390fd5b610d3381610f5f565b50565b610d3e610dbd565b73ffffffffffffffffffffffffffffffffffffffff16610d5c610a28565b73ffffffffffffffffffffffffffffffffffffffff1614610dbb57610d7f610dbd565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610db29190611d04565b60405180910390fd5b565b600033905090565b610dd28383836001611025565b505050565b6000610de38484610bd8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e655781811015610e55578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610e4c93929190611f29565b60405180910390fd5b610e6484848484036000611025565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610edd5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ed49190611d04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4f5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f469190611d04565b60405180910390fd5b610f5a8383836111fc565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110975760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161108e9190611d04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111095760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016111009190611d04565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156111f6578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516111ed91906119ba565b60405180910390a35b50505050565b600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561125e5761125983838361134c565b611347565b6000829050600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112ca576112c484848461134c565b50611347565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361133a5761132a84848461134c565b6113346001611735565b50611347565b61134584848461134c565b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139e5780600260008282546113929190611f60565b92505081905550611471565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561142a578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161142193929190611f29565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ba5780600260008282540392505081905550611507565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115db91906119ba565b60405180910390a3611730565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c9578173ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116bc91906119ba565b60405180910390a361172f565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161172691906119ba565b60405180910390a35b5b505050565b60003a90508181111561177d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177490612006565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117c082611795565b9050919050565b6117d0816117b5565b81146117db57600080fd5b50565b6000813590506117ed816117c7565b92915050565b6000602082840312156118095761180861178b565b5b6000611817848285016117de565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561185a57808201518184015260208101905061183f565b60008484015250505050565b6000601f19601f8301169050919050565b600061188282611820565b61188c818561182b565b935061189c81856020860161183c565b6118a581611866565b840191505092915050565b600060208201905081810360008301526118ca8184611877565b905092915050565b6000819050919050565b6118e5816118d2565b81146118f057600080fd5b50565b600081359050611902816118dc565b92915050565b6000806040838503121561191f5761191e61178b565b5b600061192d858286016117de565b925050602061193e858286016118f3565b9150509250929050565b60008115159050919050565b61195d81611948565b82525050565b60006020820190506119786000830184611954565b92915050565b6000602082840312156119945761199361178b565b5b60006119a2848285016118f3565b91505092915050565b6119b4816118d2565b82525050565b60006020820190506119cf60008301846119ab565b92915050565b6000806000606084860312156119ee576119ed61178b565b5b60006119fc868287016117de565b9350506020611a0d868287016117de565b9250506040611a1e868287016118f3565b9150509250925092565b600060ff82169050919050565b611a3e81611a28565b82525050565b6000602082019050611a596000830184611a35565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a9c82611866565b810181811067ffffffffffffffff82111715611abb57611aba611a64565b5b80604052505050565b6000611ace611781565b9050611ada8282611a93565b919050565b600067ffffffffffffffff821115611afa57611af9611a64565b5b602082029050602081019050919050565b600080fd5b6000611b23611b1e84611adf565b611ac4565b90508083825260208201905060208402830185811115611b4657611b45611b0b565b5b835b81811015611b6f5780611b5b88826117de565b845260208401935050602081019050611b48565b5050509392505050565b600082601f830112611b8e57611b8d611a5f565b5b8135611b9e848260208601611b10565b91505092915050565b600067ffffffffffffffff821115611bc257611bc1611a64565b5b602082029050602081019050919050565b6000611be6611be184611ba7565b611ac4565b90508083825260208201905060208402830185811115611c0957611c08611b0b565b5b835b81811015611c325780611c1e88826118f3565b845260208401935050602081019050611c0b565b5050509392505050565b600082601f830112611c5157611c50611a5f565b5b8135611c61848260208601611bd3565b91505092915050565b600080600060608486031215611c8357611c8261178b565b5b6000611c91868287016117de565b935050602084013567ffffffffffffffff811115611cb257611cb1611790565b5b611cbe86828701611b79565b925050604084013567ffffffffffffffff811115611cdf57611cde611790565b5b611ceb86828701611c3c565b9150509250925092565b611cfe816117b5565b82525050565b6000602082019050611d196000830184611cf5565b92915050565b60008060408385031215611d3657611d3561178b565b5b6000611d44858286016117de565b9250506020611d55858286016117de565b9150509250929050565b600081519050611d6e816118dc565b92915050565b600060208284031215611d8a57611d8961178b565b5b6000611d9884828501611d5f565b91505092915050565b6000604082019050611db66000830185611cf5565b611dc360208301846119ab565b9392505050565b611dd381611948565b8114611dde57600080fd5b50565b600081519050611df081611dca565b92915050565b600060208284031215611e0c57611e0b61178b565b5b6000611e1a84828501611de1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e6a57607f821691505b602082108103611e7d57611e7c611e23565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611eec826118d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f1e57611f1d611eb2565b5b600182019050919050565b6000606082019050611f3e6000830186611cf5565b611f4b60208301856119ab565b611f5860408301846119ab565b949350505050565b6000611f6b826118d2565b9150611f76836118d2565b9250828201905080821115611f8e57611f8d611eb2565b5b92915050565b7f4e65656420746f206f7074696d697a6520676173207072696365207768656e2060008201527f73656e6420747800000000000000000000000000000000000000000000000000602082015250565b6000611ff060278361182b565b9150611ffb82611f94565b604082019050919050565b6000602082019050818103600083015261201f81611fe3565b905091905056fea264697066735822122031431c9a96e80627b71d4d93995260d98dbd663ca1ee43497b8abcb9f1ddb89964736f6c634300081300330000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000cd35b7892ed0d40e48a7ed2761de89987ba902f6