[ { "inputs": [], "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": "beneficiary", "type": "address" }, { "indexed": false, "internalType": "int256", "name": "amount", "type": "int256" } ], "name": "Adjust", "type": "event" }, { "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": "beneficiary", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "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": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beneficiary", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "total", "type": "uint256" } ], "name": "InitializeDistributionRecord", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IERC20", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "total", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "uri", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "fractionDenominator", "type": "uint256" } ], "name": "InitializeDistributor", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "end", "type": "uint256" } ], "name": "SetContinuousVesting", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint160", "name": "maxDelayTime", "type": "uint160" } ], "name": "SetDelay", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" } ], "name": "SetMerkleRoot", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "SetSweepRecipient", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IERC20", "name": "token", "type": "address" } ], "name": "SetToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "total", "type": "uint256" } ], "name": "SetTotal", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "uri", "type": "string" } ], "name": "SetUri", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "voteFactor", "type": "uint256" } ], "name": "SetVoteFactor", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SweepNative", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SweepToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NAME", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "VERSION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "int256", "name": "amount", "type": "int256" } ], "name": "adjust", "outputs": [], "stateMutability": "nonpayable", "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": "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": "uint256", "name": "index", "type": "uint256" }, { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "uint256", "name": "totalAmount", "type": "uint256" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" }, { "internalType": "address payable", "name": "platformFlatRateFeeRecipient", "type": "address" }, { "internalType": "uint256", "name": "platformFlatRateFeeAmount", "type": "uint256" } ], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "claimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "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": [], "name": "distancePerSecond", "outputs": [ { "internalType": "uint160", "name": "", "type": "uint160" } ], "stateMutability": "view", "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": [ { "internalType": "address", "name": "beneficiary", "type": "address" } ], "name": "getClaimableAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "beneficiary", "type": "address" } ], "name": "getDistributionRecord", "outputs": [ { "components": [ { "internalType": "bool", "name": "initialized", "type": "bool" }, { "internalType": "uint120", "name": "total", "type": "uint120" }, { "internalType": "uint120", "name": "claimed", "type": "uint120" } ], "internalType": "struct DistributionRecord", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getFairDelayTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFractionDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMerkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IOracleOrL2OracleWithSequencerCheck", "name": "oracle", "type": "address" } ], "name": "getOraclePrice", "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": [], "name": "getSweepRecipient", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "uint256", "name": "time", "type": "uint256" } ], "name": "getVestedFraction", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVestingConfig", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "getVoteFactor", "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": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "_total", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "uint256", "name": "_start", "type": "uint256" }, { "internalType": "uint256", "name": "_cliff", "type": "uint256" }, { "internalType": "uint256", "name": "_end", "type": "uint256" }, { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" }, { "internalType": "uint160", "name": "_maxDelayTime", "type": "uint160" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_feeOrSupplyHolder", "type": "address" }, { "internalType": "bool", "name": "_autoPull", "type": "bool" }, { "internalType": "contract INetworkConfig", "name": "_networkConfig", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "name": "initializeDistributionRecord", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxDelayTime", "outputs": [ { "internalType": "uint160", "name": "", "type": "uint160" } ], "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": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "randomValue", "outputs": [ { "internalType": "uint160", "name": "", "type": "uint160" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "_recipient", "type": "address" } ], "name": "setSweepRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_token", "type": "address" } ], "name": "setToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_total", "type": "uint256" } ], "name": "setTotal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_start", "type": "uint256" }, { "internalType": "uint256", "name": "_cliff", "type": "uint256" }, { "internalType": "uint256", "name": "_end", "type": "uint256" } ], "name": "setVestingConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_voteFactor", "type": "uint256" } ], "name": "setVoteFactor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "sweepNative", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sweepNative", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" } ], "name": "sweepToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "sweepToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenQuantity", "type": "uint256" }, { "internalType": "uint256", "name": "tokenDecimals", "type": "uint256" }, { "internalType": "contract IOracleOrL2OracleWithSequencerCheck", "name": "oracle", "type": "address" } ], "name": "tokensToBaseCurrency", "outputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "total", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
6101606040818152346200058257620000188262000587565b60158252602091828101917f496e7465726e616c20766f746520747261636b6572000000000000000000000093848452815194620000568662000587565b60158652818601528151906200006c8262000587565b600382526212559560ea1b81830152825195620000898762000587565b6001808852603160f81b8389019081526000805462010000600160b01b0319811633601081811b62010000600160b01b031692909217845589519598939693957fccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f9389939192911c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08980a388546001600160a01b031916339081178a558152a180516001600160401b03939091908483116200056e576005928354928984811c9416801562000563575b898510146200046f578190601f9485811162000512575b508990858311600114620004ae578992620004a2575b5050600019600383901b1c191690891b1783555b8051928584116200048e57600654908982811c9216801562000483575b898310146200046f57908392918594821162000418575b505087918311600114620003b2578692620003a6575b5050600019600383901b1c191690861b176006555b6200020887620005b9565b976101209889526200021a8a62000796565b97610140988952519020988960e0525190209361010098858a524660a052865195858701917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528888015260608701524660808701523060a087015260a0865260c0860192868410908411176200039257828752855190206080523060c052600e5581549360ff8560081c166200033f57505060ff8084160362000305575b505050519161553493846200094f853960805184612d7d015260a05184612e38015260c05184612d47015260e05184612dcc01525183612df20152518261149f015251816114c90152f35b60ff7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249893811916179055825160ff8152a1388080620002ba565b9066616c697a696e6760c81b6101246084938662461bcd60e51b855260c4820152602760e48201527f496e697469616c697a61626c653a20636f6e747261637420697320696e6974696101048201520152fd5b634e487b7160e01b84526041600452602484fd5b015190503880620001e8565b600687528787208994509190601f198416885b8a828210620004015750508411620003e7575b505050811b01600655620001fd565b015160001960f88460031b161c19169055388080620003d8565b8385015186558c97909501949384019301620003c5565b9091929350600688528888209084808701821c8301938b881062000465575b9187968d93969594929601901c01915b828110620004565750620001d2565b8981558695508b910162000447565b9350829362000437565b634e487b7160e01b88526022600452602488fd5b91607f1691620001bb565b634e487b7160e01b87526041600452602487fd5b0151905038806200018a565b868a528a8a208c94509190601f1984168b5b8d828210620004fb5750508411620004e1575b505050811b0183556200019e565b015160001960f88460031b161c19169055388080620004d3565b8385015186558f97909501949384019301620004c0565b90915085895289892085808501881c8201928c861062000559575b918d918695949301891c01915b8281106200054a57505062000174565b8b81558594508d91016200053a565b925081926200052d565b93607f16936200015d565b634e487b7160e01b86526041600452602486fd5b600080fd5b604081019081106001600160401b03821117620005a357604052565b634e487b7160e01b600052604160045260246000fd5b805160209081811015620006565750601f825111620005f55780825192015190808310620005e657501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b8285106200063c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000618565b906001600160401b038211620005a357600754926001938481811c911680156200078b575b838210146200077557601f81116200073b575b5081601f8411600114620006cf5750928293918392600094620006c3575b50501b916000199060031b1c19161760075560ff90565b015192503880620006ac565b919083601f198116600760005284600020946000905b8883831062000720575050501062000706575b505050811b0160075560ff90565b015160001960f88460031b161c19169055388080620006f8565b858701518855909601959485019487935090810190620006e5565b600760005284601f84600020920160051c820191601f860160051c015b828110620007685750506200068e565b6000815501859062000758565b634e487b7160e01b600052602260045260246000fd5b90607f16906200067b565b805160209081811015620008245750601f825111620007c35780825192015190808310620005e657501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b8285106200080a575050604492506000838284010152601f80199101168101030190fd5b8481018201518686016044015293810193859350620007e6565b906001600160401b038211620005a357600854926001938481811c9116801562000943575b838210146200077557601f811162000909575b5081601f84116001146200089d575092829391839260009462000891575b50501b916000199060031b1c19161760085560ff90565b0151925038806200087a565b919083601f198116600860005284600020946000905b88838310620008ee5750505010620008d4575b505050811b0160085560ff90565b015160001960f88460031b161c19169055388080620008c6565b858701518855909601959485019487935090810190620008b3565b600860005284601f84600020920160051c820191601f860160051c015b828110620009365750506200085c565b6000815501859062000926565b90607f16906200084956fe6080604052600436101561001257600080fd5b60003560e01c806306fdde031461040d578063095ea7b31461034f5780630f56b96c14610408578063144fa6d71461040357806318160ddd1461036d5780631be19560146103fe5780631f8d1d50146103f957806323b872dd146103f4578063276801ec146103ef5780632ddbd13a146103ea578063313ce567146103e55780633644e515146103e057806339509351146103db5780633a46b1a8146103d65780633cf3a025146103d157806349590657146103cc5780634bf5d7e9146103c7578063587cde1e146103c25780635c19a95c146103bd578063684de1f5146103b85780636fcfff45146103b357806370a08231146103ae578063715018a6146103a957806375aa9bc6146103a457806375f620ac1461039f5780637aed8aee1461039a5780637cb64759146103955780637ecebe00146103905780637f0037f11461038b57806384b0196e146103865780638da5cb5b146103815780638e539e8c1461037c57806391ddadf41461037757806395d89b41146103725780639a0e7d661461036d5780639ab24eb0146103685780639b642de114610363578063a3f4df7e1461035e578063a457c2d714610359578063a4ef1f7814610354578063a9059cbb1461034f578063ab803a761461034a578063b6d8f79f14610345578063bb22dccb14610340578063bf38b5c81461033b578063c32b132614610336578063c3cda52014610331578063c6e8d9821461032c578063c78d598514610327578063c955725514610322578063d505accf1461031d578063dd62ed3e14610318578063de032f5814610313578063e12f3a611461030e578063e49248d514610309578063e834a83414610304578063e85858d9146102ff578063e90a182f146102fa578063eac989f8146102f5578063f1127ed8146102f0578063f2fde38b146102eb578063f56c8547146102e6578063fc0c546a146102e15763ffa1ad74146102dc57600080fd5b612355565b61232c565b612303565b612272565b6121e7565b612150565b6120a4565b611fee565b611fd0565b611f7e565b611f57565b611f2a565b611ec7565b611d87565b611d3b565b611d12565b611ce9565b611bba565b611b26565b611af4565b611acb565b611aa0565b611a45565b610563565b611a1e565b61197b565b611910565b6117d2565b61176f565b61064a565b6116c6565b61169a565b6115aa565b61157d565b611484565b6112b1565b611274565b611228565b611195565b611022565b610e29565b610dc9565b610d8c565b610d41565b610c9a565b610c42565b610c03565b610b51565b610b33565b610ac4565b61096b565b6108d5565b6108b2565b610896565b610878565b61084f565b6107ad565b610761565b610668565b6105a2565b610584565b61046e565b60005b8381106104255750506000910152565b8181015183820152602001610415565b9060209161044e81518092818552858086019101610412565b601f01601f1916010190565b90602061046b928181520190610435565b90565b3461054d5760008060031936011261054a576040518160055461049081612116565b90818452602092600191828116908160001461052857506001146104cf575b6104cb856104bf818903826110d0565b6040519182918261045a565b0390f35b929450600583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b82841061051557505050816104cb936104bf9282010193386104af565b80548585018701529285019281016104f8565b60ff191686860152505050151560051b82010191506104bf816104cb386104af565b80fd5b600080fd5b6001600160a01b0381160361054d57565b3461054d57604036600319011261054d5761057f600435610552565b61242a565b3461054d57600036600319011261054d576020601454604051908152f35b3461054d57602036600319011261054d576004356105bf81610552565b6105c7612371565b6001600160a01b0316801561060f57601080546001600160a01b031916821790557fefc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b600080a2005b60405162461bcd60e51b8152602060048201526013602482015272746f6b656e206973206164647265737328302960681b6044820152606490fd5b3461054d57600036600319011261054d576020600454604051908152f35b3461054d57602036600319011261054d5760043561068581610552565b61068d612371565b6040516370a0823160e01b81523060048201526001600160a01b0382169190602081602481865afa801561075c577ff4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d9261072392600092610728575b5060015461071391839161070d906001600160a01b03165b6001600160a01b031690565b90614840565b6040519081529081906020820190565b0390a2005b61071391925061074e9060203d8111610755575b61074681836110d0565b810190613489565b91906106e9565b503d61073c565b612cb6565b3461054d57602036600319011261054d577fac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d2960206004356107a0612371565b80601155604051908152a1005b3461054d57606036600319011261054d576004356107ca81610552565b6107d5602435610552565b6001600160a01b03166000908152600360209081526040808320338452909152902054600181011561242a57604435111561242a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b3461054d57600036600319011261054d576017546040516001600160a01b039091168152602090f35b3461054d57600036600319011261054d576020601154604051908152f35b3461054d57600036600319011261054d57602060405160128152f35b3461054d57600036600319011261054d5760206108cd612d44565b604051908152f35b3461054d57604036600319011261054d5761091a6004356108f581610552565b33600052600360205260406000209060018060a01b0316600052602052604060002090565b546024358101106109665760405162461bcd60e51b81526020600482015260196024820152783234b9b0b13632b2103337b9103b37ba34b733903837bbb2b960391b6044820152606490fd5b61246b565b3461054d57604036600319011261054d5760043561098881610552565b602435906109a765ffffffffffff61099f4361326d565b16831061253d565b6001600160a01b03166000908152600c6020526040812080549290918360058111610a73575b50905b838210610a1e575050816109f7575050602060005b6040516001600160e01b039091168152f35b610a12610a1991602093600019019060005260206000200190565b5460201c90565b6109e5565b9092610a2a818561309d565b90818363ffffffff610a50610a46848960005260206000200190565b5463ffffffff1690565b161115610a61575050925b906109d0565b909450610a6e9150612481565b610a5b565b80610a83610a89929693966130b2565b90612589565b908263ffffffff610aa4610a46858860005260206000200190565b161115610ab45750925b386109cd565b9350610abf90612481565b610aae565b3461054d57602036600319011261054d57600435610ae0612371565b7f3b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd26020600092610b29848080808560018060a01b03600154165af1610b23613d50565b50615439565b604051908152a180f35b3461054d57600036600319011261054d576020601c54604051908152f35b3461054d57600036600319011261054d574365ffffffffffff610b734361326d565b1603610bbe576104cb604051610b888161107f565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c7400000060208201526040519182918261045a565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606490fd5b3461054d57602036600319011261054d576020600435610c2281610552565b60018060a01b03809116600052600b825260406000205416604051908152f35b3461054d57602036600319011261054d57610c68600435610c6281610552565b336125e2565b005b9181601f8401121561054d578235916001600160401b03831161054d576020808501948460051b01011161054d57565b3461054d57608036600319011261054d57602435610cb781610552565b604435606435916001600160401b03831161054d57610d3c610d36610ce3610c68953690600401610c6a565b91906040516020810190610d2b81610d1d8a8a60043587916054939183526001600160601b03199060601b16602083015260348201520190565b03601f1981018352826110d0565b519020923691613caf565b906153a3565b614031565b3461054d57602036600319011261054d57600435610d5e81610552565b60018060a01b0316600052600c6020526020610d7e6040600020546132d4565b63ffffffff60405191168152f35b3461054d57602036600319011261054d57600435610da981610552565b60018060a01b031660005260026020526020604060002054604051908152f35b3461054d5760008060031936011261054a57610de3612371565b805462010000600160b01b031981168255819060101c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461054d57604036600319011261054d57600435610e4681610552565b7fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c838861072360243592610e76612371565b6001600160a01b0381166000908152600f60205260409020610e9790614164565b610ea9610ea48251151590565b6146be565b600085131561101457845b6001600160781b0391610ec883831061471a565b6000871215610fc457610fa192610f27610f2284610f8194610f1d82610f16610f0a602060115495610efc85881015614781565b01516001600160781b031690565b6001600160781b031690565b10156147dd565b612589565b601155565b6001600160a01b0385166000908152600f60205260409020610f6090918416610f5b83546001600160781b039060081c1690565b61419b565b610100600160801b0382549160081b1690610100600160801b031916179055565b6010546001600160a01b031660005460101c6001600160a01b031661070d565b610faa816141b4565b6040519384526001600160a01b0316929081906020820190565b50610f6061100f92610fdb610f228460115461248f565b6001600160a01b0385166000908152600f60205260409020921661100a83546001600160781b039060081c1690565b614766565b610fa1565b61101d85614709565b610eb4565b3461054d57602036600319011261054d5760206108cd60043561104481610552565b613f64565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761107a57604052565b611049565b604081019081106001600160401b0382111761107a57604052565b602081019081106001600160401b0382111761107a57604052565b60c081019081106001600160401b0382111761107a57604052565b90601f801991011681019081106001600160401b0382111761107a57604052565b604051906110fe8261107f565b565b604051906110fe8261105f565b6001600160401b03811161107a57601f01601f191660200190565b81601f8201121561054d5780359061113f8261110d565b9261114d60405194856110d0565b8284526020838301011161054d57816000926020809301838601378301015290565b8015150361054d57565b61014435906110fe8261116f565b61016435906110fe82610552565b3461054d5761018036600319011261054d576004356111b381610552565b604435906001600160401b03821161054d576111d6610c68923690600401611128565b60e4356111e281610552565b610104356111ef81610552565b61012435916111fd83610552565b611205611179565b9361120e611187565b9560c4359160a43591608435916064359160243590613339565b3461054d57602036600319011261054d577f914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a466020600435611267612371565b80601c55604051908152a1005b3461054d57602036600319011261054d5760043561129181610552565b60018060a01b031660005260096020526020604060002054604051908152f35b60c036600319011261054d576024356112c981610552565b604435906064356001600160401b03811161054d576112ec903690600401610c6a565b9261133c608435946112fd86610552565b610d3660a435946040516020810190610d2b81610d1d898c60043587916054939183526001600160601b03199060601b16602083015260348201520190565b6002600e541461143f576002600e55601d54600490602090611366906001600160a01b0316610701565b60405163163f21bd60e01b815292839182905afa92831561075c57611407956113ef6113e86113f5936113e26113dc611401996113fb98600091611411575b506001600160a01b0316926113d781670de0b6b3a76400006113cf6113c988613f64565b346134cd565b041015613d04565b6134b0565b91613f64565b90613093565b8092613d80565b34612589565b33613d80565b82614596565b906150b1565b610c686001600e55565b611432915060203d8111611438575b61142a81836110d0565b810190613474565b386113a5565b503d611420565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b3461054d5760008060031936011261054a57611521906114c37f0000000000000000000000000000000000000000000000000000000000000000612e84565b906114ed7f0000000000000000000000000000000000000000000000000000000000000000612f7a565b90604051916114fb8361109a565b81835261152f602091604051968796600f60f81b885260e08589015260e0880190610435565b908682036040880152610435565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b82811061156657505050500390f35b835185528695509381019392810192600101611557565b3461054d57600036600319011261054d5760005460405160109190911c6001600160a01b03168152602090f35b3461054d57602036600319011261054d576004356115d965ffffffffffff6115d14361326d565b16821061253d565b600d549060008260058111611657575b50905b828210611618578280611606575060405160008152602090f35b610a19610a1260209260001901612b31565b9091611624818461309d565b908263ffffffff611637610a4685612b31565b1611156116475750915b906115ec565b925061165290612481565b611641565b80610a83611667929593956130b2565b908263ffffffff61167a610a4685612b31565b16111561168a5750915b386115e9565b925061169590612481565b611684565b3461054d57600036600319011261054d5760206116b64361326d565b65ffffffffffff60405191168152f35b3461054d5760008060031936011261054a57604051816006546116e881612116565b9081845260209260019182811690816000146105285750600114611716576104cb856104bf818903826110d0565b929450600683527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b82841061175c57505050816104cb936104bf9282010193386104af565b805485850187015292850192810161173f565b3461054d57602036600319011261054d5760043561178c81610552565b6001600160a01b03166000908152600c602052604090208054806117b857505060405160008152602090f35b6020916117c99160001901906124fe565b5054811c6109e5565b3461054d5760208060031936011261054d576001600160401b0360043581811161054d57611804903690600401611128565b9161180d612371565b825191821161107a5761182a82611825601354612116565b6149f2565b80601f83116001146118985750819061185a9360009261188d575b50508160011b916000199060031b1c19161790565b6013555b611866614b1e565b7fd70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1f600080a2005b015190503880611845565b90601f198316936118b960136000526000805160206154df83398151915290565b926000905b8682106118f857505083600195106118df575b505050811b0160135561185e565b015160001960f88460031b161c191690553880806118d1565b806001859682949686015181550195019301906118be565b3461054d57600036600319011261054d576104cb6040516119308161105f565b602481527f436f6e74696e756f757356657374696e674d65726b6c65496e697469616c697a60208201526361626c6560e01b6040820152604051918291602083526020830190610435565b3461054d57604036600319011261054d5760043561199881610552565b3360005260036020526119c46024359160406000209060018060a01b0316600052602052604060002090565b54101561242a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b3461054d57602036600319011261054d5760206108cd600435611a4081610552565b615332565b3461054d5760008060031936011261054a57611a5f612371565b7f3b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd2602047610b29848080808560018060a01b03600154165af1610b23613d50565b3461054d57604036600319011261054d5760206108cd600435611ac281610552565b60243590614ee7565b3461054d57602036600319011261054d57611ae7600435610552565b6020601854604051908152f35b3461054d57600036600319011261054d57601954601a54601b5460408051938452602084019290925290820152606090f35b3461054d57606036600319011261054d577f34ebbb9e095e6c8737f99dd9923fb97ec1ca3d25cb39225975a934dd8d7a31b4602435600435611b95604435611b6c612371565b8260195583601a5580601b55604051938493846040919493926060820195825260208201520152565b0390a1005b6064359060ff8216820361054d57565b6084359060ff8216820361054d57565b3461054d5760c036600319011261054d57600435611bd781610552565b60443590602435611be6611b9a565b92804211611ca457611c76611c9f91610c689560405190611c5e82611c506020820195898b8860609194939260808201957fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835260018060a01b0316602083015260408201520152565b03601f1981018452836110d0565b611c7160a4359360843593519020612e5e565b612b5b565b6001600160a01b0381166000908152600960205260409020805460018101909155909214612596565b6125e2565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606490fd5b3461054d57600036600319011261054d576015546040516001600160a01b039091168152602090f35b3461054d57600036600319011261054d576001546040516001600160a01b039091168152602090f35b3461054d57602036600319011261054d577f6c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc56020600435611d7a612371565b80601855604051908152a1005b3461054d5760e036600319011261054d57600435611da481610552565b60243590611db182610552565b60643591611dbd611baa565b90834211611e825761057f93611e6f92611e5c611df58660018060a01b03166000526009602052604060002090815491600183019055565b611c506040519485926020840197604435908b8a91959493909260a09360c08401977f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98552600180871b038092166020860152166040840152606083015260808201520152565b611c7160c4359360a43593519020612e5e565b6001600160a01b0390811691161461249c565b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b3461054d57604036600319011261054d576020611f21600435611ee981610552565b60243590611ef682610552565b60018060a01b03166000526003835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b3461054d57602036600319011261054d57610c68600435611f4a81610552565b611f52612371565b615478565b3461054d57602036600319011261054d5760206108cd600435611f7981610552565b6150f7565b3461054d57606036600319011261054d57602435611fac611fa460443561104481610552565b6004356134cd565b90604d811161096657600a0a908115611fcb5760209160405191048152f35b61307d565b3461054d57600036600319011261054d576020601254604051908152f35b3461054d57602036600319011261054d576104cb60043561200e81610552565b604090600082805161201f8161105f565b828152826020820152015260018060a01b0316600052600f602052806000209080519161204b8361105f565b5460ff8116151583526001600160781b0390818160081c16602085015260801c1681830152519182918291909160406060820193805115158352816020820151916001600160781b038093166020860152015116910152565b3461054d57604036600319011261054d576004356120c181610552565b7ff4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d6020602435926120f0612371565b6001546001600160a01b03919061210b908690841683614840565b6040519485521692a2005b90600182811c92168015612146575b602083101461213057565b634e487b7160e01b600052602260045260246000fd5b91607f1691612125565b3461054d5760008060031936011261054a576040518160135461217281612116565b90818452602092600191828116908160001461052857506001146121a0576104cb856104bf818903826110d0565b929450601383526000805160206154df8339815191525b8284106121d457505050816104cb936104bf9282010193386104af565b80548585018701529285019281016121b7565b3461054d57604036600319011261054d5760043561220481610552565b63ffffffff602435818116810361054d5761224e6122549160409460006020875161222e8161107f565b82815201526001600160a01b03166000908152600c6020528590206124fe565b5061251b565b8251815190921682526020908101516001600160e01b031690820152f35b3461054d57602036600319011261054d5760043561228f81610552565b612297612371565b6001600160a01b038116156122af57610c68906123cc565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b3461054d57600036600319011261054d576016546040516001600160a01b039091168152602090f35b3461054d57600036600319011261054d576010546040516001600160a01b039091168152602090f35b3461054d57600036600319011261054d57602060405160048152f35b60005460101c6001600160a01b0316330361238857565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6000805462010000600160b01b03198116601084811b62010000600160b01b03169190911783556001600160a01b039384169391901c16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3565b60405162461bcd60e51b81526020600482015260196024820152783234b9b0b13632b2103337b9103b37ba34b733903837bbb2b960391b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b906001820180921161096657565b9190820180921161096657565b156124a357565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b634e487b7160e01b600052603260045260246000fd5b80548210156125165760005260206000200190600090565b6124e8565b906040516125288161107f565b602081935463ffffffff81168352811c910152565b1561254457565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606490fd5b9190820391821161096657565b1561259d57565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606490fd5b6110fe9160018060a01b03809216600092818452600b60205280604085205416809260026020527f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f604087205496600b6020526040812094871694856001600160601b0360a01b82541617905580a45b6001600160a01b03808316939291168084141580612865575b612676575b50505050565b806126e4575b5082612689575b80612670565b6001600160a01b03166000908152600c602052604090207fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724916126cb9161292f565b60408051928352602083019190915290a2388080612683565b80600052600c6020527fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7246040600020805480159182600014612842576127286110f1565b6000815260006020820152915b6020830151612754906001600160e01b03165b6001600160e01b031690565b9261275f89856154c4565b9415908161281f575b50156127bd576127906127a79261277e86613204565b92600019019060005260206000200190565b9063ffffffff82549181199060201b169116179055565b604080519182526020820192909252a23861267c565b5061281a906127e16127dc6127d14361326d565b65ffffffffffff1690565b6132d4565b906128156127ee86613204565b6128056127f96110f1565b63ffffffff9095168552565b6001600160e01b03166020840152565b6128d5565b6127a7565b5163ffffffff16905063ffffffff6128396127d14361326d565b91161438612768565b61285f61285a60001984018360005260206000200190565b61251b565b91612735565b5082151561266b565b600d5490600160401b82101561107a576001820180600d5582101561251657600d600052805160209182015190911b63ffffffff191663ffffffff91909116177fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb590910155565b8054600160401b81101561107a576128f2916001820181556124fe565b61291957815160209283015190921b63ffffffff191663ffffffff92909216919091179055565b634e487b7160e01b600052600060045260246000fd5b9091815491821592836000146129cb576129476110f1565b60008152600060208201525b60208101516129759061296e906001600160e01b0316612748565b96876154d1565b941590816129a8575b5015612994576127906110fe9261277e86613204565b506110fe906127e16127dc6127d14361326d565b5163ffffffff16905063ffffffff6129c26127d14361326d565b9116143861297e565b6129e361285a60001983018460005260206000200190565b612953565b600d5490918115918215612ac3576129fe6110f1565b60008152600060208201525b6020810151612a2c90612a25906001600160e01b0316612748565b95866154d1565b93159081612aa0575b5015612a55576110fe90612790612a4b85613204565b9160001901612b31565b506110fe612a686127dc6127d14361326d565b612a9b612a7485613204565b612a8b612a7f6110f1565b63ffffffff9094168452565b6001600160e01b03166020830152565b61286e565b5163ffffffff16905063ffffffff612aba6127d14361326d565b91161438612a35565b612ad361285a6000198301612b31565b612a0a565b600d5490918115918215612b1c57612aee6110f1565b60008152600060208201525b6020810151612a2c90612b15906001600160e01b0316612748565b95866154c4565b612b2c61285a6000198301612b31565b612afa565b600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190565b9161046b9391612b6a93612cc2565b919091612b92565b60051115612b7c57565b634e487b7160e01b600052602160045260246000fd5b612b9b81612b72565b80612ba35750565b612bac81612b72565b60018103612bfd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b0390fd5b612c0681612b72565b60028103612c535760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80612c5f600392612b72565b14612c6657565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b6040513d6000823e3d90fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311612d385791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561075c5781516001600160a01b03811615612d32579190565b50600190565b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612e35575b15612d9f577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612e2f816110b5565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612d76565b604290612e69612d44565b906040519161190160f01b8352600283015260228201522090565b60ff8114612ebe5760ff811690601f8211612eac57612ea1613032565b918252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600754816000612ed183612116565b808352602093600190818116908115612f5a5750600114612efb575b505061046b925003826110d0565b9093915060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688936000915b818310612f4257505061046b93508201013880612eed565b85548784018501529485019486945091830191612f2a565b91505061046b94925060ff191682840152151560051b8201013880612eed565b60ff8114612f975760ff811690601f8211612eac57612ea1613032565b50604051600854816000612faa83612116565b808352602093600190818116908115612f5a5750600114612fd357505061046b925003826110d0565b9093915060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3936000915b81831061301a57505061046b93508201013880612eed565b85548784018501529485019486945091830191613002565b6040519061303f8261107f565b60208083523683820137565b906130558261110d565b61306260405191826110d0565b8281528092613073601f199161110d565b0190602036910137565b634e487b7160e01b600052601260045260246000fd5b8115611fcb570490565b90808216911860011c81018091116109665790565b80156131ec578061318561317e61317461316a61316061315661314c613142600161046b9a6000908b60801c806131e0575b508060401c806131d3575b508060201c806131c6575b508060101c806131b9575b508060081c806131ac575b508060041c8061319f575b508060021c80613192575b50821c61318b575b811c1b61313b818b613093565b0160011c90565b61313b818a613093565b61313b8189613093565b61313b8188613093565b61313b8187613093565b61313b8186613093565b61313b8185613093565b8092613093565b906131f2565b810161312e565b6002915091019038613126565b600491509101903861311b565b6008915091019038613110565b6010915091019038613105565b60209150910190386130fa565b60409150910190386130ef565b915050608090386130e4565b50600090565b90808210156131ff575090565b905090565b6001600160e01b0390818111613218571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff90818111613280571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff908181116132e5571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b99979593919a98969492909a6000549b60ff8d60081c1615809d819e613466575b8115613446575b50156133ea576133879b8d61337e600160ff196000541617600055565b6133d15761359a565b61338d57565b61339d61ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989080602081015b0390a1565b6133e561010061ff00196000541617600055565b61359a565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b303b15915081613458575b5038613361565b6001915060ff161438613451565b600160ff821610915061335a565b9081602091031261054d575161046b81610552565b9081602091031261054d575190565b600181901b91906001600160ff1b0381160361096657565b90670de0b6b3a76400009182810292818404149015171561096657565b8181029291811591840414171561096657565b9081602091031261054d575161046b8161116f565b906110fe602160405184613513829651809260208086019101610412565b8101600160fd1b60208201520360018101855201836110d0565b60206110fe91939293604051948161354e8793518092868087019101610412565b820161356282518093868085019101610412565b010380855201836110d0565b156135765750565b60405162461bcd60e51b815260206004820152908190612bf9906024830190610435565b909a6001600160a01b039891979096919591946135c19487948b8816949291908f8c614c09565b6135ca90615361565b6135d3906123cc565b601d80546001600160a01b0319166001600160a01b0392909216918217905560408051630e9ed68b60e01b81526020976004969295929390919089908290899082905afa90811561075c576000916139b0575b50855163b31c878160e01b81523388820190815290918a9183919082900360200190829087165afa801561075c578991600091613993575b50801561398b575b61367361367b91846134cd565b612710900490565b971561393c57508161368d888361248f565b8651636eb1769f60e11b8082526001600160a01b0387168a8301908152306020820152979093169690949293919291908b908690819060400103818a5afa94851561075c5760009561391d575b506136ec6136e78b6139cd565b6134f5565b88519485526001600160a01b0387168a86019081523060208201529093908c908690819060400103818b5afa90811561075c576137a49661375f61376b968f988f976137598d916137526136e76137669a8f9661375997600092613900575b50506139cd565b9216613b10565b9061352d565b911461356e565b61248f565b85516323b872dd60e01b8082526001600160a01b0390951688820190815230602082015260408101929092529283918291606090910190565b03816000875af1801561075c576138e3575b50825163095ea7b360e01b8152308582019081526020810187905290919087908390819060400103816000875af191821561075c5785926138c6575b50601d54879061380a906001600160a01b0316610701565b85516301332c8360e61b815296879182905afa93841561075c57879560009561389e575b5051908152309181019182526001600160a01b03909316602082015260408101949094529092839190829060009082906060015b03925af1801561075c57613875575b5050565b8161389492903d10613897575b61388c81836110d0565b8101906134e0565b50565b503d613882565b6000929195506138bd61386291883d8a116114385761142a81836110d0565b9591925061382e565b6138dc90883d8a116138975761388c81836110d0565b50386137f2565b6138f990873d89116138975761388c81836110d0565b50386137b6565b6139169250803d106107555761074681836110d0565b8f8061374b565b6139359195508b3d8d116107555761074681836110d0565b93386136da565b94516323b872dd60e01b81526001600160a01b03909316958301958652503060208601526040850195909552939192849283916000919083906060010393165af1801561075c57613875575050565b506064613666565b6139aa9150823d84116107555761074681836110d0565b3861365e565b6139c79150893d8b116114385761142a81836110d0565b38613626565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000080821015613b02575b506d04ee2d6d415b85acef810000000080831015613af3575b50662386f26fc1000080831015613ae4575b506305f5e10080831015613ad5575b5061271080831015613ac6575b506064821015613ab6575b600a80921015613aac575b600190816021613a6482870161304b565b95860101905b613a76575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215613aa757919082613a6a565b613a6f565b9160010191613a53565b9190606460029104910191613a48565b60049193920491019138613a3d565b60089193920491019138613a30565b60109193920491019138613a21565b60209193920491019138613a0f565b6040935081049150386139f6565b806000908260801c80613c2a575b508060401c80613c1d575b508060201c80613c10575b5060109080821c80613c03575b5060081c613bf9575b60018092019291613b5a84613498565b6002810180911161096657613b6e9061304b565b9384511561251657613b99613b9e9160306020889796959701536078613b9388613c36565b53613498565b612481565b925b808411613bb457505061046b915015613c64565b9091600f8116908382101561251657613bf1916f181899199a1a9b1b9c1cb0b131b232b360811b901a613be78688613c46565b5360041c93613c57565b929190613ba0565b9060010190613b4a565b6002915092019138613b41565b6004915091019038613b34565b6008915091019038613b29565b91505060109038613b1e565b8051600110156125165760210190565b908151811015612516570160200190565b8015610966576000190190565b15613c6b57565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9092916001600160401b03841161107a578360051b60209283604051613cd7828501826110d0565b809781520191810192831161054d57905b828210613cf55750505050565b81358152908301908301613ce8565b15613d0b57565b60405162461bcd60e51b815260206004820152601960248201527f666565207061796d656e742062656c6f77206d696e696d756d000000000000006044820152606490fd5b3d15613d7b573d90613d618261110d565b91613d6f60405193846110d0565b82523d6000602084013e565b606090565b814710613e16576000918291829182916001600160a01b03165af1613da3613d50565b5015613dab57565b60405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606490fd5b519069ffffffffffffffffffff8216820361054d57565b15613e7957565b60405162461bcd60e51b815260206004820152600e60248201526d6e6567617469766520707269636560901b6044820152606490fd5b15613eb657565b60405162461bcd60e51b815260206004820152600b60248201526a0616e73776572203d3d20360ac1b6044820152606490fd5b15613ef057565b60405162461bcd60e51b8152602060048201526012602482015271726f756e64206e6f7420636f6d706c65746560701b6044820152606490fd5b15613f3157565b60405162461bcd60e51b815260206004820152600b60248201526a7374616c6520707269636560a81b6044820152606490fd5b604051633fabe5a360e21b81529060a090829060049082906001600160a01b03165afa801561075c5760008091818091613fd7575b839450613fab600061046b9513613e72565b613fcf69ffffffffffffffffffff80931693613fc8851515613eaf565b1515613ee9565b161115613f2a565b9250505060a0823d8211614029575b81613ff360a093836110d0565b8101031261054a575061046b61400882613e5b565b602083015161401e608060608601519501613e5b565b909384935091613f99565b3d9150613fe6565b6001600160781b0380831161410a576110fe92166140c36140776140678460018060a01b0316600052600f602052604060002090565b5460801c6001600160781b031690565b6140a6614082611100565b60018152916001600160781b03851660208401526001600160781b03166040830152565b6001600160a01b0384166000908152600f60205260409020615043565b6040516001600160781b039190911681526001600160a01b038216907fdb598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd243490602090a26141b4565b60405162461bcd60e51b815260206004820152602c60248201527f4469737472696275746f723a20746f74616c416d6f756e74203e20747970652860448201526b0ead2dce8626460525cdac2f60a31b6064820152608490fd5b906040516141718161105f565b604081935460ff8116151583526001600160781b0390818160081c16602085015260801c16910152565b6001600160781b03918216908216039190821161096657565b6001600160a01b038116600090815260026020908152604080832054600f9092529091209091906141e490614164565b6001600160781b038060208160408501511693015116808310156000146142455750505060005b8083111561422657614220906110fe93612589565b906143af565b80831061423257505050565b6110fe9261423f91612589565b906142d1565b61425c926142529161419b565b16601854906134cd565b601454908115611fcb570461420b565b1561427357565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608490fd5b906001600160a01b038216801561436a57600454828101809111610966576138719361434f926143018593600455565b6001600160a01b0382166000908152600260209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a36144fd565b600454614365906001600160e01b03101561426c565b6129e8565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b6001600160a01b03811691908215614457578181600061387195836143e96144529660018060a01b03166000526002602052604060002090565b546143f6828210156144a6565b036144138460018060a01b03166000526002602052604060002090565b556144218460045403600455565b6040518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3614548565b612ad8565b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b156144ad57565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76546001600160a01b03918216600090815260409020546110fe93929081169116612652565b6001600160a01b039081166000908152600b60205260408120549080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76546110fe93929081169116612652565b91906001600160781b0380911660018060a01b038416600052600f602052808260406000205460081c16036146ae575b506145d0836150f7565b168015614651576001600160a01b0383166000908152600f602052604090206110fe9190614637906146118361100a83546001600160781b039060801c1690565b8154600160801b600160f81b03191660809190911b600160801b600160f81b0316179055565b61464b6146468260125461248f565b601255565b926141b4565b60405162461bcd60e51b815260206004820152602f60248201527f4469737472696275746f723a206e6f206d6f726520746f6b656e7320636c616960448201526e6d61626c65207269676874206e6f7760881b6064820152608490fd5b6146b89084614031565b386145c6565b156146c557565b606460405162461bcd60e51b815260206004820152602060248201527f6d75737420696e697469616c697a65206265666f72652061646a757374696e676044820152fd5b600160ff1b81146109665760000390565b1561472157565b60405162461bcd60e51b815260206004820152601860248201527f61646a7573746d656e74203e206d61782075696e7431323000000000000000006044820152606490fd5b9190916001600160781b038080941691160191821161096657565b1561478857565b60405162461bcd60e51b815260206004820152602760248201527f64656372656173652067726561746572207468616e206469737472696275746f6044820152661c881d1bdd185b60ca1b6064820152608490fd5b156147e457565b60405162461bcd60e51b815260206004820152602e60248201527f64656372656173652067726561746572207468616e206469737472696275746960448201526d1bdb949958dbdc99081d1bdd185b60921b6064820152608490fd5b60405163a9059cbb60e01b60208083019182526001600160a01b0394909416602483015260448083019590955293815291926148d9929160009081906148876064866110d0565b60018060a01b0316926040519461489d8661107f565b8786527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656488870152519082855af16148d3613d50565b91614961565b805190828215928315614949575b505050156148f25750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b61495993508201810191016134e0565b3882816148e7565b919290156149c35750815115614975575090565b3b1561497e5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156149d65750805190602001fd5b60405162461bcd60e51b8152908190612bf9906004830161045a565b601f81116149fe575050565b600090601382526000805160206154df833981519152906020601f850160051c83019410614a47575b601f0160051c01915b828110614a3c57505050565b818155600101614a30565b9092508290614a27565b9081516001600160401b03811161107a57614a7181611825601354612116565b602080601f8311600114614aa857508190614aa3939460009261188d5750508160011b916000199060031b1c19161790565b601355565b90601f19831694614ac960136000526000805160206154df83398151915290565b926000905b878210614b06575050836001959610614aed575b505050811b01601355565b015160001960f88460031b161c19169055388080614ae2565b80600185968294968601518155019501930190614ace565b604051806000601354614b3081612116565b90600190818116908115614b925750600114614b4f575b505003902090565b601360009081529192506000805160206154df8339815191525b838310614b7c5750505081013880614b47565b8054868401528594506020909201918101614b69565b60ff19168552505080151502820190503880614b47565b15614bb057565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b919394969095614c2960ff60005460081c16614c2481614ba9565b614ba9565b6001600160a01b0398614c3d908a16615478565b7f6c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5602061271080601855604051908152a1614c7f60ff60005460081c16614ba9565b88831615614dac57614d6498614ccd614d5a96614cc88a610f22614d2d98614cab614d5f9e1515614f46565b60018060a01b03166001600160601b0360a01b6010541617601055565b614a51565b614cde670de0b6b3a7640000601455565b6010547f433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c71906001600160a01b03169160115492614d25601454604051938493169583614f92565b0390a26151f4565b614d3983821115614df0565b614d4585841115614e3c565b614d5563f4865700861115614e88565b601955565b601a55565b601b55565b601954601a54601b54604080519384526020840192909252908201527f34ebbb9e095e6c8737f99dd9923fb97ec1ca3d25cb39225975a934dd8d7a31b49080606081016133cc565b606460405162461bcd60e51b815260206004820152602060248201527f4469737472696275746f723a20746f6b656e20697320616464726573732830296044820152fd5b15614df757565b60405162461bcd60e51b815260206004820152601a60248201527f76657374696e6720636c696666206265666f72652073746172740000000000006044820152606490fd5b15614e4357565b60405162461bcd60e51b815260206004820152601860248201527f76657374696e6720656e64206265666f726520636c69666600000000000000006044820152606490fd5b15614e8f57565b60405162461bcd60e51b815260206004820152602a60248201527f76657374696e6720656e6473206166746572203431303234343438303020284a604482015269616e203120323130302960b01b6064820152608490fd5b614ef090615332565b810390811161096657601a548111156131ec57601b549081811015614f3e576014546019549182810390811161096657614f29916134cd565b90808303928084116109665714611fcb570490565b505060145490565b15614f4d57565b60405162461bcd60e51b815260206004820152601760248201527f4469737472696275746f723a20746f74616c20697320300000000000000000006044820152606490fd5b92919083526020606081850152600060135491614fae83612116565b9081606088015260809360019081811690816000146150225750600114614fdc575b50505060409150930152565b6013600090815293506000805160206154df8339815191525b83851061500f575050505090604091850101388080614fd0565b8054898601870152938201938101614ff5565b92505050604093925060ff191682870152151560051b850101388080614fd0565b815181546020840151610100600160801b0360089190911b1691151560ff166fffffffffffffffffffffffffffffffff19909116171781556110fe916001600160781b0390604001518254600160801b600160f81b031916911660801b600160801b600160f81b0316179055565b60207f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49160018060a01b03906150ec85828460105416614840565b6040519485521692a2565b6001600160a01b0381166000908152600f602052604090205460ff16156151a4576001600160a01b0381166000908152600f6020526040902061513990614164565b9061518c604061517d61517461516461515c60208801516001600160781b031690565b954290614ee7565b6001600160781b038096166134cd565b60145490613093565b9301516001600160781b031690565b1681811061519b575050600090565b61046b91612589565b60405162461bcd60e51b815260206004820152602260248201527f4469737472696275746f723a20636c61696d206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b9061520660ff60005460081c16614ba9565b601680546001600160a01b039384166001600160a01b03199182168117909255909283156000816152795750611fcb57837fdccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d92826110fe96602094045b16906015541617601555604051908152a16152aa565b6110fe959150926020927fdccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d94615263565b6015546001600160a01b03919082161561387157818116156152ed576000194301438111610966578290401618166001600160601b0360a01b6017541617601755565b60405162461bcd60e51b815260206004820152601860248201527f492064656d616e64206d6f72652072616e646f6d6e65737300000000000000006044820152606490fd5b6015546001600160a01b039190821690811561535957829081806017541691161816041690565b505050600090565b60207f914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a469161539660ff60005460081c16614ba9565b80601c55604051908152a1565b601c5492600092915b82518410156153f8576020808560051b850101519160008382106000146153eb57506000525260406000205b92600019811461096657600101926153ac565b91604093835252206153d8565b91509291500361540457565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b210383937b7b360991b6044820152606490fd5b1561544057565b60405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606490fd5b600180546001600160a01b0319166001600160a01b0390921691821790556040519081527fccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f90602090a1565b9081039081116109665790565b908101809111610966579056fe66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090a264697066735822122061a79b734675087c24908e0ec3e218b8f54189d2e2456ccf8480f0e14ceb9e6f64736f6c63430008150033