[ { "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": 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": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapRouter", "type": "event" }, { "inputs": [], "name": "SCATWallet", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "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": [], "name": "buySCATFee", "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": [], "name": "enableTrading", "outputs": [], "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": "updAds", "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": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "maxTaxSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "removeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellSCATFee", "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": [ { "internalType": "uint256", "name": "_SCATFee", "type": "uint256" } ], "name": "setSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "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": "tokensForSCAT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "uniswapRouter", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_SCATFee", "type": "uint256" } ], "name": "updateBuyFees", "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": "_SCATFee", "type": "uint256" } ], "name": "updateSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "toAddr", "type": "address" } ], "name": "withdrawETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawSCAT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "withdrawSCATTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a06040526001600c5f6101000a81548160ff0219169083151502179055505f600c60016101000a81548160ff0219169083151502179055505f600c60026101000a81548160ff02191690831515021790555034801561005d575f80fd5b506040518060400160405280600881526020017f53706163654361740000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f534341540000000000000000000000000000000000000000000000000000000081525081600390816100d99190610dbf565b5080600490816100e99190610dbf565b5050506101086100fd6104b760201b60201c565b6104be60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061013181600161058160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505f601e90505f601e90505f6b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006008819055506a108b2a2c28029094000000600a819055506a108b2a2c28029094000000600b819055506127106005826101c59190610ebb565b6101cf9190610f29565b60098190555082600f81905550600f54600e81905550816011819055506011546010819055503360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061025361024661066160201b60201c565b600161068960201b60201c565b61026430600161068960201b60201c565b61028261027561066160201b60201c565b600161058160201b60201c565b61029330600161058160201b60201c565b6102a333826107b760201b60201c565b6102b433858361091a60201b60201c565b60805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103239190610fb7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ae9190610fb7565b6040518363ffffffff1660e01b81526004016103cb929190610ff1565b6020604051808303815f875af11580156103e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040b9190610fb7565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061047c60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161058160201b60201c565b6104ae60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610add60201b60201c565b505050506112a2565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61058f6104b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166105b361066160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060090611072565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106976104b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166106bb61066160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890611072565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107ab91906110aa565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c9061110d565b60405180910390fd5b6108365f8383610b7b60201b60201c565b8060025f828254610847919061112b565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610899919061112b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108fd919061116d565b60405180910390a36109165f8383610b8060201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f906111f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed90611284565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ad0919061116d565b60405180910390a3505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0057607f821691505b602082108103610c1357610c12610bbc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610c757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610c3a565b610c7f8683610c3a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610cc3610cbe610cb984610c97565b610ca0565b610c97565b9050919050565b5f819050919050565b610cdc83610ca9565b610cf0610ce882610cca565b848454610c46565b825550505050565b5f90565b610d04610cf8565b610d0f818484610cd3565b505050565b5b81811015610d3257610d275f82610cfc565b600181019050610d15565b5050565b601f821115610d7757610d4881610c19565b610d5184610c2b565b81016020851015610d60578190505b610d74610d6c85610c2b565b830182610d14565b50505b505050565b5f82821c905092915050565b5f610d975f1984600802610d7c565b1980831691505092915050565b5f610daf8383610d88565b9150826002028217905092915050565b610dc882610b85565b67ffffffffffffffff811115610de157610de0610b8f565b5b610deb8254610be9565b610df6828285610d36565b5f60209050601f831160018114610e27575f8415610e15578287015190505b610e1f8582610da4565b865550610e86565b601f198416610e3586610c19565b5f5b82811015610e5c57848901518255600182019150602085019450602081019050610e37565b86831015610e795784890151610e75601f891682610d88565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610ec582610c97565b9150610ed083610c97565b9250828202610ede81610c97565b91508282048414831517610ef557610ef4610e8e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610f3382610c97565b9150610f3e83610c97565b925082610f4e57610f4d610efc565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f8682610f5d565b9050919050565b610f9681610f7c565b8114610fa0575f80fd5b50565b5f81519050610fb181610f8d565b92915050565b5f60208284031215610fcc57610fcb610f59565b5b5f610fd984828501610fa3565b91505092915050565b610feb81610f7c565b82525050565b5f6040820190506110045f830185610fe2565b6110116020830184610fe2565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61105c602083611018565b915061106782611028565b602082019050919050565b5f6020820190508181035f83015261108981611050565b9050919050565b5f8115159050919050565b6110a481611090565b82525050565b5f6020820190506110bd5f83018461109b565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6110f7601f83611018565b9150611102826110c3565b602082019050919050565b5f6020820190508181035f830152611124816110eb565b9050919050565b5f61113582610c97565b915061114083610c97565b925082820190508082111561115857611157610e8e565b5b92915050565b61116781610c97565b82525050565b5f6020820190506111805f83018461115e565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6111e0602483611018565b91506111eb82611186565b604082019050919050565b5f6020820190508181035f83015261120d816111d4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61126e602283611018565b915061127982611214565b604082019050919050565b5f6020820190508181035f83015261129b81611262565b9050919050565b6080516147746112cf5f395f81816115430152818161326f0152818161334e015261337501526147745ff3fe608060405260043610610296575f3560e01c8063857a736b11610159578063c0246668116100c0578063e2f4560511610079578063e2f45605146109fb578063eba4c33314610a25578063ed9120d814610a4d578063f2fde38b14610a77578063f8b45b0514610a9f578063fe575a8714610ac95761029d565b8063c0246668146108df578063c18bc19514610907578063c8c8ebe41461092f578063d257b34f14610959578063d85ba06314610995578063dd62ed3e146109bf5761029d565b806395d89b411161011257806395d89b41146107af5780639a7a23d6146107d9578063a457c2d714610801578063a9059cbb1461083d578063b62496f514610879578063bbc0c742146108b55761029d565b8063857a736b146106cb5780638a8c523c146106f55780638da5cb5b1461070b578063924de9b71461073557806392931b1a1461075d57806395927c25146107875761029d565b80634fbee193116101fd578063712c568e116101b6578063712c568e146105e7578063715018a61461061157806371fc468814610627578063735de9f71461064f578063751039fc146106795780637571336a146106a35761029d565b80634fbee193146104c957806362997f8c14610505578063690d83201461052f5780636a486a8e146105575780636ddd17131461058157806370a08231146105ab5761029d565b8063313ce5671161024f578063313ce567146103d15780633888526d146103fb57806339509351146104115780633f79971b1461044d57806349bd5a5e146104755780634a62bb651461049f5761029d565b806306fdde03146102a1578063095ea7b3146102cb57806310d5de531461030757806318160ddd14610343578063203e727e1461036d57806323b872dd146103955761029d565b3661029d57005b5f80fd5b3480156102ac575f80fd5b506102b5610b05565b6040516102c29190613511565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec91906135c2565b610b95565b6040516102fe919061361a565b60405180910390f35b348015610312575f80fd5b5061032d60048036038101906103289190613633565b610bb2565b60405161033a919061361a565b60405180910390f35b34801561034e575f80fd5b50610357610bcf565b604051610364919061366d565b60405180910390f35b348015610378575f80fd5b50610393600480360381019061038e9190613686565b610bd8565b005b3480156103a0575f80fd5b506103bb60048036038101906103b691906136b1565b610ce7565b6040516103c8919061361a565b60405180910390f35b3480156103dc575f80fd5b506103e5610dd9565b6040516103f2919061371c565b60405180910390f35b348015610406575f80fd5b5061040f610de1565b005b34801561041c575f80fd5b50610437600480360381019061043291906135c2565b610f9b565b604051610444919061361a565b60405180910390f35b348015610458575f80fd5b50610473600480360381019061046e9190613735565b611042565b005b348015610480575f80fd5b50610489611228565b6040516104969190613782565b60405180910390f35b3480156104aa575f80fd5b506104b361124d565b6040516104c0919061361a565b60405180910390f35b3480156104d4575f80fd5b506104ef60048036038101906104ea9190613633565b61125f565b6040516104fc919061361a565b60405180910390f35b348015610510575f80fd5b506105196112b1565b604051610526919061366d565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190613633565b6112b7565b005b348015610562575f80fd5b5061056b6113a8565b604051610578919061366d565b60405180910390f35b34801561058c575f80fd5b506105956113ae565b6040516105a2919061361a565b60405180910390f35b3480156105b6575f80fd5b506105d160048036038101906105cc9190613633565b6113c1565b6040516105de919061366d565b60405180910390f35b3480156105f2575f80fd5b506105fb611406565b60405161060891906137bb565b60405180910390f35b34801561061c575f80fd5b5061062561142b565b005b348015610632575f80fd5b5061064d60048036038101906106489190613686565b6114b2565b005b34801561065a575f80fd5b50610663611541565b604051610670919061382f565b60405180910390f35b348015610684575f80fd5b5061068d611565565b60405161069a919061361a565b60405180910390f35b3480156106ae575f80fd5b506106c960048036038101906106c49190613872565b611602565b005b3480156106d6575f80fd5b506106df6116d6565b6040516106ec919061366d565b60405180910390f35b348015610700575f80fd5b506107096116dc565b005b348015610716575f80fd5b5061071f6117e0565b60405161072c9190613782565b60405180910390f35b348015610740575f80fd5b5061075b600480360381019061075691906138b0565b611808565b005b348015610768575f80fd5b506107716118a1565b60405161077e919061366d565b60405180910390f35b348015610792575f80fd5b506107ad60048036038101906107a89190613686565b6118a7565b005b3480156107ba575f80fd5b506107c3611936565b6040516107d09190613511565b60405180910390f35b3480156107e4575f80fd5b506107ff60048036038101906107fa9190613872565b6119c6565b005b34801561080c575f80fd5b50610827600480360381019061082291906135c2565b611adf565b604051610834919061361a565b60405180910390f35b348015610848575f80fd5b50610863600480360381019061085e91906135c2565b611bc5565b604051610870919061361a565b60405180910390f35b348015610884575f80fd5b5061089f600480360381019061089a9190613633565b611be2565b6040516108ac919061361a565b60405180910390f35b3480156108c0575f80fd5b506108c9611bff565b6040516108d6919061361a565b60405180910390f35b3480156108ea575f80fd5b5061090560048036038101906109009190613872565b611c12565b005b348015610912575f80fd5b5061092d60048036038101906109289190613686565b611d34565b005b34801561093a575f80fd5b50610943611e43565b604051610950919061366d565b60405180910390f35b348015610964575f80fd5b5061097f600480360381019061097a9190613686565b611e49565b60405161098c919061361a565b60405180910390f35b3480156109a0575f80fd5b506109a9611ed6565b6040516109b6919061366d565b60405180910390f35b3480156109ca575f80fd5b506109e560048036038101906109e09190613735565b611edc565b6040516109f2919061366d565b60405180910390f35b348015610a06575f80fd5b50610a0f611f5e565b604051610a1c919061366d565b60405180910390f35b348015610a30575f80fd5b50610a4b6004803603810190610a469190613686565b611f64565b005b348015610a58575f80fd5b50610a61611ff3565b604051610a6e919061366d565b60405180910390f35b348015610a82575f80fd5b50610a9d6004803603810190610a989190613633565b611ff9565b005b348015610aaa575f80fd5b50610ab36120ef565b604051610ac0919061366d565b60405180910390f35b348015610ad4575f80fd5b50610aef6004803603810190610aea9190613633565b6120f5565b604051610afc919061361a565b60405180910390f35b606060038054610b1490613908565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4090613908565b8015610b8b5780601f10610b6257610100808354040283529160200191610b8b565b820191905f5260205f20905b815481529060010190602001808311610b6e57829003601f168201915b5050505050905090565b5f610ba8610ba1612147565b848461214e565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b5f600254905090565b610be0612147565b73ffffffffffffffffffffffffffffffffffffffff16610bfe6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b90613982565b60405180910390fd5b670de0b6b3a76400006103e86005610c6a610bcf565b610c7491906139cd565b610c7e9190613a3b565b610c889190613a3b565b811015610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190613adb565b60405180910390fd5b670de0b6b3a764000081610cde91906139cd565b60088190555050565b5f610cf3848484612311565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d3a612147565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090613b69565b60405180910390fd5b610dcd85610dc5612147565b85840361214e565b60019150509392505050565b5f6012905090565b610de9612147565b73ffffffffffffffffffffffffffffffffffffffff16610e076117e0565b73ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490613982565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e979190613782565b602060405180830381865afa158015610eb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed69190613b9b565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610f13929190613bc6565b6020604051808303815f875af1158015610f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f539190613c01565b503373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610f97573d5f803e3d5ffd5b5050565b5f611038610fa7612147565b848460015f610fb4612147565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110339190613c2c565b61214e565b6001905092915050565b61104a612147565b73ffffffffffffffffffffffffffffffffffffffff166110686117e0565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590613982565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390613ca9565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111669190613782565b602060405180830381865afa158015611181573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a59190613b9b565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016111e2929190613bc6565b6020604051808303815f875af11580156111fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112229190613c01565b50505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900460ff1681565b5f60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600b5481565b6112bf612147565b73ffffffffffffffffffffffffffffffffffffffff166112dd6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a90613982565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff164760405161135890613cf4565b5f6040518083038185875af1925050503d805f8114611392576040519150601f19603f3d011682016040523d82523d5f602084013e611397565b606091505b50509050806113a4575f80fd5b5050565b60105481565b600c60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611433612147565b73ffffffffffffffffffffffffffffffffffffffff166114516117e0565b73ffffffffffffffffffffffffffffffffffffffff16146114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e90613982565b60405180910390fd5b6114b05f612de4565b565b6114ba612147565b73ffffffffffffffffffffffffffffffffffffffff166114d86117e0565b73ffffffffffffffffffffffffffffffffffffffff161461152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590613982565b60405180910390fd5b80600f81905550600f54600e8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f61156e612147565b73ffffffffffffffffffffffffffffffffffffffff1661158c6117e0565b73ffffffffffffffffffffffffffffffffffffffff16146115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990613982565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b61160a612147565b73ffffffffffffffffffffffffffffffffffffffff166116286117e0565b73ffffffffffffffffffffffffffffffffffffffff161461167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590613982565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60115481565b6116e4612147565b73ffffffffffffffffffffffffffffffffffffffff166117026117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90613982565b60405180910390fd5b600c60019054906101000a900460ff16156117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90613d52565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611810612147565b73ffffffffffffffffffffffffffffffffffffffff1661182e6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613982565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b60125481565b6118af612147565b73ffffffffffffffffffffffffffffffffffffffff166118cd6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613982565b60405180910390fd5b8060118190555060115460108190555050565b60606004805461194590613908565b80601f016020809104026020016040519081016040528092919081815260200182805461197190613908565b80156119bc5780601f10611993576101008083540402835291602001916119bc565b820191905f5260205f20905b81548152906001019060200180831161199f57829003601f168201915b5050505050905090565b6119ce612147565b73ffffffffffffffffffffffffffffffffffffffff166119ec6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3990613982565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac890613de0565b60405180910390fd5b611adb8282612ea7565b5050565b5f8060015f611aec612147565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90613e6e565b60405180910390fd5b611bba611bb1612147565b8585840361214e565b600191505092915050565b5f611bd8611bd1612147565b8484612311565b6001905092915050565b6015602052805f5260405f205f915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b611c1a612147565b73ffffffffffffffffffffffffffffffffffffffff16611c386117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590613982565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d28919061361a565b60405180910390a25050565b611d3c612147565b73ffffffffffffffffffffffffffffffffffffffff16611d5a6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790613982565b60405180910390fd5b670de0b6b3a76400006103e86014611dc6610bcf565b611dd091906139cd565b611dda9190613a3b565b611de49190613a3b565b811015611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1d90613efc565b60405180910390fd5b670de0b6b3a764000081611e3a91906139cd565b600a8190555050565b60085481565b5f611e52612147565b73ffffffffffffffffffffffffffffffffffffffff16611e706117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd90613982565b60405180910390fd5b8160098190555060019050919050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b611f6c612147565b73ffffffffffffffffffffffffffffffffffffffff16611f8a6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614611fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd790613982565b60405180910390fd5b8060118190555060115460108190555050565b600f5481565b612001612147565b73ffffffffffffffffffffffffffffffffffffffff1661201f6117e0565b73ffffffffffffffffffffffffffffffffffffffff1614612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613982565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da90613f8a565b60405180910390fd5b6120ec81612de4565b50565b600a5481565b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b390614018565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612221906140a6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612304919061366d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361237f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237690614134565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906141c2565b60405180910390fd5b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e9061422a565b60405180910390fd5b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f890614292565b60405180910390fd5b5f81036125185761251383835f612f45565b612ddf565b600c5f9054906101000a900460ff16156129c2576125346117e0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125a257506125726117e0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125da57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125f35750600660149054906101000a900460ff16155b156129c157600c60019054906101000a900460ff166126e75760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126a7575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dd906142fa565b60405180910390fd5b5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612784575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561282b576008548111156127ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c590614388565b60405180910390fd5b600a546127da836113c1565b826127e59190613c2c565b1115612826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281d906143f0565b60405180910390fd5b6129c0565b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156128c8575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561291757600854811115612912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129099061447e565b60405180910390fd5b6129bf565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166129be57600a54612971836113c1565b8261297c9190613c2c565b11156129bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b4906143f0565b60405180910390fd5b5b5b5b5b5b5f6129cc306113c1565b90505f60095482101590508080156129f05750600c60029054906101000a900460ff165b8015612a095750600660149054906101000a900460ff16155b8015612a5c575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612aaf575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b07575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612b76576001600660146101000a81548160ff021916908315150217905550612b44612b3f84612b3a85600b546131ba565b6131ba565b6131d2565b5f4790505f811115612b5a57612b5947613405565b5b5f600660146101000a81548160ff021916908315150217905550505b5f600660149054906101000a900460ff1615905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c25575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c2e575f90505b5f8115612dcf5760155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c8c57505f601054115b15612cf257612cb96064612cab6010548861346d90919063ffffffff16565b61348290919063ffffffff16565b905060105460115482612ccc91906139cd565b612cd69190613a3b565b60125f828254612ce69190613c2c565b92505081905550612dac565b60155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d4957505f600e54115b15612dab57612d766064612d68600e548861346d90919063ffffffff16565b61348290919063ffffffff16565b9050600e54600f5482612d8991906139cd565b612d939190613a3b565b60125f828254612da39190613c2c565b925050819055505b5b5f811115612dc057612dbf873083612f45565b5b8085612dcc919061449c565b94505b612dda878787612f45565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612faa90614134565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613021576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613018906141c2565b60405180910390fd5b61302c838383613497565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156130af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a69061453f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461313d9190613c2c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131a1919061366d565b60405180910390a36131b484848461349c565b50505050565b5f8183116131c857826131ca565b815b905092915050565b5f600267ffffffffffffffff8111156131ee576131ed61455d565b5b60405190808252806020026020018201604052801561321c5781602001602082028036833780820191505090505b50905030815f815181106132335761323261458a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132fa91906145cb565b8160018151811061330e5761330d61458a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613373307f00000000000000000000000000000000000000000000000000000000000000008461214e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016133d49594939291906146e6565b5f604051808303815f87803b1580156133eb575f80fd5b505af11580156133fd573d5f803e3d5ffd5b505050505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613469573d5f803e3d5ffd5b5050565b5f818361347a91906139cd565b905092915050565b5f818361348f9190613a3b565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6134e3826134a1565b6134ed81856134ab565b93506134fd8185602086016134bb565b613506816134c9565b840191505092915050565b5f6020820190508181035f83015261352981846134d9565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61355e82613535565b9050919050565b61356e81613554565b8114613578575f80fd5b50565b5f8135905061358981613565565b92915050565b5f819050919050565b6135a18161358f565b81146135ab575f80fd5b50565b5f813590506135bc81613598565b92915050565b5f80604083850312156135d8576135d7613531565b5b5f6135e58582860161357b565b92505060206135f6858286016135ae565b9150509250929050565b5f8115159050919050565b61361481613600565b82525050565b5f60208201905061362d5f83018461360b565b92915050565b5f6020828403121561364857613647613531565b5b5f6136558482850161357b565b91505092915050565b6136678161358f565b82525050565b5f6020820190506136805f83018461365e565b92915050565b5f6020828403121561369b5761369a613531565b5b5f6136a8848285016135ae565b91505092915050565b5f805f606084860312156136c8576136c7613531565b5b5f6136d58682870161357b565b93505060206136e68682870161357b565b92505060406136f7868287016135ae565b9150509250925092565b5f60ff82169050919050565b61371681613701565b82525050565b5f60208201905061372f5f83018461370d565b92915050565b5f806040838503121561374b5761374a613531565b5b5f6137588582860161357b565b92505060206137698582860161357b565b9150509250929050565b61377c81613554565b82525050565b5f6020820190506137955f830184613773565b92915050565b5f6137a582613535565b9050919050565b6137b58161379b565b82525050565b5f6020820190506137ce5f8301846137ac565b92915050565b5f819050919050565b5f6137f76137f26137ed84613535565b6137d4565b613535565b9050919050565b5f613808826137dd565b9050919050565b5f613819826137fe565b9050919050565b6138298161380f565b82525050565b5f6020820190506138425f830184613820565b92915050565b61385181613600565b811461385b575f80fd5b50565b5f8135905061386c81613848565b92915050565b5f806040838503121561388857613887613531565b5b5f6138958582860161357b565b92505060206138a68582860161385e565b9150509250929050565b5f602082840312156138c5576138c4613531565b5b5f6138d28482850161385e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061391f57607f821691505b602082108103613932576139316138db565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61396c6020836134ab565b915061397782613938565b602082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139d78261358f565b91506139e28361358f565b92508282026139f08161358f565b91508282048414831517613a0757613a066139a0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a458261358f565b9150613a508361358f565b925082613a6057613a5f613a0e565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e35250000000000000000000000000000000000602082015250565b5f613ac5602f836134ab565b9150613ad082613a6b565b604082019050919050565b5f6020820190508181035f830152613af281613ab9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613b536028836134ab565b9150613b5e82613af9565b604082019050919050565b5f6020820190508181035f830152613b8081613b47565b9050919050565b5f81519050613b9581613598565b92915050565b5f60208284031215613bb057613baf613531565b5b5f613bbd84828501613b87565b91505092915050565b5f604082019050613bd95f830185613773565b613be6602083018461365e565b9392505050565b5f81519050613bfb81613848565b92915050565b5f60208284031215613c1657613c15613531565b5b5f613c2384828501613bed565b91505092915050565b5f613c368261358f565b9150613c418361358f565b9250828201905080821115613c5957613c586139a0565b5b92915050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f613c93601a836134ab565b9150613c9e82613c5f565b602082019050919050565b5f6020820190508181035f830152613cc081613c87565b9050919050565b5f81905092915050565b50565b5f613cdf5f83613cc7565b9150613cea82613cd1565b5f82019050919050565b5f613cfe82613cd4565b9150819050919050565b7f74726164696e67000000000000000000000000000000000000000000000000005f82015250565b5f613d3c6007836134ab565b9150613d4782613d08565b602082019050919050565b5f6020820190508181035f830152613d6981613d30565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613dca6039836134ab565b9150613dd582613d70565b604082019050919050565b5f6020820190508181035f830152613df781613dbe565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613e586025836134ab565b9150613e6382613dfe565b604082019050919050565b5f6020820190508181035f830152613e8581613e4c565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f322e302500000000000000000000000000000000000000000000000000000000602082015250565b5f613ee66024836134ab565b9150613ef182613e8c565b604082019050919050565b5f6020820190508181035f830152613f1381613eda565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613f746026836134ab565b9150613f7f82613f1a565b604082019050919050565b5f6020820190508181035f830152613fa181613f68565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6140026024836134ab565b915061400d82613fa8565b604082019050919050565b5f6020820190508181035f83015261402f81613ff6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6140906022836134ab565b915061409b82614036565b604082019050919050565b5f6020820190508181035f8301526140bd81614084565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61411e6025836134ab565b9150614129826140c4565b604082019050919050565b5f6020820190508181035f83015261414b81614112565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6141ac6023836134ab565b91506141b782614152565b604082019050919050565b5f6020820190508181035f8301526141d9816141a0565b9050919050565b7f53656e64657220626c61636b6c697374656400000000000000000000000000005f82015250565b5f6142146012836134ab565b915061421f826141e0565b602082019050919050565b5f6020820190508181035f83015261424181614208565b9050919050565b7f526563656976657220626c61636b6c69737465640000000000000000000000005f82015250565b5f61427c6014836134ab565b915061428782614248565b602082019050919050565b5f6020820190508181035f8301526142a981614270565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6142e46016836134ab565b91506142ef826142b0565b602082019050919050565b5f6020820190508181035f830152614311816142d8565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6143726035836134ab565b915061437d82614318565b604082019050919050565b5f6020820190508181035f83015261439f81614366565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6143da6013836134ab565b91506143e5826143a6565b602082019050919050565b5f6020820190508181035f830152614407816143ce565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6144686036836134ab565b91506144738261440e565b604082019050919050565b5f6020820190508181035f8301526144958161445c565b9050919050565b5f6144a68261358f565b91506144b18361358f565b92508282039050818111156144c9576144c86139a0565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6145296026836134ab565b9150614534826144cf565b604082019050919050565b5f6020820190508181035f8301526145568161451d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506145c581613565565b92915050565b5f602082840312156145e0576145df613531565b5b5f6145ed848285016145b7565b91505092915050565b5f819050919050565b5f61461961461461460f846145f6565b6137d4565b61358f565b9050919050565b614629816145ff565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61466181613554565b82525050565b5f6146728383614658565b60208301905092915050565b5f602082019050919050565b5f6146948261462f565b61469e8185614639565b93506146a983614649565b805f5b838110156146d95781516146c08882614667565b97506146cb8361467e565b9250506001810190506146ac565b5085935050505092915050565b5f60a0820190506146f95f83018861365e565b6147066020830187614620565b8181036040830152614718818661468a565b90506147276060830185613773565b614734608083018461365e565b969550505050505056fea264697066735822122098b0b31d3fd8550b40eb6806356adc1a3e979340e5536fed4051884a527c3d0664736f6c634300081a0033