[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "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": "MASK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Sweep", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "WAVAX", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "holder", "type": "address" } ], "name": "checkFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "distributorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMultipliedFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "selling", "type": "bool" } ], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAtTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFee", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "setFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsDividendExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "adr", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "triggerBuybackMultiplier", "type": "bool" } ], "name": "triggerZeusBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "unSetFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405273b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b31f66aa3c1e785363f0875a1b74e27b85fd66c7600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600a62000186919062000e2c565b64e8d4a5100062000198919062000e7d565b600755620001b8603260075462000b7860201b620025c01790919060201c565b600855620001d8601960075462000b7860201b620025c01790919060201c565b6009556000601055600060115561012c601255600060135561012c601455612710601555733f6bfd90e9d8bac2016fc6886924df38b73c55e8601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733f6bfd90e9d8bac2016fc6886924df38b73c55e8601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a601855606460195560c8601e556064601f556107086021556000602260006101000a81548160ff0219169083151502179055506207a120602b556001602c60006101000a81548160ff0219169083151502179055506107d06007546200030f919062000ef7565b602d553480156200031f57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505060007360ae616a2155ee3d9a68541ba4544862310933d4905080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000481573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a7919062000f99565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200050592919062000fdc565b6020604051808303816000875af115801562000525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200054b919062000f99565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200069e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006c4919062000f99565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051620007139062000c84565b6200071f919062001009565b604051809103906000f0801580156200073c573d6000803e3d6000fd5b50602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000a898160075462000b9060201b60201c565b5062000ac0601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075462000b9060201b60201c565b50600754600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000b69919062001037565b60405180910390a35062001054565b6000818362000b88919062000ef7565b905092915050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000c72919062001037565b60405180910390a36001905092915050565b611c59806200584383390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d205780860481111562000cf85762000cf762000c92565b5b600185161562000d085780820291505b808102905062000d188562000cc1565b945062000cd8565b94509492505050565b60008262000d3b576001905062000e0e565b8162000d4b576000905062000e0e565b816001811462000d64576002811462000d6f5762000da5565b600191505062000e0e565b60ff84111562000d845762000d8362000c92565b5b8360020a91508482111562000d9e5762000d9d62000c92565b5b5062000e0e565b5060208310610133831016604e8410600b841016171562000ddf5782820a90508381111562000dd95762000dd862000c92565b5b62000e0e565b62000dee848484600162000cce565b9250905081840481111562000e085762000e0762000c92565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e398262000e15565b915062000e468362000e1f565b925062000e757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d29565b905092915050565b600062000e8a8262000e15565b915062000e978362000e15565b925082820262000ea78162000e15565b9150828204841483151762000ec15762000ec062000c92565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f048262000e15565b915062000f118362000e15565b92508262000f245762000f2362000ec8565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f618262000f34565b9050919050565b62000f738162000f54565b811462000f7f57600080fd5b50565b60008151905062000f938162000f68565b92915050565b60006020828403121562000fb25762000fb162000f2f565b5b600062000fc28482850162000f82565b91505092915050565b62000fd68162000f54565b82525050565b600060408201905062000ff3600083018562000fcb565b62001002602083018462000fcb565b9392505050565b600060208201905062001020600083018462000fcb565b92915050565b620010318162000e15565b82525050565b60006020820190506200104e600083018462001026565b92915050565b6147df80620010646000396000f3fe60806040526004361061037a5760003560e01c80637d1db4a5116101d1578063ca33e64c11610102578063f0b37c04116100a0578063f708a64f1161006f578063f708a64f14610cd3578063f84ba65d14610cfc578063f887ea4014610d25578063fe9fbb8014610d5057610381565b8063f0b37c0414610c1b578063f1f3bca314610c44578063f2fde38b14610c81578063f5cfec0a14610caa57610381565b8063dd62ed3e116100dc578063dd62ed3e14610b5f578063df20fd4914610b9c578063e91f214e14610bc5578063e96fada214610bf057610381565b8063ca33e64c14610acc578063d51ed1c814610af7578063d806d12f14610b3457610381565b8063a51af4c51161016f578063b210b06d11610149578063b210b06d14610a36578063b6a5d7de14610a4d578063bf56b37114610a76578063c6d2577d14610aa157610381565b8063a51af4c5146109a3578063a8aa1b31146109ce578063a9059cbb146109f957610381565b806389ef69f6116101ab57806389ef69f6146108fd57806395d89b41146109265780639d1944f514610951578063a4b45c001461097a57610381565b80637d1db4a51461087c57806382247ec0146108a7578063893d20e8146108d257610381565b80632d48e896116102ab5780635d0044ca116102495780637088fb7f116102235780637088fb7f146107e657806370a08231146107fd57806373b295c21461083a578063751039fc1461086557610381565b80635d0044ca14610769578063658d4b7f146107925780636ddd1713146107bb57610381565b80633425c001116102855780633425c001146106af5780633bb8a8d4146106d8578063571ac8b0146107035780635c85974f1461074057610381565b80632d48e8961461061e5780632f54bf6e14610647578063313ce5671461068457610381565b80631161ae39116103185780632375ce40116102f25780632375ce401461055057806323b872dd14610579578063296020e7146105b65780632b112e49146105f357610381565b80631161ae39146104bf57806318160ddd146104fc578063201e79911461052757610381565b806304a66b481161035457806304a66b48146103f157806306fdde031461041a57806307c89fe814610445578063095ea7b31461048257610381565b806301339c21146103865780630445b6671461039d578063048c7baf146103c857610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610d8d565b005b3480156103a957600080fd5b506103b2610e2a565b6040516103bf9190613a44565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190613ac8565b610e30565b005b3480156103fd57600080fd5b5061041860048036038101906104139190613b2f565b610ebc565b005b34801561042657600080fd5b5061042f610f87565b60405161043c9190613c3a565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190613cba565b610fc4565b6040516104799190613cf6565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190613d11565b611062565b6040516104b69190613cf6565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190613d51565b611154565b6040516104f39190613cf6565b60405180910390f35b34801561050857600080fd5b50610511611169565b60405161051e9190613a44565b60405180910390f35b34801561053357600080fd5b5061054e60048036038101906105499190613d51565b611173565b005b34801561055c57600080fd5b5061057760048036038101906105729190613d91565b6111cd565b005b34801561058557600080fd5b506105a0600480360381019061059b9190613de4565b611253565b6040516105ad9190613cf6565b60405180910390f35b3480156105c257600080fd5b506105dd60048036038101906105d89190613cba565b611435565b6040516105ea9190613cf6565b60405180910390f35b3480156105ff57600080fd5b50610608611455565b6040516106159190613a44565b60405180910390f35b34801561062a57600080fd5b5061064560048036038101906106409190613d51565b6114d7565b005b34801561065357600080fd5b5061066e60048036038101906106699190613cba565b6115b2565b60405161067b9190613cf6565b60405180910390f35b34801561069057600080fd5b5061069961160b565b6040516106a69190613e53565b60405180910390f35b3480156106bb57600080fd5b506106d660048036038101906106d19190613cba565b611614565b005b3480156106e457600080fd5b506106ed6116b7565b6040516106fa9190613cf6565b60405180910390f35b34801561070f57600080fd5b5061072a60048036038101906107259190613cba565b6116ca565b6040516107379190613cf6565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190613e6e565b6116df565b005b34801561077557600080fd5b50610790600480360381019061078b9190613e6e565b61174d565b005b34801561079e57600080fd5b506107b960048036038101906107b49190613e9b565b6117bb565b005b3480156107c757600080fd5b506107d061185e565b6040516107dd9190613cf6565b60405180910390f35b3480156107f257600080fd5b506107fb611871565b005b34801561080957600080fd5b50610824600480360381019061081f9190613cba565b611908565b6040516108319190613a44565b60405180910390f35b34801561084657600080fd5b5061084f611951565b60405161085c9190613eea565b60405180910390f35b34801561087157600080fd5b5061087a611977565b005b34801561088857600080fd5b506108916119d3565b60405161089e9190613a44565b60405180910390f35b3480156108b357600080fd5b506108bc6119d9565b6040516108c99190613a44565b60405180910390f35b3480156108de57600080fd5b506108e76119df565b6040516108f49190613eea565b60405180910390f35b34801561090957600080fd5b50610924600480360381019061091f9190613cba565b611a08565b005b34801561093257600080fd5b5061093b611aab565b6040516109489190613c3a565b60405180910390f35b34801561095d57600080fd5b5061097860048036038101906109739190613e6e565b611ae8565b005b34801561098657600080fd5b506109a1600480360381019061099c9190613f05565b611b49565b005b3480156109af57600080fd5b506109b8611c17565b6040516109c59190613eea565b60405180910390f35b3480156109da57600080fd5b506109e3611c3d565b6040516109f09190613eea565b60405180910390f35b348015610a0557600080fd5b50610a206004803603810190610a1b9190613d11565b611c63565b604051610a2d9190613cf6565b60405180910390f35b348015610a4257600080fd5b50610a4b611c78565b005b348015610a5957600080fd5b50610a746004803603810190610a6f9190613cba565b611cca565b005b348015610a8257600080fd5b50610a8b611d6c565b604051610a989190613a44565b60405180910390f35b348015610aad57600080fd5b50610ab6611d72565b604051610ac39190613a44565b60405180910390f35b348015610ad857600080fd5b50610ae1611d78565b604051610aee9190613eea565b60405180910390f35b348015610b0357600080fd5b50610b1e6004803603810190610b199190613e6e565b611d9e565b604051610b2b9190613a44565b60405180910390f35b348015610b4057600080fd5b50610b49611e10565b604051610b569190613a44565b60405180910390f35b348015610b6b57600080fd5b50610b866004803603810190610b819190613f05565b611e1a565b604051610b939190613a44565b60405180910390f35b348015610ba857600080fd5b50610bc36004803603810190610bbe9190613f45565b611ea1565b005b348015610bd157600080fd5b50610bda611f0e565b604051610be79190613a44565b60405180910390f35b348015610bfc57600080fd5b50610c05611f24565b604051610c129190613eea565b60405180910390f35b348015610c2757600080fd5b50610c426004803603810190610c3d9190613cba565b611f4a565b005b348015610c5057600080fd5b50610c6b6004803603810190610c669190613f85565b611fed565b604051610c789190613a44565b60405180910390f35b348015610c8d57600080fd5b50610ca86004803603810190610ca39190613ff0565b612029565b005b348015610cb657600080fd5b50610cd16004803603810190610ccc919061401d565b612142565b005b348015610cdf57600080fd5b50610cfa6004803603810190610cf59190613e9b565b612201565b005b348015610d0857600080fd5b50610d236004803603810190610d1e9190613e9b565b6124a1565b005b348015610d3157600080fd5b50610d3a612544565b604051610d4791906140bc565b60405180910390f35b348015610d5c57600080fd5b50610d776004803603810190610d729190613cba565b61256a565b604051610d849190613cf6565b60405180910390f35b610d963361256a565b610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90614123565b60405180910390fd5b6000601c5414610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e119061418f565b60405180910390fd5b43601c8190555042601d81905550565b602d5481565b610e393361256a565b610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90614123565b60405180910390fd5b83602260006101000a81548160ff02191690831515021790555082602481905550600060258190555081602681905550806027819055504360288190555050505050565b610ec53361256a565b610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb90614123565b60405180910390fd5b84601081905550836011819055508260128190555081601381905550610f5782610f4985610f3b888a6125d690919063ffffffff16565b6125d690919063ffffffff16565b6125d690919063ffffffff16565b601481905550806015819055506004601554610f73919061420d565b60145410610f8057600080fd5b5050505050565b60606040518060400160405280600c81526020017f55534443205072696e7465720000000000000000000000000000000000000000815250905090565b6000610fcf336115b2565b61100e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110059061428a565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516111429190613a44565b60405180910390a36001905092915050565b60008261116083611d9e565b11905092915050565b6000600754905090565b61117c3361256a565b6111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290614123565b60405180910390fd5b81601881905550806019819055505050565b6111d63361256a565b611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90614123565b60405180910390fd5b60028284611223919061420d565b1115801561123057508183115b61123957600080fd5b82601e8190555081601f8190555080602181905550505050565b6000600754600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611421576113a0826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ec9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61142c848484612641565b90509392505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60006114d2611485600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611908565b6114c46114b3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611908565b600754612cec90919063ffffffff16565b612cec90919063ffffffff16565b905090565b6114e03361256a565b61151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690614123565b60405180910390fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b815260040161157c9291906142aa565b600060405180830381600087803b15801561159657600080fd5b505af11580156115aa573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006006905090565b61161d336115b2565b61165c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116539061428a565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602260009054906101000a900460ff1681565b60006116d882600754611062565b9050919050565b6116e83361256a565b611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90614123565b60405180910390fd5b6103e8600754611737919061420d565b81101561174357600080fd5b8060088190555050565b6117563361256a565b611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c90614123565b60405180910390fd5b6103e86007546117a5919061420d565b8110156117b157600080fd5b8060098190555050565b6117c43361256a565b611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa90614123565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900460ff1681565b61187a336115b2565b6118b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b09061428a565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611904573d6000803e3d6000fd5b5050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611980336115b2565b6119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b69061428a565b60405180910390fd5b600754600881905550600754600981905550565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a11336115b2565b611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a479061428a565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600581526020017f5553444370000000000000000000000000000000000000000000000000000000815250905090565b611af13361256a565b611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790614123565b60405180910390fd5b620b71b08110611b3f57600080fd5b80602b8190555050565b611b523361256a565b611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8890614123565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c70338484612641565b905092915050565b611c813361256a565b611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790614123565b60405180910390fd5b6000602081905550565b611cd3336115b2565b611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061428a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601c5481565b601d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e09611dab611455565b611dfb611dec6002611dde601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611908565b612d0290919063ffffffff16565b85612d0290919063ffffffff16565b6125c090919063ffffffff16565b9050919050565b6000601454905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611eaa3361256a565b611ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee090614123565b60405180910390fd5b81602c60006101000a81548160ff02191690831515021790555080602d819055505050565b6fffffffffffffffffffffffffffffffff801681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f53336115b2565b611f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f899061428a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601c54611fff91906142d3565b1061200e576014549050612024565b811561201e576014549050612024565b60145490505b919050565b612032336115b2565b612071576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120689061428a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516121379190614328565b60405180910390a150565b61214b3361256a565b61218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190614123565b60405180910390fd5b6121b682600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d18565b80156121fd57426020819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a6021546040516121f49190613a44565b60405180910390a15b5050565b61220a3361256a565b612249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224090614123565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122d35750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6122dc57600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156123ce57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161239792919061437e565b600060405180830381600087803b1580156123b157600080fd5b505af11580156123c5573d6000803e3d6000fd5b5050505061249d565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161246a9291906143a7565b600060405180830381600087803b15801561248457600080fd5b505af1158015612498573d6000803e3d6000fd5b505050505b5050565b6124aa3361256a565b6124e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e090614123565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081836125ce919061420d565b905092915050565b600081836125e491906142d3565b905092915050565b6000838311158290612634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262b9190613c3a565b60405180910390fd5b5082840390509392505050565b6000602e60009054906101000a900460ff161561266a57612663848484612ef6565b9050612ce5565b60007360ae616a2155ee3d9a68541ba4544862310933d490506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061270c57508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b90506127188685613064565b801580156127705750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128045760095484600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c391906142d3565b10612803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127fa9061441c565b60405180910390fd5b5b801561283757612812613101565b156128205761281f6131d8565b5b61282861370a565b15612836576128356137bd565b5b5b6128c0846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ec9092919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061290e87613839565b6129185784612924565b612923878787613890565b5b905061297881600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d690919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ad557602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612aa89291906143a7565b600060405180830381600087803b158015612ac257600080fd5b505af1925050508015612ad3575060015b505b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612bef57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612bc29291906143a7565b600060405180830381600087803b158015612bdc57600080fd5b505af1925050508015612bed575060015b505b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479602b546040518263ffffffff1660e01b8152600401612c4c9190613a44565b600060405180830381600087803b158015612c6657600080fd5b505af1925050508015612c77575060015b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cd59190613a44565b60405180910390a3600193505050505b9392505050565b60008183612cfa919061443c565b905092915050565b60008183612d109190614470565b905092915050565b6001602e60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612d5057612d4f6144b2565b5b604051908082528060200260200182016040528015612d7e5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110612db857612db76144e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612e0757612e066144e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c57559dd8460008486426040518663ffffffff1660e01b8152600401612ea494939291906145ce565b6000604051808303818588803b158015612ebd57600080fd5b505af1158015612ed1573d6000803e3d6000fd5b5050505050506000602e60006101000a81548160ff0219169083151502179055505050565b6000612f81826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ec9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061301682600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d690919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b600854811115806130be5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6130fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f490614666565b60405180910390fd5b5050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561316e5750602e60009054906101000a900460ff16155b80156131865750602c60009054906101000a900460ff165b80156131d35750602d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602e60006101000a81548160ff0219169083151502179055506000613203601854601954611154565b61320f57601054613212565b60005b90506000613252600261324460145461323686602d54612d0290919063ffffffff16565b6125c090919063ffffffff16565b6125c090919063ffffffff16565b9050600061326b82602d54612cec90919063ffffffff16565b90506000600267ffffffffffffffff81111561328a576132896144b2565b5b6040519080825280602002602001820160405280156132b85781602001602082028036833780820191505090505b50905030816000815181106132d0576132cf6144e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613341576133406144e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663762b15628460008530426040518663ffffffff1660e01b81526004016133e4959493929190614686565b600060405180830381600087803b1580156133fe57600080fd5b505af1158015613412573d6000803e3d6000fd5b50505050600061342b8247612cec90919063ffffffff16565b905060006134576134466002896125c090919063ffffffff16565b601454612cec90919063ffffffff16565b905060006134936002613485846134778c88612d0290919063ffffffff16565b6125c090919063ffffffff16565b6125c090919063ffffffff16565b905060006134be836134b060125487612d0290919063ffffffff16565b6125c090919063ffffffff16565b905060006134e9846134db60135488612d0290919063ffffffff16565b6125c090919063ffffffff16565b9050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561355557600080fd5b505af193505050508015613567575060015b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156135d0573d6000803e3d6000fd5b5060008911156136e357601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f91b3f7284308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613663969594939291906146e0565b60606040518083038185885af1158015613681573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136a69190614756565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516136da9291906142aa565b60405180910390a15b505050505050505050506000602e60006101000a81548160ff021916908315150217905550565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156137775750602e60009054906101000a900460ff16155b801561378f5750602260009054906101000a900460ff165b80156137aa5750436027546028546137a791906142d3565b11155b80156137b857506026544710155b905090565b6137eb602654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d18565b436028819055506138096026546025546125d690919063ffffffff16565b6025819055506024546025541115613837576000602260006101000a81548160ff0219169083151502179055505b565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806139126015546139046138f5601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611fed565b86612d0290919063ffffffff16565b6125c090919063ffffffff16565b905061396681600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d690919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a069190613a44565b60405180910390a3613a218184612cec90919063ffffffff16565b9150509392505050565b6000819050919050565b613a3e81613a2b565b82525050565b6000602082019050613a596000830184613a35565b92915050565b600080fd5b60008115159050919050565b613a7981613a64565b8114613a8457600080fd5b50565b600081359050613a9681613a70565b92915050565b613aa581613a2b565b8114613ab057600080fd5b50565b600081359050613ac281613a9c565b92915050565b60008060008060808587031215613ae257613ae1613a5f565b5b6000613af087828801613a87565b9450506020613b0187828801613ab3565b9350506040613b1287828801613ab3565b9250506060613b2387828801613ab3565b91505092959194509250565b600080600080600060a08688031215613b4b57613b4a613a5f565b5b6000613b5988828901613ab3565b9550506020613b6a88828901613ab3565b9450506040613b7b88828901613ab3565b9350506060613b8c88828901613ab3565b9250506080613b9d88828901613ab3565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b83811015613be4578082015181840152602081019050613bc9565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c0c82613baa565b613c168185613bb5565b9350613c26818560208601613bc6565b613c2f81613bf0565b840191505092915050565b60006020820190508181036000830152613c548184613c01565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c8782613c5c565b9050919050565b613c9781613c7c565b8114613ca257600080fd5b50565b600081359050613cb481613c8e565b92915050565b600060208284031215613cd057613ccf613a5f565b5b6000613cde84828501613ca5565b91505092915050565b613cf081613a64565b82525050565b6000602082019050613d0b6000830184613ce7565b92915050565b60008060408385031215613d2857613d27613a5f565b5b6000613d3685828601613ca5565b9250506020613d4785828601613ab3565b9150509250929050565b60008060408385031215613d6857613d67613a5f565b5b6000613d7685828601613ab3565b9250506020613d8785828601613ab3565b9150509250929050565b600080600060608486031215613daa57613da9613a5f565b5b6000613db886828701613ab3565b9350506020613dc986828701613ab3565b9250506040613dda86828701613ab3565b9150509250925092565b600080600060608486031215613dfd57613dfc613a5f565b5b6000613e0b86828701613ca5565b9350506020613e1c86828701613ca5565b9250506040613e2d86828701613ab3565b9150509250925092565b600060ff82169050919050565b613e4d81613e37565b82525050565b6000602082019050613e686000830184613e44565b92915050565b600060208284031215613e8457613e83613a5f565b5b6000613e9284828501613ab3565b91505092915050565b60008060408385031215613eb257613eb1613a5f565b5b6000613ec085828601613ca5565b9250506020613ed185828601613a87565b9150509250929050565b613ee481613c7c565b82525050565b6000602082019050613eff6000830184613edb565b92915050565b60008060408385031215613f1c57613f1b613a5f565b5b6000613f2a85828601613ca5565b9250506020613f3b85828601613ca5565b9150509250929050565b60008060408385031215613f5c57613f5b613a5f565b5b6000613f6a85828601613a87565b9250506020613f7b85828601613ab3565b9150509250929050565b600060208284031215613f9b57613f9a613a5f565b5b6000613fa984828501613a87565b91505092915050565b6000613fbd82613c5c565b9050919050565b613fcd81613fb2565b8114613fd857600080fd5b50565b600081359050613fea81613fc4565b92915050565b60006020828403121561400657614005613a5f565b5b600061401484828501613fdb565b91505092915050565b6000806040838503121561403457614033613a5f565b5b600061404285828601613ab3565b925050602061405385828601613a87565b9150509250929050565b6000819050919050565b600061408261407d61407884613c5c565b61405d565b613c5c565b9050919050565b600061409482614067565b9050919050565b60006140a682614089565b9050919050565b6140b68161409b565b82525050565b60006020820190506140d160008301846140ad565b92915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061410d600b83613bb5565b9150614118826140d7565b602082019050919050565b6000602082019050818103600083015261413c81614100565b9050919050565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b6000614179601483613bb5565b915061418482614143565b602082019050919050565b600060208201905081810360008301526141a88161416c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061421882613a2b565b915061422383613a2b565b925082614233576142326141af565b5b828204905092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000614274600683613bb5565b915061427f8261423e565b602082019050919050565b600060208201905081810360008301526142a381614267565b9050919050565b60006040820190506142bf6000830185613a35565b6142cc6020830184613a35565b9392505050565b60006142de82613a2b565b91506142e983613a2b565b9250828201905080821115614301576143006141de565b5b92915050565b600061431282614089565b9050919050565b61432281614307565b82525050565b600060208201905061433d6000830184614319565b92915050565b6000819050919050565b600061436861436361435e84614343565b61405d565b613a2b565b9050919050565b6143788161434d565b82525050565b60006040820190506143936000830185613edb565b6143a0602083018461436f565b9392505050565b60006040820190506143bc6000830185613edb565b6143c96020830184613a35565b9392505050565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b6000614406601d83613bb5565b9150614411826143d0565b602082019050919050565b60006020820190508181036000830152614435816143f9565b9050919050565b600061444782613a2b565b915061445283613a2b565b925082820390508181111561446a576144696141de565b5b92915050565b600061447b82613a2b565b915061448683613a2b565b925082820261449481613a2b565b915082820484148315176144ab576144aa6141de565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61454581613c7c565b82525050565b6000614557838361453c565b60208301905092915050565b6000602082019050919050565b600061457b82614510565b614585818561451b565b93506145908361452c565b8060005b838110156145c15781516145a8888261454b565b97506145b383614563565b925050600181019050614594565b5085935050505092915050565b60006080820190506145e3600083018761436f565b81810360208301526145f58186614570565b90506146046040830185613edb565b6146116060830184613a35565b95945050505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614650601183613bb5565b915061465b8261461a565b602082019050919050565b6000602082019050818103600083015261467f81614643565b9050919050565b600060a08201905061469b6000830188613a35565b6146a8602083018761436f565b81810360408301526146ba8186614570565b90506146c96060830185613edb565b6146d66080830184613a35565b9695505050505050565b600060c0820190506146f56000830189613edb565b6147026020830188613a35565b61470f604083018761436f565b61471c606083018661436f565b6147296080830185613edb565b61473660a0830184613a35565b979650505050505050565b60008151905061475081613a9c565b92915050565b60008060006060848603121561476f5761476e613a5f565b5b600061477d86828701614741565b935050602061478e86828701614741565b925050604061479f86828701614741565b915050925092509256fea26469706673582212207edd32220a72f8c2dc7a7d3ac5e0f35c2bbab8463503b8892a255c42d8f71b2564736f6c63430008110033608060405273b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b31f66aa3c1e785363f0875a1b74e27b85fd66c7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e55348015620000e057600080fd5b5060405162001c5938038062001c59833981810160405281019062000106919062000249565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000156577360ae616a2155ee3d9a68541ba4544862310933d462000158565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200021182620001e4565b9050919050565b620002238162000204565b81146200022f57600080fd5b50565b600081519050620002438162000218565b92915050565b600060208284031215620002625762000261620001df565b5b6000620002728482850162000232565b91505092915050565b6119ce806200028b6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610291578063f0fc6bca146102bc578063ffb2c479146102d3578063ffd49c84146102fc576100dd565b8063ce7c2ac21461021d578063d0e30db01461025c578063e2d2e21914610266576100dd565b80632d48e896116100bb5780632d48e896146101735780633a98ef391461019c5780634fab0ae8146101c7578063997664d7146101f2576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610136575b600080fd5b3480156100ee57600080fd5b506100f7610327565b6040516101049190611386565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611430565b61032d565b005b34801561014257600080fd5b5061015d60048036038101906101589190611470565b6105ec565b60405161016a9190611386565b60405180910390f35b34801561017f57600080fd5b5061019a6004803603810190610195919061149d565b610705565b005b3480156101a857600080fd5b506101b161076f565b6040516101be9190611386565b60405180910390f35b3480156101d357600080fd5b506101dc610775565b6040516101e99190611386565b60405180910390f35b3480156101fe57600080fd5b5061020761077b565b6040516102149190611386565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190611470565b610781565b604051610253939291906114dd565b60405180910390f35b6102646107ab565b005b34801561027257600080fd5b5061027b610b7d565b6040516102889190611386565b60405180910390f35b34801561029d57600080fd5b506102a6610b83565b6040516102b39190611386565b60405180910390f35b3480156102c857600080fd5b506102d1610b89565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190611514565b610b94565b005b34801561030857600080fd5b50610311610d27565b60405161031e9190611386565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038557600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103da576103d982610d2d565b5b60008111801561042c57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561043f5761043a82610fc0565b6104a1565b60008114801561049157506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104a05761049f8261106f565b5b5b61050a816104fc600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461127690919063ffffffff16565b61128c90919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105a2600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112a2565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154036106405760009050610700565b600061068d600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112a2565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116106e857600092505050610700565b6106fb818361127690919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075d57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080357600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108609190611550565b602060405180830381865afa15801561087d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a19190611580565b90506000600267ffffffffffffffff8111156108c0576108bf6115ad565b5b6040519080825280602002602001820160405280156108ee5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110610928576109276115dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610999576109986115dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c57559dd3460008430426040518663ffffffff1660e01b8152600401610a36949392919061170e565b6000604051808303818588803b158015610a4f57600080fd5b505af1158015610a63573d6000803e3d6000fd5b50505050506000610b1883600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ac99190611550565b602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611580565b61127690919063ffffffff16565b9050610b2f8160095461128c90919063ffffffff16565b600981905550610b72610b61600854610b5384600c546112d490919063ffffffff16565b6112ea90919063ffffffff16565b600b5461128c90919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610b9233610d2d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bec57600080fd5b6000600480549050905060008103610c045750610d24565b6000805a905060005b8483108015610c1b57508381105b15610d1f5783600f5410610c32576000600f819055505b610c7b6004600f5481548110610c4b57610c4a6115dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611300565b15610cca57610cc96004600f5481548110610c9957610c986115dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d2d565b5b610cef610ce05a8461127690919063ffffffff16565b8461128c90919063ffffffff16565b92505a9150600f6000815480929190610d0790611789565b91905055508080610d1790611789565b915050610c0d565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001540315610fbd576000610d83826105ec565b90506000811115610fbb57610da381600a5461128c90919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e069291906117d1565b6020604051808303816000875af1158015610e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e499190611832565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ee381600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461128c90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610f74600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112a2565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050611083919061185f565b81548110611094576110936115dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110611112576111116115dc565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506111b2919061185f565b815481106111c3576111c26115dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600480548061123e5761123d611893565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b60008183611284919061185f565b905092915050565b6000818361129a91906118c2565b905092915050565b60006112cd600c546112bf600b54856112d490919063ffffffff16565b6112ea90919063ffffffff16565b9050919050565b600081836112e291906118f6565b905092915050565b600081836112f89190611967565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461135091906118c2565b1080156113665750600e54611364836105ec565b115b9050919050565b6000819050919050565b6113808161136d565b82525050565b600060208201905061139b6000830184611377565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113d1826113a6565b9050919050565b6113e1816113c6565b81146113ec57600080fd5b50565b6000813590506113fe816113d8565b92915050565b61140d8161136d565b811461141857600080fd5b50565b60008135905061142a81611404565b92915050565b60008060408385031215611447576114466113a1565b5b6000611455858286016113ef565b92505060206114668582860161141b565b9150509250929050565b600060208284031215611486576114856113a1565b5b6000611494848285016113ef565b91505092915050565b600080604083850312156114b4576114b36113a1565b5b60006114c28582860161141b565b92505060206114d38582860161141b565b9150509250929050565b60006060820190506114f26000830186611377565b6114ff6020830185611377565b61150c6040830184611377565b949350505050565b60006020828403121561152a576115296113a1565b5b60006115388482850161141b565b91505092915050565b61154a816113c6565b82525050565b60006020820190506115656000830184611541565b92915050565b60008151905061157a81611404565b92915050565b600060208284031215611596576115956113a1565b5b60006115a48482850161156b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061163a6116356116308461160b565b611615565b61136d565b9050919050565b61164a8161161f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611685816113c6565b82525050565b6000611697838361167c565b60208301905092915050565b6000602082019050919050565b60006116bb82611650565b6116c5818561165b565b93506116d08361166c565b8060005b838110156117015781516116e8888261168b565b97506116f3836116a3565b9250506001810190506116d4565b5085935050505092915050565b60006080820190506117236000830187611641565b818103602083015261173581866116b0565b90506117446040830185611541565b6117516060830184611377565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117948261136d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117c6576117c561175a565b5b600182019050919050565b60006040820190506117e66000830185611541565b6117f36020830184611377565b9392505050565b60008115159050919050565b61180f816117fa565b811461181a57600080fd5b50565b60008151905061182c81611806565b92915050565b600060208284031215611848576118476113a1565b5b60006118568482850161181d565b91505092915050565b600061186a8261136d565b91506118758361136d565b925082820390508181111561188d5761188c61175a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006118cd8261136d565b91506118d88361136d565b92508282019050808211156118f0576118ef61175a565b5b92915050565b60006119018261136d565b915061190c8361136d565b925082820261191a8161136d565b915082820484148315176119315761193061175a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006119728261136d565b915061197d8361136d565b92508261198d5761198c611938565b5b82820490509291505056fea2646970667358221220514d5e45eeecc31a036668ed3ec5e759c3f575fceeef6bdd232602915f077b7264736f6c63430008110033