Overview ERC20
PRICE
$0.0422

ON-CHAIN MARKET CAP n/a

Total Supply:
1,000,000,000.00 AIOP

Holders:
111
Profile Summary
Blockchain:
Ethereum (1)


Decimals:
9
Contract Source Code Verified (Partial Match)
Contract Name:
AIOP

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Created At:
Wed, 08 Nov 2023 13:53:23 GMT
AIOP.sol
contracts
AIOP.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountETH",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountTokens",
        "type": "uint256"
      }
    ],
    "name": "AutoLiquify",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_open",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_buyMultiplier",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_sellMultiplier",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_transferMultiplier",
        "type": "uint256"
      }
    ],
    "name": "EnabletradingAIOP",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "TradingOpen",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_maxTxAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_maxWalletToken",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "approveAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "accounts",
        "type": "address[]"
      },
      {
        "internalType": "bool",
        "name": "state",
        "type": "bool"
      }
    ],
    "name": "bulkIsBlacklisted",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amountPercentage",
        "type": "uint256"
      }
    ],
    "name": "clearStuckETH",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "tokenAddress",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokens",
        "type": "uint256"
      }
    ],
    "name": "clearStuckToken",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "editSwapbackSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "exemptAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getCirculatingSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "accuracy",
        "type": "uint256"
      }
    ],
    "name": "getLiquidityBacking",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getOwner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "target",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "accuracy",
        "type": "uint256"
      }
    ],
    "name": "isOverLiquified",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "removeMaxLimits",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "router",
    "outputs": [
      {
        "internalType": "contract IDEXRouter",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_buy",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_sell",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_trans",
        "type": "uint256"
      }
    ],
    "name": "setFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxTXPercent",
        "type": "uint256"
      }
    ],
    "name": "setMaxTx",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxWallPercent",
        "type": "uint256"
      }
    ],
    "name": "setMaxWallet",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setTXExempt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_target",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_denominator",
        "type": "uint256"
      }
    ],
    "name": "setTargets",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapThreshold",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "transfer",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "state",
        "type": "bool"
      }
    ],
    "name": "updateIsBlacklisted",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_autoLiquidityReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_marketingFeeReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_utilityFeeReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_burnFeeReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_teamFeeReceiver",
        "type": "address"
      }
    ],
    "name": "updateReceiverWallets",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_liquidityFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_teamFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_marketingFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_utilityFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_burnFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_feeDenominator",
        "type": "uint256"
      }
    ],
    "name": "updateTaxBreakdown",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a62000692565b6200004290633b9aca00620006a2565b600581905562000063906064906200005c9060026200046f565b9062000502565b6006556005546200007e906064906200005c9060026200046f565b6007556001600d556003600e555f600f555f6010555f601155601154600f54600d54600e54601054620000b29190620006bc565b620000be9190620006bc565b620000ca9190620006bc565b620000d69190620006bc565b60125560646013819055601481815560158290556016829055601f556020556023805461ffff60a01b1916600160a81b179055600554612710906200011d90600a620006a2565b620001299190620006d2565b60245534801562000138575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021b9190620006f2565b600280546001600160a01b0319166001600160a01b039283161790556021546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000278573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029e9190620006f2565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003139190620006f2565b602380546001600160a01b039283166001600160a01b0319918216811783556022805483169091179055305f8181526009602090815260408083206021548816845282528083205f19905533808452600a8352818420805460ff199081166001908117909255601980548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601880548b16875284872080548316841790559686528386208054909116909117905560178054871682179055845486167341041f0757fae612813ca068ece9c26943c23cd617909455855485168417909555600354601b80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000767565b5f825f036200048057505f620004fc565b5f6200048d8385620006a2565b9050826200049c8583620006d2565b14620004f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200054b60201b60201c565b5f81836200056e5760405162461bcd60e51b8152600401620004f091906200071a565b505f6200057c8486620006d2565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005d957815f1904821115620005bd57620005bd62000585565b80851615620005cb57918102915b93841c93908002906200059e565b509250929050565b5f82620005f157506001620004fc565b81620005ff57505f620004fc565b8160018114620006185760028114620006235762000643565b6001915050620004fc565b60ff84111562000637576200063762000585565b50506001821b620004fc565b5060208310610133831016604e8410600b841016171562000668575081810a620004fc565b62000674838362000599565b805f19048211156200068a576200068a62000585565b029392505050565b5f620004f960ff841683620005e1565b8082028115828204841417620004fc57620004fc62000585565b80820180821115620004fc57620004fc62000585565b5f82620006ed57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000703575f80fd5b81516001600160a01b0381168114620004f9575f80fd5b5f6020808352835180828501525f5b81811015620007475785810183015185820160400152820162000729565b505f604082860101526040601f19601f8301168501019250505092915050565b6124ed80620007755f395ff3fe608060405260043610610257575f3560e01c80637bae52e11161013f578063b2bdfa7b116100b3578063d51ed1c811610078578063d51ed1c8146106f6578063d78e139d14610715578063dd62ed3e14610734578063f2fde38b14610778578063f6a78e1714610797578063f887ea40146107ab575f80fd5b8063b2bdfa7b14610667578063bc33718214610685578063ccf8c036146106a4578063cec10c11146106c3578063d148b74c146106e2575f80fd5b8063918924761161010457806391892476146105a057806395d89b41146105bf5780639acb773e146105eb5780639f11080e1461060a578063a8aa1b3114610629578063a9059cbb14610648575f80fd5b80637bae52e11461050c5780637d1db4a51461052b578063893d20e8146105405780638a4068dd146105705780638da5cb5b14610584575f80fd5b80631df4ccfc116101d65780635d0044ca1161019b5780635d0044ca146104515780636ddd17131461047057806370a0823114610490578063715018a6146104c457806377b54bad146104d857806378109e54146104f7575f80fd5b80631df4ccfc146103cf57806323b872dd146103e45780632b112e4914610403578063313ce567146104175780635b24ea5e14610432575f80fd5b8063095ea7b31161021c578063095ea7b31461033f5780630fd2aa721461035e5780631161ae391461037d57806313f97a8e1461039c57806318160ddd146103bb575f80fd5b806304368f65146102625780630445b667146102835780630621472c146102ab57806306fdde03146102da57806308fd3d051461031f575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b5061028161027c366004611e91565b6107ca565b005b34801561028e575f80fd5b5061029860245481565b6040519081526020015b60405180910390f35b3480156102b6575f80fd5b506102ca6102c5366004611ed1565b61081e565b60405190151581526020016102a2565b3480156102e5575f80fd5b5060408051808201909152601481527320a49027b832b930ba34b7b730b6102a37b5b2b760611b60208201525b6040516102a29190611eea565b34801561032a575f80fd5b506023546102ca90600160a01b900460ff1681565b34801561034a575f80fd5b506102ca610359366004611f35565b610830565b348015610369575f80fd5b50610281610378366004611f4f565b61089b565b348015610388575f80fd5b506102ca610397366004611f87565b6108ef565b3480156103a7575f80fd5b506102816103b6366004611fbb565b610902565b3480156103c6575f80fd5b50600554610298565b3480156103da575f80fd5b5061029860125481565b3480156103ef575f80fd5b506102ca6103fe36600461208d565b610994565b34801561040e575f80fd5b50610298610a52565b348015610422575f80fd5b50604051600981526020016102a2565b34801561043d575f80fd5b5061028161044c3660046120c6565b610aa2565b34801561045c575f80fd5b5061028161046b3660046120fb565b610af5565b34801561047b575f80fd5b506023546102ca90600160a81b900460ff1681565b34801561049b575f80fd5b506102986104aa366004611ed1565b6001600160a01b03165f9081526008602052604090205490565b3480156104cf575f80fd5b50610281610b5c565b3480156104e3575f80fd5b506102ca6104f2366004611f35565b610bcd565b348015610502575f80fd5b5061029860075481565b348015610517575f80fd5b50610281610526366004612112565b610cc5565b348015610536575f80fd5b5061029860065481565b34801561054b575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b34801561057b575f80fd5b50610281610d4d565b34801561058f575f80fd5b505f546001600160a01b0316610558565b3480156105ab575f80fd5b506102816105ba366004612173565b610d93565b3480156105ca575f80fd5b50604080518082019091526004815263041494f560e41b6020820152610312565b3480156105f6575f80fd5b506102816106053660046120c6565b610e58565b348015610615575f80fd5b50610281610624366004611f87565b610eab565b348015610634575f80fd5b50602354610558906001600160a01b031681565b348015610653575f80fd5b506102ca610662366004611f35565b610edf565b348015610672575f80fd5b505f54610558906001600160a01b031681565b348015610690575f80fd5b5061028161069f3660046120fb565b610eeb565b3480156106af575f80fd5b506102816106be3660046120c6565b610f52565b3480156106ce575f80fd5b506102816106dd3660046121b2565b610fb8565b3480156106ed575f80fd5b50610281610ff2565b348015610701575f80fd5b506102986107103660046120fb565b611025565b348015610720575f80fd5b5061028161072f3660046120fb565b61106a565b34801561073f575f80fd5b5061029861074e3660046121db565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610783575f80fd5b50610281610792366004611ed1565b6110b6565b3480156107a2575f80fd5b5061028161119d565b3480156107b6575f80fd5b50602154610558906001600160a01b031681565b5f546001600160a01b031633146107fc5760405162461bcd60e51b81526004016107f39061220c565b60405180910390fd5b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b5f61082a825f19610830565b92915050565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061088a9086815260200190565b60405180910390a350600192915050565b5f546001600160a01b031633146108c45760405162461bcd60e51b81526004016107f39061220c565b60238054941515600160a01b0260ff60a01b1990951694909417909355601591909155601455601655565b5f826108fa83611025565b119392505050565b5f546001600160a01b0316331461092b5760405162461bcd60e51b81526004016107f39061220c565b5f5b825181101561098f5781600c5f85848151811061094c5761094c612241565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061098781612269565b91505061092d565b505050565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1914610a3d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600982528381203382529091529190912054610a19918490611202565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b610a4884848461123a565b90505b9392505050565b6004546001600160a01b03165f90815260086020526040812054610a9d906003546001600160a01b03165f90815260086020526040902054610a97906005549061160e565b9061160e565b905090565b5f546001600160a01b03163314610acb5760405162461bcd60e51b81526004016107f39061220c565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610b1e5760405162461bcd60e51b81526004016107f39061220c565b6103e8600554610b2e9190612281565b6007541015610b3b575f80fd5b6103e881600554610b4c91906122a0565b610b569190612281565b60075550565b5f546001600160a01b03163314610b855760405162461bcd60e51b81526004016107f39061220c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b335f908152600b602052604081205460ff16610be7575f80fd5b815f03610c57576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5491906122b7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610ca1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4b91906122ce565b5f546001600160a01b03163314610cee5760405162461bcd60e51b81526004016107f39061220c565b601780546001600160a01b03199081166001600160a01b03978816179091556018805482169587169590951790945560198054851693861693909317909255601b80548416918516919091179055601a80549092169216919091179055565b335f908152600b602052604090205460ff16610d67575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610d90573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610dbc5760405162461bcd60e51b81526004016107f39061220c565b600d8690556010859055600e849055600f8390556011829055610ded82610de7858188818c8c61164f565b9061164f565b6012556013819055610e00600582612281565b60125410610e505760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107f3565b505050505050565b5f546001600160a01b03163314610e815760405162461bcd60e51b81526004016107f39061220c565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ed45760405162461bcd60e51b81526004016107f39061220c565b601f91909155602055565b5f610a4b33848461123a565b5f546001600160a01b03163314610f145760405162461bcd60e51b81526004016107f39061220c565b6103e8600554610f249190612281565b6006541015610f31575f80fd5b6103e881600554610f4291906122a0565b610f4c9190612281565b60065550565b5f546001600160a01b03163314610f7b5760405162461bcd60e51b81526004016107f39061220c565b6001600160a01b039091165f908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b5f546001600160a01b03163314610fe15760405162461bcd60e51b81526004016107f39061220c565b601491909155601591909155601655565b5f546001600160a01b0316331461101b5760405162461bcd60e51b81526004016107f39061220c565b6110236116ad565b565b5f61082a611031610a52565b6023546001600160a01b03165f908152600860205260409020546110649061105d906002905b90611a75565b8590611a75565b90611af3565b601a5447906001600160a01b03166108fc606461108785856122a0565b6110919190612281565b6040518115909202915f818181858888f1935050505015801561098f573d5f803e3d5ffd5b5f546001600160a01b031633146110df5760405162461bcd60e51b81526004016107f39061220c565b6001600160a01b0381166111445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f3565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146111c65760405162461bcd60e51b81526004016107f39061220c565b6111d26009600a6123c9565b6111e090633b9aca006122a0565b6007556111ef6009600a6123c9565b6111fd90633b9aca006122a0565b600655565b5f81848411156112255760405162461bcd60e51b81526004016107f39190611eea565b505f61123184866123d7565b95945050505050565b6001600160a01b0383165f908152600c602052604081205460ff1615801561127a57506001600160a01b0383165f908152600c602052604090205460ff16155b6112b65760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016107f3565b60255460ff16156112d3576112cc848484611b34565b9050610a4b565b6001600160a01b0384165f9081526001602052604090205460ff1615801561131357506001600160a01b0383165f9081526001602052604090205460ff16155b1561136857602354600160a01b900460ff166113685760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107f3565b6001600160a01b0384165f9081526001602052604090205460ff1615801561139957506001600160a01b0383163014155b80156113b357506003546001600160a01b03848116911614155b80156113cd57506023546001600160a01b03848116911614155b80156113e75750601b546001600160a01b03848116911614155b801561140157506018546001600160a01b03848116911614155b801561142557506001600160a01b0383165f908152600b602052604090205460ff16155b156114c5576001600160a01b0383165f9081526008602052604090205460075461144f84836123ea565b11156114c35760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107f3565b505b6114cf8483611c04565b6114d7611c70565b156114e4576114e46116ad565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260089091529190912054611535918490611202565b6001600160a01b0385165f90815260086020908152604080832093909355600a90529081205460ff168061158057506001600160a01b0384165f908152600a602052604090205460ff165b6115945761158f858486611cc4565b611596565b825b6001600160a01b0385165f908152600860205260409020549091506115bb908261164f565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f80516020612498833981519152906115fb9085815260200190565b60405180910390a3506001949350505050565b5f610a4b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611202565b5f8061165b83856123ea565b905083811015610a4b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f3565b6025805460ff19166001179055601f546020545f916116cb916108ef565b6116d757600d546116d9565b5f5b90505f6116fc600261106460125461106486602454611a7590919063ffffffff16565b90505f6117148260245461160e90919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061174c5761174c612241565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061177d5761177d612241565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac947906117c69086905f908790309042906004016123fd565b5f604051808303815f87803b1580156117dd575f80fd5b505af11580156117ef573d5f803e3d5ffd5b505050505f611807824761160e90919063ffffffff16565b90505f611821611818886002611af3565b6012549061160e565b90505f61183560026110648481878d611a75565b90505f61185183611064600e5487611a7590919063ffffffff16565b90505f61186d8461106460105488611a7590919063ffffffff16565b90505f61188985611064600f5489611a7590919063ffffffff16565b6018546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146118d8576040519150601f19603f3d011682016040523d82523d5f602084013e6118dd565b606091505b50506019546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461192a576040519150601f19603f3d011682016040523d82523d5f602084013e61192f565b606091505b5050601a546040519192506001600160a01b03169084905f81818185875af1925050503d805f811461197c576040519150601f19603f3d011682016040523d82523d5f602084013e611981565b606091505b505f9250508b159050611a5d5760215460175460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119fb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a20919061246c565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b5f825f03611a8457505f61082a565b5f611a8f83856122a0565b905082611a9c8583612281565b14610a4b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f3565b5f610a4b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e48565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600890915291822054611b84918490611202565b6001600160a01b038086165f908152600860205260408082209390935590851681522054611bb2908361164f565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f8051602061249883398151915290611bf29086815260200190565b60405180910390a35060019392505050565b60065481111580611c2c57506001600160a01b0382165f908152600b602052604090205460ff165b611c6c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107f3565b5050565b6023545f906001600160a01b03163314801590611c90575060255460ff16155b8015611ca55750602354600160a81b900460ff165b8015610a9d575050602454305f90815260086020526040902054101590565b6016546023545f91906001600160a01b0390811690841603611ce95750601454611d04565b6023546001600160a01b0390811690861603611d0457506015545b5f611d306013546064611d1791906122a0565b611064846110576012548a611a7590919063ffffffff16565b90505f611d4e60125461106460115485611a7590919063ffffffff16565b90505f611d5b838361160e565b305f90815260086020526040902054909150611d77908261164f565b305f9081526008602052604080822092909255601b546001600160a01b031681522054611da4908361164f565b601b546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f80516020612498833981519152910160405180910390a38115611e3257600554611dfc908361160e565b6005556004546040518381526001600160a01b03918216918a16905f805160206124988339815191529060200160405180910390a35b611e3c878461160e565b98975050505050505050565b5f8183611e685760405162461bcd60e51b81526004016107f39190611eea565b505f6112318486612281565b8015158114610d90575f80fd5b8035611e8c81611e74565b919050565b5f8060408385031215611ea2575f80fd5b8235611ead81611e74565b946020939093013593505050565b80356001600160a01b0381168114611e8c575f80fd5b5f60208284031215611ee1575f80fd5b610a4b82611ebb565b5f6020808352835180828501525f5b81811015611f1557858101830151858201604001528201611ef9565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611f46575f80fd5b611ead83611ebb565b5f805f8060808587031215611f62575f80fd5b8435611f6d81611e74565b966020860135965060408601359560600135945092505050565b5f8060408385031215611f98575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611fcc575f80fd5b823567ffffffffffffffff80821115611fe3575f80fd5b818501915085601f830112611ff6575f80fd5b813560208282111561200a5761200a611fa7565b8160051b604051601f19603f8301168101818110868211171561202f5761202f611fa7565b60405292835281830193508481018201928984111561204c575f80fd5b948201945b838610156120715761206286611ebb565b85529482019493820193612051565b96506120809050878201611e81565b9450505050509250929050565b5f805f6060848603121561209f575f80fd5b6120a884611ebb565b92506120b660208501611ebb565b9150604084013590509250925092565b5f80604083850312156120d7575f80fd5b6120e083611ebb565b915060208301356120f081611e74565b809150509250929050565b5f6020828403121561210b575f80fd5b5035919050565b5f805f805f60a08688031215612126575f80fd5b61212f86611ebb565b945061213d60208701611ebb565b935061214b60408701611ebb565b925061215960608701611ebb565b915061216760808701611ebb565b90509295509295909350565b5f805f805f8060c08789031215612188575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f606084860312156121c4575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156121ec575f80fd5b6121f583611ebb565b915061220360208401611ebb565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161227a5761227a612255565b5060010190565b5f8261229b57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761082a5761082a612255565b5f602082840312156122c7575f80fd5b5051919050565b5f602082840312156122de575f80fd5b8151610a4b81611e74565b600181815b8085111561232357815f190482111561230957612309612255565b8085161561231657918102915b93841c93908002906122ee565b509250929050565b5f826123395750600161082a565b8161234557505f61082a565b816001811461235b576002811461236557612381565b600191505061082a565b60ff84111561237657612376612255565b50506001821b61082a565b5060208310610133831016604e8410600b84101617156123a4575081810a61082a565b6123ae83836122e9565b805f19048211156123c1576123c1612255565b029392505050565b5f610a4b60ff84168361232b565b8181038181111561082a5761082a612255565b8082018082111561082a5761082a612255565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561244b5784516001600160a01b031683529383019391830191600101612426565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561247e575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122098d00e67981ad304034a4f64dcbfb679278d7c7b3c4f151ddc9cb5b8bd70caf564736f6c63430008140033