[ { "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": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "developmentWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "marketingWalletUpdated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "account", "type": "address" }, { "internalType": "bool", "name": "blocked", "type": "bool" } ], "name": "blockAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" } ], "name": "blockAddressMultiple", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyDevelopmentFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "outputs": [], "stateMutability": "nonpayable", "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": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityBoostEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rescueExtraEth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellDevelopmentFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "snipeProtectEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForDev", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForMarketing", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_developmentFee", "type": "uint256" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevelopmentWalletInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateLiquidityBoostEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "updateMarketingWalletInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_developmentFee", "type": "uint256" } ], "name": "updateSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSnipeProtect", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff0219169083151502179055506001600d60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600a81526020017f467269656e644c61636b000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4c434b00000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000acc565b5080600490805190602001906200010092919062000acc565b50505062000123620001176200058c60201b60201c565b6200059460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200014f8160016200065a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000be6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000be6565b6040518363ffffffff1660e01b8152600401620002a292919062000c29565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000be6565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a05160016200065a60201b60201c565b6200034560a05160016200074460201b60201c565b6000600190506000600190506000601c90506000600190506000600190506000601c905060006a084595161401484a00000090506103e8600a826200038b919062000c8f565b62000397919062000d1f565b6008819055506103e8603282620003af919062000c8f565b620003bb919062000d1f565b600a81905550612710600a82620003d3919062000c8f565b620003df919062000d1f565b60098190555086600f819055508560108190555084601181905550601154601054600f546200040f919062000d57565b6200041b919062000d57565b600e819055508360138190555082601481905550816015819055506015546014546013546200044b919062000d57565b62000457919062000d57565b601281905550731320311a71ca667e41f9c7709a0fb3a6d5a74ad9600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004c2620007e560201b60201c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200052462000516620007e560201b60201c565b60016200080f60201b60201c565b620005373060016200080f60201b60201c565b620005596200054b620007e560201b60201c565b60016200065a60201b60201c565b6200056c3060016200065a60201b60201c565b6200057e33826200094960201b60201c565b505050505050505062000f76565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200066a6200058c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000690620007e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006e09062000e15565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200081f6200058c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000845620007e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200089e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008959062000e15565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200093d919062000e54565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620009bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b39062000ec1565b60405180910390fd5b620009d06000838362000ac260201b60201c565b8060026000828254620009e4919062000d57565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a3b919062000d57565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000aa2919062000ef4565b60405180910390a362000abe6000838362000ac760201b60201c565b5050565b505050565b505050565b82805462000ada9062000f40565b90600052602060002090601f01602090048101928262000afe576000855562000b4a565b82601f1062000b1957805160ff191683800117855562000b4a565b8280016001018555821562000b4a579182015b8281111562000b4957825182559160200191906001019062000b2c565b5b50905062000b59919062000b5d565b5090565b5b8082111562000b7857600081600090555060010162000b5e565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bae8262000b81565b9050919050565b62000bc08162000ba1565b811462000bcc57600080fd5b50565b60008151905062000be08162000bb5565b92915050565b60006020828403121562000bff5762000bfe62000b7c565b5b600062000c0f8482850162000bcf565b91505092915050565b62000c238162000ba1565b82525050565b600060408201905062000c40600083018562000c18565b62000c4f602083018462000c18565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c9c8262000c56565b915062000ca98362000c56565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ce55762000ce462000c60565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d2c8262000c56565b915062000d398362000c56565b92508262000d4c5762000d4b62000cf0565b5b828204905092915050565b600062000d648262000c56565b915062000d718362000c56565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000da95762000da862000c60565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000dfd60208362000db4565b915062000e0a8262000dc5565b602082019050919050565b6000602082019050818103600083015262000e308162000dee565b9050919050565b60008115159050919050565b62000e4e8162000e37565b82525050565b600060208201905062000e6b600083018462000e43565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ea9601f8362000db4565b915062000eb68262000e71565b602082019050919050565b6000602082019050818103600083015262000edc8162000e9a565b9050919050565b62000eee8162000c56565b82525050565b600060208201905062000f0b600083018462000ee3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f5957607f821691505b6020821081141562000f705762000f6f62000f11565b5b50919050565b60805160a05161552762000fd46000396000818161102c01528181611aa201526129bd015260008181610d1d0152818161296501528181613ae901528181613bca01528181613bf101528181613c8d0152613cb401526155276000f3fe6080604052600436106103035760003560e01c80637bce5a0411610190578063c0246668116100dc578063dd62ed3e11610095578063f11a24d31161006f578063f11a24d314610ba1578063f2fde38b14610bcc578063f637434214610bf5578063f8b45b0514610c205761030a565b8063dd62ed3e14610b10578063e2f4560514610b4d578063ec0d498214610b785761030a565b8063c024666814610a02578063c17b5b8c14610a2b578063c18bc19514610a54578063c8c8ebe414610a7d578063d257b34f14610aa8578063d85ba06314610ae55761030a565b80639a7a23d611610149578063a9059cbb11610123578063a9059cbb14610934578063aef3724d14610971578063b20414111461099a578063b62496f5146109c55761030a565b80639a7a23d6146108a35780639fccce32146108cc578063a457c2d7146108f75761030a565b80637bce5a04146107a55780637d831a8b146107d05780638095d564146107f95780638da5cb5b14610822578063921369131461084d57806395d89b41146108785761030a565b806349bd5a5e1161024f578063594573ad1161020857806370a08231116101e257806370a08231146106ff578063715018a61461073c57806374326f53146107535780637571336a1461077c5761030a565b8063594573ad146106945780636a486a8e146106bd5780636e4faa00146106e85761030a565b806349bd5a5e146105845780634a62bb65146105af5780634cf38517146105da5780634fbee193146106055780635181544a14610642578063535e02d81461066b5761030a565b80631a8145bb116102bc57806323b872dd1161029657806323b872dd146104b457806330cf6831146104f1578063313ce5671461051c57806339509351146105475761030a565b80631a8145bb146104355780631f3fed8f14610460578063203e727e1461048b5761030a565b806306fdde031461030f578063095ea7b31461033a57806310d5de53146103775780631694505e146103b457806318160ddd146103df57806318a94cf11461040a5761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c4b565b6040516103319190613e01565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613ecb565b610cdd565b60405161036e9190613f26565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190613f41565b610cfb565b6040516103ab9190613f26565b60405180910390f35b3480156103c057600080fd5b506103c9610d1b565b6040516103d69190613fcd565b60405180910390f35b3480156103eb57600080fd5b506103f4610d3f565b6040516104019190613ff7565b60405180910390f35b34801561041657600080fd5b5061041f610d49565b60405161042c9190613ff7565b60405180910390f35b34801561044157600080fd5b5061044a610d4f565b6040516104579190613ff7565b60405180910390f35b34801561046c57600080fd5b50610475610d55565b6040516104829190613ff7565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190614012565b610d5b565b005b3480156104c057600080fd5b506104db60048036038101906104d6919061403f565b610e6a565b6040516104e89190613f26565b60405180910390f35b3480156104fd57600080fd5b50610506610f62565b6040516105139190613f26565b60405180910390f35b34801561052857600080fd5b50610531610f75565b60405161053e91906140ae565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190613ecb565b610f7e565b60405161057b9190613f26565b60405180910390f35b34801561059057600080fd5b5061059961102a565b6040516105a691906140d8565b60405180910390f35b3480156105bb57600080fd5b506105c461104e565b6040516105d19190613f26565b60405180910390f35b3480156105e657600080fd5b506105ef611061565b6040516105fc9190613f26565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190613f41565b611074565b6040516106399190613f26565b60405180910390f35b34801561064e57600080fd5b506106696004803603810190610664919061423b565b6110ca565b005b34801561067757600080fd5b50610692600480360381019061068d9190613f41565b6111db565b005b3480156106a057600080fd5b506106bb60048036038101906106b691906142b0565b611317565b005b3480156106c957600080fd5b506106d26113b0565b6040516106df9190613ff7565b60405180910390f35b3480156106f457600080fd5b506106fd6113b6565b005b34801561070b57600080fd5b5061072660048036038101906107219190613f41565b6114e1565b6040516107339190613ff7565b60405180910390f35b34801561074857600080fd5b50610751611529565b005b34801561075f57600080fd5b5061077a600480360381019061077591906142b0565b6115b1565b005b34801561078857600080fd5b506107a3600480360381019061079e91906142dd565b61164a565b005b3480156107b157600080fd5b506107ba611721565b6040516107c79190613ff7565b60405180910390f35b3480156107dc57600080fd5b506107f760048036038101906107f29190613f41565b611727565b005b34801561080557600080fd5b50610820600480360381019061081b919061431d565b611863565b005b34801561082e57600080fd5b50610837611962565b60405161084491906140d8565b60405180910390f35b34801561085957600080fd5b5061086261198c565b60405161086f9190613ff7565b60405180910390f35b34801561088457600080fd5b5061088d611992565b60405161089a9190613e01565b60405180910390f35b3480156108af57600080fd5b506108ca60048036038101906108c591906142dd565b611a24565b005b3480156108d857600080fd5b506108e1611b3d565b6040516108ee9190613ff7565b60405180910390f35b34801561090357600080fd5b5061091e60048036038101906109199190613ecb565b611b43565b60405161092b9190613f26565b60405180910390f35b34801561094057600080fd5b5061095b60048036038101906109569190613ecb565b611c2e565b6040516109689190613f26565b60405180910390f35b34801561097d57600080fd5b50610998600480360381019061099391906142b0565b611c4c565b005b3480156109a657600080fd5b506109af611ce5565b6040516109bc9190613ff7565b60405180910390f35b3480156109d157600080fd5b506109ec60048036038101906109e79190613f41565b611ceb565b6040516109f99190613f26565b60405180910390f35b348015610a0e57600080fd5b50610a296004803603810190610a2491906142dd565b611d0b565b005b348015610a3757600080fd5b50610a526004803603810190610a4d919061431d565b611e30565b005b348015610a6057600080fd5b50610a7b6004803603810190610a769190614012565b611f2f565b005b348015610a8957600080fd5b50610a9261203e565b604051610a9f9190613ff7565b60405180910390f35b348015610ab457600080fd5b50610acf6004803603810190610aca9190614012565b612044565b604051610adc9190613f26565b60405180910390f35b348015610af157600080fd5b50610afa612199565b604051610b079190613ff7565b60405180910390f35b348015610b1c57600080fd5b50610b376004803603810190610b329190614370565b61219f565b604051610b449190613ff7565b60405180910390f35b348015610b5957600080fd5b50610b62612226565b604051610b6f9190613ff7565b60405180910390f35b348015610b8457600080fd5b50610b9f6004803603810190610b9a91906142dd565b61222c565b005b348015610bad57600080fd5b50610bb6612303565b604051610bc39190613ff7565b60405180910390f35b348015610bd857600080fd5b50610bf36004803603810190610bee9190613f41565b612309565b005b348015610c0157600080fd5b50610c0a612401565b604051610c179190613ff7565b60405180910390f35b348015610c2c57600080fd5b50610c35612407565b604051610c429190613ff7565b60405180910390f35b606060038054610c5a906143df565b80601f0160208091040260200160405190810160405280929190818152602001828054610c86906143df565b8015610cd35780601f10610ca857610100808354040283529160200191610cd3565b820191906000526020600020905b815481529060010190602001808311610cb657829003601f168201915b5050505050905090565b6000610cf1610cea61240d565b8484612415565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60155481565b60175481565b60165481565b610d6361240d565b73ffffffffffffffffffffffffffffffffffffffff16610d81611962565b73ffffffffffffffffffffffffffffffffffffffff1614610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce9061445d565b60405180910390fd5b670de0b6b3a76400006103e86001610ded610d3f565b610df791906144ac565b610e019190614535565b610e0b9190614535565b811015610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e44906145d8565b60405180910390fd5b670de0b6b3a764000081610e6191906144ac565b60088190555050565b6000610e778484846125e0565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ec261240d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f399061466a565b60405180910390fd5b610f5685610f4e61240d565b858403612415565b60019150509392505050565b600d60009054906101000a900460ff1681565b60006012905090565b6000611020610f8b61240d565b848460016000610f9961240d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101b919061468a565b612415565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60009054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6110d261240d565b73ffffffffffffffffffffffffffffffffffffffff166110f0611962565b73ffffffffffffffffffffffffffffffffffffffff1614611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d9061445d565b60405180910390fd5b60005b81518110156111d75760016019600084848151811061116b5761116a6146e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111cf9061470f565b915050611149565b5050565b6111e361240d565b73ffffffffffffffffffffffffffffffffffffffff16611201611962565b73ffffffffffffffffffffffffffffffffffffffff1614611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e9061445d565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396560405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61131f61240d565b73ffffffffffffffffffffffffffffffffffffffff1661133d611962565b73ffffffffffffffffffffffffffffffffffffffff1614611393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138a9061445d565b60405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b60125481565b6113be61240d565b73ffffffffffffffffffffffffffffffffffffffff166113dc611962565b73ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114299061445d565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161145890614789565b60006040518083038185875af1925050503d8060008114611495576040519150601f19603f3d011682016040523d82523d6000602084013e61149a565b606091505b50509050806114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d5906147ea565b60405180910390fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61153161240d565b73ffffffffffffffffffffffffffffffffffffffff1661154f611962565b73ffffffffffffffffffffffffffffffffffffffff16146115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c9061445d565b60405180910390fd5b6115af600061332f565b565b6115b961240d565b73ffffffffffffffffffffffffffffffffffffffff166115d7611962565b73ffffffffffffffffffffffffffffffffffffffff161461162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249061445d565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b61165261240d565b73ffffffffffffffffffffffffffffffffffffffff16611670611962565b73ffffffffffffffffffffffffffffffffffffffff16146116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd9061445d565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b61172f61240d565b73ffffffffffffffffffffffffffffffffffffffff1661174d611962565b73ffffffffffffffffffffffffffffffffffffffff16146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a9061445d565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61186b61240d565b73ffffffffffffffffffffffffffffffffffffffff16611889611962565b73ffffffffffffffffffffffffffffffffffffffff16146118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d69061445d565b60405180910390fd5b82600f819055508160108190555080601181905550601154601054600f54611907919061468a565b611911919061468a565b600e819055506028600e54111561195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195490614856565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b6060600480546119a1906143df565b80601f01602080910402602001604051908101604052809291908181526020018280546119cd906143df565b8015611a1a5780601f106119ef57610100808354040283529160200191611a1a565b820191906000526020600020905b8154815290600101906020018083116119fd57829003601f168201915b5050505050905090565b611a2c61240d565b73ffffffffffffffffffffffffffffffffffffffff16611a4a611962565b73ffffffffffffffffffffffffffffffffffffffff1614611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a979061445d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b26906148e8565b60405180910390fd5b611b3982826133f5565b5050565b60185481565b60008060016000611b5261240d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c069061497a565b60405180910390fd5b611c23611c1a61240d565b85858403612415565b600191505092915050565b6000611c42611c3b61240d565b84846125e0565b6001905092915050565b611c5461240d565b73ffffffffffffffffffffffffffffffffffffffff16611c72611962565b73ffffffffffffffffffffffffffffffffffffffff1614611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf9061445d565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b60115481565b601c6020528060005260406000206000915054906101000a900460ff1681565b611d1361240d565b73ffffffffffffffffffffffffffffffffffffffff16611d31611962565b73ffffffffffffffffffffffffffffffffffffffff1614611d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7e9061445d565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e249190613f26565b60405180910390a25050565b611e3861240d565b73ffffffffffffffffffffffffffffffffffffffff16611e56611962565b73ffffffffffffffffffffffffffffffffffffffff1614611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea39061445d565b60405180910390fd5b826013819055508160148190555080601581905550601554601454601354611ed4919061468a565b611ede919061468a565b60128190555060286012541115611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190614856565b60405180910390fd5b505050565b611f3761240d565b73ffffffffffffffffffffffffffffffffffffffff16611f55611962565b73ffffffffffffffffffffffffffffffffffffffff1614611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa29061445d565b60405180910390fd5b670de0b6b3a76400006103e86005611fc1610d3f565b611fcb91906144ac565b611fd59190614535565b611fdf9190614535565b811015612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201890614a0c565b60405180910390fd5b670de0b6b3a76400008161203591906144ac565b600a8190555050565b60085481565b600061204e61240d565b73ffffffffffffffffffffffffffffffffffffffff1661206c611962565b73ffffffffffffffffffffffffffffffffffffffff16146120c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b99061445d565b60405180910390fd5b620186a060016120d0610d3f565b6120da91906144ac565b6120e49190614535565b821015612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211d90614a9e565b60405180910390fd5b6103e86005612133610d3f565b61213d91906144ac565b6121479190614535565b821115612189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218090614b30565b60405180910390fd5b8160098190555060019050919050565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b61223461240d565b73ffffffffffffffffffffffffffffffffffffffff16612252611962565b73ffffffffffffffffffffffffffffffffffffffff16146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f9061445d565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b61231161240d565b73ffffffffffffffffffffffffffffffffffffffff1661232f611962565b73ffffffffffffffffffffffffffffffffffffffff1614612385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237c9061445d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec90614bc2565b60405180910390fd5b6123fe8161332f565b50565b60145481565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247c90614c54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ec90614ce6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125d39190613ff7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264790614d78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b790614d78565b60405180910390fd5b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274490614e0a565b60405180910390fd5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d190614e9c565b60405180910390fd5b60008114156127f4576127ef83836000613496565b61332a565b600b60009054906101000a900460ff1615612dc257612811611962565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561287f575061284f611962565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128b85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128f2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561290b5750600560149054906101000a900460ff16155b15612dc157600d60009054906101000a900460ff1615612ad85761292d611962565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156129b457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a0c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ad75743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8990614f54565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b7b5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c2257600854811115612bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbc90614fe6565b60405180910390fd5b600a54612bd1836114e1565b82612bdc919061468a565b1115612c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1490615052565b60405180910390fd5b612dc0565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cc55750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d1457600854811115612d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d06906150e4565b60405180910390fd5b612dbf565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612dbe57600a54612d71836114e1565b82612d7c919061468a565b1115612dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db490615052565b60405180910390fd5b5b5b5b5b5b6000612dcd306114e1565b905060006009548210158015612e2c5750601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612e825750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ed85750601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f7d5750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612fd35750601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156130295750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000811561331a57601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561308e57506000601254115b1561315b576130bb60646130ad6012548861371790919063ffffffff16565b61372d90919063ffffffff16565b9050601254601454826130ce91906144ac565b6130d89190614535565b601760008282546130e9919061468a565b925050819055506012546015548261310191906144ac565b61310b9190614535565b6018600082825461311c919061468a565b925050819055506012546013548261313491906144ac565b61313e9190614535565b6016600082825461314f919061468a565b92505081905550613280565b601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156131b657506000600e54115b1561327f576131e360646131d5600e548861371790919063ffffffff16565b61372d90919063ffffffff16565b9050600e54601054826131f691906144ac565b6132009190614535565b60176000828254613211919061468a565b92505081905550600e546011548261322991906144ac565b6132339190614535565b60186000828254613244919061468a565b92505081905550600e54600f548261325c91906144ac565b6132669190614535565b60166000828254613277919061468a565b925050819055505b5b600081111561329557613294873083613496565b5b80856132a19190615104565b94508280156132bc5750600b60019054906101000a900460ff165b80156132d55750600560149054906101000a900460ff16155b15613319576001600560146101000a81548160ff0219169083151502179055506132fd613743565b6000600560146101000a81548160ff0219169083151502179055505b5b613325878787613496565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134fd90614d78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356d906151aa565b60405180910390fd5b613581838383613a2a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135fe9061523c565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461369a919061468a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136fe9190613ff7565b60405180910390a3613711848484613a2f565b50505050565b6000818361372591906144ac565b905092915050565b6000818361373b9190614535565b905092915050565b600061374e306114e1565b90506000601854601654601754613765919061468a565b61376f919061468a565b90506000808314806137815750600082145b1561378e57505050613a28565b601460095461379d91906144ac565b8311156137b65760146009546137b391906144ac565b92505b6000600283601754866137c991906144ac565b6137d39190614535565b6137dd9190614535565b905060006137f48286613a3490919063ffffffff16565b9050600047905061380482613a4a565b60006138198247613a3490919063ffffffff16565b90506000613844876138366016548561371790919063ffffffff16565b61372d90919063ffffffff16565b9050600061386f886138616018548661371790919063ffffffff16565b61372d90919063ffffffff16565b905060008183856138809190615104565b61388a9190615104565b9050600060178190555060006016819055506000601881905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516138ea90614789565b60006040518083038185875af1925050503d8060008114613927576040519150601f19603f3d011682016040523d82523d6000602084013e61392c565b606091505b5050809850506000871180156139425750600081115b1561398f576139518782613c87565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186826017546040516139869392919061525c565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516139d590614789565b60006040518083038185875af1925050503d8060008114613a12576040519150601f19603f3d011682016040523d82523d6000602084013e613a17565b606091505b505080985050505050505050505050505b565b505050565b505050565b60008183613a429190615104565b905092915050565b6000600267ffffffffffffffff811115613a6757613a666140f8565b5b604051908082528060200260200182016040528015613a955781602001602082028036833780820191505090505b5090503081600081518110613aad57613aac6146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7691906152a8565b81600181518110613b8a57613b896146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613bef307f000000000000000000000000000000000000000000000000000000000000000084612415565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613c519594939291906153ce565b600060405180830381600087803b158015613c6b57600080fd5b505af1158015613c7f573d6000803e3d6000fd5b505050505050565b613cb2307f000000000000000000000000000000000000000000000000000000000000000084612415565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613cfc611962565b426040518863ffffffff1660e01b8152600401613d1e96959493929190615428565b60606040518083038185885af1158015613d3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613d61919061549e565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613da2578082015181840152602081019050613d87565b83811115613db1576000848401525b50505050565b6000601f19601f8301169050919050565b6000613dd382613d68565b613ddd8185613d73565b9350613ded818560208601613d84565b613df681613db7565b840191505092915050565b60006020820190508181036000830152613e1b8184613dc8565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613e6282613e37565b9050919050565b613e7281613e57565b8114613e7d57600080fd5b50565b600081359050613e8f81613e69565b92915050565b6000819050919050565b613ea881613e95565b8114613eb357600080fd5b50565b600081359050613ec581613e9f565b92915050565b60008060408385031215613ee257613ee1613e2d565b5b6000613ef085828601613e80565b9250506020613f0185828601613eb6565b9150509250929050565b60008115159050919050565b613f2081613f0b565b82525050565b6000602082019050613f3b6000830184613f17565b92915050565b600060208284031215613f5757613f56613e2d565b5b6000613f6584828501613e80565b91505092915050565b6000819050919050565b6000613f93613f8e613f8984613e37565b613f6e565b613e37565b9050919050565b6000613fa582613f78565b9050919050565b6000613fb782613f9a565b9050919050565b613fc781613fac565b82525050565b6000602082019050613fe26000830184613fbe565b92915050565b613ff181613e95565b82525050565b600060208201905061400c6000830184613fe8565b92915050565b60006020828403121561402857614027613e2d565b5b600061403684828501613eb6565b91505092915050565b60008060006060848603121561405857614057613e2d565b5b600061406686828701613e80565b935050602061407786828701613e80565b925050604061408886828701613eb6565b9150509250925092565b600060ff82169050919050565b6140a881614092565b82525050565b60006020820190506140c3600083018461409f565b92915050565b6140d281613e57565b82525050565b60006020820190506140ed60008301846140c9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61413082613db7565b810181811067ffffffffffffffff8211171561414f5761414e6140f8565b5b80604052505050565b6000614162613e23565b905061416e8282614127565b919050565b600067ffffffffffffffff82111561418e5761418d6140f8565b5b602082029050602081019050919050565b600080fd5b60006141b76141b284614173565b614158565b905080838252602082019050602084028301858111156141da576141d961419f565b5b835b8181101561420357806141ef8882613e80565b8452602084019350506020810190506141dc565b5050509392505050565b600082601f830112614222576142216140f3565b5b81356142328482602086016141a4565b91505092915050565b60006020828403121561425157614250613e2d565b5b600082013567ffffffffffffffff81111561426f5761426e613e32565b5b61427b8482850161420d565b91505092915050565b61428d81613f0b565b811461429857600080fd5b50565b6000813590506142aa81614284565b92915050565b6000602082840312156142c6576142c5613e2d565b5b60006142d48482850161429b565b91505092915050565b600080604083850312156142f4576142f3613e2d565b5b600061430285828601613e80565b92505060206143138582860161429b565b9150509250929050565b60008060006060848603121561433657614335613e2d565b5b600061434486828701613eb6565b935050602061435586828701613eb6565b925050604061436686828701613eb6565b9150509250925092565b6000806040838503121561438757614386613e2d565b5b600061439585828601613e80565b92505060206143a685828601613e80565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806143f757607f821691505b6020821081141561440b5761440a6143b0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614447602083613d73565b915061445282614411565b602082019050919050565b600060208201905081810360008301526144768161443a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006144b782613e95565b91506144c283613e95565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144fb576144fa61447d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061454082613e95565b915061454b83613e95565b92508261455b5761455a614506565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006145c2602f83613d73565b91506145cd82614566565b604082019050919050565b600060208201905081810360008301526145f1816145b5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614654602883613d73565b915061465f826145f8565b604082019050919050565b6000602082019050818103600083015261468381614647565b9050919050565b600061469582613e95565b91506146a083613e95565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146d5576146d461447d565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061471a82613e95565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561474d5761474c61447d565b5b600182019050919050565b600081905092915050565b50565b6000614773600083614758565b915061477e82614763565b600082019050919050565b600061479482614766565b9150819050919050565b7f52455343554520455854524120455448204641494c4544210000000000000000600082015250565b60006147d4601883613d73565b91506147df8261479e565b602082019050919050565b60006020820190508181036000830152614803816147c7565b9050919050565b7f4d757374206b656570206665657320617420343025206f72206c657373000000600082015250565b6000614840601d83613d73565b915061484b8261480a565b602082019050919050565b6000602082019050818103600083015261486f81614833565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006148d2603983613d73565b91506148dd82614876565b604082019050919050565b60006020820190508181036000830152614901816148c5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614964602583613d73565b915061496f82614908565b604082019050919050565b6000602082019050818103600083015261499381614957565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006149f6602483613d73565b9150614a018261499a565b604082019050919050565b60006020820190508181036000830152614a25816149e9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614a88603583613d73565b9150614a9382614a2c565b604082019050919050565b60006020820190508181036000830152614ab781614a7b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614b1a603483613d73565b9150614b2582614abe565b604082019050919050565b60006020820190508181036000830152614b4981614b0d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614bac602683613d73565b9150614bb782614b50565b604082019050919050565b60006020820190508181036000830152614bdb81614b9f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614c3e602483613d73565b9150614c4982614be2565b604082019050919050565b60006020820190508181036000830152614c6d81614c31565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614cd0602283613d73565b9150614cdb82614c74565b604082019050919050565b60006020820190508181036000830152614cff81614cc3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614d62602583613d73565b9150614d6d82614d06565b604082019050919050565b60006020820190508181036000830152614d9181614d55565b9050919050565b7f45524332303a207472616e7366657220746f2074686520626c61636b4c69737460008201527f6564206164647265737300000000000000000000000000000000000000000000602082015250565b6000614df4602a83613d73565b9150614dff82614d98565b604082019050919050565b60006020820190508181036000830152614e2381614de7565b9050919050565b7f45524332303a207472616e736665722066726f6d2074686520626c61636b4c6960008201527f7374656420616464726573730000000000000000000000000000000000000000602082015250565b6000614e86602c83613d73565b9150614e9182614e2a565b604082019050919050565b60006020820190508181036000830152614eb581614e79565b9050919050565b7f5f7472616e736665723a3a205472616e736665722050726f7465637420656e6160008201527f626c65642e20204f6e6c79206f6e652070757263686173652070657220626c6f60208201527f636b20616c6c6f7765642e000000000000000000000000000000000000000000604082015250565b6000614f3e604b83613d73565b9150614f4982614ebc565b606082019050919050565b60006020820190508181036000830152614f6d81614f31565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614fd0603583613d73565b9150614fdb82614f74565b604082019050919050565b60006020820190508181036000830152614fff81614fc3565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061503c601383613d73565b915061504782615006565b602082019050919050565b6000602082019050818103600083015261506b8161502f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006150ce603683613d73565b91506150d982615072565b604082019050919050565b600060208201905081810360008301526150fd816150c1565b9050919050565b600061510f82613e95565b915061511a83613e95565b92508282101561512d5761512c61447d565b5b828203905092915050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000615194602383613d73565b915061519f82615138565b604082019050919050565b600060208201905081810360008301526151c381615187565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615226602683613d73565b9150615231826151ca565b604082019050919050565b6000602082019050818103600083015261525581615219565b9050919050565b60006060820190506152716000830186613fe8565b61527e6020830185613fe8565b61528b6040830184613fe8565b949350505050565b6000815190506152a281613e69565b92915050565b6000602082840312156152be576152bd613e2d565b5b60006152cc84828501615293565b91505092915050565b6000819050919050565b60006152fa6152f56152f0846152d5565b613f6e565b613e95565b9050919050565b61530a816152df565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61534581613e57565b82525050565b6000615357838361533c565b60208301905092915050565b6000602082019050919050565b600061537b82615310565b615385818561531b565b93506153908361532c565b8060005b838110156153c15781516153a8888261534b565b97506153b383615363565b925050600181019050615394565b5085935050505092915050565b600060a0820190506153e36000830188613fe8565b6153f06020830187615301565b81810360408301526154028186615370565b905061541160608301856140c9565b61541e6080830184613fe8565b9695505050505050565b600060c08201905061543d60008301896140c9565b61544a6020830188613fe8565b6154576040830187615301565b6154646060830186615301565b61547160808301856140c9565b61547e60a0830184613fe8565b979650505050505050565b60008151905061549881613e9f565b92915050565b6000806000606084860312156154b7576154b6613e2d565b5b60006154c586828701615489565b93505060206154d686828701615489565b92505060406154e786828701615489565b915050925092509256fea2646970667358221220e8d47fff8b78c5648a076ae0f0db5d2048a61177660843eb9fcfd74b700cc3ce64736f6c634300080a0033