[ { "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": "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": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "feesLP", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "feesPool", "type": "uint256" } ], "name": "FeesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "int256", "name": "amount0", "type": "int256" }, { "indexed": false, "internalType": "int256", "name": "amount1", "type": "int256" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "reserve0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "reserve1", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fictiveReserve0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fictiveReserve1", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "priceAverage0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "priceAverage1", "type": "uint256" } ], "name": "Sync", "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": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "amount0_", "type": "uint256" }, { "internalType": "uint256", "name": "amount1_", "type": "uint256" } ], "stateMutability": "nonpayable", "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": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFeeToAmounts", "outputs": [ { "internalType": "uint256", "name": "fees0_", "type": "uint256" }, { "internalType": "uint256", "name": "fees1_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFictiveReserves", "outputs": [ { "internalType": "uint256", "name": "fictiveReserve0_", "type": "uint256" }, { "internalType": "uint256", "name": "fictiveReserve1_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPairFees", "outputs": [ { "internalType": "uint128", "name": "feesLP_", "type": "uint128" }, { "internalType": "uint128", "name": "feesPool_", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPriceAverage", "outputs": [ { "internalType": "uint256", "name": "priceAverage0_", "type": "uint256" }, { "internalType": "uint256", "name": "priceAverage1_", "type": "uint256" }, { "internalType": "uint256", "name": "priceAverageLastTimestamp_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint256", "name": "reserve0_", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fictiveReserveIn", "type": "uint256" }, { "internalType": "uint256", "name": "_fictiveReserveOut", "type": "uint256" }, { "internalType": "uint256", "name": "_priceAverageLastTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "_priceAverageIn", "type": "uint256" }, { "internalType": "uint256", "name": "_priceAverageOut", "type": "uint256" }, { "internalType": "uint256", "name": "_currentTimestamp", "type": "uint256" } ], "name": "getUpdatedPriceAverage", "outputs": [ { "internalType": "uint256", "name": "priceAverageIn_", "type": "uint256" }, { "internalType": "uint256", "name": "priceAverageOut_", "type": "uint256" } ], "stateMutability": "pure", "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": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" }, { "internalType": "uint128", "name": "_feesLP", "type": "uint128" }, { "internalType": "uint128", "name": "_feesPool", "type": "uint128" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount0", "type": "uint256" }, { "internalType": "uint256", "name": "_amount1", "type": "uint256" }, { "internalType": "address", "name": "_payer", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "liquidity_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint128", "name": "_feesLP", "type": "uint128" }, { "internalType": "uint128", "name": "_feesPool", "type": "uint128" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "bool", "name": "_zeroForOne", "type": "bool" }, { "internalType": "int256", "name": "_amountSpecified", "type": "int256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "swap", "outputs": [ { "internalType": "int256", "name": "amount0_", "type": "int256" }, { "internalType": "int256", "name": "amount1_", "type": "int256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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" } ]
610180604052600b80546001600160801b0319166001179055600e80546001600160f81b0316600160f81b1790553480156200003a57600080fd5b506040518060400160405280601081526020016f29b6b0b92232bc10262816aa37b5b2b760811b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280601081526020016f29b6b0b92232bc10262816aa37b5b2b760811b815250604051806040016040528060078152602001660534445582d4c560cc1b8152508160039081620000d991906200030a565b506004620000e882826200030a565b50505062000106600583620001c660201b620018491790919060201c565b6101205262000123816006620001c6602090811b6200184917901c565b61014052815160208084019190912060e052815190820120610100524660a052620001b160e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0525033610160526200044b565b6000602083511015620001e657620001de8362000216565b905062000210565b82620001fd836200026260201b6200187a1760201c565b906200020a90826200030a565b5060ff90505b92915050565b600080829050601f815111156200024d578260405163305a27a960e01b8152600401620002449190620003d6565b60405180910390fd5b80516200025a8262000426565b179392505050565b90565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029057607f821691505b602082108103620002b157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030557600081815260208120601f850160051c81016020861015620002e05750805b601f850160051c820191505b818110156200030157828155600101620002ec565b5050505b505050565b81516001600160401b0381111562000326576200032662000265565b6200033e816200033784546200027b565b84620002b7565b602080601f8311600181146200037657600084156200035d5750858301515b600019600386901b1c1916600185901b17855562000301565b600085815260208120601f198616915b82811015620003a75788860151825594840194600190910190840162000386565b5085821015620003c65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b818110156200040557858101830151858201604001528201620003e7565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620002b15760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051614bcb620004d4600039600081816103e70152818161067f015281816111b60152818161140901528181612d690152613c8d0152600061157401526000611549015260006128aa01526000612882015260006127dd01526000612807015260006128310152614bcb6000f3fe608060405234801561001057600080fd5b50600436106101ce5760003560e01c80637ecebe0011610104578063a9059cbb116100a2578063dd62ed3e11610071578063dd62ed3e1461042f578063ee2046c714610442578063f74bfe8e1461047e578063fb753b691461049157600080fd5b8063a9059cbb146103cf578063c45a0155146103e2578063d21220a714610409578063d505accf1461041c57600080fd5b806395d89b41116100de57806395d89b41146103765780639a20767b1461037e578063a457c2d71461039a578063a6706e14146103ad57600080fd5b80637ecebe001461033557806384b0196e1461034857806389afcb441461036357600080fd5b80631f18b3711161017157806332760c7a1161014b57806332760c7a146102de5780633644e515146102f157806339509351146102f957806370a082311461030c57600080fd5b80631f18b371146102a957806323b872dd146102bc578063313ce567146102cf57600080fd5b8063095ea7b3116101ad578063095ea7b3146102345780630dfe168114610257578063123a456a1461028257806318160ddd1461029757600080fd5b80623b15fd146101d357806306fdde03146102025780630902f1ac14610217575b600080fd5b600b54604080516001600160801b038084168252600160801b9093049092166020830152015b60405180910390f35b61020a6104a4565b6040516101f99190614424565b61021f610536565b604080519283526020830191909152016101f9565b61024761024236600461444c565b61065a565b60405190151581526020016101f9565b60095461026a906001600160a01b031681565b6040516001600160a01b0390911681526020016101f9565b61029561029036600461448f565b610674565b005b6002545b6040519081526020016101f9565b61021f6102b73660046144f5565b610726565b6102476102ca366004614594565b6113e3565b604051601281526020016101f9565b6102956102ec3660046145d5565b611407565b61029b6114ec565b61024761030736600461444c565b6114fb565b61029b61031a366004614608565b6001600160a01b031660009081526020819052604090205490565b61029b610343366004614608565b61151d565b61035061153b565b6040516101f99796959493929190614625565b61021f610371366004614608565b6115c4565b61020a6115e2565b600c546001600160801b0380821691600160801b90041661021f565b6102476103a836600461444c565b6115f1565b600e546001600160681b03600160281b8204811691600160901b90041661021f565b6102476103dd36600461444c565b61166c565b61026a7f000000000000000000000000000000000000000000000000000000000000000081565b600a5461026a906001600160a01b031681565b61029561042a3660046146bb565b61167a565b61029b61043d366004614732565b6117de565b600d54600e54604080516001600160801b038085168252600160801b909404909316602084015264ffffffffff909116908201526060016101f9565b61029b61048c36600461476b565b611809565b61021f61049f3660046147b5565b611829565b6060600380546104b3906147f8565b80601f01602080910402602001604051908101604052809291908181526020018280546104df906147f8565b801561052c5780601f106105015761010080835404028352916020019161052c565b820191906000526020600020905b81548152906001019060200180831161050f57829003601f168201915b5050505050905090565b600e546009546040516370a0823160e01b81523060048201526000928392600160281b9091046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bc919061482c565b6105c6919061485b565b600e54600a546040516370a0823160e01b8152306004820152929450600160901b9091046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064a919061482c565b610654919061485b565b90509091565b60003361066881858561187d565b60019150505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106e65760405162461bcd60e51b815260206004820152601260248201527129b6b0b92232bc1d102327a92124a22222a760711b60448201526064015b60405180910390fd5b600980546001600160a01b038087166001600160a01b031992831617909255600a80549286169290911691909117905561072082826119a1565b50505050565b600e546000908190600160f81b900460ff166001146107575760405162461bcd60e51b81526004016106dd9061486e565b600e80546001600160f81b0316600160f91b17905560008590036107b45760405162461bcd60e51b815260206004820152601460248201527314db585c91195e0e8816915493d7d05353d5539560621b60448201526064016106dd565b604080516101208101825260008082526020820181905291810182905260608101829052608081018290526009546001600160a01b0390811660a08301819052600a54821660c084015260e0830184905261010083019390935290919089161480159061083757508060c001516001600160a01b0316886001600160a01b031614155b6108795760405162461bcd60e51b8152602060048201526013602482015272536d61724465783a20494e56414c49445f544f60681b60448201526064016106dd565b866109c057600e5460c08201516040516370a0823160e01b8152306004820152600160901b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610901919061482c565b61090b919061485b565b600e5460a08301516040516370a0823160e01b8152306004820152600160281b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e919061482c565b610998919061485b565b600c54600d546001600160801b03600160801b80840482169382169290810482169116610b01565b600e5460a08201516040516370a0823160e01b8152306004820152600160281b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a43919061482c565b610a4d919061485b565b600e5460c08301516040516370a0823160e01b8152306004820152600160901b9092046001600160681b0316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061482c565b610ada919061485b565b600c54600d546001600160801b0380831692600160801b9081900482169280831692919004165b6001600160801b0390811660808801819052918116606088018190529281166040880181905293166020870181905261010087019490945260e0860194909452600e54610b599464ffffffffff909116919042611a9d565b6080830152606082015286610b8857610b758160800151611b8c565b610b828260600151611b8c565b42610ba4565b610b958160600151611b8c565b610ba28260800151611b8c565b425b600e805464ffffffffff90921664ffffffffff199092169190911790556001600160801b03918216908216600160801b9081026fffffffffffffffffffffffffffffffff191691909117600d55600b5404166000871315610cb2576000610c91604051806101200160405280610c198b611bf9565b81526020018560e001518152602001856101000151815260200185602001518152602001856040015181526020018560600151815260200185608001518152602001600b60009054906101000a90046001600160801b03166001600160801b03168152602001846001600160801b0316815250611c4b565b6040880152602087015250909150610caa905081611fcc565b835250610d6a565b6000610d4d604051806101200160405280610cd58b610cd090614897565b611bf9565b81526020018560e001518152602001856101000151815260200185602001518152602001856040015181526020018560600151815260200185608001518152602001600b60009054906101000a90046001600160801b03166001600160801b03168152602001846001600160801b0316815250612036565b6040880152602087015250909150610d66905081611fcc565b8352505b87610d915760008713610d805781518790610dae565b8151610d8b90614897565b87610dae565b60008713610da157815187610dae565b81518790610dae90614897565b90945092508715610fb5576000831215610dda57610dda8260c001518a85610dd590614897565b6122ab565b60405163a1dab4eb60e01b8152339063a1dab4eb90610e0390879087908b908b906004016148b3565b600060405180830381600087803b158015610e1d57600080fd5b505af1158015610e31573d6000803e3d6000fd5b5050505060e08201516009546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea6919061482c565b60e08401819052610eb686611bf9565b600e54610ed390600160281b90046001600160681b0316846148f0565b610edd91906148f0565b1115610f3d5760405162461bcd60e51b815260206004820152602960248201527f536d61724465783a20494e53554646494349454e545f544f4b454e305f494e50604482015268155517d05353d5539560ba1b60648201526084016106dd565b600a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa9919061482c565b610100840152506111a8565b6000841215610fd157610fd18260a001518a86610dd590614897565b60405163a1dab4eb60e01b8152339063a1dab4eb90610ffa90879087908b908b906004016148b3565b600060405180830381600087803b15801561101457600080fd5b505af1158015611028573d6000803e3d6000fd5b5050505060e0820151600a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109d919061482c565b60e084018190526110ad85611bf9565b600e546110ca90600160901b90046001600160681b0316846148f0565b6110d491906148f0565b11156111345760405162461bcd60e51b815260206004820152602960248201527f536d61724465783a20494e53554646494349454e545f544f4b454e315f494e50604482015268155517d05353d5539560ba1b60648201526084016106dd565b6009546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a0919061482c565b610100840152505b6000806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112369190614903565b6001600160a01b03161415905088156112eb5780156112bf57611278620f42406112696001600160801b03851688614920565b611273919061494d565b6123dc565b600e805460059061129a908490600160281b90046001600160681b031661496f565b92506101000a8154816001600160681b0302191690836001600160681b031602179055505b6112e68360e001518461010001518560200151866040015187606001518860800151612445565b611379565b80156113525761130b620f42406112696001600160801b03851687614920565b600e805460129061132d908490600160901b90046001600160681b031661496f565b92506101000a8154816001600160681b0302191690836001600160681b031602179055505b6113798361010001518460e001518560400151866020015187608001518860600151612445565b60408051868152602081018690526001600160a01b038c169133917fa4228e1eb11eb9b31069d9ed20e7af9a010ca1a02d4855cee54e08e188fcc32c910160405180910390a35050600e80546001600160f81b0316600160f81b1790555090969095509350505050565b6000336113f18582856125b8565b6113fc85858561262c565b506001949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611465573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114899190614903565b6001600160a01b0316336001600160a01b0316146114de5760405162461bcd60e51b815260206004820152601260248201527129b6b0b92232bc1d102727aa2fa7aba722a960711b60448201526064016106dd565b6114e882826119a1565b5050565b60006114f66127d0565b905090565b60003361066881858561150e83836117de565b61151891906148f0565b61187d565b6001600160a01b03811660009081526007602052604081205461066e565b60006060808280808361156f7f000000000000000000000000000000000000000000000000000000000000000060056128fb565b61159a7f000000000000000000000000000000000000000000000000000000000000000060066128fb565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000806115d08361299f565b90925090506115dd612d65565b915091565b6060600480546104b3906147f8565b600033816115ff82866117de565b90508381101561165f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106dd565b6113fc828686840361187d565b60003361066881858561262c565b834211156116ca5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106dd565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886116f98c612ef0565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061175482612f18565b9050600061176482878787612f45565b9050896001600160a01b0316816001600160a01b0316146117c75760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016106dd565b6117d28a8a8a61187d565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600061181785858585612f6d565b9050611821612d65565b949350505050565b60008061183a888888888888611a9d565b90999098509650505050505050565b60006020835110156118655761185e836134d8565b905061066e565b8161187084826149fa565b5060ff905061066e565b90565b6001600160a01b0383166118df5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106dd565b6001600160a01b0382166119405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b816001600160801b03166000036119f25760405162461bcd60e51b81526020600482015260156024820152740536d61724465783a205a45524f5f464545535f4c5605c1b60448201526064016106dd565b611a00600a620f424061494d565b611a0a8284614aba565b6001600160801b03161115611a555760405162461bcd60e51b81526020600482015260116024820152700a6dac2e488caf074408c8a8aa6be9a82b607b1b60448201526064016106dd565b6001600160801b03828116600160801b9183169182028117600b556040517f64f84976d9c917a44796104a59950fdbd9b3c16a5dd348b546d738301f6bd06890600090a35050565b60008085831015611af05760405162461bcd60e51b815260206004820152601e60248201527f536d6172646578506169723a20494e56414c49445f54494d455354414d50000060448201526064016106dd565b85600003611b02575086905085611b81565b828603611b13575083905082611b81565b6000611b2a611b22888661485b565b61012c613516565b899350905061012c611b3c8983614920565b878588611b4b8661012c61485b565b611b559190614920565b611b5f9190614920565b611b69919061494d565b611b7391906148f0565b611b7d919061494d565b9150505b965096945050505050565b60006001600160801b03821115611bf55760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016106dd565b5090565b600080821215611bf55760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016106dd565b60008060008060008560000151600003611cb95760405162461bcd60e51b815260206004820152602960248201527f536d61724465784c6962726172793a20494e53554646494349454e545f494e50604482015268155517d05353d5539560ba1b60648201526084016106dd565b602086015115801590611ccf5750604086015115155b8015611cde5750606086015115155b8015611ced5750608086015115155b611d095760405162461bcd60e51b81526004016106dd90614ada565b6000620f42408760e001516001600160801b03168861010001516001600160801b0316620f4240611d3a919061485b565b611d44919061485b565b8851611d509190614920565b611d5a919061494d565b90506000611dd96040518061012001604052808481526020018a6020015181526020018a6040015181526020018a6060015181526020018a6080015181526020018a60a0015181526020018a60c0015181526020018a60e001516001600160801b031681526020018a61010001516001600160801b031681525061352e565b90508181148015611e015750611e01886060015189608001518a60a001518b60c0015161372b565b15611e2d57611e22886020015189604001518a606001518b60800151613752565b60808a015260608901525b60008860e001516001600160801b03168961010001516001600160801b0316620f4240611e5a919061485b565b611e64919061485b565b611e71620f424084614920565b611e7b919061494d565b9050611ef86040518061012001604052808381526020018b6020015181526020018b6040015181526020018b6060015181526020018b6080015181526020018b60a0015181526020018b60c0015181526020018b60e001516001600160801b031681526020018b61010001516001600160801b031681525061384e565b8d51949c50929a509098509650945081908a90611f1690839061485b565b9052505081811015611fc157611f2e86868686613752565b80945081955050506000611fa76040518061012001604052808b6000015181526020018981526020018881526020018781526020018681526020018b60a0015181526020018b60c0015181526020018b60e001516001600160801b031681526020018b61010001516001600160801b031681525061384e565b929a50909850965094509050611fbd81896148f0565b9750505b505091939590929450565b60006001600160ff1b03821115611bf55760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016106dd565b600080600080600085600001516000036120a55760405162461bcd60e51b815260206004820152602a60248201527f536d61724465784c6962726172793a20494e53554646494349454e545f4f555460448201526914155517d05353d5539560b21b60648201526084016106dd565b608086015186511080156120bc5750602086015115155b80156120cb5750604086015115155b80156120da5750606086015115155b80156120e95750608086015115155b6121055760405162461bcd60e51b81526004016106dd90614ada565b60006121108761396a565b87519091508114801561213a575061213a876060015188608001518960a001518a60c0015161372b565b156121665761215b8760200151886040015189606001518a60800151613752565b608089015260608801525b6121e1604051806101200160405280838152602001896020015181526020018960400151815260200189606001518152602001896080015181526020018960a0015181526020018960c0015181526020018960e001516001600160801b031681526020018961010001516001600160801b0316815250613b1d565b8b51949a50929850909650945092508110156122a15761220385858585613752565b80935081945050506000612287604051806101200160405280848b6000015161222c919061485b565b81526020018881526020018781526020018681526020018581526020018a60a0015181526020018a60c0015181526020018a60e001516001600160801b031681526020018a61010001516001600160801b0316815250613b1d565b92995090975095509350905061229d81886148f0565b9650505b5091939590929450565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916123079190614b20565b6000604051808303816000865af19150503d8060008114612344576040519150601f19603f3d011682016040523d82523d6000602084013e612349565b606091505b50915091508180156123735750805115806123735750808060200190518101906123739190614b3c565b6123d55760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016106dd565b5050505050565b60006001600160681b03821115611bf55760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663034206269747360c81b60648201526084016106dd565b831580159061245357508215155b6124a95760405162461bcd60e51b815260206004820152602160248201527f536d61724465783a20464943544956455f52455345525645535f544f4f5f4c4f6044820152605760f81b60648201526084016106dd565b6001600160801b0384118015906124c757506001600160801b038311155b6125075760405162461bcd60e51b8152602060048201526011602482015270536d61724465783a204f564552464c4f5760781b60448201526064016106dd565b6001600160801b03838116600160801b0290851617600c55600e547f2a368c7f33bb86e2d999940a3989d849031aff29b750f67947e6b8e8c3d2ffd69061255f906001600160681b03600160281b909104168861485b565b600e5461257c90600160901b90046001600160681b03168861485b565b6040805192835260208301919091528101869052606081018590526080810184905260a0810183905260c00160405180910390a1505050505050565b60006125c484846117de565b90506000198114610720578181101561261f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106dd565b610720848484840361187d565b6001600160a01b0383166126905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106dd565b6001600160a01b0382166126f25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106dd565b6001600160a01b0383166000908152602081905260409020548181101561276a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106dd565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610720565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561282957507f000000000000000000000000000000000000000000000000000000000000000046145b1561285357507f000000000000000000000000000000000000000000000000000000000000000090565b6114f6604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b606060ff831461290e5761185e83613c49565b81805461291a906147f8565b80601f0160208091040260200160405190810160405280929190818152602001828054612946906147f8565b80156129935780601f1061296857610100808354040283529160200191612993565b820191906000526020600020905b81548152906001019060200180831161297657829003601f168201915b5050505050905061066e565b600e546000908190600160f81b900460ff166001146129d05760405162461bcd60e51b81526004016106dd9061486e565b600e80546001600160f81b0316600160f91b1790556129ed613c88565b50600954600a546040516370a0823160e01b81523060048201526001600160a01b03928316929091169060009083906370a0823190602401602060405180830381865afa158015612a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a66919061482c565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015612ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad4919061482c565b306000908152602081905260409020546002549192509080612af68584614920565b612b00919061494d565b975080612b0d8484614920565b612b17919061494d565b96508715801590612b2757508615155b612b825760405162461bcd60e51b815260206004820152602660248201527f536d61724465783a20494e53554646494349454e545f4c49515549444954595f60448201526510955493915160d21b60648201526084016106dd565b600c546001600160801b0380821691600160801b90041682612ba48584614920565b612bae919061494d565b612bb8908361485b565b915082612bc58583614920565b612bcf919061494d565b612bd9908261485b565b9050612be53085613dcf565b612bf0888c8c6122ab565b612bfb878c8b6122ab565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015612c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c63919061482c565b6040516370a0823160e01b81523060048201529096506001600160a01b038816906370a0823190602401602060405180830381865afa158015612caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cce919061482c565b600d54909550612cf99087908790859085906001600160801b0380821691600160801b900416612445565b604080518b8152602081018b90526001600160a01b038d169133917f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2910160405180910390a35050600e80546001600160f81b0316600160f81b17905550959794965093945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de99190614903565b604080518082018252601c81527f65786563757465576f726b28616464726573732c616464726573732900000000602091820152600954600a5483516001600160a01b039283166024820152908216604480830191909152845180830390910181526064909101845291820180516001600160e01b0316633048c02960e01b179052915192935090831691612e7e9190614b20565b6000604051808303816000865af19150503d8060008114612ebb576040519150601f19603f3d011682016040523d82523d6000602084013e612ec0565b606091505b5050505a600003612eed5760405162461bcd60e51b815260206004820152600060248201526044016106dd565b50565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b600061066e612f256127d0565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612f5687878787613f01565b91509150612f6381613fc5565b5095945050505050565b600e54600090600160f81b900460ff16600114612f9c5760405162461bcd60e51b81526004016106dd9061486e565b600e80546001600160f81b0316600160f91b179055612fb9613c88565b506009546040516370a0823160e01b8152306004820152600091829182916001600160a01b0316906370a0823190602401602060405180830381865afa158015613007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302b919061482c565b600a546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309d919061482c565b905060006130aa60025490565b6040805160a0810182526009546001600160a01b039081168252600a548116602083019081528284018e8152606084018e81528d841660808601908152955163797c4a1360e01b815294518416600486015291518316602485015251604484015251606483015291519091166084820152909150339063797c4a139060a401600060405180830381600087803b15801561314357600080fd5b505af1158015613157573d6000803e3d6000fd5b50506009546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa1580156131a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ca919061482c565b600a546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061323c919061482c565b90506132488b866148f0565b8210156132975760405162461bcd60e51b815260206004820152601e60248201527f536d61724465783a20494e53554646494349454e545f414d4f554e545f30000060448201526064016106dd565b6132a18a856148f0565b8110156132f05760405162461bcd60e51b815260206004820152601e60248201527f536d61724465783a20494e53554646494349454e545f414d4f554e545f31000060448201526064016106dd565b82600003613346576103e861330d6133088c8e614920565b61410f565b613317919061485b565b975061332761dead6103e86141f7565b61333260028361494d565b965061333f60028261494d565b95506133dc565b61337885613354858e614920565b61335e919061494d565b85613369868e614920565b613373919061494d565b613516565b97508261338589826148f0565b600c5461339b91906001600160801b0316614920565b6133a5919061494d565b9650826133b289826148f0565b600c546133cf9190600160801b90046001600160801b0316614920565b6133d9919061494d565b95505b8760000361343b5760405162461bcd60e51b815260206004820152602660248201527f536d61724465783a20494e53554646494349454e545f4c49515549444954595f60448201526513525395115160d21b60648201526084016106dd565b6134458c896141f7565b600d5461346d90839083908a908a906001600160801b0380821691600160801b900416612445565b604080518c8152602081018c90526001600160a01b038e169133917f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee910160405180910390a35050600e80546001600160f81b0316600160f81b179055509398975050505050505050565b600080829050601f81511115613503578260405163305a27a960e01b81526004016106dd9190614424565b805161350e82614b59565b179392505050565b60008183106135255781613527565b825b9392505050565b805160c082015160608301516135449190614920565b8260a0015183608001516135589190614920565b11156137265760008260e001516001600160801b031683610100015160026135809190614b7d565b6001600160801b0316613597620f42406002614920565b6135a1919061485b565b6135ab919061485b565b83606001516135ba9190614920565b905060008361010001516001600160801b0316620f42406135db919061485b565b6135e6906002614920565b60e08501519091506000906135fb9080614b7d565b6001600160801b0316856060015186606001516136189190614920565b6136229190614920565b61010086015161363e906001600160801b0316620f424061485b565b8660e001516001600160801b03168761010001516001600160801b0316620f4240613669919061485b565b613673919061485b565b61367d9190614920565b8660a001518760c001518860800151896060015161369b9190614920565b6136a6906004614920565b6136b0919061494d565b6136ba9190614920565b6136c49190614920565b6136ce91906148f0565b905060008286600001516136e29190614920565b6136ec90856148f0565b90506136f88180614920565b82101561372157828461370a8461410f565b613714919061485b565b61371e919061494d565b94505b505050505b919050565b600061374961373a8387614920565b6137448587614920565b6142b6565b95945050505050565b60008061375f8387614920565b6137698587614920565b10156137e657600086858561377e8980614920565b613788919061494d565b6137929190614920565b61379c919061494d565b9050836137a98688614920565b6137b3919061494d565b846137be8784614920565b6137c8919061494d565b6137d291906148f0565b92506137de81876148f0565b91505061382b565b85836137f28787614920565b6137fc919061494d565b61380691906148f0565b915084846138148589614920565b61381e919061494d565b61382891906148f0565b90505b61383660048361494d565b915061384360048261494d565b905094509492505050565b6000806000806000808661010001516001600160801b03168760e001516001600160801b0316620f4240613882919061485b565b61388c919061485b565b87516138989190614920565b905060008760800151826138ac9190614920565b9050600082620f42408a606001516138c49190614920565b6138ce91906148f0565b90506138da818361494d565b97506000620f42408a60e001516001600160801b03168b600001516138ff9190614920565b61390990866148f0565b613913919061494d565b9050808a6020015161392591906148f0565b9750808a6060015161393791906148f0565b9550888a60400151613949919061485b565b9650888a6080015161395b919061485b565b94505050505091939590929450565b805160e08201516101008301516000916001600160801b03908116916139949116620f424061485b565b61399e919061485b565b90508260c0015183606001516139b49190614920565b8360a0015184608001516139c89190614920565b1115612f125760008360a001518460c001518560e001516001600160801b031686606001516139f79190614920565b613a019190614920565b613a0b919061494d565b9050600081838660800151613a209190614920565b613a2b906002614920565b613a3591906148f0565b90506000613a44846002614920565b90506000613a528480614920565b8760e001516001600160801b03168861010001516001600160801b0316620f4240613a7d919061485b565b613a879088614920565b868a60800151613a979190614920565b613aa2906004614920565b613aac9190614920565b613ab6919061494d565b613ac091906148f0565b90506000828860000151613ad49190614920565b613ade908561485b565b9050613aea8180614920565b821115613b125782613afb8361410f565b613b05908661485b565b613b0f919061494d565b96505b505050505050919050565b600080600080600080620f424087600001518860600151613b3e9190614920565b613b489190614920565b905060008760e001516001600160801b03168861010001516001600160801b0316620f4240613b77919061485b565b613b81919061485b565b885160808a0151613b92919061485b565b613b9c9190614920565b9050613ba8818361494d565b613bb39060016148f0565b96506000620f42408961010001516001600160801b0316620f4240613bd8919061485b565b613be2908a614920565b613bec919061494d565b9050808960200151613bfe91906148f0565b9650808960600151613c1091906148f0565b895160408b0151919650613c239161485b565b895160808b0151919750613c369161485b565b935050505091939590929450565b505050565b60606000613c5683614318565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d0d9190614903565b6001600160a01b0381161580159350909150613db657600e546001600160681b03600160281b8204811691600160901b9004168115613d7957600954613d5d906001600160a01b031684846122ab565b600e805471ffffffffffffffffffffffffff0000000000191690555b8015613db057600a54613d96906001600160a01b031684836122ab565b600e80546cffffffffffffffffffffffffff60901b191690555b50505090565b600e805465010000000000600160f81b03191690555090565b6001600160a01b038216613e2f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106dd565b6001600160a01b03821660009081526020819052604090205481811015613ea35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106dd565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613f385750600090506003613fbc565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613f8c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613fb557600060019250925050613fbc565b9150600090505b94509492505050565b6000816004811115613fd957613fd9614ba8565b03613fe15750565b6001816004811115613ff557613ff5614ba8565b036140425760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106dd565b600281600481111561405657614056614ba8565b036140a35760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106dd565b60038160048111156140b7576140b7614ba8565b03612eed5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106dd565b60008160000361412157506000919050565b6000600161412e84614340565b901c6001901b9050600181848161414757614147614937565b048201901c9050600181848161415f5761415f614937565b048201901c9050600181848161417757614177614937565b048201901c9050600181848161418f5761418f614937565b048201901c905060018184816141a7576141a7614937565b048201901c905060018184816141bf576141bf614937565b048201901c905060018184816141d7576141d7614937565b048201901c9050613527818285816141f1576141f1614937565b04613516565b6001600160a01b03821661424d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106dd565b806002600082825461425f91906148f0565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000818311156142ec57620f42406142cf600184614920565b6142d9919061494d565b6142e390836148f0565b8310905061066e565b620f42406142fb600185614920565b614305919061494d565b61430f90846148f0565b8210905061066e565b600060ff8216601f81111561066e57604051632cd44ac360e21b815260040160405180910390fd5b600080608083901c1561435557608092831c92015b604083901c1561436757604092831c92015b602083901c1561437957602092831c92015b601083901c1561438b57601092831c92015b600883901c1561439d57600892831c92015b600483901c156143af57600492831c92015b600283901c156143c157600292831c92015b600183901c1561066e5760010192915050565b60005b838110156143ef5781810151838201526020016143d7565b50506000910152565b600081518084526144108160208601602086016143d4565b601f01601f19169290920160200192915050565b60208152600061352760208301846143f8565b6001600160a01b0381168114612eed57600080fd5b6000806040838503121561445f57600080fd5b823561446a81614437565b946020939093013593505050565b80356001600160801b038116811461372657600080fd5b600080600080608085870312156144a557600080fd5b84356144b081614437565b935060208501356144c081614437565b92506144ce60408601614478565b91506144dc60608601614478565b905092959194509250565b8015158114612eed57600080fd5b60008060008060006080868803121561450d57600080fd5b853561451881614437565b94506020860135614528816144e7565b935060408601359250606086013567ffffffffffffffff8082111561454c57600080fd5b818801915088601f83011261456057600080fd5b81358181111561456f57600080fd5b89602082850101111561458157600080fd5b9699959850939650602001949392505050565b6000806000606084860312156145a957600080fd5b83356145b481614437565b925060208401356145c481614437565b929592945050506040919091013590565b600080604083850312156145e857600080fd5b6145f183614478565b91506145ff60208401614478565b90509250929050565b60006020828403121561461a57600080fd5b813561352781614437565b60ff60f81b881681526000602060e08184015261464560e084018a6143f8565b8381036040850152614657818a6143f8565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156146a95783518352928401929184019160010161468d565b50909c9b505050505050505050505050565b600080600080600080600060e0888a0312156146d657600080fd5b87356146e181614437565b965060208801356146f181614437565b95506040880135945060608801359350608088013560ff8116811461471557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561474557600080fd5b823561475081614437565b9150602083013561476081614437565b809150509250929050565b6000806000806080858703121561478157600080fd5b843561478c81614437565b9350602085013592506040850135915060608501356147aa81614437565b939692955090935050565b60008060008060008060c087890312156147ce57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600181811c9082168061480c57607f821691505b602082108103612f1257634e487b7160e01b600052602260045260246000fd5b60006020828403121561483e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561066e5761066e614845565b6020808252600f908201526e14db585c91195e0e881313d0d2d151608a1b604082015260600190565b6000600160ff1b82016148ac576148ac614845565b5060000390565b84815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b8082018082111561066e5761066e614845565b60006020828403121561491557600080fd5b815161352781614437565b808202811582820484141761066e5761066e614845565b634e487b7160e01b600052601260045260246000fd5b60008261496a57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160681b0381811683821601908082111561498f5761498f614845565b5092915050565b634e487b7160e01b600052604160045260246000fd5b601f821115613c4457600081815260208120601f850160051c810160208610156149d35750805b601f850160051c820191505b818110156149f2578281556001016149df565b505050505050565b815167ffffffffffffffff811115614a1457614a14614996565b614a2881614a2284546147f8565b846149ac565b602080601f831160018114614a5d5760008415614a455750858301515b600019600386901b1c1916600185901b1785556149f2565b600085815260208120601f198616915b82811015614a8c57888601518255948401946001909101908401614a6d565b5085821015614aaa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160801b0381811683821601908082111561498f5761498f614845565b60208082526026908201527f536d61724465784c6962726172793a20494e53554646494349454e545f4c495160408201526555494449545960d01b606082015260800190565b60008251614b328184602087016143d4565b9190910192915050565b600060208284031215614b4e57600080fd5b8151613527816144e7565b80516020808301519190811015612f125760001960209190910360031b1b16919050565b6001600160801b03818116838216028082169190828114614ba057614ba0614845565b505092915050565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a