Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x32eda739748d7315fCA9BA7DB6D70D23db22f990
Balance 0 ETH
Nonce 1
Code Size 22727 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

22727 bytes
0x6080604052600436106103855760003560e01c80638da5cb5b116101d1578063b62496f511610102578063e884f260116100a0578063f63743421161006f578063f637434214610d41578063f8b45b0514610d6c578063f928364c14610d97578063fe72b27a14610dc25761038c565b8063e884f26014610c99578063e96a65d014610cc4578063f11a24d314610ced578063f2fde38b14610d185761038c565b8063c8c8ebe4116100dc578063c8c8ebe414610bdb578063d85ba06314610c06578063dd62ed3e14610c31578063e2f4560514610c6e5761038c565b8063b62496f514610b4a578063c024666814610b87578063c876d0b914610bb05761038c565b80639fccce321161016f578063a4c82a0011610149578063a4c82a0014610a7c578063a9059cbb14610aa7578063aacebbe314610ae4578063afa4f3b214610b0d5761038c565b80639fccce32146109e9578063a0d82dc514610a14578063a457c2d714610a3f5761038c565b806395d89b41116101ab57806395d89b411461093f5780639a7a23d61461096a5780639c3b4fdc146109935780639ec22c0e146109be5761038c565b80638da5cb5b146108be5780638ea5220f146108e957806392136913146109145761038c565b80632e82f1a0116102b65780636ddd1713116102545780637571336a116102235780637571336a1461081657806375f0a8741461083f5780637bce5a041461086a5780637ebb640a146108955761038c565b80636ddd17131461076e57806370a0823114610799578063715018a6146107d6578063730c1888146107ed5761038c565b806349bd5a5e1161029057806349bd5a5e146106b05780634a62bb65146106db5780634fbee193146107065780636a486a8e146107435761038c565b80632e82f1a01461061d578063313ce5671461064857806339509351146106735761038c565b8063184c16c5116103235780631f3fed8f116102fd5780631f3fed8f1461055f57806323b872dd1461058a57806327c8f835146105c75780632c3e486c146105f25761038c565b8063184c16c5146104de578063199ffc72146105095780631a8145bb146105345761038c565b806310d5de531161035f57806310d5de53146104225780631694505e1461045f57806318160ddd1461048a5780631816467f146104b55761038c565b806306fdde0314610391578063095ea7b3146103bc57806310a4cc66146103f95761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610dff565b6040516103b39190614163565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061421e565b610e91565b6040516103f09190614279565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906142c0565b610eaf565b005b34801561042e57600080fd5b50610449600480360381019061044491906142ed565b610f48565b6040516104569190614279565b60405180910390f35b34801561046b57600080fd5b50610474610f67565b6040516104819190614379565b60405180910390f35b34801561049657600080fd5b5061049f610f8b565b6040516104ac91906143a3565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d791906142ed565b610f95565b005b3480156104ea57600080fd5b506104f36110d1565b60405161050091906143a3565b60405180910390f35b34801561051557600080fd5b5061051e6110d7565b60405161052b91906143a3565b60405180910390f35b34801561054057600080fd5b506105496110dd565b60405161055691906143a3565b60405180910390f35b34801561056b57600080fd5b506105746110e3565b60405161058191906143a3565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac91906143be565b6110e9565b6040516105be9190614279565b60405180910390f35b3480156105d357600080fd5b506105dc6111e1565b6040516105e99190614420565b60405180910390f35b3480156105fe57600080fd5b506106076111e7565b60405161061491906143a3565b60405180910390f35b34801561062957600080fd5b506106326111ed565b60405161063f9190614279565b60405180910390f35b34801561065457600080fd5b5061065d611200565b60405161066a9190614457565b60405180910390f35b34801561067f57600080fd5b5061069a6004803603810190610695919061421e565b611209565b6040516106a79190614279565b60405180910390f35b3480156106bc57600080fd5b506106c56112b5565b6040516106d29190614420565b60405180910390f35b3480156106e757600080fd5b506106f06112d9565b6040516106fd9190614279565b60405180910390f35b34801561071257600080fd5b5061072d600480360381019061072891906142ed565b6112ec565b60405161073a9190614279565b60405180910390f35b34801561074f57600080fd5b50610758611342565b60405161076591906143a3565b60405180910390f35b34801561077a57600080fd5b50610783611348565b6040516107909190614279565b60405180910390f35b3480156107a557600080fd5b506107c060048036038101906107bb91906142ed565b61135b565b6040516107cd91906143a3565b60405180910390f35b3480156107e257600080fd5b506107eb6113a3565b005b3480156107f957600080fd5b50610814600480360381019061080f9190614472565b61142b565b005b34801561082257600080fd5b5061083d600480360381019061083891906144c5565b61156b565b005b34801561084b57600080fd5b50610854611642565b6040516108619190614420565b60405180910390f35b34801561087657600080fd5b5061087f611668565b60405161088c91906143a3565b60405180910390f35b3480156108a157600080fd5b506108bc60048036038101906108b79190614505565b61166e565b005b3480156108ca57600080fd5b506108d361180e565b6040516108e09190614420565b60405180910390f35b3480156108f557600080fd5b506108fe611838565b60405161090b9190614420565b60405180910390f35b34801561092057600080fd5b5061092961185e565b60405161093691906143a3565b60405180910390f35b34801561094b57600080fd5b50610954611864565b6040516109619190614163565b60405180910390f35b34801561097657600080fd5b50610991600480360381019061098c91906144c5565b6118f6565b005b34801561099f57600080fd5b506109a8611a0f565b6040516109b591906143a3565b60405180910390f35b3480156109ca57600080fd5b506109d3611a15565b6040516109e091906143a3565b60405180910390f35b3480156109f557600080fd5b506109fe611a1b565b604051610a0b91906143a3565b60405180910390f35b348015610a2057600080fd5b50610a29611a21565b604051610a3691906143a3565b60405180910390f35b348015610a4b57600080fd5b50610a666004803603810190610a61919061421e565b611a27565b604051610a739190614279565b60405180910390f35b348015610a8857600080fd5b50610a91611b12565b604051610a9e91906143a3565b60405180910390f35b348015610ab357600080fd5b50610ace6004803603810190610ac9919061421e565b611b18565b604051610adb9190614279565b60405180910390f35b348015610af057600080fd5b50610b0b6004803603810190610b0691906142ed565b611b36565b005b348015610b1957600080fd5b50610b346004803603810190610b2f9190614545565b611c72565b604051610b419190614279565b60405180910390f35b348015610b5657600080fd5b50610b716004803603810190610b6c91906142ed565b611dc7565b604051610b7e9190614279565b60405180910390f35b348015610b9357600080fd5b50610bae6004803603810190610ba991906144c5565b611de7565b005b348015610bbc57600080fd5b50610bc5611f0c565b604051610bd29190614279565b60405180910390f35b348015610be757600080fd5b50610bf0611f1f565b604051610bfd91906143a3565b60405180910390f35b348015610c1257600080fd5b50610c1b611f25565b604051610c2891906143a3565b60405180910390f35b348015610c3d57600080fd5b50610c586004803603810190610c539190614572565b611f2b565b604051610c6591906143a3565b60405180910390f35b348015610c7a57600080fd5b50610c83611fb2565b604051610c9091906143a3565b60405180910390f35b348015610ca557600080fd5b50610cae611fb8565b604051610cbb9190614279565b60405180910390f35b348015610cd057600080fd5b50610ceb6004803603810190610ce691906145b2565b612058565b005b348015610cf957600080fd5b50610d026121d8565b604051610d0f91906143a3565b60405180910390f35b348015610d2457600080fd5b50610d3f6004803603810190610d3a91906142ed565b6121de565b005b348015610d4d57600080fd5b50610d566122d6565b604051610d6391906143a3565b60405180910390f35b348015610d7857600080fd5b50610d816122dc565b604051610d8e91906143a3565b60405180910390f35b348015610da357600080fd5b50610dac6122e2565b604051610db99190614279565b60405180910390f35b348015610dce57600080fd5b50610de96004803603810190610de49190614545565b612382565b604051610df69190614279565b60405180910390f35b606060038054610e0e9061466e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3a9061466e565b8015610e875780601f10610e5c57610100808354040283529160200191610e87565b820191906000526020600020905b815481529060010190602001808311610e6a57829003601f168201915b5050505050905090565b6000610ea5610e9e61265a565b8484612662565b6001905092915050565b610eb761265a565b73ffffffffffffffffffffffffffffffffffffffff16610ed561180e565b73ffffffffffffffffffffffffffffffffffffffff1614610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f22906146ec565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b602080528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610f9d61265a565b73ffffffffffffffffffffffffffffffffffffffff16610fbb61180e565b73ffffffffffffffffffffffffffffffffffffffff1614611011576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611008906146ec565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b60105481565b601d5481565b601c5481565b60006110f684848461282d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061114161265a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b89061477e565b60405180910390fd5b6111d5856111cd61265a565b858403612662565b60019150509392505050565b61dead81565b600c5481565b600b60009054906101000a900460ff1681565b60006012905090565b60006112ab61121661265a565b84846001600061122461265a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112a691906147cd565b612662565b6001905092915050565b7f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a41881565b601160019054906101000a900460ff1681565b6000601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60185481565b601160009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113ab61265a565b73ffffffffffffffffffffffffffffffffffffffff166113c961180e565b73ffffffffffffffffffffffffffffffffffffffff161461141f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611416906146ec565b60405180910390fd5b61142960006134d0565b565b61143361265a565b73ffffffffffffffffffffffffffffffffffffffff1661145161180e565b73ffffffffffffffffffffffffffffffffffffffff16146114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e906146ec565b60405180910390fd5b6102588310156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390614895565b60405180910390fd5b6103e882111580156114ff575060008210155b61153e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153590614927565b60405180910390fd5b82600c819055508160108190555080600b60006101000a81548160ff021916908315150217905550505050565b61157361265a565b73ffffffffffffffffffffffffffffffffffffffff1661159161180e565b73ffffffffffffffffffffffffffffffffffffffff16146115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de906146ec565b60405180910390fd5b80602060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b61167661265a565b73ffffffffffffffffffffffffffffffffffffffff1661169461180e565b73ffffffffffffffffffffffffffffffffffffffff16146116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e1906146ec565b60405180910390fd5b670de0b6b3a76400006103e86001611700610f8b565b61170a9190614947565b61171491906149d0565b61171e91906149d0565b821015611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175790614a73565b60405180910390fd5b670de0b6b3a7640000826117749190614947565b600881905550670de0b6b3a76400006103e86005611790610f8b565b61179a9190614947565b6117a491906149d0565b6117ae91906149d0565b8110156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790614b05565b60405180910390fd5b670de0b6b3a7640000816118049190614947565b6009819055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6060600480546118739061466e565b80601f016020809104026020016040519081016040528092919081815260200182805461189f9061466e565b80156118ec5780601f106118c1576101008083540402835291602001916118ec565b820191906000526020600020905b8154815290600101906020018083116118cf57829003601f168201915b5050505050905090565b6118fe61265a565b73ffffffffffffffffffffffffffffffffffffffff1661191c61180e565b73ffffffffffffffffffffffffffffffffffffffff1614611972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611969906146ec565b60405180910390fd5b7f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a41873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f890614b97565b60405180910390fd5b611a0b8282613596565b5050565b60175481565b600f5481565b601e5481565b601b5481565b60008060016000611a3661265a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea90614c29565b60405180910390fd5b611b07611afe61265a565b85858403612662565b600191505092915050565b600d5481565b6000611b2c611b2561265a565b848461282d565b6001905092915050565b611b3e61265a565b73ffffffffffffffffffffffffffffffffffffffff16611b5c61180e565b73ffffffffffffffffffffffffffffffffffffffff1614611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba9906146ec565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611c7c61265a565b73ffffffffffffffffffffffffffffffffffffffff16611c9a61180e565b73ffffffffffffffffffffffffffffffffffffffff1614611cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce7906146ec565b60405180910390fd5b620186a06001611cfe610f8b565b611d089190614947565b611d1291906149d0565b821015611d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4b90614cbb565b60405180910390fd5b6103e86005611d61610f8b565b611d6b9190614947565b611d7591906149d0565b821115611db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dae90614d4d565b60405180910390fd5b81600a8190555060019050919050565b60216020528060005260406000206000915054906101000a900460ff1681565b611def61265a565b73ffffffffffffffffffffffffffffffffffffffff16611e0d61180e565b73ffffffffffffffffffffffffffffffffffffffff1614611e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5a906146ec565b60405180910390fd5b80601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f009190614279565b60405180910390a25050565b601360009054906101000a900460ff1681565b60085481565b60145481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b6000611fc261265a565b73ffffffffffffffffffffffffffffffffffffffff16611fe061180e565b73ffffffffffffffffffffffffffffffffffffffff1614612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d906146ec565b60405180910390fd5b6000601360006101000a81548160ff0219169083151502179055506001905090565b61206061265a565b73ffffffffffffffffffffffffffffffffffffffff1661207e61180e565b73ffffffffffffffffffffffffffffffffffffffff16146120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb906146ec565b60405180910390fd5b8560158190555084601681905550836017819055506017546016546015546120fc91906147cd565b61210691906147cd565b60148190555060216014541115612152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214990614db9565b60405180910390fd5b8260198190555081601a8190555080601b8190555060175460165460155461217a91906147cd565b61218491906147cd565b601881905550604b60145411156121d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c790614e25565b60405180910390fd5b505050505050565b60165481565b6121e661265a565b73ffffffffffffffffffffffffffffffffffffffff1661220461180e565b73ffffffffffffffffffffffffffffffffffffffff161461225a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612251906146ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c190614eb7565b60405180910390fd5b6122d3816134d0565b50565b601a5481565b60095481565b60006122ec61265a565b73ffffffffffffffffffffffffffffffffffffffff1661230a61180e565b73ffffffffffffffffffffffffffffffffffffffff1614612360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612357906146ec565b60405180910390fd5b6000601160016101000a81548160ff0219169083151502179055506001905090565b600061238c61265a565b73ffffffffffffffffffffffffffffffffffffffff166123aa61180e565b73ffffffffffffffffffffffffffffffffffffffff1614612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f7906146ec565b60405180910390fd5b600e54600f5461241091906147cd565b4211612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890614f23565b60405180910390fd5b6103e8821115612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248d90614fb5565b60405180910390fd5b42600f8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a082317f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a4186040518263ffffffff1660e01b81526004016124f89190614420565b602060405180830381865afa158015612515573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125399190614fea565b90506000612564612710612556868561363790919063ffffffff16565b61364d90919063ffffffff16565b9050600081111561259d5761259c7f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a41861dead83613663565b5b60007f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a41890508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561260a57600080fd5b505af115801561261e573d6000803e3d6000fd5b505050507f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb60405160405180910390a160019350505050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c990615089565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612742576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127399061511b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161282091906143a3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561289d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612894906151ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561290d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129049061523f565b60405180910390fd5b60008114156129275761292283836000613663565b6134cb565b601160019054906101000a900460ff1615612ef55761294461180e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156129b2575061298261180e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129eb5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a25575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a3e5750600560149054906101000a900460ff16155b15612ef457601360009054906101000a900460ff1615612c0b57612a6061180e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612ae757507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b3f57507f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a41873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612c0a5743601260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbc906152f7565b60405180910390fd5b43601260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b602160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cae5750602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d5557600854811115612cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cef90615389565b60405180910390fd5b600954612d048361135b565b82612d0f91906147cd565b1115612d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d47906153f5565b60405180910390fd5b612ef3565b602160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612df85750602060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e4757600854811115612e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3990615487565b60405180910390fd5b612ef2565b602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ef157600954612ea48361135b565b82612eaf91906147cd565b1115612ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee7906153f5565b60405180910390fd5b5b5b5b5b5b6000612f003061135b565b90506000600a548210159050808015612f255750601160009054906101000a900460ff165b8015612f3e5750600560149054906101000a900460ff16155b8015612f945750602160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612fea5750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156130405750601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613084576001600560146101000a81548160ff0219169083151502179055506130686138e4565b6000600560146101000a81548160ff0219169083151502179055505b600560149054906101000a900460ff161580156130ea5750602160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156131025750600b60009054906101000a900460ff165b801561311d5750600c54600d5461311991906147cd565b4210155b80156131735750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561318257613180613bcb565b505b6000600560149054906101000a900460ff16159050601f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132385750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561324257600090505b600081156134bb57602160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156132a557506000601854115b15613372576132d260646132c46018548861363790919063ffffffff16565b61364d90919063ffffffff16565b9050601854601a54826132e59190614947565b6132ef91906149d0565b601d600082825461330091906147cd565b92505081905550601854601b54826133189190614947565b61332291906149d0565b601e600082825461333391906147cd565b925050819055506018546019548261334b9190614947565b61335591906149d0565b601c600082825461336691906147cd565b92505081905550613497565b602160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156133cd57506000601454115b15613496576133fa60646133ec6014548861363790919063ffffffff16565b61364d90919063ffffffff16565b90506014546016548261340d9190614947565b61341791906149d0565b601d600082825461342891906147cd565b92505081905550601454601754826134409190614947565b61344a91906149d0565b601e600082825461345b91906147cd565b92505081905550601454601554826134739190614947565b61347d91906149d0565b601c600082825461348e91906147cd565b925050819055505b5b60008111156134ac576134ab873083613663565b5b80856134b891906154a7565b94505b6134c6878787613663565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80602160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600081836136459190614947565b905092915050565b6000818361365b91906149d0565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156136d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136ca906151ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161373a9061523f565b60405180910390fd5b61374e838383613d91565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156137d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137cb9061554d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461386791906147cd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138cb91906143a3565b60405180910390a36138de848484613d96565b50505050565b60006138ef3061135b565b90506000601e54601c54601d5461390691906147cd565b61391091906147cd565b90506000808314806139225750600082145b1561392f57505050613bc9565b6014600a5461393e9190614947565b831115613957576014600a546139549190614947565b92505b6000600283601d548661396a9190614947565b61397491906149d0565b61397e91906149d0565b905060006139958286613d9b90919063ffffffff16565b905060004790506139a582613db1565b60006139ba8247613d9b90919063ffffffff16565b905060006139e5876139d7601c548561363790919063ffffffff16565b61364d90919063ffffffff16565b90506000613a1088613a02601e548661363790919063ffffffff16565b61364d90919063ffffffff16565b90506000818385613a2191906154a7565b613a2b91906154a7565b90506000601d819055506000601c819055506000601e81905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613a8b9061559e565b60006040518083038185875af1925050503d8060008114613ac8576040519150601f19603f3d011682016040523d82523d6000602084013e613acd565b606091505b505080985050600087118015613ae35750600081115b15613b3057613af28782613fee565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618682601d54604051613b27939291906155b3565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613b769061559e565b60006040518083038185875af1925050503d8060008114613bb3576040519150601f19603f3d011682016040523d82523d6000602084013e613bb8565b606091505b505080985050505050505050505050505b565b600042600d8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a082317f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a4186040518263ffffffff1660e01b8152600401613c2f9190614420565b602060405180830381865afa158015613c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c709190614fea565b90506000613c9d612710613c8f6010548561363790919063ffffffff16565b61364d90919063ffffffff16565b90506000811115613cd657613cd57f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a41861dead83613663565b5b60007f000000000000000000000000fc932be359a728f0998dd6664681900a9ec7a41890508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d4357600080fd5b505af1158015613d57573d6000803e3d6000fd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a16001935050505090565b505050565b505050565b60008183613da991906154a7565b905092915050565b6000600267ffffffffffffffff811115613dce57613dcd6155ea565b5b604051908082528060200260200182016040528015613dfc5781602001602082028036833780820191505090505b5090503081600081518110613e1457613e13615619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613edd919061565d565b81600181518110613ef157613ef0615619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f56307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612662565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613fb8959493929190615783565b600060405180830381600087803b158015613fd257600080fd5b505af1158015613fe6573d6000803e3d6000fd5b505050505050565b614019307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612662565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401614080969594939291906157dd565b60606040518083038185885af115801561409e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140c3919061583e565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156141045780820151818401526020810190506140e9565b83811115614113576000848401525b50505050565b6000601f19601f8301169050919050565b6000614135826140ca565b61413f81856140d5565b935061414f8185602086016140e6565b61415881614119565b840191505092915050565b6000602082019050818103600083015261417d818461412a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006141b58261418a565b9050919050565b6141c5816141aa565b81146141d057600080fd5b50565b6000813590506141e2816141bc565b92915050565b6000819050919050565b6141fb816141e8565b811461420657600080fd5b50565b600081359050614218816141f2565b92915050565b6000806040838503121561423557614234614185565b5b6000614243858286016141d3565b925050602061425485828601614209565b9150509250929050565b60008115159050919050565b6142738161425e565b82525050565b600060208201905061428e600083018461426a565b92915050565b61429d8161425e565b81146142a857600080fd5b50565b6000813590506142ba81614294565b92915050565b6000602082840312156142d6576142d5614185565b5b60006142e4848285016142ab565b91505092915050565b60006020828403121561430357614302614185565b5b6000614311848285016141d3565b91505092915050565b6000819050919050565b600061433f61433a6143358461418a565b61431a565b61418a565b9050919050565b600061435182614324565b9050919050565b600061436382614346565b9050919050565b61437381614358565b82525050565b600060208201905061438e600083018461436a565b92915050565b61439d816141e8565b82525050565b60006020820190506143b86000830184614394565b92915050565b6000806000606084860312156143d7576143d6614185565b5b60006143e5868287016141d3565b93505060206143f6868287016141d3565b925050604061440786828701614209565b9150509250925092565b61441a816141aa565b82525050565b60006020820190506144356000830184614411565b92915050565b600060ff82169050919050565b6144518161443b565b82525050565b600060208201905061446c6000830184614448565b92915050565b60008060006060848603121561448b5761448a614185565b5b600061449986828701614209565b93505060206144aa86828701614209565b92505060406144bb868287016142ab565b9150509250925092565b600080604083850312156144dc576144db614185565b5b60006144ea858286016141d3565b92505060206144fb858286016142ab565b9150509250929050565b6000806040838503121561451c5761451b614185565b5b600061452a85828601614209565b925050602061453b85828601614209565b9150509250929050565b60006020828403121561455b5761455a614185565b5b600061456984828501614209565b91505092915050565b6000806040838503121561458957614588614185565b5b6000614597858286016141d3565b92505060206145a8858286016141d3565b9150509250929050565b60008060008060008060c087890312156145cf576145ce614185565b5b60006145dd89828a01614209565b96505060206145ee89828a01614209565b95505060406145ff89828a01614209565b945050606061461089828a01614209565b935050608061462189828a01614209565b92505060a061463289828a01614209565b9150509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061468657607f821691505b6020821081141561469a5761469961463f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006146d66020836140d5565b91506146e1826146a0565b602082019050919050565b60006020820190508181036000830152614705816146c9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006147686028836140d5565b91506147738261470c565b604082019050919050565b600060208201905081810360008301526147978161475b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006147d8826141e8565b91506147e3836141e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148185761481761479e565b5b828201905092915050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b600061487f6033836140d5565b915061488a82614823565b604082019050919050565b600060208201905081810360008301526148ae81614872565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b60006149116030836140d5565b915061491c826148b5565b604082019050919050565b6000602082019050818103600083015261494081614904565b9050919050565b6000614952826141e8565b915061495d836141e8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156149965761499561479e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006149db826141e8565b91506149e6836141e8565b9250826149f6576149f56149a1565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000614a5d602f836140d5565b9150614a6882614a01565b604082019050919050565b60006020820190508181036000830152614a8c81614a50565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000614aef6024836140d5565b9150614afa82614a93565b604082019050919050565b60006020820190508181036000830152614b1e81614ae2565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614b816039836140d5565b9150614b8c82614b25565b604082019050919050565b60006020820190508181036000830152614bb081614b74565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614c136025836140d5565b9150614c1e82614bb7565b604082019050919050565b60006020820190508181036000830152614c4281614c06565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614ca56035836140d5565b9150614cb082614c49565b604082019050919050565b60006020820190508181036000830152614cd481614c98565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614d376034836140d5565b9150614d4282614cdb565b604082019050919050565b60006020820190508181036000830152614d6681614d2a565b9050919050565b7f4d757374206b656570206665657320617420333325206f72206c657373000000600082015250565b6000614da3601d836140d5565b9150614dae82614d6d565b602082019050919050565b60006020820190508181036000830152614dd281614d96565b9050919050565b7f4d757374206b656570206665657320617420373525206f72206c657373000000600082015250565b6000614e0f601d836140d5565b9150614e1a82614dd9565b602082019050919050565b60006020820190508181036000830152614e3e81614e02565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614ea16026836140d5565b9150614eac82614e45565b604082019050919050565b60006020820190508181036000830152614ed081614e94565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000614f0d6020836140d5565b9150614f1882614ed7565b602082019050919050565b60006020820190508181036000830152614f3c81614f00565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000614f9f602a836140d5565b9150614faa82614f43565b604082019050919050565b60006020820190508181036000830152614fce81614f92565b9050919050565b600081519050614fe4816141f2565b92915050565b60006020828403121561500057614fff614185565b5b600061500e84828501614fd5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150736024836140d5565b915061507e82615017565b604082019050919050565b600060208201905081810360008301526150a281615066565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006151056022836140d5565b9150615110826150a9565b604082019050919050565b60006020820190508181036000830152615134816150f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006151976025836140d5565b91506151a28261513b565b604082019050919050565b600060208201905081810360008301526151c68161518a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006152296023836140d5565b9150615234826151cd565b604082019050919050565b600060208201905081810360008301526152588161521c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006152e16049836140d5565b91506152ec8261525f565b606082019050919050565b60006020820190508181036000830152615310816152d4565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006153736035836140d5565b915061537e82615317565b604082019050919050565b600060208201905081810360008301526153a281615366565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006153df6013836140d5565b91506153ea826153a9565b602082019050919050565b6000602082019050818103600083015261540e816153d2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006154716036836140d5565b915061547c82615415565b604082019050919050565b600060208201905081810360008301526154a081615464565b9050919050565b60006154b2826141e8565b91506154bd836141e8565b9250828210156154d0576154cf61479e565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006155376026836140d5565b9150615542826154db565b604082019050919050565b600060208201905081810360008301526155668161552a565b9050919050565b600081905092915050565b50565b600061558860008361556d565b915061559382615578565b600082019050919050565b60006155a98261557b565b9150819050919050565b60006060820190506155c86000830186614394565b6155d56020830185614394565b6155e26040830184614394565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050615657816141bc565b92915050565b60006020828403121561567357615672614185565b5b600061568184828501615648565b91505092915050565b6000819050919050565b60006156af6156aa6156a58461568a565b61431a565b6141e8565b9050919050565b6156bf81615694565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6156fa816141aa565b82525050565b600061570c83836156f1565b60208301905092915050565b6000602082019050919050565b6000615730826156c5565b61573a81856156d0565b9350615745836156e1565b8060005b8381101561577657815161575d8882615700565b975061576883615718565b925050600181019050615749565b5085935050505092915050565b600060a0820190506157986000830188614394565b6157a560208301876156b6565b81810360408301526157b78186615725565b90506157c66060830185614411565b6157d36080830184614394565b9695505050505050565b600060c0820190506157f26000830189614411565b6157ff6020830188614394565b61580c60408301876156b6565b61581960608301866156b6565b6158266080830185614411565b61583360a0830184614394565b979650505050505050565b60008060006060848603121561585757615856614185565b5b600061586586828701614fd5565b935050602061587686828701614fd5565b925050604061588786828701614fd5565b915050925092509256fea26469706673582212202fba1c095c68d577bf4f76b61218359242de1369f6cf620e5c8e5341bb4e43f164736f6c634300080a0033

Verified Source Code Partial Match

Compiler: v0.8.10+commit.fc410830 EVM: london Optimization: No
ERMN.sol 188 lines
/*
https://t.me/c/1848648579/249639
*/
// SPDX-License-Identifier: MIT
pragma solidity =0.8.10 >=0.8.10 >=0.8.0 <0.9.0;
pragma experimental ABIEncoderV2;

abstract contract Context {
function _msgSender() internal view virtual returns (address) {
        return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {_transferOwnership(_msgSender());}
    function owner() public view virtual returns (address) {return _owner;}
    modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner");  _; }
    function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0));}
    function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner);}
    function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner;  _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient,  uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IERC20Metadata is IERC20 {
   function name() external view returns (string memory);function symbol() external view returns (string memory);function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name; string private _symbol;
    constructor(string memory name_, string memory symbol_) {  _name = name_; _symbol = symbol_;}
    function name() public view virtual override returns (string memory) { return _name;}
    function symbol() public view virtual override returns (string memory) { return _symbol; }
    function decimals() public view virtual override returns (uint8) {  return 18; }
    function totalSupply() public view virtual override returns (uint256) { return _totalSupply;}
    function balanceOf(address account) public view virtual override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {_transfer(_msgSender(), recipient, amount);return true;}
    function allowance(address owner, address spender) public view virtual override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public virtual override returns (bool) {_approve(_msgSender(), spender, amount); return true;}
    function transferFrom(address sender, address recipient,uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount);uint256 currentAllowance = _allowances[sender][_msgSender()];require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");unchecked {_approve(sender, _msgSender(), currentAllowance - amount);}return true;}
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);return true;}
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {uint256 currentAllowance = _allowances[_msgSender()][spender];require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");unchecked {_approve(_msgSender(), spender, currentAllowance - subtractedValue);}return true;}
    function _transfer(address sender,address recipient,uint256 amount) internal virtual {require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address");_beforeTokenTransfer(sender, recipient, amount);uint256 senderBalance = _balances[sender];require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");unchecked { _balances[sender] = senderBalance - amount;}_balances[recipient] += amount;emit Transfer(sender, recipient, amount);_afterTokenTransfer(sender, recipient, amount);}
    function _mint(address account, uint256 amount) internal virtual {require(account != address(0), "ERC20: mint to the zero address");_beforeTokenTransfer(address(0), account, amount);_totalSupply += amount;_balances[account] += amount;emit Transfer(address(0), account, amount);_afterTokenTransfer(address(0), account, amount);}
    function _burn(address account, uint256 amount) internal virtual {require(account != address(0), "ERC20: burn from the zero address");_beforeTokenTransfer(account, address(0), amount);uint256 accountBalance = _balances[account];require(accountBalance >= amount, "ERC20: burn amount exceeds balance");unchecked { _balances[account] = accountBalance - amount;}_totalSupply -= amount;emit Transfer(account, address(0), amount);_afterTokenTransfer(account, address(0), amount);}
    function _approve(address owner, address spender,uint256 amount) internal virtual {require(owner != address(0), "ERC20: approve from the zero address");require(spender != address(0), "ERC20: approve to the zero address");_allowances[owner][spender] = amount;emit Approval(owner, spender, amount);}
    function _beforeTokenTransfer(address from,address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from,  address to, uint256 amount) internal virtual {}
}


library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked { uint256 c = a + b;if (c < a) return (false, 0); return (true, c);}}
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked {if (b > a) return (false, 0); return (true, a - b);}}
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked { if (a == 0) return (true, 0);uint256 c = a * b;if (c / a != b) return (false, 0); return (true, c);}}
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked {if (b == 0) return (false, 0);return (true, a / b); }}
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b);}}
    function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; }
    function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b;  }
    function sub( uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {unchecked { require(b <= a, errorMessage); return a - b;  } }
    function div(uint256 a,  uint256 b,  string memory errorMessage ) internal pure returns (uint256) {unchecked {   require(b > 0, errorMessage);  return a / b; }}
    function mod(uint256 a, uint256 b,  string memory errorMessage) internal pure returns (uint256) { unchecked {  require(b > 0, errorMessage);    return a % b;  }}
}
interface IUniswapV2Factory {
    event PairCreated( address indexed token0, address indexed token1, address pair, uint256);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint256) external view returns (address pair);
    function allPairsLength() external view returns (uint256);
    function createPair(address tokenA, address tokenB)external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender,uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender)external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transfer(address to, uint256 value) external returns (bool);
    function transferFrom( address from,address to,uint256 value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint256);
    function permit(address owner, address spender, uint256 value, uint256 deadline,  uint8 v, bytes32 r,bytes32 s) external;
    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(address indexed sender,uint256 amount0,uint256 amount1,address indexed to);
    event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint256);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves()external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint256);
    function price1CumulativeLast() external view returns (uint256);
    function Last() external view returns (uint256);
    function mint(address to) external returns (uint256 liquidity);
    function burn(address to)external returns (uint256 amount0, uint256 amount1);
    function swap(uint256 amount0Out,uint256 amount1Out,address to,bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}
interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) external returns ( uint256 amountA,  uint256 amountB,uint256 liquidity);
    function addLiquidityETH(address token,  uint256 amountTokenDesired,  uint256 amountTokenMin,  uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken,uint256 amountETH, uint256 liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn,uint256 amountOutMin,address[] calldata path,address to,uint256 deadline) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin,address[] calldata path,address to,uint256 deadline) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn,uint256 amountOutMin,address[] calldata path,address to,uint256 deadline) external;
}
contract ERMN is ERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);
    bool private swapping;
    address public marketingWallet;address public devWallet;
    uint256 public maxTransactionAmount;uint256 public maxWallet;uint256 public swapTokensAtAmount;
    bool public lpBurnEnabled = true;uint256 public lpBurnFrequency = 3600 seconds;uint256 public lastLpBurnTime;uint256 public manualBurnFrequency = 30 minutes; uint256 public lastManualLpBurnTime;uint256 public percentForLPBurn = 25; // 25 = .25%
    bool public swapEnabled = true; bool public limitsInEffect = true;
    mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true;
    uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyDevFee;uint256 public sellTotalFees;uint256 public sellMarketingFee;uint256 public sellLiquidityFee;
    uint256 public sellDevFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity;uint256 public tokensForDev;
    /******************/
    mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs;
    event UpdateUniswapV2Router(address indexed newAddress,address indexed oldAddress);
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event marketingWalletUpdated(address indexed newWallet,address indexed oldWallet);
    event SwapAndLiquify(uint256 tokensSwapped,uint256 ethReceived,uint256 tokensIntoLiquidity);
    event devWalletUpdated(address indexed newWallet,address indexed oldWallet);
    event ManualNukeLP(); 
    event AutoNukeLP();

    constructor() ERC20("Ermn Musk", "ERMN") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);  uniswapV2Router = _uniswapV2Router;  uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true);_setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        uint256 _buyMarketingFee = 0; uint256 _buyLiquidityFee = 0; uint256 _buyDevFee = 20; uint256 _sellMarketingFee = 0;uint256 _sellLiquidityFee = 0;uint256 _sellDevFee = 80;uint256 totalSupply = 1_000_000 * 1e18;
        maxTransactionAmount = 20_000 * 1e18;  maxWallet = 20_000 * 1e18; swapTokensAtAmount = (totalSupply * 10) / 10000; 
        buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee; sellMarketingFee = _sellMarketingFee;sellLiquidityFee = _sellLiquidityFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
        marketingWallet = address(0x83f9A87BEe11138b3501c31461700904c6CA1bD9); // set as marketing wallet
        devWallet = address(0x83f9A87BEe11138b3501c31461700904c6CA1bD9); // set as dev wallet
        excludeFromFees(owner(), true);excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true);excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply);
    }

    receive() external payable {}
    function disableLimits() external onlyOwner returns (bool) { limitsInEffect = false;return true;}
    function disableTransferDelay() external onlyOwner returns (bool) {transferDelayEnabled = false;return true;}
    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){ require( newAmount >= (totalSupply() * 1) / 100000,"Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= (totalSupply() * 5) / 1000,"Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true;}
    function updateTransactionLimits(uint256 newNumTx, uint256 newNumWallet) external onlyOwner { require(newNumTx >= ((totalSupply() * 1) / 1000) / 1e18,"Cannot set maxTransactionAmount lower than 0.1%");maxTransactionAmount = newNumTx * (10**18);require(newNumWallet >= ((totalSupply() * 5) / 1000) / 1e18,"Cannot set maxWallet lower than 0.5%");maxWallet = newNumWallet * (10**18);}
    function excludeFromMaxTransaction(address updAds, bool isEx)  public onlyOwner{_isExcludedMaxTransactionAmount[updAds] = isEx;}
    function setSwapback(bool enabled) external onlyOwner {swapEnabled = enabled;}
    function updateFeePercent(uint256 _buyMarketingFee,  uint256 _buyLiquidityFee, uint256 _buyDevFee,  uint256 _sellMarketingFee, uint256 _sellLiquidityFee, uint256 _sellDevFee) external onlyOwner{buyMarketingFee = _buyMarketingFee;buyLiquidityFee = _buyLiquidityFee;buyDevFee = _buyDevFee;buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;require(buyTotalFees <= 33, "Must keep fees at 33% or less"); sellMarketingFee = _sellMarketingFee;sellLiquidityFee = _sellLiquidityFee; sellDevFee = _sellDevFee;sellTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;require(buyTotalFees <= 75, "Must keep fees at 75% or less");}
    function excludeFromFees(address account, bool excluded) public onlyOwner {_isExcludedFromFees[account] = excluded;emit ExcludeFromFees(account, excluded);}
    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner{require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value);}
    function _setAutomatedMarketMakerPair(address pair, bool value) private {automatedMarketMakerPairs[pair] = value;emit SetAutomatedMarketMakerPair(pair, value);}
    function updateMarketingWallet(address newMarketingWallet) external onlyOwner{emit marketingWalletUpdated(newMarketingWallet, marketingWallet);marketingWallet = newMarketingWallet;}
    function updateDevWallet(address newWallet) external onlyOwner {emit devWalletUpdated(newWallet, devWallet);devWallet = newWallet;}
    function isExcludedFromFees(address account) public view returns (bool) {return _isExcludedFromFees[account];}
    event BoughtEarly(address indexed sniper);
    function _transfer(address from, address to,uint256 amount) internal override {require(from != address(0), "ERC20: transfer from the zero address");require(to != address(0), "ERC20: transfer to the zero address");if (amount == 0) {super._transfer(from, to, 0); return;}if (limitsInEffect) {if (from != owner() && to != owner() &&to != address(0) &&to != address(0xdead) &&!swapping) {if (transferDelayEnabled) { if ( to != owner() &&to != address(uniswapV2Router) &&to != address(uniswapV2Pair)) {require(_holderLastTransferTimestamp[tx.origin] <block.number,"_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");_holderLastTransferTimestamp[tx.origin] = block.number;}} if (automatedMarketMakerPairs[from] &&!_isExcludedMaxTransactionAmount[to]) {require(amount <= maxTransactionAmount,"Buy transfer amount exceeds the maxTransactionAmount.");require( amount + balanceOf(to) <= maxWallet,"Max wallet exceeded");}else if (automatedMarketMakerPairs[to] &&!_isExcludedMaxTransactionAmount[from]) {require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTransactionAmount.");} else if (!_isExcludedMaxTransactionAmount[to]) {require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");}}}uint256 contractTokenBalance = balanceOf(address(this));bool canSwap = contractTokenBalance >= swapTokensAtAmount;if (canSwap &&swapEnabled &&!swapping &&!automatedMarketMakerPairs[from] &&!_isExcludedFromFees[from] &&!_isExcludedFromFees[to]) {swapping = true;swapBack();swapping = false;}if (!swapping &&automatedMarketMakerPairs[to] &&lpBurnEnabled &&block.timestamp >= lastLpBurnTime + lpBurnFrequency &&!_isExcludedFromFees[from]) {autoBurnLiquidityPairTokens();}bool takeFee = !swapping;if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {takeFee = false;}uint256 fees = 0; if (takeFee) {if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {fees = amount.mul(sellTotalFees).div(100);tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;tokensForDev += (fees * sellDevFee) / sellTotalFees;tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;}else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {fees = amount.mul(buyTotalFees).div(100);tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;tokensForDev += (fees * buyDevFee) / buyTotalFees;tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;}if (fees > 0) {super._transfer(from, address(this), fees);}amount -= fees;}super._transfer(from, to, amount);}
    function swapTokensForEth(uint256 tokenAmount) private {address[] memory path = new address[](2);path[0] = address(this);path[1] = uniswapV2Router.WETH();_approve(address(this), address(uniswapV2Router), tokenAmount);uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0, path,address(this), block.timestamp);}
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {_approve(address(this), address(uniswapV2Router), tokenAmount);uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0, 0, deadAddress,block.timestamp);}
    function swapBack() private {uint256 contractBalance = balanceOf(address(this));uint256 totalTokensToSwap = tokensForLiquidity +tokensForMarketing +tokensForDev;bool success;if (contractBalance == 0 || totalTokensToSwap == 0) { return;}if (contractBalance > swapTokensAtAmount * 20) {contractBalance = swapTokensAtAmount * 20;}uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /totalTokensToSwap /2;uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);uint256 initialETHBalance = address(this).balance;swapTokensForEth(amountToSwapForETH);uint256 ethBalance = address(this).balance.sub(initialETHBalance);uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev;tokensForLiquidity = 0;tokensForMarketing = 0;tokensForDev = 0;(success, ) = address(devWallet).call{value: ethForDev}("");if (liquidityTokens > 0 && ethForLiquidity > 0) {addLiquidity(liquidityTokens, ethForLiquidity);emit SwapAndLiquify(amountToSwapForETH,ethForLiquidity,tokensForLiquidity);}(success, ) = address(marketingWallet).call{value: address(this).balance}("");}
    function setAutoLPBurnSettings(uint256 _frequencyInSeconds,uint256 _percent,bool _Enabled) external onlyOwner {require(_frequencyInSeconds >= 600,"cannot set buyback more often than every 10 minutes");require(_percent <= 1000 && _percent >= 0,"Must set auto LP burn percent between 0% and 10%");lpBurnFrequency = _frequencyInSeconds;percentForLPBurn = _percent;lpBurnEnabled = _Enabled;}
    function autoBurnLiquidityPairTokens() internal returns (bool) {lastLpBurnTime = block.timestamp;uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);uint256 amountToBurn = liquidityPairBalance.mul(percentForLPBurn).div(10000);if (amountToBurn > 0) {super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);}IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);pair.sync();emit AutoNukeLP();return true;}
    function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool){require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency,"Must wait for cooldown to finish");require(percent <= 1000, "May not nuke more than 10% of tokens in LP");lastManualLpBurnTime = block.timestamp;uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);if (amountToBurn > 0) {super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);} IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);pair.sync(); emit ManualNukeLP();return true;}
}

Read Contract

_isExcludedMaxTransactionAmount 0x10d5de53 → bool
allowance 0xdd62ed3e → uint256
automatedMarketMakerPairs 0xb62496f5 → bool
balanceOf 0x70a08231 → uint256
buyDevFee 0x9c3b4fdc → uint256
buyLiquidityFee 0xf11a24d3 → uint256
buyMarketingFee 0x7bce5a04 → uint256
buyTotalFees 0xd85ba063 → uint256
deadAddress 0x27c8f835 → address
decimals 0x313ce567 → uint8
devWallet 0x8ea5220f → address
isExcludedFromFees 0x4fbee193 → bool
lastLpBurnTime 0xa4c82a00 → uint256
lastManualLpBurnTime 0x9ec22c0e → uint256
limitsInEffect 0x4a62bb65 → bool
lpBurnEnabled 0x2e82f1a0 → bool
lpBurnFrequency 0x2c3e486c → uint256
manualBurnFrequency 0x184c16c5 → uint256
marketingWallet 0x75f0a874 → address
maxTransactionAmount 0xc8c8ebe4 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
percentForLPBurn 0x199ffc72 → uint256
sellDevFee 0xa0d82dc5 → uint256
sellLiquidityFee 0xf6374342 → uint256
sellMarketingFee 0x92136913 → uint256
sellTotalFees 0x6a486a8e → uint256
swapEnabled 0x6ddd1713 → bool
swapTokensAtAmount 0xe2f45605 → uint256
symbol 0x95d89b41 → string
tokensForDev 0x9fccce32 → uint256
tokensForLiquidity 0x1a8145bb → uint256
tokensForMarketing 0x1f3fed8f → uint256
totalSupply 0x18160ddd → uint256
transferDelayEnabled 0xc876d0b9 → bool
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address

Write Contract 20 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
disableLimits 0xf928364c
No parameters
returns: bool
disableTransferDelay 0xe884f260
No parameters
returns: bool
excludeFromFees 0xc0246668
address account
bool excluded
excludeFromMaxTransaction 0x7571336a
address updAds
bool isEx
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
manualBurnLiquidityPairTokens 0xfe72b27a
uint256 percent
returns: bool
renounceOwnership 0x715018a6
No parameters
setAutoLPBurnSettings 0x730c1888
uint256 _frequencyInSeconds
uint256 _percent
bool _Enabled
setAutomatedMarketMakerPair 0x9a7a23d6
address pair
bool value
setSwapTokensAtAmount 0xafa4f3b2
uint256 newAmount
returns: bool
setSwapback 0x10a4cc66
bool enabled
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateDevWallet 0x1816467f
address newWallet
updateFeePercent 0xe96a65d0
uint256 _buyMarketingFee
uint256 _buyLiquidityFee
uint256 _buyDevFee
uint256 _sellMarketingFee
uint256 _sellLiquidityFee
uint256 _sellDevFee
updateMarketingWallet 0xaacebbe3
address newMarketingWallet
updateTransactionLimits 0x7ebb640a
uint256 newNumTx
uint256 newNumWallet

Recent Transactions

No transactions found for this address