[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_depositToken", "type": "address" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "address", "name": "_escrowPool", "type": "address" }, { "internalType": "uint256", "name": "_escrowPortion", "type": "uint256" }, { "internalType": "uint256", "name": "_escrowDuration", "type": "uint256" }, { "internalType": "uint256", "name": "_maxBonus", "type": "uint256" }, { "internalType": "uint256", "name": "_maxLockDuration", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "destId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "_breederlzBrigeAddress", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "CrossChainClaim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" } ], "name": "Deposited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "bonusMultiplier", "type": "uint256" } ], "name": "DepositedBonus", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "end", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" } ], "name": "MigrationDeposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "by", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "at", "type": "uint256" } ], "name": "MigrationDisabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_escrowedAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_nonEscrowedAmount", "type": "uint256" } ], "name": "RewardsClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "by", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewardsDistributed", "type": "uint256" } ], "name": "RewardsDistributed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "by", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "fundsWithdrawn", "type": "uint256" } ], "name": "RewardsWithdrawn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "by", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokenSaved", "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": true, "internalType": "uint256", "name": "destId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "oldBreederLZBridgeAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newBreederLZBridgeAddress", "type": "address" } ], "name": "UpdatedBreederlzBridge", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldEscrowDuration", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newEscrowDuration", "type": "uint256" } ], "name": "UpdatedEscrowDuration", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldStakingBonusHandler", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newStakingBonusHandler", "type": "address" } ], "name": "UpdatedStakingBonusHandler", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "depositId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdrawn", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "GOV_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIGRATION_TRANSFER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_LOCK_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POINTS_MULTIPLIER", "outputs": [ { "internalType": "uint128", "name": "", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOKEN_SAVER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" }, { "internalType": "uint64[]", "name": "_starts", "type": "uint64[]" }, { "internalType": "uint64[]", "name": "_ends", "type": "uint64[]" }, { "internalType": "address[]", "name": "_receivers", "type": "address[]" } ], "name": "batchMigrationDeposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "breederLZBridges", "outputs": [ { "internalType": "contract IBreederLZBridge", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20Votes.Checkpoint", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_destId", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "crossChainClaimReward", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "cumulativeRewardsOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_duration", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "depositsOf", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint64", "name": "start", "type": "uint64" }, { "internalType": "uint64", "name": "end", "type": "uint64" }, { "internalType": "uint256", "name": "shareAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableMigration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "distributeRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "escrowDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "escrowPool", "outputs": [ { "internalType": "contract ITimeLockPool", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "escrowPortion", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getDepositsOf", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint64", "name": "start", "type": "uint64" }, { "internalType": "uint64", "name": "end", "type": "uint64" }, { "internalType": "uint256", "name": "shareAmount", "type": "uint256" } ], "internalType": "struct BreederTimeLockPool.Deposit[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getDepositsOfLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_lockDuration", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "getMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getTotalDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxBonus", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxLockDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "migrationEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "pointsCorrection", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pointsPerShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "saveToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_destId", "type": "uint256" }, { "internalType": "address", "name": "_lzBridgeAddress", "type": "address" } ], "name": "setBreederlzAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_stakingBonusHandler", "type": "address" } ], "name": "setStakingBonus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakingBonusHandler", "outputs": [ { "internalType": "contract IStakingBonusHandler", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "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" }, { "inputs": [ { "internalType": "uint256", "name": "_escrowDuration", "type": "uint256" } ], "name": "updateEscrowDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_depositId", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "withdrawableRewardsOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "withdrawnRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "withdrawnRewardsOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
61026060405234801562000011575f80fd5b506040516200689f3803806200689f833981016040819052620000349162000a1b565b888888888888888888888888888888886200039f60201b6200084217620003b960201b620010a8178880604051806040016040528060018152602001603160f81b8152508b8b81600390816200008b919062000b65565b5060046200009a828262000b65565b50620000ac91508390506005620003bf565b61012052620000bd816006620003bf565b61014052815160208084019190912060e052815190820120610100524660a0526200014a60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506001600160401b03918216610160521661018052620001745f33620003f7565b670de0b6b3a7640000821115620001ed5760405162461bcd60e51b815260206004820152603260248201527f42617365506f6f6c2e636f6e7374727563746f723a2043616e6e6f7420657363604482015271726f77206d6f7265207468616e203130302560701b60648201526084015b60405180910390fd5b6001600160a01b0385166200025d5760405162461bcd60e51b815260206004820152602f60248201527f42617365506f6f6c2e636f6e7374727563746f723a204465706f73697420746f60448201526e1ad95b881b5d5cdd081899481cd95d608a1b6064820152608401620001e4565b6001600160a01b038086166101a0528481166101c08190529084166101e0526102008390526011829055158015906200029e57506001600160a01b03831615155b15620002bb57620002bb6001600160a01b038516845f1962000407565b50505050505050610258811015620003705760405162461bcd60e51b815260206004820152606560248201527f4272656564657254696d654c6f636b506f6f6c2e636f6e7374727563746f723a60448201527f206d6178206c6f636b206475726174696f6e206d75737420626520677265617460648201527f6572206f7220657175616c20746f206d696e696e6d756d206c6f636b2064757260848201526430ba34b7b760d91b60a482015260c401620001e4565b610220919091526102405250506015805460ff191660011790555062000cdf9c50505050505050505050505050565b6001600160a01b03165f9081526020819052604090205490565b60025490565b5f602083511015620003de57620003d68362000554565b9050620003f1565b81620003eb848262000b65565b5060ff90505b92915050565b62000403828262000596565b5050565b801580620004835750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156200045b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000481919062000c31565b155b620004f75760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401620001e4565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b179091526200054f918591620005bb16565b505050565b5f80829050601f8151111562000581578260405163305a27a960e01b8152600401620001e4919062000c49565b80516200058e8262000c7d565b179392505050565b620005a282826200068d565b5f8281526010602052604090206200054f90826200072f565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908201525f9062000609906001600160a01b0385169084906200074c565b905080515f14806200062c5750808060200190518101906200062c919062000ca1565b6200054f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620001e4565b5f828152600f602090815260408083206001600160a01b038516845290915290205460ff1662000403575f828152600f602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620006eb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f62000745836001600160a01b03841662000764565b9392505050565b60606200075c84845f85620007b3565b949350505050565b5f818152600183016020526040812054620007ab57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155620003f1565b505f620003f1565b606082471015620008165760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620001e4565b5f80866001600160a01b0316858760405162000833919062000cc2565b5f6040518083038185875af1925050503d805f81146200086f576040519150601f19603f3d011682016040523d82523d5f602084013e62000874565b606091505b509092509050620008888783838762000893565b979650505050505050565b60608315620009065782515f03620008fe576001600160a01b0385163b620008fe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001e4565b50816200075c565b6200075c83838151156200091d5781518083602001fd5b8060405162461bcd60e51b8152600401620001e4919062000c49565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620009695781810151838201526020016200094f565b50505f910152565b5f82601f83011262000981575f80fd5b81516001600160401b03808211156200099e576200099e62000939565b604051601f8301601f19908116603f01168101908282118183101715620009c957620009c962000939565b81604052838152866020858801011115620009e2575f80fd5b620009f58460208301602089016200094d565b9695505050505050565b80516001600160a01b038116811462000a16575f80fd5b919050565b5f805f805f805f805f6101208a8c03121562000a35575f80fd5b89516001600160401b038082111562000a4c575f80fd5b62000a5a8d838e0162000971565b9a5060208c015191508082111562000a70575f80fd5b5062000a7f8c828d0162000971565b98505062000a9060408b01620009ff565b965062000aa060608b01620009ff565b955062000ab060808b01620009ff565b945060a08a0151935060c08a0151925060e08a015191506101008a015190509295985092959850929598565b600181811c9082168062000af157607f821691505b60208210810362000b1057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200054f57805f5260205f20601f840160051c8101602085101562000b3d5750805b601f840160051c820191505b8181101562000b5e575f815560010162000b49565b5050505050565b81516001600160401b0381111562000b815762000b8162000939565b62000b998162000b92845462000adc565b8462000b16565b602080601f83116001811462000bcf575f841562000bb75750858301515b5f19600386901b1c1916600185901b17855562000c29565b5f85815260208120601f198616915b8281101562000bff5788860151825594840194600190910190840162000bde565b508582101562000c1d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000c42575f80fd5b5051919050565b602081525f825180602084015262000c698160408501602087016200094d565b601f01601f19169190910160400192915050565b8051602080830151919081101562000b10575f1960209190910360031b1b16919050565b5f6020828403121562000cb2575f80fd5b8151801515811462000745575f80fd5b5f825162000cd58184602087016200094d565b9190910192915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516102205161024051615aca62000dd55f395f8181610afb01528181611dfd01526140a501525f81816106ac0152611e2201525f8181610d24015281816114d3015261286d01525f81816107b3015281816128b7015261291801525f8181610ef201528181611877015261298601525f8181610cd201528181612c520152818161388f015261416501525f61331a01525f61105b01525f611a0301525f6119d801525f6130c501525f61309d01525f612ff801525f61302201525f61304c0152615aca5ff3fe608060405260043610610468575f3560e01c8063857184d111610251578063b536818a1161013c578063d547741f116100b7578063e8a7bf9111610087578063f1127ed81161006d578063f1127ed814610e65578063f3017fe414610eae578063f7c618c114610ee1575f80fd5b8063e8a7bf9114610e27578063ef5cfb8c14610e46575f80fd5b8063d547741f14610d65578063da0db5a614610d84578063dd62ed3e14610db8578063dd6624e414610dfc575f80fd5b8063c711eb761161010c578063ca15c873116100f2578063ca15c87314610cf4578063d1f5298314610d13578063d505accf14610d46575f80fd5b8063c711eb7614610ca2578063c89039c514610cc1575f80fd5b8063b536818a14610bfd578063b65b3eab14610c30578063b8162dd214610c4f578063c3cda52014610c83575f80fd5b80639afdb2c2116101cc578063a457c2d71161019c578063adf5e30c11610182578063adf5e30c14610b6e578063ae22192e14610b82578063b182eb9114610bd2575f80fd5b8063a457c2d714610b30578063a9059cbb14610b4f575f80fd5b80639afdb2c214610aac578063a122ce7d14610acb578063a16cdbb114610aea578063a217fddf14610b1d575f80fd5b80639010d07c1161022157806391ddadf41161020757806391ddadf414610a4e57806395d89b4114610a795780639ab24eb014610a8d575f80fd5b80639010d07c146109eb57806391d1485414610a0a575f80fd5b8063857184d11461094a5780638dbdbe6d146109695780638e539e8c146109885780638f2203f6146109a7575f80fd5b806354c5b696116103715780636fcfff45116102ec5780637cd0b5c7116102bc5780637ecebe00116102a25780637ecebe00146108d8578063804d9426146108f757806384b0196e14610923575f80fd5b80637cd0b5c7146108a45780637e245d79146108c3575f80fd5b80636fcfff45146107f457806370a082311461082857806376175b061461085c57806378b4330f1461088f575f80fd5b806358dacc89116103415780635c19a95c116103275780635c19a95c1461078357806368570e6a146107a25780636af11151146107d5575f80fd5b806358dacc891461075157806359974e3814610764575f80fd5b806354c5b6961461069b578063560afde1146106ce57806357c2c2ba146106ed578063587cde1e14610702575f80fd5b8063248a9ca3116104015780633644e515116103d157806339509351116103b757806339509351146106495780633a46b1a8146106685780634bf5d7e914610687575f80fd5b80633644e5151461061657806336568abe1461062a575f80fd5b8063248a9ca3146105955780632f2ff15d146105c3578063313ce567146105e257806335b944bf146105fd575f80fd5b806310accecc1161043c57806310accecc1461050157806318160ddd1461052e57806318f9e2911461054257806323b872dd14610576575f80fd5b8062f714ce1461046c57806301ffc9a71461048d57806306fdde03146104c1578063095ea7b3146104e2575b5f80fd5b348015610477575f80fd5b5061048b610486366004614fdb565b610f14565b005b348015610498575f80fd5b506104ac6104a7366004615005565b610f4e565b60405190151581526020015b60405180910390f35b3480156104cc575f80fd5b506104d5610f78565b6040516104b89190615079565b3480156104ed575f80fd5b506104ac6104fc36600461508b565b611008565b34801561050c575f80fd5b5061052061051b3660046150b3565b61101f565b6040519081526020016104b8565b348015610539575f80fd5b50600254610520565b34801561054d575f80fd5b5061052061055c3660046150b3565b6001600160a01b03165f908152600e602052604090205490565b348015610581575f80fd5b506104ac6105903660046150cc565b6110ae565b3480156105a0575f80fd5b506105206105af366004615105565b5f908152600f602052604090206001015490565b3480156105ce575f80fd5b5061048b6105dd366004614fdb565b6110d1565b3480156105ed575f80fd5b50604051601281526020016104b8565b348015610608575f80fd5b506015546104ac9060ff1681565b348015610621575f80fd5b506105206110fa565b348015610635575f80fd5b5061048b610644366004614fdb565b611108565b348015610654575f80fd5b506104ac61066336600461508b565b611190565b348015610673575f80fd5b5061052061068236600461508b565b6111ce565b348015610692575f80fd5b506104d5611255565b3480156106a6575f80fd5b506105207f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d9575f80fd5b5061048b6106e83660046150b3565b6112ed565b3480156106f8575f80fd5b5061052060115481565b34801561070d575f80fd5b5061073961071c3660046150b3565b6001600160a01b039081165f908152600960205260409020541690565b6040516001600160a01b0390911681526020016104b8565b61048b61075f366004615161565b61139c565b34801561076f575f80fd5b5061048b61077e366004615105565b611872565b34801561078e575f80fd5b5061048b61079d3660046150b3565b6118b3565b3480156107ad575f80fd5b506107397f000000000000000000000000000000000000000000000000000000000000000081565b3480156107e0575f80fd5b50601254610739906001600160a01b031681565b3480156107ff575f80fd5b5061081361080e3660046150b3565b6118bd565b60405163ffffffff90911681526020016104b8565b348015610833575f80fd5b506105206108423660046150b3565b6001600160a01b03165f9081526020819052604090205490565b348015610867575f80fd5b506105207fd9d917c4034cff8a8c5fa1e40f9fbaf906b827c33ae3ab1fcabbb616cb8ef24d81565b34801561089a575f80fd5b5061052061025881565b3480156108af575f80fd5b506105206108be3660046150b3565b6118de565b3480156108ce575f80fd5b50610520600c5481565b3480156108e3575f80fd5b506105206108f23660046150b3565b611909565b348015610902575f80fd5b506109166109113660046150b3565b611926565b6040516104b89190615209565b34801561092e575f80fd5b506109376119cb565b6040516104b89796959493929190615279565b348015610955575f80fd5b506105206109643660046150b3565b611a52565b348015610974575f80fd5b5061048b610983366004615310565b611ac9565b348015610993575f80fd5b506105206109a2366004615105565b611af7565b3480156109b2575f80fd5b506109ca6fffffffffffffffffffffffffffffffff81565b6040516fffffffffffffffffffffffffffffffff90911681526020016104b8565b3480156109f6575f80fd5b50610739610a05366004615342565b611b61565b348015610a15575f80fd5b506104ac610a24366004614fdb565b5f918252600f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610a59575f80fd5b50610a62611b78565b60405165ffffffffffff90911681526020016104b8565b348015610a84575f80fd5b506104d5611b82565b348015610a98575f80fd5b50610520610aa73660046150b3565b611b91565b348015610ab7575f80fd5b5061048b610ac63660046150cc565b611c0e565b348015610ad6575f80fd5b50610520610ae5366004614fdb565b611d76565b348015610af5575f80fd5b506105207f000000000000000000000000000000000000000000000000000000000000000081565b348015610b28575f80fd5b506105205f81565b348015610b3b575f80fd5b506104ac610b4a36600461508b565b611e74565b348015610b5a575f80fd5b506104ac610b6936600461508b565b611f05565b348015610b79575f80fd5b5061048b611f12565b348015610b8d575f80fd5b50610ba1610b9c36600461508b565b612031565b6040516104b8949392919093845267ffffffffffffffff928316602085015291166040830152606082015260800190565b348015610bdd575f80fd5b50610520610bec3660046150b3565b600d6020525f908152604090205481565b348015610c08575f80fd5b506105207f0603f2636f0ca34ae3ea5a23bb826e2bd2ffd59fb1c01edc1ba10fba2899d1ba81565b348015610c3b575f80fd5b5061048b610c4a366004614fdb565b612086565b348015610c5a575f80fd5b50610520610c693660046150b3565b6001600160a01b03165f9081526014602052604090205490565b348015610c8e575f80fd5b5061048b610c9d366004615372565b61213c565b348015610cad575f80fd5b5061048b610cbc3660046154cd565b612271565b348015610ccc575f80fd5b506107397f000000000000000000000000000000000000000000000000000000000000000081565b348015610cff575f80fd5b50610520610d0e366004615105565b612575565b348015610d1e575f80fd5b506105207f000000000000000000000000000000000000000000000000000000000000000081565b348015610d51575f80fd5b5061048b610d603660046155c6565b61258b565b348015610d70575f80fd5b5061048b610d7f366004614fdb565b6126ec565b348015610d8f575f80fd5b50610739610d9e366004615105565b60136020525f90815260409020546001600160a01b031681565b348015610dc3575f80fd5b50610520610dd236600461562b565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610e07575f80fd5b50610520610e163660046150b3565b600e6020525f908152604090205481565b348015610e32575f80fd5b5061048b610e41366004615105565b612710565b348015610e51575f80fd5b5061048b610e603660046150b3565b61279b565b348015610e70575f80fd5b50610e84610e7f366004615653565b6129f9565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016104b8565b348015610eb9575f80fd5b506105207f82f4d7f4bfc44a02ef9ed57aca34b93147fae9566a079dbc44926a87cc0f008c81565b348015610eec575f80fd5b506107397f000000000000000000000000000000000000000000000000000000000000000081565b60155460ff1615610f405760405162461bcd60e51b8152600401610f3790615690565b60405180910390fd5b610f4a8282612a7a565b5050565b5f6001600160e01b03198216635a05180f60e01b1480610f725750610f7282612cbb565b92915050565b606060038054610f8790615739565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb390615739565b8015610ffe5780601f10610fd557610100808354040283529160200191610ffe565b820191905f5260205f20905b815481529060010190602001808311610fe157829003601f168201915b5050505050905090565b5f33611015818585612cef565b5060019392505050565b6001600160a01b0381165f908152600d60205260408120546fffffffffffffffffffffffffffffffff9061109e9061108f61107d8663ffffffff7f000000000000000000000000000000000000000000000000000000000000000016565b600c5461108a919061577f565b612e12565b6110999190615796565b612e98565b610f7291906157d1565b60025490565b5f336110bb858285612ee9565b6110c6858585612f79565b506001949350505050565b5f828152600f60205260409020600101546110eb81612fc1565b6110f58383612fcb565b505050565b5f611103612fec565b905090565b6001600160a01b03811633146111865760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610f37565b610f4a8282613115565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061101590829086906111c99087906157f0565b612cef565b5f6111d7611b78565b65ffffffffffff16821061122d5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606401610f37565b6001600160a01b0383165f908152600a6020526040902061124e9083613136565b9392505050565b606043611260611b78565b65ffffffffffff16146112b55760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606401610f37565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6113177f0603f2636f0ca34ae3ea5a23bb826e2bd2ffd59fb1c01edc1ba10fba2899d1ba33610a24565b6113335760405162461bcd60e51b8152600401610f3790615803565b601254604080516001600160a01b03928316815291831660208301527f981ea562786ee6590b74e470513c36a3ede61a3fccd2f807359c73d18fe2647e910160405180910390a1601280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114185760405162461bcd60e51b815260206004820152603560248201527f42544c502e63726f7373436861696e436c61696d3a205265636569766572206360448201527f616e6e6f74206265207a65726f206164647265737300000000000000000000006064820152608401610f37565b5f828152601360205260409020546001600160a01b03166114a15760405162461bcd60e51b815260206004820152603060248201527f42544c502e63726f7373436861696e436c61696d3a2042726565646572204c5a60448201527f2061646472657373206e6f7420736574000000000000000000000000000000006064820152608401610f37565b5f828152601360205260408120546001600160a01b0316906114c233613217565b90505f670de0b6b3a76400006114f87f00000000000000000000000000000000000000000000000000000000000000008461577f565b61150291906157d1565b90505f61150f828461586a565b90508115158061151e57508015155b61157b5760405162461bcd60e51b815260206004820152602860248201527f42544c502e63726f7373436861696e436c61696d3a204e6f2072657761726420604482015267746f20636c61696d60c01b6064820152608401610f37565b5f3383836011548b8a6040516020016115999695949392919061587d565b60408051601f198184030181529082905263560387b160e01b825291505f906001600160a01b0387169063560387b1906115d7908590600401615079565b602060405180830381865afa1580156115f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161691906158c6565b90508034101561168e5760405162461bcd60e51b815260206004820152602d60248201527f42544c502e63726f7373436861696e436c61696d3a20496e737566666963696560448201527f6e74204e617469766520666565000000000000000000000000000000000000006064820152608401610f37565b5f866001600160a01b03168263108fe55360e01b856040516024016116b39190615079565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116f191906158dd565b5f6040518083038185875af1925050503d805f811461172b576040519150601f19603f3d011682016040523d82523d5f602084013e611730565b606091505b50509050806117925760405162461bcd60e51b815260206004820152602860248201527f42544c502e63726f7373436861696e436c61696d3a204272696467652063616c6044820152671b0819985a5b195960c21b6064820152608401610f37565b5f61179d833461586a565b905080156117d157604051339082156108fc029083905f818181858888f193505050501580156117cf573d5f803e3d5ffd5b505b896001600160a01b038c16336001600160a01b03167ffe2edcec1c87e5a0919f7e96776be755d3ec0da937588543fc81fa91641624888b886040516118179291906158f8565b60405180910390a460408051878152602081018790526001600160a01b038d169133917fd92c424393cb3ccdf7d5e36602e3bfa34f24490579ba47978f4bcfad496995f2910160405180910390a35050505050505050505050565b6118a77f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163330846132a9565b6118b081613314565b50565b6118b0338261342c565b6001600160a01b0381165f908152600a6020526040812054610f72906134a4565b6001600160a01b0381165f908152600e60205260408120546118ff8361101f565b610f72919061586a565b6001600160a01b0381165f90815260076020526040812054610f72565b6001600160a01b0381165f908152601460209081526040808320805482518185028101850190935280835260609492939192909184015b828210156119c0575f84815260209081902060408051608081018252600386029092018054835260018082015467ffffffffffffffff80821686880152600160401b9091041692840192909252600201546060830152908352909201910161195d565b505050509050919050565b5f606080828080836119fe7f00000000000000000000000000000000000000000000000000000000000000006005613508565b611a297f00000000000000000000000000000000000000000000000000000000000000006006613508565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f805f5b6001600160a01b0384165f90815260146020526040902054811015611ac2576001600160a01b0384165f908152601460205260409020805482908110611a9e57611a9e615919565b905f5260205f2090600302015f015482611ab891906157f0565b9150600101611a56565b5092915050565b60155460ff1615611aec5760405162461bcd60e51b8152600401610f3790615690565b6110f58383836135b1565b5f611b00611b78565b65ffffffffffff168210611b565760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606401610f37565b610f72600b83613136565b5f82815260106020526040812061124e90836135bc565b5f611103436135c7565b606060048054610f8790615739565b6001600160a01b0381165f908152600a60205260408120548015611bfc576001600160a01b0383165f908152600a6020526040902080545f198301908110611bdb57611bdb615919565b5f9182526020909120015464010000000090046001600160e01b0316611bfe565b5f5b6001600160e01b03169392505050565b611c387fd9d917c4034cff8a8c5fa1e40f9fbaf906b827c33ae3ab1fcabbb616cb8ef24d33610a24565b611caa5760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e53617665722e6f6e6c79546f6b656e53617665723a207065726d6960448201527f7373696f6e2064656e69656400000000000000000000000000000000000000006064820152608401610f37565b6001600160a01b038216611d005760405162461bcd60e51b815260206004820152601760248201527f52656365697665722063616e6e6f74206265207a65726f0000000000000000006044820152606401610f37565b611d146001600160a01b038416838361362d565b826001600160a01b0316826001600160a01b0316611d2f3390565b6001600160a01b03167f30d87cec6b4c56cede1018725d1e6d9304e2f7ee6d25b004b7e2183f793f26bc84604051611d6991815260200190565b60405180910390a4505050565b6012545f9081906001600160a01b031615611dfa5760125460405163a9d637e160e01b81526001600160a01b0385811660048301529091169063a9d637e190602401602060405180830381865afa158015611dd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df791906158c6565b90505b807f0000000000000000000000000000000000000000000000000000000000000000611e46867f000000000000000000000000000000000000000000000000000000000000000061577f565b611e5091906157d1565b611e6290670de0b6b3a76400006157f0565b611e6c91906157f0565b949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919083811015611ef85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610f37565b6110c68286868403612cef565b5f33611015818585612f79565b611f3c7f0603f2636f0ca34ae3ea5a23bb826e2bd2ffd59fb1c01edc1ba10fba2899d1ba33610a24565b611f585760405162461bcd60e51b8152600401610f3790615803565b60155460ff16611fe35760405162461bcd60e51b815260206004820152604a60248201527f4272656564657257686974656c6973744d6967726174696f6e506f6f6c2e646960448201527f7361626c654d6967726174696f6e3a206d6967726174696f6e20616c726561646064820152691e48191a5cd8589b195960b21b608482015260a401610f37565b6015805460ff191690557f5c85548328ed57a93e48304b9da67594443827224ac70f9cd88e37fee94f5be333604080516001600160a01b0390921682524260208301520160405180910390a1565b6014602052815f5260405f20818154811061204a575f80fd5b5f91825260209091206003909102018054600182015460029092015490935067ffffffffffffffff8083169350600160401b9092049091169084565b6120b07f0603f2636f0ca34ae3ea5a23bb826e2bd2ffd59fb1c01edc1ba10fba2899d1ba33610a24565b6120cc5760405162461bcd60e51b8152600401610f3790615803565b5f8281526013602090815260409182902080546001600160a01b031981166001600160a01b0386811691821790935584519290911680835292820152909184917f6624752fad7fd87231bb3f6d9db9d0cba839c95385abad9612b3a7144488fa3e910160405180910390a2505050565b8342111561218c5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610f37565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f90612205906121fd9060a0016040516020818303038152906040528051906020012061365d565b858585613689565b9050612210816136af565b861461225e5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610f37565b612268818861342c565b50505050505050565b7f82f4d7f4bfc44a02ef9ed57aca34b93147fae9566a079dbc44926a87cc0f008c61229b81612fc1565b60155460ff1661231d5760405162461bcd60e51b815260206004820152604160248201527f427265656465724d6967726174696f6e506f6f6c2e62617463684d696772617460448201527f696f6e4465706f7369743a206d6967726174696f6e206e6f7420656e61626c656064820152601960fa1b608482015260a401610f37565b8451845181146123bb5760405162461bcd60e51b815260206004820152605760248201527f4272656564657257686974656c6973744d6967726174696f6e506f6f6c2e626160448201527f7463684d6967726174696f6e4465706f7369743a20616d6f756e747320616e6460648201527f20737461727473206c656e677468206d69736d61746368000000000000000000608482015260a401610f37565b835181146124575760405162461bcd60e51b815260206004820152605560248201527f4272656564657257686974656c6973744d6967726174696f6e506f6f6c2e626160448201527f7463684d6967726174696f6e4465706f7369743a20616d6f756e747320616e6460648201527f20656e6473206c656e677468206d69736d617463680000000000000000000000608482015260a401610f37565b825181146124f35760405162461bcd60e51b815260206004820152605a60248201527f4272656564657257686974656c6973744d6967726174696f6e506f6f6c2e626160448201527f7463684d6967726174696f6e4465706f7369743a20616d6f756e747320616e6460648201527f20726563656976657273206c656e677468206d69736d61746368000000000000608482015260a401610f37565b5f5b818110156122685761256d87828151811061251257612512615919565b602002602001015187838151811061252c5761252c615919565b602002602001015187848151811061254657612546615919565b602002602001015187858151811061256057612560615919565b60200260200101516136d6565b6001016124f5565b5f818152601060205260408120610f7290613a05565b834211156125db5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610f37565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886126098c6136af565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f6126638261365d565b90505f61267282878787613689565b9050896001600160a01b0316816001600160a01b0316146126d55760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610f37565b6126e08a8a8a612cef565b50505050505050505050565b5f828152600f602052604090206001015461270681612fc1565b6110f58383613115565b61273a7f0603f2636f0ca34ae3ea5a23bb826e2bd2ffd59fb1c01edc1ba10fba2899d1ba33610a24565b6127565760405162461bcd60e51b8152600401610f3790615803565b601180549082905560408051828152602081018490527f77359129cb3b41aec0b4c58950349820d055a93e9112298208f34ab3dcf541fe910160405180910390a15050565b6001600160a01b0381166127f15760405162461bcd60e51b815260206004820152601760248201527f52656365697665722063616e6e6f74206265207a65726f0000000000000000006044820152606401610f37565b5f6127fb33613217565b90505f811161285e5760405162461bcd60e51b815260206004820152602960248201527f42617365506f6f6c2e636c61696d526577617264733a204e6f2072657761726460448201526820746f20636c61696d60b81b6064820152608401610f37565b5f670de0b6b3a76400006128927f00000000000000000000000000000000000000000000000000000000000000008461577f565b61289c91906157d1565b90505f6128a9828461586a565b905081158015906128e257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b1561297057601154604051638dbdbe6d60e01b81526004810184905260248101919091526001600160a01b0385811660448301527f00000000000000000000000000000000000000000000000000000000000000001690638dbdbe6d906064015f604051808303815f87803b158015612959575f80fd5b505af115801561296b573d5f803e3d5ffd5b505050505b60018111156129ad576129ad6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858361362d565b60408051838152602081018390526001600160a01b0386169133917fd92c424393cb3ccdf7d5e36602e3bfa34f24490579ba47978f4bcfad496995f2910160405180910390a350505050565b604080518082019091525f80825260208201526001600160a01b0383165f908152600a60205260409020805463ffffffff8416908110612a3b57612a3b615919565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b6001600160a01b038116612ad05760405162461bcd60e51b815260206004820152601760248201527f52656365697665722063616e6e6f74206265207a65726f0000000000000000006044820152606401610f37565b335f908152601460205260409020548210612b535760405162461bcd60e51b815260206004820152603460248201527f4272656564657254696d654c6f636b506f6f6c2e77697468647261773a20446560448201527f706f73697420646f6573206e6f742065786973740000000000000000000000006064820152608401610f37565b335f908152601460205260408120805484908110612b7357612b73615919565b5f91825260209182902060408051608081018252600390930290910180548352600181015467ffffffffffffffff80821695850195909552600160401b900490931690820181905260029092015460608201529150421015612c265760405162461bcd60e51b815260206004820152602660248201527f4272656564657254696d654c6f636b506f6f6c2e77697468647261773a20746f604482015265379039b7b7b760d11b6064820152608401610f37565b8051612c3490849033613a0e565b612c42338260600151613b00565b8051612c7a906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690849061362d565b805160405190815233906001600160a01b0384169085907fe5df19de43c8c04fd192bc68e484b2593570925fbb6ad8c07ccafbc2aa5c37a190602001611d69565b5f6001600160e01b03198216637965db0b60e01b1480610f7257506301ffc9a760e01b6001600160e01b0319831614610f72565b6001600160a01b038316612d515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610f37565b6001600160a01b038216612db25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610f37565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612e945760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610f37565b5090565b5f80821215612e945760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610f37565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114612f735781811015612f665760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610f37565b612f738484848403612cef565b50505050565b60405162461bcd60e51b815260206004820152601060248201527f4e4f4e5f5452414e5346455241424c45000000000000000000000000000000006044820152606401610f37565b6118b08133613b1c565b612fd58282613b90565b5f8281526010602052604090206110f59082613c30565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561304457507f000000000000000000000000000000000000000000000000000000000000000046145b1561306e57507f000000000000000000000000000000000000000000000000000000000000000090565b611103604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b61311f8282613c44565b5f8281526010602052604090206110f59082613cc5565b81545f908181600581111561318d575f61314f84613cd9565b613159908561586a565b5f88815260209020909150869082015463ffffffff16111561317d5780915061318b565b6131888160016157f0565b92505b505b808210156131d8575f6131a08383613dbd565b5f88815260209020909150869082015463ffffffff1611156131c4578091506131d2565b6131cf8160016157f0565b92505b5061318d565b8015613202575f8681526020902081015f19015464010000000090046001600160e01b0316613204565b5f5b6001600160e01b03169695505050505050565b5f80613222836118de565b90508015610f72576001600160a01b0383165f908152600e602052604090205461324d9082906157f0565b6001600160a01b0384165f818152600e6020526040908190209290925590517f8a43c4352486ec339f487f64af78ca5cbf06cd47833f073d3baf3a193e5031619061329b9084815260200190565b60405180910390a292915050565b6040516001600160a01b0380851660248301528316604482015260648101829052612f739085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613dd7565b5f6133417f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b90505f81116133b85760405162461bcd60e51b815260206004820152603e60248201527f4162737472616374526577617264732e5f64697374726962757465526577617260448201527f64733a20746f74616c20736861726520737570706c79206973207a65726f00006064820152608401610f37565b8115610f4a57806133d96fffffffffffffffffffffffffffffffff8461577f565b6133e391906157d1565b600c546133f091906157f0565b600c5560405182815233907fdf29796aad820e4bb192f3a8d631b76519bcd2cbe77cc85af20e9df53cece0869060200160405180910390a25050565b6001600160a01b038281165f818152600960208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4612f73828483613eaa565b5f63ffffffff821115612e945760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610f37565b606060ff83146135225761351b83613fe4565b9050610f72565b81805461352e90615739565b80601f016020809104026020016040519081016040528092919081815260200182805461355a90615739565b80156135a55780601f1061357c576101008083540402835291602001916135a5565b820191905f5260205f20905b81548152906001019060200180831161358857829003601f168201915b50505050509050610f72565b6110f5838383614021565b5f61124e8383614329565b5f65ffffffffffff821115612e945760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610f37565b6040516001600160a01b0383166024820152604481018290526110f590849063a9059cbb60e01b906064016132dd565b5f610f72613669612fec565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f6136988787878761434f565b915091506136a58161440c565b5095945050505050565b6001600160a01b0381165f9081526007602052604090208054600181018255905b50919050565b6001600160a01b0381166137785760405162461bcd60e51b815260206004820152605060248201527f4272656564657257686974656c6973744d6967726174696f6e506f6f6c2e5f6d60448201527f6967726174696f6e4465706f7369743a2072656365697665722063616e6e6f7460648201527f206265207a65726f206164647265737300000000000000000000000000000000608482015260a401610f37565b5f84116137f75760405162461bcd60e51b815260206004820152604160248201527f4272656564657257686974656c6973744d6967726174696f6e506f6f6c2e5f6d60448201527f6967726174696f6e4465706f7369743a2063616e6e6f74206465706f736974206064820152600360fc1b608482015260a401610f37565b8267ffffffffffffffff168267ffffffffffffffff161161388a5760405162461bcd60e51b815260206004820152604160248201527f4272656564657257686974656c6973744d6967726174696f6e506f6f6c2e5f6d60448201527f6967726174696f6e4465706f7369743a20696e76616c6964206475726174696f6064820152603760f91b608482015260a401610f37565b6138bf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163330876132a9565b5f6138ca848461592d565b67ffffffffffffffff1690505f6138e18284611d76565b90505f670de0b6b3a76400006138f7838961577f565b61390191906157d1565b6001600160a01b0385165f90815260146020908152604080832081516080810183528c815267ffffffffffffffff808d168286019081528c82169483019485526060830188815284546001818101875595895296909720925160039096029092019485559051918401805493518216600160401b026fffffffffffffffffffffffffffffffff199094169290911691909117919091179055905160029091015590506139ad8482614555565b60405167ffffffffffffffff87811682526001600160a01b038616919087169089907fc3fff5ce03d7e5467dd9b3da203bee9d899e1cb0985b7d610992100fc37088b19060200160405180910390a450505050505050565b5f610f72825490565b6001600160a01b0381165f908152601460205260409020805483919085908110613a3a57613a3a615919565b905f5260205f2090600302015f01541115613aa2576001600160a01b0381165f908152601460205260409020805483919085908110613a7b57613a7b615919565b905f5260205f2090600302015f015f828254613a97919061586a565b909155506110f59050565b6001600160a01b0381165f908152601460205260409020805484908110613acb57613acb615919565b5f918252602082206003909102018181556001810180546fffffffffffffffffffffffffffffffff1916905560020155505050565b613b0a8282614575565b610f4a82613b1783612e12565b61458d565b5f828152600f602090815260408083206001600160a01b038516845290915290205460ff16610f4a57613b4e816145e3565b613b598360206145f5565b604051602001613b6a92919061594e565b60408051601f198184030181529082905262461bcd60e51b8252610f3791600401615079565b5f828152600f602090815260408083206001600160a01b038516845290915290205460ff16610f4a575f828152600f602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613bec3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f61124e836001600160a01b038416614798565b5f828152600f602090815260408083206001600160a01b038516845290915290205460ff1615610f4a575f828152600f602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f61124e836001600160a01b0384166147e4565b5f815f03613ce857505f919050565b5f6001613cf4846148c7565b901c6001901b90506001818481613d0d57613d0d6157bd565b048201901c90506001818481613d2557613d256157bd565b048201901c90506001818481613d3d57613d3d6157bd565b048201901c90506001818481613d5557613d556157bd565b048201901c90506001818481613d6d57613d6d6157bd565b048201901c90506001818481613d8557613d856157bd565b048201901c90506001818481613d9d57613d9d6157bd565b048201901c905061124e81828581613db757613db76157bd565b0461495a565b5f613dcb60028484186157d1565b61124e908484166157f0565b5f613e2b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661496f9092919063ffffffff16565b905080515f1480613e4b575080806020019051810190613e4b91906159ce565b6110f55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610f37565b816001600160a01b0316836001600160a01b031614158015613ecb57505f81115b156110f5576001600160a01b03831615613f58576001600160a01b0383165f908152600a602052604081208190613f059061497d85614988565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613f4d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156110f5576001600160a01b0382165f908152600a602052604081208190613f8d90614af485614988565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613fd5929190918252602082015260400190565b60405180910390a25050505050565b60605f613ff083614aff565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f83116140965760405162461bcd60e51b815260206004820152602d60248201527f4272656564657254696d654c6f636b506f6f6c2e6465706f7369743a2063616e60448201527f6e6f74206465706f7369742030000000000000000000000000000000000000006064820152608401610f37565b61025882101580156140c857507f00000000000000000000000000000000000000000000000000000000000000008211155b6141605760405162461bcd60e51b815260206004820152604d60248201527f4272656564657254696d654c6f636b506f6f6c2e5f6d616b654465706f73697460448201527f3a204475726174696f6e2073686f756c642062652077697468696e207468652060648201527f616c6c6f7765642072616e676500000000000000000000000000000000000000608482015260a401610f37565b6141957f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163330866132a9565b5f6141a08383611d76565b90505f670de0b6b3a76400006141b6838761577f565b6141c091906157d1565b905060145f846001600160a01b03166001600160a01b031681526020019081526020015f2060405180608001604052808781526020014267ffffffffffffffff168152602001864261421291906159ed565b67ffffffffffffffff908116825260209182018590528354600181810186555f95865294839020845160039092020190815591830151938201805460408501518316600160401b026fffffffffffffffffffffffffffffffff199091169590921694909417179092556060015160029091015561428f8382614555565b604080518681526020810186905233916001600160a01b038616917f34194be2f096bdb2ad418add902a4da76d3d6f6d387d86d857f56c7711ecca70910160405180910390a36040805186815260208101869052808201849052905133916001600160a01b038616917fb5125669303c23ebfbd5f67e889987c88c1825abda5dfb43374427b37b7451eb9181900360600190a35050505050565b5f825f01828154811061433e5761433e615919565b905f5260205f200154905092915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561438457505f90506003614403565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156143d5573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166143fd575f60019250925050614403565b91505f90505b94509492505050565b5f81600481111561441f5761441f615a0e565b036144275750565b600181600481111561443b5761443b615a0e565b036144885760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610f37565b600281600481111561449c5761449c615a0e565b036144e95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610f37565b60038160048111156144fd576144fd615a0e565b036118b05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610f37565b61455f8282614b26565b610f4a8261456c83612e12565b613b1790615a22565b61457f8282614bbd565b612f73600b61497d83614988565b614598600c54612e12565b6145a29082615a3c565b6001600160a01b0383165f908152600d60205260409020546145c49190615796565b6001600160a01b039092165f908152600d602052604090209190915550565b6060610f726001600160a01b03831660145b60605f61460383600261577f565b61460e9060026157f0565b67ffffffffffffffff8111156146265761462661511c565b6040519080825280601f01601f191660200182016040528015614650576020820181803683370190505b509050600360fc1b815f8151811061466a5761466a615919565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061469857614698615919565b60200101906001600160f81b03191690815f1a9053505f6146ba84600261577f565b6146c59060016157f0565b90505b6001811115614749577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061470657614706615919565b1a60f81b82828151811061471c5761471c615919565b60200101906001600160f81b03191690815f1a90535060049490941c9361474281615a6b565b90506146c8565b50831561124e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610f37565b5f8181526001830160205260408120546147dd57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610f72565b505f610f72565b5f81815260018301602052604081205480156148be575f61480660018361586a565b85549091505f906148199060019061586a565b9050818114614878575f865f01828154811061483757614837615919565b905f5260205f200154905080875f01848154811061485757614857615919565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061488957614889615a80565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610f72565b5f915050610f72565b5f80608083901c156148db57608092831c92015b604083901c156148ed57604092831c92015b602083901c156148ff57602092831c92015b601083901c1561491157601092831c92015b600883901c1561492357600892831c92015b600483901c1561493557600492831c92015b600283901c1561494757600292831c92015b600183901c15610f725760010192915050565b5f818310614968578161124e565b5090919050565b6060611e6c84845f85614cf3565b5f61124e828461586a565b82545f9081908181156149d2575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b031660208201526149e6565b604080518082019091525f80825260208201525b905080602001516001600160e01b03169350614a0684868863ffffffff16565b92505f82118015614a2e5750614a1a611b78565b65ffffffffffff16815f015163ffffffff16145b15614a7157614a3c83614dca565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff909216919091179055614aea565b866040518060400160405280614a95614a88611b78565b65ffffffffffff166134a4565b63ffffffff168152602001614aa986614dca565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b5f61124e82846157f0565b5f60ff8216601f811115610f7257604051632cd44ac360e21b815260040160405180910390fd5b614b308282614e32565b6002546001600160e01b031015614baf5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608401610f37565b612f73600b614af483614988565b6001600160a01b038216614c1d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610f37565b6001600160a01b0382165f9081526020819052604090205481811015614c905760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610f37565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36110f5835f84614ef2565b606082471015614d545760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610f37565b5f80866001600160a01b03168587604051614d6f91906158dd565b5f6040518083038185875af1925050503d805f8114614da9576040519150601f19603f3d011682016040523d82523d5f602084013e614dae565b606091505b5091509150614dbf87838387614f23565b979650505050505050565b5f6001600160e01b03821115612e945760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610f37565b6001600160a01b038216614e885760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610f37565b8060025f828254614e9991906157f0565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f4a5f83835b6001600160a01b038381165f908152600960205260408082205485841683529120546110f592918216911683613eaa565b60608315614f915782515f03614f8a576001600160a01b0385163b614f8a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f37565b5081611e6c565b611e6c8383815115614fa65781518083602001fd5b8060405162461bcd60e51b8152600401610f379190615079565b80356001600160a01b0381168114614fd6575f80fd5b919050565b5f8060408385031215614fec575f80fd5b82359150614ffc60208401614fc0565b90509250929050565b5f60208284031215615015575f80fd5b81356001600160e01b03198116811461124e575f80fd5b5f5b8381101561504657818101518382015260200161502e565b50505f910152565b5f815180845261506581602086016020860161502c565b601f01601f19169290920160200192915050565b602081525f61124e602083018461504e565b5f806040838503121561509c575f80fd5b6150a583614fc0565b946020939093013593505050565b5f602082840312156150c3575f80fd5b61124e82614fc0565b5f805f606084860312156150de575f80fd5b6150e784614fc0565b92506150f560208501614fc0565b9150604084013590509250925092565b5f60208284031215615115575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156151595761515961511c565b604052919050565b5f805f60608486031215615173575f80fd5b61517c84614fc0565b92506020808501359250604085013567ffffffffffffffff808211156151a0575f80fd5b818701915087601f8301126151b3575f80fd5b8135818111156151c5576151c561511c565b6151d7601f8201601f19168501615130565b915080825288848285010111156151ec575f80fd5b80848401858401375f848284010152508093505050509250925092565b602080825282518282018190525f919060409081850190868401855b8281101561526c578151805185528681015167ffffffffffffffff908116888701528682015116868601526060908101519085015260809093019290850190600101615225565b5091979650505050505050565b60ff60f81b881681525f602060e0602084015261529960e084018a61504e565b83810360408501526152ab818a61504e565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b818110156152fe578351835292840192918401916001016152e2565b50909c9b505050505050505050505050565b5f805f60608486031215615322575f80fd5b833592506020840135915061533960408501614fc0565b90509250925092565b5f8060408385031215615353575f80fd5b50508035926020909101359150565b803560ff81168114614fd6575f80fd5b5f805f805f8060c08789031215615387575f80fd5b61539087614fc0565b955060208701359450604087013593506153ac60608801615362565b92506080870135915060a087013590509295509295509295565b5f67ffffffffffffffff8211156153df576153df61511c565b5060051b60200190565b5f82601f8301126153f8575f80fd5b8135602061540d615408836153c6565b615130565b8083825260208201915060208460051b87010193508684111561542e575f80fd5b602086015b8481101561545f57803567ffffffffffffffff81168114615452575f80fd5b8352918301918301615433565b509695505050505050565b5f82601f830112615479575f80fd5b81356020615489615408836153c6565b8083825260208201915060208460051b8701019350868411156154aa575f80fd5b602086015b8481101561545f576154c081614fc0565b83529183019183016154af565b5f805f80608085870312156154e0575f80fd5b843567ffffffffffffffff808211156154f7575f80fd5b818701915087601f83011261550a575f80fd5b8135602061551a615408836153c6565b82815260059290921b8401810191818101908b841115615538575f80fd5b948201945b838610156155565785358252948201949082019061553d565b9850508801359250508082111561556b575f80fd5b615577888389016153e9565b9450604087013591508082111561558c575f80fd5b615598888389016153e9565b935060608701359150808211156155ad575f80fd5b506155ba8782880161546a565b91505092959194509250565b5f805f805f805f60e0888a0312156155dc575f80fd5b6155e588614fc0565b96506155f360208901614fc0565b9550604088013594506060880135935061560f60808901615362565b925060a0880135915060c0880135905092959891949750929550565b5f806040838503121561563c575f80fd5b61564583614fc0565b9150614ffc60208401614fc0565b5f8060408385031215615664575f80fd5b61566d83614fc0565b9150602083013563ffffffff81168114615685575f80fd5b809150509250929050565b60208082526075908201527f427265656465724d6967726174696f6e506f6f6c2e7768656e4d69677261746960408201527f6f6e4e6f74456e61626c65643a204465706f7369747320616e6420776974686460608201527f726177616c7320617265206f6e6c7920616c6c6f776564207768656e206d696760808201527f726174696f6e206973206e6f7420656e61626c6564000000000000000000000060a082015260c00190565b600181811c9082168061574d57607f821691505b6020821081036136d057634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610f7257610f7261576b565b8082018281125f8312801582168215821617156157b5576157b561576b565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b5f826157eb57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610f7257610f7261576b565b60208082526041908201527f42617365506f6f6c2e6f6e6c79476f763a204f6e6c792075736572732077697460408201527f6820474f565f524f4c452063616e2063616c6c20746869732066756e6374696f6060820152603760f91b608082015260a00190565b81810381811115610f7257610f7261576b565b5f6001600160a01b03808916835287602084015286604084015285606084015280851660808401525060c060a08301526158ba60c083018461504e565b98975050505050505050565b5f602082840312156158d6575f80fd5b5051919050565b5f82516158ee81846020870161502c565b9190910192915050565b6001600160a01b0383168152604060208201525f611e6c604083018461504e565b634e487b7160e01b5f52603260045260245ffd5b67ffffffffffffffff828116828216039080821115611ac257611ac261576b565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f835161598581601785016020880161502c565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516159c281602884016020880161502c565b01602801949350505050565b5f602082840312156159de575f80fd5b8151801515811461124e575f80fd5b67ffffffffffffffff818116838216019080821115611ac257611ac261576b565b634e487b7160e01b5f52602160045260245ffd5b5f600160ff1b8201615a3657615a3661576b565b505f0390565b8082025f8212600160ff1b84141615615a5757615a5761576b565b8181058314821517610f7257610f7261576b565b5f81615a7957615a7961576b565b505f190190565b634e487b7160e01b5f52603160045260245ffdfea26469706673582212200d90d67a5f34fbe53ab43ea704984fb7932ec0a696479876be2455ed9c3c837664736f6c6343000817003300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ac61d87fdbf61fa2182f2b51f49a63c8e512e3e5000000000000000000000000ac61d87fdbf61fa2182f2b51f49a63c8e512e3e500000000000000000000000050d4fd4519441dc322803b73a4e8fc1a0749c0410000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000ed4e0000000000000000000000000000000000000000000000000029a2241af62c00000000000000000000000000000000000000000000000000000000000001da9c0000000000000000000000000000000000000000000000000000000000000000115374616b6564204272656564657244414f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065342524545440000000000000000000000000000000000000000000000000000