Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
1,000,000,000.00 FAI

Holders:
552
Profile Summary
Blockchain:
Base (8453)


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

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Created At:
Sat, 07 Dec 2024 22:22:37 GMT
BeliefToken.sol
src
BeliefToken.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name_",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol_",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "creator_",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "protocol_",
        "type": "address"
      },
      {
        "components": [
          {
            "internalType": "string",
            "name": "id",
            "type": "string"
          },
          {
            "internalType": "bytes32",
            "name": "merkleRoot",
            "type": "bytes32"
          },
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          }
        ],
        "internalType": "struct Token.AirdropWave[]",
        "name": "airdropWaves_",
        "type": "tuple[]"
      },
      {
        "internalType": "bytes32",
        "name": "rewardsMerkleRoot_",
        "type": "bytes32"
      },
      {
        "internalType": "uint256",
        "name": "amountToDistributeClaimableRewards",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "AllowanceOverflow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "AllowanceUnderflow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BeliefToken_AirdropNotEligible",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BeliefToken_AirdropWaveNotEnabled",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BeliefToken_AlreadyClaimed",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BeliefToken_MaxSupplyOverflow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BeliefToken_Unauthorized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidPermit",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PermitExpired",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TotalSupplyOverflow",
    "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": "amount",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "string",
        "name": "waveId",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bytes32[]",
        "name": "merkleProof",
        "type": "bytes32[]"
      }
    ],
    "name": "BeliefToken_ClaimAirdropWave",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "BeliefToken_ClaimReward",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "string",
        "name": "waveId",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "merkleRoot",
        "type": "bytes32"
      }
    ],
    "name": "BeliefToken_EnableAirdropWave",
    "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": "amount",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "DOMAIN_SEPARATOR",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "result",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_SUPPLY",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "waveId",
        "type": "string"
      }
    ],
    "name": "airdropWaves",
    "outputs": [
      {
        "internalType": "string",
        "name": "id",
        "type": "string"
      },
      {
        "internalType": "bytes32",
        "name": "merkleRoot",
        "type": "bytes32"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "result",
        "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": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "result",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "waveId",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "bytes32[]",
        "name": "merkleProof",
        "type": "bytes32[]"
      }
    ],
    "name": "claimAirdropWave",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "claimReward",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "waveId",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      }
    ],
    "name": "claimedAirdropWaveStatusOf",
    "outputs": [
      {
        "internalType": "bool",
        "name": "claimed",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "userId",
        "type": "string"
      }
    ],
    "name": "claimedRewardStatusOf",
    "outputs": [
      {
        "internalType": "bool",
        "name": "claimed",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "creator",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "waveId",
        "type": "string"
      },
      {
        "internalType": "bytes32",
        "name": "merkleRoot",
        "type": "bytes32"
      }
    ],
    "name": "enableAirdropWave",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "nonces",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "result",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "deadline",
        "type": "uint256"
      },
      {
        "internalType": "uint8",
        "name": "v",
        "type": "uint8"
      },
      {
        "internalType": "bytes32",
        "name": "r",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "s",
        "type": "bytes32"
      }
    ],
    "name": "permit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "protocol",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rewardsMerkleRoot",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "result",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60c080604052346105a757611c07803803809161001c8285610725565b833981019060e0818303126105a75780516001600160401b0381116105a75782610047918301610748565b60208201516001600160401b0381116105a75783610066918401610748565b6100726040840161079d565b61007e6060850161079d565b60808501519092906001600160401b0381116105a75785019580601f880112156105a7578651966001600160401b0388116103af578760051b91604051986100c9602085018b610725565b89526020808a0193830101918183116105a75760208101935b8385106106a357505050505060c060a08601519501519380519060018060401b0382116103af575f5490600182811c92168015610699575b60208310146103915781601f84931161062c575b50602090601f83116001146105c9575f926105be575b50508160011b915f199060031b1c1916175f555b604051634f6a7d2d60e11b81523060048201526020816024816001600160a01b0388165afa9081156105b3575f91610574575b50156105655760a08390528051906001600160401b0382116103af5760015490600182811c9216801561055b575b60208310146103915781601f8493116104ed575b50602090601f8311600114610487575f9261047c575b50508160011b915f199060031b1c1916176001555b6080525f91825b85518410156103c35761021284876107b1565b51602080610220878a6107b1565b5151604051928184925191829101835e8101600381520301902090805180519060018060401b0382116103af578354600181811c911680156103a5575b602082101461039157601f811161034c575b50602090601f83116001146102de5760019593836102cb96946002946040945f926102d3575b50505f19600383901b1c191690881b1784555b602081015187850155015191015560406102c2878a6107b1565b510151906107d9565b9301926101ff565b015190505f80610295565b90601f19831691855f52815f20925f5b81811061033457508460029460409460019a98946102cb9a988c951061031c575b505050811b0184556102a8565b01515f1960f88460031b161c191690555f808061030f565b929360206001819287860151815501950193016102ee565b845f5260205f20601f840160051c81019160208510610387575b601f0160051c01905b81811061037c575061026f565b5f815560010161036f565b9091508190610366565b634e487b7160e01b5f52602260045260245ffd5b90607f169061025d565b634e487b7160e01b5f52604160045260245ffd5b84600555806b033b2e3c9fd0803ce800000003916b033b2e3c9fd0803ce80000008311610468578082016b033b2e3c9fd0803ce800000003928311610468576104126104179361041d956107e6565b6107d9565b306107e6565b60405161132990816108de823960805181610ebd015260a051818181610323015281816105b2015281816107da01528181610bc901528181610d6c01528181610f3e01526111c00152f35b634e487b7160e01b5f52601160045260245ffd5b015190505f806101e3565b60015f9081528281209350601f198516905b8181106104d557509084600195949392106104bd575b505050811b016001556101f8565b01515f1960f88460031b161c191690555f80806104af565b92936020600181928786015181550195019301610499565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c81019160208510610551575b90601f859493920160051c01905b81811061054357506101cd565b5f8155849350600101610536565b9091508190610528565b91607f16916101b9565b631f9831d360e11b5f5260045ffd5b90506020813d6020116105ab575b8161058f60209383610725565b810103126105a7575180151581036105a7575f61018b565b5f80fd5b3d9150610582565b6040513d5f823e3d90fd5b015190505f80610144565b5f8080528281209350601f198516905b81811061061457509084600195949392106105fc575b505050811b015f55610158565b01515f1960f88460031b161c191690555f80806105ef565b929360206001819287860151815501950193016105d9565b5f80529091507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f840160051c8101916020851061068f575b90601f859493920160051c01905b818110610681575061012e565b5f8155849350600101610674565b9091508190610666565b91607f169161011a565b84516001600160401b0381116105a75782016060818503601f1901126105a75760405191606083016001600160401b038111848210176103af576040526020820151926001600160401b0384116105a757606083610708886020809881980101610748565b8352604081015185840152015160408201528152019401936100e2565b601f909101601f19168101906001600160401b038211908210176103af57604052565b81601f820112156105a7578051906001600160401b0382116103af576040519261077c601f8401601f191660200185610725565b828452602083830101116105a757815f9260208093018386015e8301015290565b51906001600160a01b03821682036105a757565b80518210156107c55760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b9190820180921161046857565b60a0516001600160a01b039081169082168114806108c1575b610878575b506805345cdf77eb68f44c5482810190811061086b576805345cdf77eb68f44c556387a211a2600c525f526020600c20818154019055602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3565b63e5cfe9575f526004601cfd5b602052637f5e9f20600c525f196034600c20555f195f52602c5160601c5f7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602082a35f610804565b5080602052637f5e9f20600c525f80526034600c2054156107ff56fe60806040526004361015610011575f80fd5b5f3560e01c8063028e248514610eec57806302d05d3f14610ea857806306fdde0314610e8d578063095ea7b314610e35578063174e31c414610d3157806318160ddd14610d0c57806323b872dd14610ba2578063313ce56714610b8757806332cb6b0c14610b615780633644e51514610ad95780633b785468146108bc57806342966c68146107c457806370a08231146107925780637ecebe001461076057806384920bbd146107055780638c674c03146105e15780638ce744261461059d57806390d2f54e1461052657806395d89b411461041a578063a9059cbb14610304578063b5890a13146102e7578063d505accf1461015e5763dd62ed3e14610116575f80fd5b3461015a57604036600319011261015a5760206101526101346110ad565b61013c6110c3565b602052637f5e9f20600c525f526034600c205490565b604051908152f35b5f80fd5b3461015a5760e036600319011261015a576101776110ad565b61017f6110c3565b6084359160643560443560ff8516850361015a5761019b6110d9565b60208151910120908242116102da576040519360018060a01b03169460018060a01b03169565383775081901600e52855f5260c06020600c20958654957f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252602082019586528660408301967fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc688528b6060850198468a528c608087019330855260a08820602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9885252528688525260a082015220604e526042602c205f5260ff1660205260a43560405260c43560605260208060805f60015afa93853d51036102cd575f805160206112d483398151915294602094019055856303faf4f960a51b176040526034602c2055a3005b63ddafbaef5f526004601cfd5b631a15a3cc5f526004601cfd5b3461015a575f36600319011261015a576020600554604051908152f35b3461015a57604036600319011261015a5761031d6110ad565b602435907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0380831690821614806103f7575b6103bc575b506387a211a2600c52335f526020600c2080548084116103af5783900390555f526020600c20818154019055602052600c5160601c335f805160206112b4833981519152602080a3602060405160018152f35b63f4d678b85f526004601cfd5b602052637f5e9f203360601b17600c525f196034600c20555f195f52602c5160601c335f805160206112d483398151915260205fa38261035c565b50610414813390602052637f5e9f20600c525f526034600c205490565b15610357565b3461015a575f36600319011261015a576040515f6001548060011c9060018116801561051c575b602083108114610508578285529081156104e45750600114610486575b6104828361046e81850382610ffd565b604051918291602083526020830190611089565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104ca5750909150810160200161046e61045e565b9192600181602092548385880101520191019092916104b2565b60ff191660208086019190915291151560051b8401909101915061046e905061045e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610441565b3461015a57604036600319011261015a5760043567ffffffffffffffff811161015a57610557903690600401611033565b6020806105626110c3565b92604051928184925191829101835e810160028152030190209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461015a575f36600319011261015a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015a57602036600319011261015a5760043567ffffffffffffffff811161015a57602061061581923690600401611033565b604051928184925191829101835e810160038152030190206040515f9180548060011c906001811680156106fb575b602083108114610508578285529081156106d7575060011461069e575b506106718261068f940383610ffd565b60026001820154910154604051938493606085526060850190611089565b91602084015260408301520390f35b9250805f5260205f205f905b8482106106c1575082016020019250610671610661565b60018160209254838588010152019101906106aa565b60ff191660208086019190915291151560051b840190910193506106719050610661565b91607f1691610644565b3461015a57602036600319011261015a5760043567ffffffffffffffff811161015a5760ff60208061073c81943690600401611033565b604051928184925191829101835e8101600481520301902054166040519015158152f35b3461015a57602036600319011261015a576107796110ad565b6338377508600c525f52602080600c2054604051908152f35b3461015a57602036600319011261015a576107ab6110ad565b6387a211a2600c525f52602080600c2054604051908152f35b3461015a57602036600319011261015a576004357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381161580610899575b61085e575b506387a211a2600c52335f526020600c2080548083116103af578290039055806805345cdf77eb68f44c54036805345cdf77eb68f44c555f525f335f805160206112b4833981519152602083a3005b602052637f5e9f203360601b17600c525f196034600c20555f195f52602c5160601c335f805160206112d483398151915260205fa38161080f565b506108b6813390602052637f5e9f20600c525f526034600c205490565b1561080a565b3461015a57606036600319011261015a5760043567ffffffffffffffff811161015a576108ed903690600401611033565b6044359060243567ffffffffffffffff831161015a573660238401121561015a57826004013567ffffffffffffffff811161015a57602484019060248160051b8096010136811161015a57604051855190602081818901938085835e8101600281520301902060018060a01b0333165f5260205260ff60405f205416610aca57600160405160208189518086835e81016003815203019020015415610abb57600183916040516020818a518085835e81016002815203019020828060a01b0333165f5260205260405f208260ff19825416179055602060405180928a518091835e8101600381520301902001549160405160208101903360601b8252876034820152603481526109fe605482610ffd565b51902091610a8f575b5003610a8057610a188333306111bc565b610a2d60405194606086526060860190611089565b602085019390935283830360408501528083526001600160fb1b031061015a5783827f26065fb4d131171e2476eb17b938a9e211cf521be70d22c52c83244ce1c54d8a95859360208096013701030190a1005b635b64090160e11b5f5260045ffd5b84915b602083359182811160051b9081521852602060405f20920191818310610a925791505087610a07565b63fb5f54ef60e01b5f5260045ffd5b6306dfe52560e31b5f5260045ffd5b3461015a575f36600319011261015a57602060a0610af56110d9565b828151910120604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252838201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015220604051908152f35b3461015a575f36600319011261015a5760206040516b033b2e3c9fd0803ce80000008152f35b3461015a575f36600319011261015a57602060405160128152f35b3461015a57606036600319011261015a57610bbb6110ad565b610bc36110c3565b604435907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038083169082161480610ce9575b610ca6575b508260601b33602052637f5e9f208117600c526034600c209081549160018301610c82575b506387a211a2915017600c526020600c2080548084116103af5783900390555f526020600c20818154019055602052600c5160601c9060018060a01b03165f805160206112b4833981519152602080a3602060405160018152f35b828511610c9957846387a211a29303905585610c27565b6313be252b5f526004601cfd5b602052637f5e9f208360601b17600c525f196034600c20555f195f52602c5160601c60018060a01b0384165f805160206112d483398151915260205fa383610c02565b50610d06818590602052637f5e9f20600c525f526034600c205490565b15610bfd565b3461015a575f36600319011261015a5760206805345cdf77eb68f44c54604051908152f35b3461015a57604036600319011261015a57610d4a6110ad565b6040516302abd8c960e11b8152336004820152602480359291906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e2a575f91610dfb575b5015610dec57602081610dd9847fa7e0801466cad990c2143c2c40a4924862c5503ee26b103582962c5e61e69a1494306111bc565b6040519384526001600160a01b031692a2005b631f9831d360e11b5f5260045ffd5b610e1d915060203d602011610e23575b610e158183610ffd565b8101906111a4565b83610da4565b503d610e0b565b6040513d5f823e3d90fd5b3461015a57604036600319011261015a57610e4e6110ad565b60243590602052637f5e9f20600c52335f52806034600c20555f52602c5160601c335f805160206112d483398151915260205fa3602060405160018152f35b3461015a575f36600319011261015a5761048261046e6110d9565b3461015a575f36600319011261015a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015a57604036600319011261015a5760043567ffffffffffffffff811161015a57610f1d903690600401611033565b604051630bda7b5560e21b81523360048201526024803591906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e2a575f91610fde575b5015610dec577f08f9536f4dbd4a3a46a8531d13a42875526412cad47ce602b0b77d30667b861f9181610fd3926001604051602081865180838901835e810160038152030190200155604051928392604084526040840190611089565b9060208301520390a1005b610ff7915060203d602011610e2357610e158183610ffd565b83610f76565b90601f8019910116810190811067ffffffffffffffff82111761101f57604052565b634e487b7160e01b5f52604160045260245ffd5b81601f8201121561015a5780359067ffffffffffffffff821161101f5760405192611068601f8401601f191660200185610ffd565b8284526020838301011161015a57815f926020809301838601378301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361015a57565b602435906001600160a01b038216820361015a57565b604051905f80548060011c916001821691821561119a575b60208410831461050857838652859290811561117b575060011461111e575b61111c92500383610ffd565b565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061115f57505090602061111c92820101611110565b6020919350806001915483858901015201910190918492611147565b6020925061111c94915060ff191682840152151560051b820101611110565b92607f16926110f1565b9081602091031261015a5751801515810361015a5790565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038083169082161480611290575b61124d575b506387a211a28360601b17600c526020600c2080548084116103af5783900390555f526020600c20818154019055602052600c5160601c9060018060a01b03165f805160206112b4833981519152602080a3565b602052637f5e9f208360601b17600c525f196034600c20555f195f52602c5160601c60018060a01b0384165f805160206112d483398151915260205fa35f6111f9565b506112ad818590602052637f5e9f20600c525f526034600c205490565b156111f456feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212208858e58f6a733aa3c3a3beb1b0993fb86a2f49fe889ceb8cad258447c1345a1e64736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000b69045c135b6c6f9ed0bc43798fe2ff52c9104480000000000000000000000007a306c63a1ccc180cbf60fa2a92fbb31e16904f400000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084595161401484a00000000000000000000000000000000000000000000000000000000000000000000074661697220414900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000346414900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000108b2a2c28029094000000000000000000000000000000000000000000000000000000000000000000002432653333386464352d313162342d343038342d396464382d35333035316633373639323200000000000000000000000000000000000000000000000000000000