Overview ERC20
PRICE
$0.052192

ON-CHAIN MARKET CAP n/a

Total Supply:
1,000,000,000.00 BANO

Holders:
30
Profile Summary
Blockchain:
Base (8453)


Decimals:
18
Contract Source Code Verified (Partial Match)
Contract Name:
g8keepToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 999999 runs

Created At:
Mon, 04 Nov 2024 19:00:39 GMT
g8keepToken.sol
src
g8keepToken.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_deployer",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "_totalSupply",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "_treasuryWallet",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_penaltyTaxReceiver",
        "type": "address"
      },
      {
        "internalType": "uint16",
        "name": "_buyFee",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "_sellFee",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "_g8keepFee",
        "type": "uint16"
      },
      {
        "internalType": "address",
        "name": "_uniswapV2Router",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_pairedToken",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_deployReserve",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_deployVestTime",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_snipeProtectionSeconds",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_heavySnipeSeconds",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_heavySnipeExponent",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "AlreadyInitialized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CannotBurnLiquidityDuringSnipeProtection",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CannotIncreaseFees",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CannotTransferFromAndToUniswapV2Pair",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ExcessiveAmountOut",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientPoolInput",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidHeavySnipeParameters",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidReserves",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidTokenAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidTreasuryAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NewOwnerIsZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NoHandoverRequest",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ReserveExceedsMax",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SnipeProtectionTimeOverflow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SupplyExceedsMax",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroAddress",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "buyFee",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "sellFee",
        "type": "uint16"
      }
    ],
    "name": "DeployerFeesUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipHandoverCanceled",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipHandoverRequested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldOwner",
        "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"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "treasuryWallet",
        "type": "address"
      }
    ],
    "name": "TreasuryWalletUpdated",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "G8KEEP_FEE",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "PAIRED_TOKEN",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "SNIPE_PROTECTION_END",
    "outputs": [
      {
        "internalType": "uint40",
        "name": "",
        "type": "uint40"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "SNIPE_PROTECTION_HEAVY_EXPONENT_START",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "SNIPE_PROTECTION_HEAVY_PENALTY_SECONDS",
    "outputs": [
      {
        "internalType": "uint40",
        "name": "",
        "type": "uint40"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "SNIPE_PROTECTION_SECONDS",
    "outputs": [
      {
        "internalType": "uint40",
        "name": "",
        "type": "uint40"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "UNISWAP_V2_PAIR",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_allowance",
        "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": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_balance",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "buyFee",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "cancelOwnershipHandover",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "completeOwnershipHandover",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount0In",
        "type": "uint256"
      }
    ],
    "name": "expectedAmount1Out",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "amount1Out",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "penaltyAmount1Out",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "feesAmount1Out",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxSnipeProtectionBuyWithoutPenalty",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "result",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "ownershipHandoverExpiresAt",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "result",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "requestOwnershipHandover",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellFee",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "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": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "treasuryWallet",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint16",
        "name": "_buyFee",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "_sellFee",
        "type": "uint16"
      }
    ],
    "name": "updateFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newAddress",
        "type": "address"
      }
    ],
    "name": "updateTreasuryWallet",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "tokenAddress",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "withdrawToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "tokenAddress",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "withdrawToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
6101e060405234620006d45762002e4a803803809162000022826101e062000b03565b6101e0396101e0016102006101e0820312620006d457620000456101e062000b27565b610200516001600160401b038111620006d4578262000068916101e00162000b3c565b6102205190926001600160401b038211620006d4576200008c916101e00162000b3c565b61024051906200009e61026062000b27565b93620000ac61028062000b27565b90620000ba6102a062000bb1565b620000c76102c062000bb1565b93620000d56102e062000bb1565b92620000e361030062000b27565b92620000f161032062000b27565b6103405161036051610380516103a0516103c051949b929a939992949392909161012c8b1162000af15764ffffffffff6200012d428362000bc1565b11801562000ae7575b62000ad5576001600160701b038e1162000ac35760ff8511801562000ab8575b62000aa6576001600160a01b038f16638b78c6d81981905564ffffffffff948592620001c1929091905f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a33360a05260c0528242166101205282811661014052429062000bc1565b16610160526101c0528a61010052166101a0528060011981011162000a925760ff9060011901166101805261ffff63ffff00006002549260101b1692169063ffffffff1916171760025560018060a01b038616301062000a80578051906001600160401b03821162000980575f5490600182811c9216801562000a75575b6020831014620009615781601f84931162000a18575b50602090601f8311600114620009a0575f9262000994575b50508160011b915f199060031b1c1916175f555b8051906001600160401b038211620009805760015490600182811c9216801562000975575b6020831014620009615781601f84931162000900575b50602090601f831160011462000889575f926200087d575b50508160011b915f199060031b1c1916176001555b608085905260028054600160201b600160c01b031916602089811b600160201b600160c01b03169190911790915560405163c45a015560e01b8082526001600160a01b039390931698600496909390929091908188818d5afa908115620006e0575f916200083b575b50604080516364e329cb60e11b81526001600160a01b038516898201908152306020828101919091529193919284929183915f9183910103926001600160a01b03165af15f9181620007f7575b50620007ee575060405190815260208187818c5afa908115620006e0575f91620007a3575b506040805163e6a4390560e01b81526001600160a01b0390931687840190815230602082810191909152928492909183918291015b03916001600160a01b03165afa908115620006e0575f9162000761575b505b60e08190526001600160a01b0391821691161462000750578084029084820414841517156200073d576127109004948584039384116200073d5783600555335f5260036020528360405f20556040519384527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef935f8560203393a3335f528260205260405f20815f526020525f198060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a384620005de575b60405161223a908162000bd08239608051816111fa015260a0518181816116f60152611867015260c05181611b79015260e05181818161021e01528181610a9701528181610e8e0152818161173c01528181611a0b01528181611dcd01528181611e9201526120d90152610100518181816106540152611ac5015261012051818181610f140152611ee2015261014051818181610afb01528181610f4b0152611f190152610160518181816105e50152818161071c01528181610ec20152611932015261018051818181610d31015261203001526101a0518181816105850152611f5d01526101c0518181816107550152818161107401526117f40152f35b806200061b5750506001600160a01b039091165f81815260036020908152604080832086905551948552919390929190a35b5f80808080620004df565b9091604051631288dc2360e31b81526020818581335afa908115620006e0575f91620006eb575b505f60649360209693829360018060a01b031692839182825260038a528a6040832055896040518c8152a360405197889687956352c2c8b560e11b875260018060a01b031690860152602485015260448401525af18015620006e057620006ab575b5062000610565b602090813d8311620006d8575b620006c4818362000b03565b81010312620006d4575f620006a4565b5f80fd5b503d620006b8565b6040513d5f823e3d90fd5b949190506020853d60201162000734575b816200070b6020938362000b03565b81010312620006d4575f60649381926200072760209862000b27565b9350939650935062000642565b3d9150620006fc565b601183634e487b7160e01b5f525260245ffd5b60405163cfe2ea6360e01b81528390fd5b90506020813d6020116200079a575b816200077f6020938362000b03565b81010312620006d457620007939062000b27565b5f62000416565b3d915062000770565b90506020813d602011620007e5575b81620007c16020938362000b03565b81010312620006d457620003f991620007dc60209262000b27565b915091620003c4565b3d9150620007b2565b91505062000418565b9091506020813d60201162000832575b81620008166020938362000b03565b81010312620006d4576200082a9062000b27565b905f6200039f565b3d915062000807565b90506020813d60201162000874575b81620008596020938362000b03565b81010312620006d4576200086d9062000b27565b5f62000352565b3d91506200084a565b015190505f80620002d4565b60015f9081525f8051602062002e2a8339815191529350601f198516905b818110620008e75750908460019594939210620008ce575b505050811b01600155620002e9565b01515f1960f88460031b161c191690555f8080620008bf565b92936020600181928786015181550195019301620008a7565b60015f529091505f8051602062002e2a833981519152601f840160051c8101916020851062000956575b90601f859493920160051c01905b818110620009475750620002bc565b5f815584935060010162000938565b90915081906200092a565b634e487b7160e01b5f52602260045260245ffd5b91607f1691620002a6565b634e487b7160e01b5f52604160045260245ffd5b015190505f806200026d565b5f80805293505f8051602062002e0a83398151915291905b601f1984168510620009fc576001945083601f19811610620009e3575b505050811b015f5562000281565b01515f1960f88460031b161c191690555f8080620009d5565b81810151835560209485019460019093019290910190620009b8565b5f80529091505f8051602062002e0a833981519152601f840160051c81016020851062000a6d575b90849392915b601f830160051c8201811062000a5e57505062000255565b5f815585945060010162000a46565b508062000a40565b91607f16916200023f565b604051630f58058360e11b8152600490fd5b634e487b7160e01b5f52601160045260245ffd5b604051631fda31c760e31b8152600490fd5b506002851062000156565b60405163a2dda64760e01b8152600490fd5b60405163f26e534360e01b8152600490fd5b5080831162000136565b60405163e1d39eb360e01b8152600490fd5b601f909101601f19168101906001600160401b038211908210176200098057604052565b51906001600160a01b0382168203620006d457565b919080601f84011215620006d4578251906001600160401b03821162000980576040519160209162000b78601f8301601f191684018562000b03565b818452828287010111620006d4575f5b81811062000b9d5750825f9394955001015290565b858101830151848201840152820162000b88565b519061ffff82168203620006d457565b9190820180921162000a925756fe60406080815260049081361015610014575f80fd5b5f91823560e01c90816301e336671461134057816306fdde0314611265578163095ea7b31461121d57816318160ddd146111c457816323b872dd14611101578163256929621461109857816325aa07321461103b5781632b14ca5614610ff7578163313ce56714610fbd5781633a7db27a14610e435781633aeac4e114610d5557816344bea5ea14610cf95781634626402b14610ca55781634706240214610c6457816354d1f13d14610c0057816370a0823114610b9e578163715018a614610b1f5781637b05777514610abf578163809d458d1461098d5781638da5cb5b1461091b57816395d89b41146107c6578163a809a4b3146106c7578163a9059cbb14610678578163c1345fcc14610609578163ce8a1d2c146105a9578163d19ae11414610549578163dd62ed3e146104d1578163f04e283e14610408578163f2fde38b14610354578163f3d2350e1461024257508063f40acc3d146101d45763fee81cf414610180575f80fd5b346101d05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020916101ba611360565b9063389a75e1600c525281600c20549051908152f35b5080fd5b50346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8383346101d057807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d057823561ffff9384821680920361035057602435948086169182870361034c576102996114dc565b6002549183858285161091821561033c575b50506103155750827fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000063ffff00007fe6f8bc3ac303ccc91a68c90f843a633823033244f651568cd57d0f3ca716ed8f979860101b169216171760025582519182526020820152a180f35b84517f1f333b81000000000000000000000000000000000000000000000000000000008152fd5b9091508360101c161083896102ab565b8580fd5b8380fd5b839060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d057610388611360565b906103916114dc565b8160601b156103fd575073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a35580f35b637448fbae8352601cfd5b8360207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ce5761043b611360565b6104436114dc565b63389a75e1600c528082526020600c2092835442116104c357508173ffffffffffffffffffffffffffffffffffffffff929355167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a35580f35b636f5e88188352601cfd5b80fd5b90503461054557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261054557602092829161050e611360565b610516611387565b9173ffffffffffffffffffffffffffffffffffffffff8092168452865283832091168252845220549051908152f35b8280fd5b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346101d057807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020906106c06106b6611360565b6024359033611673565b5160018152f35b919050346105455760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610545579160609281610713610709611d65565b969190913561217c565b9364ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001642106107ad575b5061ffff80600254168061079e575b507f0000000000000000000000000000000000000000000000000000000000000000168061078d575b50828251940384526020840152820152f35b61271090850204909201915f61077b565b6127109086020493505f610752565b6107bd9294915060055491611e74565b9290925f610743565b9190503461054557827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105455780519183600180549182821c928281168015610911575b60209586861082146108e557508488529081156108a5575060011461084d575b610849868661083f828b038361140a565b5191829182611478565b0390f35b9295508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061089257505050826108499461083f92820101945f61082e565b8054868501880152928601928101610875565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001687860152505050151560051b830101925061083f826108495f61082e565b8360226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b93607f169361080e565b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d05760209073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754915191168152f35b919050346105455760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610545576109c7611360565b6109cf6114dc565b73ffffffffffffffffffffffffffffffffffffffff92838216938415908115610a93575b50610a6c5750600280547fffffffffffffffff0000000000000000000000000000000000000000ffffffff16602092831b77ffffffffffffffffffffffffffffffffffffffff000000001617905590519182527f97c79b3848e51f57983ac89e4403452655c8d83ceba8199011de63a74f60d1a791a180f35b82517fcfe2ea63000000000000000000000000000000000000000000000000000000008152fd5b90507f00000000000000000000000000000000000000000000000000000000000000001684145f6109f3565b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b83807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ce57610b516114dc565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35580f35b5050346101d05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0578060209273ffffffffffffffffffffffffffffffffffffffff610bf0611360565b1681526003845220549051908152f35b83807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ce5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d05760209061ffff600254169051908152f35b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576002549051602091821c73ffffffffffffffffffffffffffffffffffffffff168152f35b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9190503461054557807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261054557610d8e611360565b610d96611387565b90610d9f6114dc565b8251937f70a08231000000000000000000000000000000000000000000000000000000008552309085015260208460248173ffffffffffffffffffffffffffffffffffffffff85165afa928315610e3a57508492610e05575b610e029350611597565b80f35b91506020833d8211610e32575b81610e1f6020938361140a565b8101031261035057610e02925191610df8565b3d9150610e12565b513d86823e3d90fd5b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0579060209173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016825260038352808220549164ffffffffff807f0000000000000000000000000000000000000000000000000000000000000000164210610ef1575b505051908152f35b909192610efc611d65565b91505080610f9b575b509080610f71610f3a610f77937f00000000000000000000000000000000000000000000000000000000000000001642611513565b91610f48600554938461154d565b907f00000000000000000000000000000000000000000000000000000000000000001690611560565b90611513565b9081811015610f8b575050905b5f80610ee9565b610f959250611513565b90610f84565b81811115610fb2575050610f7782915b9190610f05565b610f77910391610fab565b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905160128152f35b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d05760209061ffff60025460101c169051908152f35b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020905161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b83807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ce5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b8284346104ce5781611112366113aa565b959192909373ffffffffffffffffffffffffffffffffffffffff84168152826020528181203382526020522054907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611176575b6020856106c0888787611673565b85821061119d57509184916111936020966106c0950333836115df565b9194819350611168565b84517f13be252b000000000000000000000000000000000000000000000000000000008152fd5b5050346101d057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d057602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5050346101d057807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d0576020906106c061125b611360565b60243590336115df565b9190503461054557827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610545578051918380549060019082821c928281168015611336575b60209586861082146108e557508488529081156108a557506001146112de57610849868661083f828b038361140a565b8080949750527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b82841061132357505050826108499461083f92820101945f61082e565b8054868501880152928601928101611306565b93607f16936112ae565b83346104ce57610e02611352366113aa565b9161135b6114dc565b611597565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361138357565b5f80fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361138357565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126113835773ffffffffffffffffffffffffffffffffffffffff90600435828116810361138357916024359081168103611383579060443590565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761144b57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6020808252825181830181905293925f5b8581106114c8575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6040809697860101520116010190565b818101830151848201604001528201611489565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754330361150657565b6382b429005f526004601cfd5b9190820391821161152057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181029291811591840414171561152057565b811561156a570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b60109260209260145260345260445f938480936fa9059cbb00000000000000000000000082525af13d1560018351141716156115d257603452565b6390b8ec1890526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff80911691821561164957169182156116495760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526004825260405f20855f5282528060405f2055604051908152a3565b60046040517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff9081811692831561164957828116948515611649576116a79183611925565b915f84815260036020526040812054928484106117b857847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95602095888552600387520360408420558093807f000000000000000000000000000000000000000000000000000000000000000016880361173a575b5050508086604092526003845220818154019055604051908152a3565b7f000000000000000000000000000000000000000000000000000000000000000016888103611788575060409293509061177e9161ffff60025460101c16916117e2565b915b905f8061171d565b8714611799575b5050604090611780565b6040929350906117b09161ffff60025416916117e2565b91905f61178f565b60046040517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b91905f91806118aa575b505f9261ffff7f00000000000000000000000000000000000000000000000000000000000000001680611821575b5050030390565b6127109194508202049273ffffffffffffffffffffffffffffffffffffffff907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020837f00000000000000000000000000000000000000000000000000000000000000001693845f526003825260405f20888154019055604051938885521692a35f8061181a565b8161271092935002049073ffffffffffffffffffffffffffffffffffffffff8060025460201c1690815f52600360205260405f208481540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405192868452871692a35f6117ec565b9190820180921161152057565b909291809364ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016421061195d57505050565b611965612096565b90600754936dffffffffffffffffffffffffffff95868616937bffffffffffffffffffffffffffff00000000000000000000000000008160701b1693847fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff8916176007556040978851937f18160ddd00000000000000000000000000000000000000000000000000000000855273ffffffffffffffffffffffffffffffffffffffff9a8b7f000000000000000000000000000000000000000000000000000000000000000016926020986004978a818a81895afa908115611d5b57908f95949392915f91611d23575b5060065490818103611c7d575b50505050501697818914611a77575b5050505050505050505050565b8a9c50998192939495969798999a1614611c55578415611c4757858b9160248b51809481937f70a08231000000000000000000000000000000000000000000000000000000008352898301527f0000000000000000000000000000000000000000000000000000000000000000165afa908115611c3d575f91611c10575b50818110611be8579080611b0a93920361217c565b8211611bc15750611b2090600554938491611e74565b909681611b32575b8080808080611a6a565b611b5d827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95611513565b600555845f5260038352855f20611b75838254611513565b90557f00000000000000000000000000000000000000000000000000000000000000001694855f5260038352805f20611baf838254611918565b905551908152a35f8080808080611b28565b85517f014b95bd000000000000000000000000000000000000000000000000000000008152fd5b8389517f260bf230000000000000000000000000000000000000000000000000000000008152fd5b908682813d8311611c36575b611c26818361140a565b810103126104ce5750515f611af5565b503d611c1c565b89513d5f823e3d90fd5b505f99505050505050505050565b8389517f4dc64e44000000000000000000000000000000000000000000000000000000008152fd5b90809293949596508110611cfb57908f9594939291806006558115611a5b57848460701c1690818b11611cb1575b50611a5b565b91611ce5917fffffffff000000000000000000000000000000000000000000000000000000009495969f9382900302611560565b019b8c16921617176007555f8080808080611cab565b898f517fa745b8b4000000000000000000000000000000000000000000000000000000008152fd5b9192939495508b82813d8311611d54575b611d3e818361140a565b810103126104ce5750908e94939291515f611a4e565b503d611d34565b8e513d5f823e3d90fd5b600754906dffffffffffffffffffffffffffff9081831690611d85612096565b90938194956040517f18160ddd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115611e69575f91611e38575b50600654809114908115611e2f575b5015611e1757505050565b60701c1690818111611e27575050565b909192010390565b9050155f611e0c565b906020823d8211611e61575b81611e516020938361140a565b810103126104ce5750515f611dfd565b3d9150611e44565b6040513d5f823e3d90fd5b929091925f925f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260036020526040812054958684116117b85783809703928061205f575b5064ffffffffff92611f3f611f08857f00000000000000000000000000000000000000000000000000000000000000001642611513565b92610f71611f16858361154d565b877f00000000000000000000000000000000000000000000000000000000000000001690611560565b91818311611f50575b505050505050565b90919293949596506002947f00000000000000000000000000000000000000000000000000000000000000001690818110612022575b505092919081935b838510611fa9575050505050829003905f8080808080611f48565b909192939682611fbc83611fc19361154d565b611560565b967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ff55760010193929190611f8e565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b9061205691819693960360ff7f00000000000000000000000000000000000000000000000000000000000000001602611560565b01925f80611f86565b90928082111561207457505080915b5f611ed1565b039161206e565b51906dffffffffffffffffffffffffffff8216820361138357565b6040517f0902f1ac00000000000000000000000000000000000000000000000000000000815260608160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa8015611e69575f918291612122575b506dffffffffffffffffffffffffffff809116911691565b9190506060823d8211612174575b8161213d6060938361140a565b810103126104ce5761214e8261207b565b90604061215d6020850161207b565b93015163ffffffff8116036104ce5750905f61210a565b3d9150612130565b91908015918280156121fc575b6121d2576103e593848102948186041490151715611520576121ab908461154d565b916103e8808302928304141715611520576121cf926121c991611918565b90611560565b90565b60046040517f7b9c8916000000000000000000000000000000000000000000000000000000008152fd5b50801561218956fea2646970667358221220c699c973f819976b62192b4bcb3836080af32066c74d2aa6ffceef77c41573bf64736f6c63430008140033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60000000000000000000000006486430ca964ee47e3221285e0fa6be88d55f7a7000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000006486430ca964ee47e3221285e0fa6be88d55f7a70000000000000000000000003ac64a6bebebc576bef52fc22ed5e3c64bee4462000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000640000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad240000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000001c20000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000a42616e616e6f6d69637300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000442414e4f00000000000000000000000000000000000000000000000000000000