[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "uint256", "name": "_slippage", "type": "uint256" }, { "internalType": "uint256", "name": "_minBuyAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_burnTax", "type": "uint256" }, { "internalType": "uint256", "name": "_treasuryTax", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "BeforeTransferValidationFailed", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "available", "type": "uint256" }, { "internalType": "uint256", "name": "required", "type": "uint256" } ], "name": "InsufficientAmount", "type": "error" }, { "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": "_address", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "BlackListedAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "oldBurnTax", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "newBurnTax", "type": "uint256" } ], "name": "BurnTaxUpdated", "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": "uint256", "name": "oldMinBuyAmount", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "newMinBuyAmount", "type": "uint256" } ], "name": "MinBuyAmountUpdated", "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": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldRouter", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newRouter", "type": "address" } ], "name": "RouterUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "oldSlippage", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "newSlippage", "type": "uint256" } ], "name": "SlippageUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Snapshot", "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": "oldTreasuryTax", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "newTreasuryTax", "type": "uint256" } ], "name": "TreasuryTaxUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldTreasury", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newTreasury", "type": "address" } ], "name": "TreasuryUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address[]", "name": "_path", "type": "address[]" } ], "name": "UpdatePairPath", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address[]", "name": "_path", "type": "address[]" } ], "name": "UpdatePairPathToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "WhiteListedAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "WhiteListedPair", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEAD", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DECIMAL_POINT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FEES", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SLIPPAGE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "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": "uint256", "name": "snapshotId", "type": "uint256" } ], "name": "balanceOfAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "blackListAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "blackListedAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burnTax", "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": [], "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": "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": "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": "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": [], "name": "minBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "", "type": "uint256" } ], "name": "pairPath", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "pairPathToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "slippage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "snapshot", "outputs": [], "stateMutability": "nonpayable", "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": "uint256", "name": "snapshotId", "type": "uint256" } ], "name": "totalSupplyAt", "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": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasuryTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_burnTax", "type": "uint256" } ], "name": "updateBurnTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minBuyAmount", "type": "uint256" } ], "name": "updateMinBuyAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_path", "type": "address[]" } ], "name": "updatePairPath", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_path", "type": "address[]" } ], "name": "updatePairPathToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" } ], "name": "updateRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_slippage", "type": "uint256" } ], "name": "updateSlippage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasury", "type": "address" } ], "name": "updateTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_treasuryTax", "type": "uint256" } ], "name": "updateTreasuryTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "whiteListAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "whiteListPairAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whiteListedAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whiteListedPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
6101606040523480156200001257600080fd5b506040516200494c3803806200494c833981016040819052620000359162000ce1565b6040805180820190915260018152603160f81b6020820152879081908189600362000061838262000e08565b50600462000070828262000e08565b5050506200008d620000876200031c60201b60201c565b62000320565b6009805460ff60a01b19169055620000a782600a62000372565b61012052620000b881600b62000372565b61014052815160208084019190912060e052815190820120610100524660a0526200014660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506109c46200015f828462000eea565b1115620001be5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f742073657420546178206d6f72652074686174206d61782076616c604482015261756560f01b60648201526084015b60405180910390fd5b6109c4841115620002225760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742073657420536c697070616765206d6f72652074686174206d61604482015266782076616c756560c81b6064820152608401620001b5565b6200024733620002356012600a62000ffd565b6200024190886200100e565b620003ab565b601384905560148390556015829055601681905560405184906000907f07af09e2b23ebab5dd29fa2271d6ca4795031f308caf26ca605f4a719ffeed61908290a360405183906000907f84d37c75146c630b6aa5537c83a35d4ed747c938049db6f69764b1ca0123a4ca908290a360405182906000907ff8b104217e0de41dcad6082aba085956e9980e550d2db8210844dd80c1816edc908290a360405181906000907f999eeefdaa6c3d24b8bb666a6da41b4786f6e870394c7aa71c381647d1678162908290a350505050505050620010ae565b3390565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208351101562000392576200038a83620003bb565b9050620003a5565b816200039f848262000e08565b5060ff90505b92915050565b620003b78282620003fe565b5050565b600080829050601f81511115620003e9578260405163305a27a960e01b8152600401620001b5919062001028565b8051620003f6826200105d565b179392505050565b6200040a8282620004a6565b6001600160e01b036200041e620005818216565b1115620004875760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401620001b5565b620004a06010620016f16200058760201b17836200059c565b50505050565b6001600160a01b038216620004fe5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620001b5565b6200050c6000838362000724565b806002600082825462000520919062000eea565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003b7600083836200079f565b60025490565b600062000595828462000eea565b9392505050565b82546000908190818115620005eb5760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b0316602082015262000600565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506200061e84868860201c565b92506000821180156200064b575062000636620007ac565b65ffffffffffff16816000015163ffffffff16145b1562000694576200065c83620007be565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff9092169190911790556200071a565b866040518060400160405280620006c2620006b4620007ac60201b60201c565b65ffffffffffff166200082d565b63ffffffff168152602001620006d886620007be565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6200072e62000894565b6001600160a01b03831660009081526019602052604090205460ff16806200076e57506001600160a01b03821660009081526019602052604090205460ff165b156200078d5760405163630c2add60e11b815260040160405180910390fd5b6200079a838383620008ec565b505050565b6200079a83838362000940565b6000620007b94362000974565b905090565b60006001600160e01b03821115620008295760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401620001b5565b5090565b600063ffffffff821115620008295760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401620001b5565b620008a8600954600160a01b900460ff1690565b15620008ea5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401620001b5565b565b6001600160a01b03831662000910576200090682620009dd565b6200079a62000a15565b6001600160a01b0382166200092a576200090683620009dd565b6200093583620009dd565b6200079a82620009dd565b6001600160a01b038381166000908152600e60205260408082205485841683529120546200079a9291821691168362000a25565b600065ffffffffffff821115620008295760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401620001b5565b6001600160a01b0381166000908152600560209081526040808320918390529091205462000a12919062000b60565b62000b60565b50565b620008ea600662000a0c60025490565b816001600160a01b0316836001600160a01b03161415801562000a485750600081115b156200079a576001600160a01b0383161562000ad5576001600160a01b0383166000908152600f602090815260408220829162000a92919062000baf901b620016fd17856200059c565b91509150846001600160a01b03166000805160206200492c833981519152838360405162000aca929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156200079a576001600160a01b0382166000908152600f602090815260408220829162000b19919062000587901b620016f117856200059c565b91509150836001600160a01b03166000805160206200492c833981519152838360405162000b51929190918252602082015260400190565b60405180910390a25050505050565b600062000b6c62000bbd565b90508062000b7a8462000bc9565b10156200079a578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b600062000595828462001082565b6000620007b960085490565b8054600090810362000bdd57506000919050565b8154829062000bef9060019062001082565b8154811062000c025762000c0262001098565b90600052602060002001549050919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101562000c4757818101518382015260200162000c2d565b50506000910152565b600082601f83011262000c6257600080fd5b81516001600160401b038082111562000c7f5762000c7f62000c14565b604051601f8301601f19908116603f0116810190828211818310171562000caa5762000caa62000c14565b8160405283815286602085880101111562000cc457600080fd5b62000cd784602083016020890162000c2a565b9695505050505050565b600080600080600080600060e0888a03121562000cfd57600080fd5b87516001600160401b038082111562000d1557600080fd5b62000d238b838c0162000c50565b985060208a015191508082111562000d3a57600080fd5b5062000d498a828b0162000c50565b60408a015160608b015160808c015160a08d015160c0909d01519b9e939d50919b909a919950975095509350505050565b600181811c9082168062000d8f57607f821691505b60208210810362000db057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200079a57600081815260208120601f850160051c8101602086101562000ddf5750805b601f850160051c820191505b8181101562000e005782815560010162000deb565b505050505050565b81516001600160401b0381111562000e245762000e2462000c14565b62000e3c8162000e35845462000d7a565b8462000db6565b602080601f83116001811462000e74576000841562000e5b5750858301515b600019600386901b1c1916600185901b17855562000e00565b600085815260208120601f198616915b8281101562000ea55788860151825594840194600190910190840162000e84565b508582101562000ec45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820180821115620003a557620003a562000ed4565b600181815b8085111562000f4157816000190482111562000f255762000f2562000ed4565b8085161562000f3357918102915b93841c939080029062000f05565b509250929050565b60008262000f5a57506001620003a5565b8162000f6957506000620003a5565b816001811462000f82576002811462000f8d5762000fad565b6001915050620003a5565b60ff84111562000fa15762000fa162000ed4565b50506001821b620003a5565b5060208310610133831016604e8410600b841016171562000fd2575081810a620003a5565b62000fde838362000f00565b806000190482111562000ff55762000ff562000ed4565b029392505050565b60006200059560ff84168362000f49565b8082028115828204841417620003a557620003a562000ed4565b60208152600082518060208401526200104981604085016020870162000c2a565b601f01601f19169190910160400192915050565b8051602080830151919081101562000db05760001960209190910360031b1b16919050565b81810381811115620003a557620003a562000ed4565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e051610100516101205161014051613823620011096000396000610ef901526000610ece01526000611da301526000611d7b01526000611cd601526000611d0001526000611d2a01526138236000f3fe608060405234801561001057600080fd5b50600436106103a45760003560e01c80637ecebe00116101e9578063c166d13d1161010f578063d9f5d9f6116100ad578063f2fde38b1161007c578063f2fde38b14610827578063f66bf2291461083a578063f887ea4014610843578063f97595181461075357600080fd5b8063d9f5d9f6146107bb578063dd62ed3e146107ce578063ecfeb5ba146107e1578063f1127ed8146107ea57600080fd5b8063c851cc32116100e9578063c851cc321461076f578063cbf3007f14610782578063d505accf14610795578063d7a0e40d146107a857600080fd5b8063c166d13d14610730578063c2300bef14610753578063c3cda5201461075c57600080fd5b806395d89b41116101875780639dd21928116101565780639dd21928146106e4578063a457c2d7146106f7578063a638f4d21461070a578063a9059cbb1461071d57600080fd5b806395d89b41146106ae5780639711715a146106b6578063981b24d0146106be5780639ab24eb0146106d157600080fd5b806384b0196e116101c357806384b0196e146106505780638da5cb5b1461066b5780638e539e8c1461067c57806391ddadf41461068f57600080fd5b80637ecebe00146106225780637f51bb1f146106355780638456cb591461064857600080fd5b80633f4ba83a116102ce578063654cdb5e1161026c57806370a082311161023b57806370a08231146105cb578063715018a6146105f4578063794592ad146105fc578063794be7071461060f57600080fd5b8063654cdb5e1461055a57806369620a981461056d5780636fcfff45146105805780637057a5c5146105a857600080fd5b8063587cde1e116102a8578063587cde1e146104f65780635c19a95c146105225780635c975abb1461053557806361d027b31461054757600080fd5b80633f4ba83a146104d35780634bf5d7e9146104db5780634ee2cd7e146104e357600080fd5b806323b872dd116103465780633644e515116103155780633644e5151461049c57806339509351146104a45780633a46b1a8146104b75780633e032a3b146104ca57600080fd5b806323b872dd1461044457806328462813146104575780632f6c10701461047a578063313ce5671461048d57600080fd5b80630df874ce116103825780630df874ce1461040757806315b0d4961461041e57806318160ddd146104335780631d4eaead1461043b57600080fd5b806303fd2a45146103a957806306fdde03146103cf578063095ea7b3146103e4575b600080fd5b6103b261dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b6103d7610856565b6040516103c691906130c0565b6103f76103f23660046130ea565b6108e8565b60405190151581526020016103c6565b61041061271081565b6040519081526020016103c6565b61043161042c366004613114565b610902565b005b600254610410565b61041060155481565b6103f761045236600461312d565b6109a5565b6103f7610465366004613169565b60176020526000908152604090205460ff1681565b610431610488366004613114565b6109c9565b604051601281526020016103c6565b610410610a05565b6103f76104b23660046130ea565b610a14565b6104106104c53660046130ea565b610a36565b61041060135481565b610431610abb565b6103d7610acd565b6104106104f13660046130ea565b610b65565b6103b2610504366004613169565b6001600160a01b039081166000908152600e60205260409020541690565b610431610530366004613169565b610bbe565b600954600160a01b900460ff166103f7565b6012546103b2906001600160a01b031681565b610431610568366004613192565b610bcb565b61043161057b366004613234565b610c50565b61059361058e366004613169565b610cce565b60405163ffffffff90911681526020016103c6565b6103f76105b6366004613169565b60196020526000908152604090205460ff1681565b6104106105d9366004613169565b6001600160a01b031660009081526020819052604090205490565b610431610cf0565b61043161060a366004613234565b610d02565b61043161061d366004613192565b610d80565b610410610630366004613169565b610e05565b610431610643366004613169565b610e23565b610431610eb0565b610658610ec0565b6040516103c697969594939291906132d1565b6009546001600160a01b03166103b2565b61041061068a366004613114565b610f49565b610697610fb0565b60405165ffffffffffff90911681526020016103c6565b6103d7610fbb565b610431610fca565b6104106106cc366004613114565b610fda565b6104106106df366004613169565b611005565b6104316106f2366004613192565b611087565b6103f76107053660046130ea565b61110c565b6103b2610718366004613114565b611187565b6103f761072b3660046130ea565b6111b1565b6103f761073e366004613169565b60186020526000908152604090205460ff1681565b6104106109c481565b61043161076a366004613378565b6111bf565b61043161077d366004613169565b6112f5565b610431610790366004613114565b611382565b6104316107a33660046133d0565b6113ed565b6103b26107b6366004613114565b611551565b6104316107c9366004613114565b611561565b6104106107dc36600461343a565b6115cc565b61041060165481565b6107fd6107f836600461346d565b6115f7565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016103c6565b610431610835366004613169565b61167b565b61041060145481565b6011546103b2906001600160a01b031681565b606060038054610865906134a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610891906134a2565b80156108de5780601f106108b3576101008083540402835291602001916108de565b820191906000526020600020905b8154815290600101906020018083116108c157829003601f168201915b5050505050905090565b6000336108f6818585611709565b60019150505b92915050565b61090a61182d565b6109c48111156109715760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742073657420536c697070616765206d6f72652074686174206d61604482015266782076616c756560c81b60648201526084015b60405180910390fd5b6013546040518291907f07af09e2b23ebab5dd29fa2271d6ca4795031f308caf26ca605f4a719ffeed6190600090a3601355565b6000336109b3858285611887565b6109be858585611901565b506001949350505050565b6109d161182d565b6014546040518291907f84d37c75146c630b6aa5537c83a35d4ed747c938049db6f69764b1ca0123a4ca90600090a3601455565b6000610a0f611cc9565b905090565b6000336108f6818585610a2783836115cc565b610a3191906134ec565b611709565b6000610a40610fb0565b65ffffffffffff168210610a925760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610968565b6001600160a01b0383166000908152600f60205260409020610ab49083611df4565b9392505050565b610ac361182d565b610acb611edd565b565b606043610ad8610fb0565b65ffffffffffff1614610b2d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606401610968565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b038216600090815260056020526040812081908190610b8c908590611f32565b9150915081610bb3576001600160a01b038516600090815260208190526040902054610bb5565b805b95945050505050565b610bc83382612028565b50565b610bd361182d565b6001600160a01b038216600003610bfc5760405162461bcd60e51b8152600401610968906134ff565b6001600160a01b038216600081815260176020526040808220805460ff191685151590811790915590519092917f3cb32c22149bb608514b96239b436e84ff1841e208e2bdc0501994ddaee7128a91a35050565b610c5861182d565b6001815111610c795760405162461bcd60e51b815260040161096890613525565b8051610c8c90601b906020840190613009565b5080604051610c9b919061356e565b604051908190038120907f375933f759ea97679283f070d7d3d17199588e54b5d3bd300a9cff09e056a4b990600090a250565b6001600160a01b0381166000908152600f60205260408120546108fc906120a1565b610cf861182d565b610acb600061210a565b610d0a61182d565b6001815111610d2b5760405162461bcd60e51b815260040161096890613525565b8051610d3e90601a906020840190613009565b5080604051610d4d919061356e565b604051908190038120907f5efa286c1c95141f7dfc4415a060869be316d68b408b17dac62fc2725fb7552f90600090a250565b610d8861182d565b6001600160a01b038216600003610db15760405162461bcd60e51b8152600401610968906134ff565b6001600160a01b038216600081815260196020526040808220805460ff191685151590811790915590519092917f9598c5c1ac3248056107d4b9e75e0a97f3686a87756ed5a33d2c0f2909acea3d91a35050565b6001600160a01b0381166000908152600c60205260408120546108fc565b610e2b61182d565b6001600160a01b038116600003610e545760405162461bcd60e51b8152600401610968906134ff565b6012546040516001600160a01b038084169216907f4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a90600090a3601280546001600160a01b0319166001600160a01b0392909216919091179055565b610eb861182d565b610acb61215c565b600060608082808083610ef47f0000000000000000000000000000000000000000000000000000000000000000600a61219f565b610f1f7f0000000000000000000000000000000000000000000000000000000000000000600b61219f565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610f53610fb0565b65ffffffffffff168210610fa55760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610968565b6108fc601083611df4565b6000610a0f4361224a565b606060048054610865906134a2565b610fd261182d565b610bc86122b1565b6000806000610fea846006611f32565b9150915081610ffb57600254610ffd565b805b949350505050565b6001600160a01b0381166000908152600f60205260408120548015611074576001600160a01b0383166000908152600f6020526040902080546000198301908110611052576110526135ad565b60009182526020909120015464010000000090046001600160e01b0316611077565b60005b6001600160e01b03169392505050565b61108f61182d565b6001600160a01b0382166000036110b85760405162461bcd60e51b8152600401610968906134ff565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fcdcf748c409147bef16928b911e879037b5c6c6e63a0292af2fa7e3904eba4f791a35050565b6000338161111a82866115cc565b90508381101561117a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610968565b6109be8286868403611709565b601a818154811061119757600080fd5b6000918252602090912001546001600160a01b0316905081565b6000336108f6818585611901565b8342111561120f5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610968565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611289906112819060a0016040516020818303038152906040528051906020012061230b565b858585612338565b905061129481612360565b86146112e25760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610968565b6112ec8188612028565b50505050505050565b6112fd61182d565b6001600160a01b0381166000036113265760405162461bcd60e51b8152600401610968906134ff565b6011546040516001600160a01b038084169216907f02dc5c233404867c793b749c6d644beb2277536d18a7e7974d3f238e4c6f168490600090a3601180546001600160a01b0319166001600160a01b0392909216919091179055565b61138a61182d565b6109c48160155461139b91906134ec565b11156113b95760405162461bcd60e51b8152600401610968906135c3565b6016546040518291907f999eeefdaa6c3d24b8bb666a6da41b4786f6e870394c7aa71c381647d167816290600090a3601655565b8342111561143d5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610968565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861146c8c612360565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006114c78261230b565b905060006114d782878787612338565b9050896001600160a01b0316816001600160a01b03161461153a5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610968565b6115458a8a8a611709565b50505050505050505050565b601b818154811061119757600080fd5b61156961182d565b6109c46016548261157a91906134ec565b11156115985760405162461bcd60e51b8152600401610968906135c3565b6015546040518291907ff8b104217e0de41dcad6082aba085956e9980e550d2db8210844dd80c1816edc90600090a3601555565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600f60205260409020805463ffffffff841690811061163b5761163b6135ad565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b61168361182d565b6001600160a01b0381166116e85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610bc88161210a565b6000610ab482846134ec565b6000610ab48284613605565b6001600160a01b03831661176b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610968565b6001600160a01b0382166117cc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610968565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6009546001600160a01b03163314610acb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b600061189384846115cc565b905060001981146118fb57818110156118ee5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610968565b6118fb8484848403611709565b50505050565b6001600160a01b03831660009081526017602052604090205460ff168061194057506001600160a01b03821660009081526017602052604090205460ff165b8061196357506001600160a01b03831660009081526018602052604090205460ff165b8061198657506001600160a01b03821660009081526018602052604090205460ff165b15611aa9576001600160a01b03831660009081526017602052604090205460ff1680156119cc57506001600160a01b03821660009081526018602052604090205460ff16155b15611a995760115460405163d06ca61f60e01b81526000916001600160a01b03169063d06ca61f90611a05908590601a90600401613618565b600060405180830381865afa158015611a22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a4a9190810190613674565b600181518110611a5c57611a5c6135ad565b60200260200101519050601454811015611a9757601454604051630da801c760e31b8152610968918391600401918252602082015260400190565b505b611aa4838383612388565b505050565b600061271060155483611abc91906136fa565b611ac69190613727565b9050600061271060165484611adb91906136fa565b611ae59190613727565b90506000611af382846134ec565b611afd9085613605565b60115460405163d06ca61f60e01b81529192506000916001600160a01b039091169063d06ca61f90611b36908690601b90600401613618565b600060405180830381865afa158015611b53573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b7b9190810190613674565b600181518110611b8d57611b8d6135ad565b60200260200101519050611ba48761dead86612388565b611baf873085612388565b60115460405163095ea7b360e01b81526001600160a01b03909116600482015260248101849052309063095ea7b3906044016020604051808303816000875af1158015611c00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c249190613749565b50611cbe8361271060135484611c3a91906136fa565b611c449190613727565b611c4e9084613605565b601b805480602002602001604051908101604052809291908181526020018280548015611ca457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c86575b50506012546001600160a01b0316925042915061253d9050565b6112ec878784612388565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611d2257507f000000000000000000000000000000000000000000000000000000000000000046145b15611d4c57507f000000000000000000000000000000000000000000000000000000000000000090565b610a0f604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b815460009081816005811115611e4e576000611e0f846125ae565b611e199085613605565b600088815260209020909150869082015463ffffffff161115611e3e57809150611e4c565b611e498160016134ec565b92505b505b80821015611e9b576000611e628383612696565b600088815260209020909150869082015463ffffffff161115611e8757809150611e95565b611e928160016134ec565b92505b50611e4e565b8015611ec7576000868152602090208101600019015464010000000090046001600160e01b0316611eca565b60005b6001600160e01b03169695505050505050565b611ee56126b1565b6009805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60008060008411611f7e5760405162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b6044820152606401610968565b611f86612701565b841115611fd55760405162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e742069640000006044820152606401610968565b6000611fe1848661270c565b84549091508103611ff9576000809250925050612021565b6001846001018281548110612010576120106135ad565b906000526020600020015492509250505b9250929050565b6001600160a01b038281166000818152600e60208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46118fb8284836127b9565b600063ffffffff8211156121065760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610968565b5090565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6121646128f6565b6009805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f153390565b606060ff83146121b9576121b283612943565b90506108fc565b8180546121c5906134a2565b80601f01602080910402602001604051908101604052809291908181526020018280546121f1906134a2565b801561223e5780601f106122135761010080835404028352916020019161223e565b820191906000526020600020905b81548152906001019060200180831161222157829003601f168201915b505050505090506108fc565b600065ffffffffffff8211156121065760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610968565b60006122c1600880546001019055565b60006122cb612701565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb67816040516122fe91815260200190565b60405180910390a1919050565b60006108fc612318611cc9565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600061234987878787612982565b9150915061235681612a46565b5095945050505050565b6001600160a01b0381166000908152600c602052604090208054600181018255905b50919050565b6001600160a01b0383166123ec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610968565b6001600160a01b03821661244e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610968565b612459838383612b90565b6001600160a01b038316600090815260208190526040902054818110156124d15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610968565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36118fb848484612c00565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906125759088908890889088908890600401613766565b600060405180830381600087803b15801561258f57600080fd5b505af11580156125a3573d6000803e3d6000fd5b505050505050505050565b6000816000036125c057506000919050565b600060016125cd84612c0b565b901c6001901b905060018184816125e6576125e6613711565b048201901c905060018184816125fe576125fe613711565b048201901c9050600181848161261657612616613711565b048201901c9050600181848161262e5761262e613711565b048201901c9050600181848161264657612646613711565b048201901c9050600181848161265e5761265e613711565b048201901c9050600181848161267657612676613711565b048201901c9050610ab48182858161269057612690613711565b04612c9f565b60006126a56002848418613727565b610ab4908484166134ec565b600954600160a01b900460ff16610acb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610968565b6000610a0f60085490565b8154600090810361271f575060006108fc565b82546000905b8082101561276c5760006127398383612696565b6000878152602090209091508590820154111561275857809150612766565b6127638160016134ec565b92505b50612725565b60008211801561279857508361279586612787600186613605565b600091825260209091200190565b54145b156127b1576127a8600183613605565b925050506108fc565b5090506108fc565b816001600160a01b0316836001600160a01b0316141580156127db5750600081115b15611aa4576001600160a01b03831615612869576001600160a01b0383166000908152600f602052604081208190612816906116fd85612cb5565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161285e929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611aa4576001600160a01b0382166000908152600f60205260408120819061289f906116f185612cb5565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516128e7929190918252602082015260400190565b60405180910390a25050505050565b600954600160a01b900460ff1615610acb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610968565b6060600061295083612e2a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156129b95750600090506003612a3d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612a0d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a3657600060019250925050612a3d565b9150600090505b94509492505050565b6000816004811115612a5a57612a5a6137d7565b03612a625750565b6001816004811115612a7657612a766137d7565b03612ac35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b6002816004811115612ad757612ad76137d7565b03612b245760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b6003816004811115612b3857612b386137d7565b03610bc85760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b612b986128f6565b6001600160a01b03831660009081526019602052604090205460ff1680612bd757506001600160a01b03821660009081526019602052604090205460ff165b15612bf55760405163630c2add60e11b815260040160405180910390fd5b611aa4838383612e52565b611aa4838383612e9a565b600080608083901c15612c2057608092831c92015b604083901c15612c3257604092831c92015b602083901c15612c4457602092831c92015b601083901c15612c5657601092831c92015b600883901c15612c6857600892831c92015b600483901c15612c7a57600492831c92015b600283901c15612c8c57600292831c92015b600183901c156108fc5760010192915050565b6000818310612cae5781610ab4565b5090919050565b82546000908190818115612d025760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152612d17565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350612d3784868863ffffffff16565b9250600082118015612d615750612d4c610fb0565b65ffffffffffff16816000015163ffffffff16145b15612da657612d6f83612ecc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055612e20565b866040518060400160405280612dca612dbd610fb0565b65ffffffffffff166120a1565b63ffffffff168152602001612dde86612ecc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b600060ff8216601f8111156108fc57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038316612e7157612e6982612f35565b611aa4612f67565b6001600160a01b038216612e8857612e6983612f35565b612e9183612f35565b611aa482612f35565b6001600160a01b038381166000908152600e6020526040808220548584168352912054611aa4929182169116836127b9565b60006001600160e01b038211156121065760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610968565b6001600160a01b03811660009081526005602090815260408083209183905290912054610bc89190612f75565b612f75565b610acb6006612f6260025490565b6000612f7f612701565b905080612f8b84612fbf565b1015611aa4578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b80546000908103612fd257506000919050565b81548290612fe290600190613605565b81548110612ff257612ff26135ad565b90600052602060002001549050919050565b919050565b82805482825590600052602060002090810192821561305e579160200282015b8281111561305e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613029565b506121069291505b808211156121065760008155600101613066565b6000815180845260005b818110156130a057602081850181015186830182015201613084565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610ab4602083018461307a565b80356001600160a01b038116811461300457600080fd5b600080604083850312156130fd57600080fd5b613106836130d3565b946020939093013593505050565b60006020828403121561312657600080fd5b5035919050565b60008060006060848603121561314257600080fd5b61314b846130d3565b9250613159602085016130d3565b9150604084013590509250925092565b60006020828403121561317b57600080fd5b610ab4826130d3565b8015158114610bc857600080fd5b600080604083850312156131a557600080fd5b6131ae836130d3565b915060208301356131be81613184565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613208576132086131c9565b604052919050565b600067ffffffffffffffff82111561322a5761322a6131c9565b5060051b60200190565b6000602080838503121561324757600080fd5b823567ffffffffffffffff81111561325e57600080fd5b8301601f8101851361326f57600080fd5b803561328261327d82613210565b6131df565b81815260059190911b820183019083810190878311156132a157600080fd5b928401925b828410156132c6576132b7846130d3565b825292840192908401906132a6565b979650505050505050565b60ff60f81b881681526000602060e0818401526132f160e084018a61307a565b8381036040850152613303818a61307a565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561335557835183529284019291840191600101613339565b50909c9b505050505050505050505050565b803560ff8116811461300457600080fd5b60008060008060008060c0878903121561339157600080fd5b61339a876130d3565b955060208701359450604087013593506133b660608801613367565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a0312156133eb57600080fd5b6133f4886130d3565b9650613402602089016130d3565b9550604088013594506060880135935061341e60808901613367565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561344d57600080fd5b613456836130d3565b9150613464602084016130d3565b90509250929050565b6000806040838503121561348057600080fd5b613489836130d3565b9150602083013563ffffffff811681146131be57600080fd5b600181811c908216806134b657607f821691505b60208210810361238257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156108fc576108fc6134d6565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b60208082526029908201527f506169722073686f756c6420636f6e7461696e73206174206c6561737420322060408201526861646472657373657360b81b606082015260800190565b815160009082906020808601845b838110156135a15781516001600160a01b03168552938201939082019060010161357c565b50929695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526022908201527f43616e6e6f742073657420546178206d6f72652074686174206d61782076616c604082015261756560f01b606082015260800190565b818103818111156108fc576108fc6134d6565b60006040820184835260206040818501528185548084526060860191508660005282600020935060005b818110156136675784546001600160a01b031683526001948501949284019201613642565b5090979650505050505050565b6000602080838503121561368757600080fd5b825167ffffffffffffffff81111561369e57600080fd5b8301601f810185136136af57600080fd5b80516136bd61327d82613210565b81815260059190911b820183019083810190878311156136dc57600080fd5b928401925b828410156132c6578351825292840192908401906136e1565b80820281158282048414176108fc576108fc6134d6565b634e487b7160e01b600052601260045260246000fd5b60008261374457634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561375b57600080fd5b8151610ab481613184565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137b65784516001600160a01b031683529383019391830191600101613791565b50506001600160a01b03969096166060850152505050608001529392505050565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220dfdaeadf124529cadd344365132632e4e8204407ff5795ec574be5c78c86e1cf64736f6c63430008130033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000005dc000000000000000000000000000000000000000000000000000000000000000b41666963696f6e6144414f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044144414f00000000000000000000000000000000000000000000000000000000
0xa2646970667358221220dfdaeadf124529cadd344365132632e4e8204407ff5795ec574be5c78c86e1cf64736f6c63430008130033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000005dc000000000000000000000000000000000000000000000000000000000000000b41666963696f6e6144414f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044144414f00000000000000000000000000000000000000000000000000000000