[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "initialSupplyToSet", "type": "uint256" }, { "internalType": "uint8", "name": "decimalsToSet", "type": "uint8" }, { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "components": [ { "internalType": "bool", "name": "_isMintable", "type": "bool" }, { "internalType": "bool", "name": "_isBurnable", "type": "bool" }, { "internalType": "bool", "name": "_isPausable", "type": "bool" }, { "internalType": "bool", "name": "_isBlacklistEnabled", "type": "bool" }, { "internalType": "bool", "name": "_isDocumentAllowed", "type": "bool" }, { "internalType": "bool", "name": "_isWhitelistEnabled", "type": "bool" }, { "internalType": "bool", "name": "_isMaxAmountOfTokensSet", "type": "bool" }, { "internalType": "bool", "name": "_isForceTransferAllowed", "type": "bool" } ], "internalType": "struct FullFeatureToken.ERC20ConfigProps", "name": "customConfigProps", "type": "tuple" }, { "internalType": "uint256", "name": "maxTokenAmount", "type": "uint256" }, { "internalType": "string", "name": "newDocumentUri", "type": "string" }, { "internalType": "address payable", "name": "feeReceiver", "type": "address" } ], "stateMutability": "payable", "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_blacklistedAddress", "type": "address" } ], "name": "UserBlacklistedEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_whitelistedAddress", "type": "address" } ], "name": "UserUnBlacklistedEvent", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "blackList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "documentUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getWhitelistedAddresses", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialDocumentUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialMaxTokenAmountPerAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialTokenOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isBlacklistEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isBurnable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isDocumentUriAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isForceTransferAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isMaxAmountOfTokensSet", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isMintable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isPausable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isWhitelistEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTokenAmountPerAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "removeFromBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newDocUri", "type": "string" } ], "name": "setDocumentUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxTokenAmount", "type": "uint256" } ], "name": "setMaxTokenAmountPerAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "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": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "updatedAddresses", "type": "address[]" } ], "name": "updateWhitelist", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60a060405260058060156101000a81548160ff021916908360ff1602179055506040516200605f3803806200605f833981810160405281019062000044919062000b55565b888881600390805190602001906200005e929190620008d5565b50806004908051906020019062000077929190620008d5565b5050506000600560006101000a81548160ff021916908315150217905550620000b5620000a9620003a560201b60201c565b620003ad60201b60201c565b60003411620000fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000f29062000df4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801562000142573d6000803e3d6000fd5b508660068190555082600781905550816008908051906020019062000169929190620008d5565b5080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560ff1660808160ff1660f81b8152505083600b60008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160000160026101000a81548160ff02191690831515021790555060608201518160000160036101000a81548160ff02191690831515021790555060808201518160000160046101000a81548160ff02191690831515021790555060a08201518160000160056101000a81548160ff02191690831515021790555060c08201518160000160066101000a81548160ff02191690831515021790555060e08201518160000160076101000a81548160ff02191690831515021790555090505081600d90805190602001906200031b929190620008d5565b5082601081905550620003508587600a62000337919062000f9f565b89620003449190620010dc565b6200047360201b60201c565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161462000396576200039585620005ec60201b60201c565b5b505050505050505050620014d2565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004dd9062000e16565b60405180910390fd5b620004fa60008383620006e760201b60201c565b80600260008282546200050e919062000ee7565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000565919062000ee7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005cc919062000e5a565b60405180910390a3620005e8600083836200070460201b60201c565b5050565b620005fc620003a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006226200070960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200067b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006729062000dd2565b60405180910390fd5b6200068b6200073360201b60201c565b15620006ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c59062000db0565b60405180910390fd5b620006e4816200074a60201b620025521760201c565b50565b620006ff8383836200086060201b6200264a1760201c565b505050565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560009054906101000a900460ff16905090565b6200075a620003a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007806200070960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d09062000dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200084c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008439062000d8e565b60405180910390fd5b6200085d81620003ad60201b60201c565b50565b62000878838383620008d060201b620026a21760201c565b620008886200073360201b60201c565b15620008cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008c29062000e38565b60405180910390fd5b505050565b505050565b828054620008e390620011de565b90600052602060002090601f01602090048101928262000907576000855562000953565b82601f106200092257805160ff191683800117855562000953565b8280016001018555821562000953579182015b828111156200095257825182559160200191906001019062000935565b5b50905062000962919062000966565b5090565b5b808211156200098157600081600090555060010162000967565b5090565b60006200099c620009968462000ea0565b62000e77565b905082815260208101848484011115620009bb57620009ba620012e1565b5b620009c8848285620011a8565b509392505050565b600081519050620009e18162001450565b92915050565b600081519050620009f8816200146a565b92915050565b60008151905062000a0f8162001484565b92915050565b600082601f83011262000a2d5762000a2c620012d7565b5b815162000a3f84826020860162000985565b91505092915050565b6000610100828403121562000a625762000a61620012dc565b5b62000a6f61010062000e77565b9050600062000a8184828501620009fe565b600083015250602062000a9784828501620009fe565b602083015250604062000aad84828501620009fe565b604083015250606062000ac384828501620009fe565b606083015250608062000ad984828501620009fe565b60808301525060a062000aef84828501620009fe565b60a08301525060c062000b0584828501620009fe565b60c08301525060e062000b1b84828501620009fe565b60e08301525092915050565b60008151905062000b38816200149e565b92915050565b60008151905062000b4f81620014b8565b92915050565b60008060008060008060008060006102008a8c03121562000b7b5762000b7a620012eb565b5b60008a015167ffffffffffffffff81111562000b9c5762000b9b620012e6565b5b62000baa8c828d0162000a15565b99505060208a015167ffffffffffffffff81111562000bce5762000bcd620012e6565b5b62000bdc8c828d0162000a15565b985050604062000bef8c828d0162000b27565b975050606062000c028c828d0162000b3e565b965050608062000c158c828d01620009d0565b95505060a062000c288c828d0162000a48565b9450506101a062000c3c8c828d0162000b27565b9350506101c08a015167ffffffffffffffff81111562000c615762000c60620012e6565b5b62000c6f8c828d0162000a15565b9250506101e062000c838c828d01620009e7565b9150509295985092959850929598565b600062000ca260268362000ed6565b915062000caf826200130e565b604082019050919050565b600062000cc960108362000ed6565b915062000cd6826200135d565b602082019050919050565b600062000cf060208362000ed6565b915062000cfd8262001386565b602082019050919050565b600062000d1760178362000ed6565b915062000d2482620013af565b602082019050919050565b600062000d3e601f8362000ed6565b915062000d4b82620013d8565b602082019050919050565b600062000d65602a8362000ed6565b915062000d728262001401565b604082019050919050565b62000d888162001191565b82525050565b6000602082019050818103600083015262000da98162000c93565b9050919050565b6000602082019050818103600083015262000dcb8162000cba565b9050919050565b6000602082019050818103600083015262000ded8162000ce1565b9050919050565b6000602082019050818103600083015262000e0f8162000d08565b9050919050565b6000602082019050818103600083015262000e318162000d2f565b9050919050565b6000602082019050818103600083015262000e538162000d56565b9050919050565b600060208201905062000e71600083018462000d7d565b92915050565b600062000e8362000e96565b905062000e91828262001214565b919050565b6000604051905090565b600067ffffffffffffffff82111562000ebe5762000ebd620012a8565b5b62000ec982620012f0565b9050602081019050919050565b600082825260208201905092915050565b600062000ef48262001191565b915062000f018362001191565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f395762000f386200124a565b5b828201905092915050565b6000808291508390505b600185111562000f965780860481111562000f6e5762000f6d6200124a565b5b600185161562000f7e5780820291505b808102905062000f8e8562001301565b945062000f4e565b94509492505050565b600062000fac8262001191565b915062000fb9836200119b565b925062000fe87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ff0565b905092915050565b600082620010025760019050620010d5565b81620010125760009050620010d5565b81600181146200102b576002811462001036576200106c565b6001915050620010d5565b60ff8411156200104b576200104a6200124a565b5b8360020a9150848211156200106557620010646200124a565b5b50620010d5565b5060208310610133831016604e8410600b8410161715620010a65782820a905083811115620010a0576200109f6200124a565b5b620010d5565b620010b5848484600162000f44565b92509050818404811115620010cf57620010ce6200124a565b5b81810290505b9392505050565b6000620010e98262001191565b9150620010f68362001191565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200113257620011316200124a565b5b828202905092915050565b60006200114a8262001171565b9050919050565b60006200115e8262001171565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620011c8578082015181840152602081019050620011ab565b83811115620011d8576000848401525b50505050565b60006002820490506001821680620011f757607f821691505b602082108114156200120e576200120d62001279565b5b50919050565b6200121f82620012f0565b810181811067ffffffffffffffff82111715620012415762001240620012a8565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4465706c6f796d656e7420666565207265717569726564000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6200145b816200113d565b81146200146757600080fd5b50565b620014758162001151565b81146200148157600080fd5b50565b6200148f8162001165565b81146200149b57600080fd5b50565b620014a98162001191565b8114620014b557600080fd5b50565b620014c3816200119b565b8114620014cf57600080fd5b50565b60805160f81c614b6e620014f16000396000610fa20152614b6e6000f3fe60806040526004361061025c5760003560e01c80636d02802711610144578063a09a1601116100b6578063a9d866851161007a578063a9d86685146108bd578063d48e4127146108e8578063dd62ed3e14610913578063f0576e2714610950578063f2fde38b1461097b578063f820f567146109a45761025c565b8063a09a1601146107c4578063a32f6976146107ef578063a457c2d71461081a578063a476df6114610857578063a9059cbb146108805761025c565b8063878dd33211610108578063878dd332146106b0578063883356d9146106db5780638da5cb5b146107065780638dac71911461073157806395d89b411461075c5780639b19251a146107875761025c565b80636d028027146105f157806370a082311461061c578063715018a61461065957806379cc6790146106705780638456cb59146106995761025c565b806339509351116101dd5780634838d165116101a15780634838d165146104f3578063537df3b61461051c57806354fd4d50146105455780635a3990ce146105705780635c975abb1461059b5780636c5adaae146105c65761025c565b806339509351146104225780633f4ba83a1461045f57806340c10f191461047657806342966c681461049f57806346b45af7146104c85761025c565b8063184d69ab11610224578063184d69ab1461034857806323b872dd14610373578063313ce567146103b057806335377214146103db578063378dc3dc146103f75761025c565b806302252c4d14610261578063044ab74e1461028a57806306fdde03146102b5578063095ea7b3146102e057806318160ddd1461031d575b600080fd5b34801561026d57600080fd5b506102886004803603810190610283919061370d565b6109cf565b005b34801561029657600080fd5b5061029f610a99565b6040516102ac9190613c83565b60405180910390f35b3480156102c157600080fd5b506102ca610b27565b6040516102d79190613c83565b60405180910390f35b3480156102ec57600080fd5b506103076004803603810190610302919061363b565b610bb9565b6040516103149190613c68565b60405180910390f35b34801561032957600080fd5b50610332610bdc565b60405161033f9190614045565b60405180910390f35b34801561035457600080fd5b5061035d610be6565b60405161036a9190613c68565b60405180910390f35b34801561037f57600080fd5b5061039a600480360381019061039591906135e8565b610c00565b6040516103a79190613c68565b60405180910390f35b3480156103bc57600080fd5b506103c5610f9e565b6040516103d29190614060565b60405180910390f35b6103f560048036038101906103f0919061367b565b610fc6565b005b34801561040357600080fd5b5061040c611146565b6040516104199190614045565b60405180910390f35b34801561042e57600080fd5b506104496004803603810190610444919061363b565b61114c565b6040516104569190613c68565b60405180910390f35b34801561046b57600080fd5b50610474611183565b005b34801561048257600080fd5b5061049d6004803603810190610498919061363b565b61125b565b005b3480156104ab57600080fd5b506104c660048036038101906104c1919061370d565b6113f0565b005b3480156104d457600080fd5b506104dd611512565b6040516104ea9190613c68565b60405180910390f35b3480156104ff57600080fd5b5061051a6004803603810190610515919061357b565b61152c565b005b34801561052857600080fd5b50610543600480360381019061053e919061357b565b611761565b005b34801561055157600080fd5b5061055a611995565b6040516105679190614060565b60405180910390f35b34801561057c57600080fd5b506105856119a8565b6040516105929190613c68565b60405180910390f35b3480156105a757600080fd5b506105b06119c2565b6040516105bd9190613c68565b60405180910390f35b3480156105d257600080fd5b506105db6119d9565b6040516105e89190613c68565b60405180910390f35b3480156105fd57600080fd5b506106066119f3565b6040516106139190613c46565b60405180910390f35b34801561062857600080fd5b50610643600480360381019061063e919061357b565b611a81565b6040516106509190614045565b60405180910390f35b34801561066557600080fd5b5061066e611ac9565b005b34801561067c57600080fd5b506106976004803603810190610692919061363b565b611b97565b005b3480156106a557600080fd5b506106ae611cbb565b005b3480156106bc57600080fd5b506106c5611d93565b6040516106d29190613c68565b60405180910390f35b3480156106e757600080fd5b506106f0611dad565b6040516106fd9190613c68565b60405180910390f35b34801561071257600080fd5b5061071b611dc7565b6040516107289190613c2b565b60405180910390f35b34801561073d57600080fd5b50610746611df1565b6040516107539190613c2b565b60405180910390f35b34801561076857600080fd5b50610771611e17565b60405161077e9190613c83565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a9919061357b565b611ea9565b6040516107bb9190613c68565b60405180910390f35b3480156107d057600080fd5b506107d9611ec9565b6040516107e69190613c68565b60405180910390f35b3480156107fb57600080fd5b50610804611ee3565b6040516108119190614045565b60405180910390f35b34801561082657600080fd5b50610841600480360381019061083c919061363b565b611ee9565b60405161084e9190613c68565b60405180910390f35b34801561086357600080fd5b5061087e600480360381019061087991906136c4565b611f60565b005b34801561088c57600080fd5b506108a760048036038101906108a2919061363b565b611ff6565b6040516108b49190613c68565b60405180910390f35b3480156108c957600080fd5b506108d2612327565b6040516108df9190613c83565b60405180910390f35b3480156108f457600080fd5b506108fd6123b5565b60405161090a9190614045565b60405180910390f35b34801561091f57600080fd5b5061093a600480360381019061093591906135a8565b6123bb565b6040516109479190614045565b60405180910390f35b34801561095c57600080fd5b50610965612442565b6040516109729190613c2b565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d919061357b565b612468565b005b3480156109b057600080fd5b506109b9612538565b6040516109c69190613c68565b60405180910390f35b6109d76126a7565b73ffffffffffffffffffffffffffffffffffffffff166109f5611dc7565b73ffffffffffffffffffffffffffffffffffffffff1614610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4290613f05565b60405180910390fd5b6010548111610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690613ee5565b60405180910390fd5b8060108190555050565b600d8054610aa690614273565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad290614273565b8015610b1f5780601f10610af457610100808354040283529160200191610b1f565b820191906000526020600020905b815481529060010190602001808311610b0257829003601f168201915b505050505081565b606060038054610b3690614273565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6290614273565b8015610baf5780601f10610b8457610100808354040283529160200191610baf565b820191906000526020600020905b815481529060010190602001808311610b9257829003601f168201915b5050505050905090565b600080610bc46126a7565b9050610bd18185856126af565b600191505092915050565b6000600254905090565b6000600b60000160059054906101000a900460ff16905090565b6000610c0a6119c2565b15610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613e85565b60405180910390fd5b600b60000160039054906101000a900460ff1615610d7d57600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690613e05565b60405180910390fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7390613ea5565b60405180910390fd5b5b600b60000160059054906101000a900460ff1615610eae57600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890613ec5565b60405180910390fd5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490613fe5565b60405180910390fd5b5b600b60000160069054906101000a900460ff1615610f1f5760105482610ed385611a81565b610edd9190614152565b1115610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1590613de5565b60405180910390fd5b5b600b60000160079054906101000a900460ff168015610f7057503373ffffffffffffffffffffffffffffffffffffffff16610f58611dc7565b73ffffffffffffffffffffffffffffffffffffffff16145b15610f8957610f8084848461287a565b60019050610f97565b610f94848484612afb565b90505b9392505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b610fce6126a7565b73ffffffffffffffffffffffffffffffffffffffff16610fec611dc7565b73ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990613f05565b60405180910390fd5b600b60000160059054906101000a900460ff16611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90613f85565b60405180910390fd5b611123600f80548060200260200160405190810160405280929190818152602001828054801561111957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116110cf575b5050505050612b2a565b61112c81612bbf565b80600f9080519060200190611142929190613316565b5050565b60065481565b6000806111576126a7565b905061117881858561116985896123bb565b6111739190614152565b6126af565b600191505092915050565b61118b6126a7565b73ffffffffffffffffffffffffffffffffffffffff166111a9611dc7565b73ffffffffffffffffffffffffffffffffffffffff16146111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690613f05565b60405180910390fd5b600b60000160029054906101000a900460ff16611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890613d85565b60405180910390fd5b611259612c54565b565b6112636126a7565b73ffffffffffffffffffffffffffffffffffffffff16611281611dc7565b73ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90613f05565b60405180910390fd5b6112df6119c2565b1561131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613e85565b60405180910390fd5b600b60000160009054906101000a900460ff16611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890613dc5565b60405180910390fd5b600b60000160069054906101000a900460ff16156113e2576010548161139684611a81565b6113a09190614152565b11156113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890613de5565b60405180910390fd5b5b6113ec8282612cf6565b5050565b6113f86126a7565b73ffffffffffffffffffffffffffffffffffffffff16611416611dc7565b73ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390613f05565b60405180910390fd5b6114746119c2565b156114b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ab90613e85565b60405180910390fd5b600b60000160019054906101000a900460ff16611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd90613e25565b60405180910390fd5b61150f81612e56565b50565b6000600b60000160009054906101000a900460ff16905090565b6115346126a7565b73ffffffffffffffffffffffffffffffffffffffff16611552611dc7565b73ffffffffffffffffffffffffffffffffffffffff16146115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f90613f05565b60405180910390fd5b6115b06119c2565b156115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790613e85565b60405180910390fd5b600b60000160039054906101000a900460ff16611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163990613fc5565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c690613d25565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f16c91aa72a8077fd74f8a1e560a7c4a08163a96f6c33c8bec63023729015c8c3816040516117569190613c2b565b60405180910390a150565b6117696126a7565b73ffffffffffffffffffffffffffffffffffffffff16611787611dc7565b73ffffffffffffffffffffffffffffffffffffffff16146117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d490613f05565b60405180910390fd5b6117e56119c2565b15611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90613e85565b60405180910390fd5b600b60000160039054906101000a900460ff16611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90613fc5565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613cc5565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f53b5784bb7136e9078b4ff63d2cca56b3508aa09f28771aefb80b49053e6969d8160405161198a9190613c2b565b60405180910390a150565b600560159054906101000a900460ff1681565b6000600b60000160069054906101000a900460ff16905090565b6000600560009054906101000a900460ff16905090565b6000600b60000160079054906101000a900460ff16905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015611a7757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611a2d575b5050505050905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ad16126a7565b73ffffffffffffffffffffffffffffffffffffffff16611aef611dc7565b73ffffffffffffffffffffffffffffffffffffffff1614611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613f05565b60405180910390fd5b611b4d6119c2565b15611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8490613e85565b60405180910390fd5b611b95612e6a565b565b611b9f6126a7565b73ffffffffffffffffffffffffffffffffffffffff16611bbd611dc7565b73ffffffffffffffffffffffffffffffffffffffff1614611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90613f05565b60405180910390fd5b611c1b6119c2565b15611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5290613e85565b60405180910390fd5b600b60000160019054906101000a900460ff16611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca490613e25565b60405180910390fd5b611cb78282612ef2565b5050565b611cc36126a7565b73ffffffffffffffffffffffffffffffffffffffff16611ce1611dc7565b73ffffffffffffffffffffffffffffffffffffffff1614611d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2e90613f05565b60405180910390fd5b600b60000160029054906101000a900460ff16611d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8090613e65565b60405180910390fd5b611d91612f12565b565b6000600b60000160039054906101000a900460ff16905090565b6000600b60000160019054906101000a900460ff16905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611e2690614273565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5290614273565b8015611e9f5780601f10611e7457610100808354040283529160200191611e9f565b820191906000526020600020905b815481529060010190602001808311611e8257829003601f168201915b5050505050905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000600b60000160029054906101000a900460ff16905090565b60075481565b600080611ef46126a7565b90506000611f0282866123bb565b905083811015611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e90613fa5565b60405180910390fd5b611f5482868684036126af565b60019250505092915050565b611f686126a7565b73ffffffffffffffffffffffffffffffffffffffff16611f86611dc7565b73ffffffffffffffffffffffffffffffffffffffff1614611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd390613f05565b60405180910390fd5b80600d9080519060200190611ff29291906133a0565b5050565b60006120006119c2565b15612040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203790613e85565b60405180910390fd5b600b60000160039054906101000a900460ff161561217357600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dc90613e05565b60405180910390fd5b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216990613ea5565b60405180910390fd5b5b600b60000160059054906101000a900460ff16156122a457600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e90613ec5565b60405180910390fd5b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613fe5565b60405180910390fd5b5b600b60000160069054906101000a900460ff161561231557601054826122c985611a81565b6122d39190614152565b1115612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b90613de5565b60405180910390fd5b5b61231f8383612fb5565b905092915050565b6008805461233490614273565b80601f016020809104026020016040519081016040528092919081815260200182805461236090614273565b80156123ad5780601f10612382576101008083540402835291602001916123ad565b820191906000526020600020905b81548152906001019060200180831161239057829003601f168201915b505050505081565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6124706126a7565b73ffffffffffffffffffffffffffffffffffffffff1661248e611dc7565b73ffffffffffffffffffffffffffffffffffffffff16146124e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124db90613f05565b60405180910390fd5b6124ec6119c2565b1561252c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252390613e85565b60405180910390fd5b61253581612552565b50565b6000600b60000160049054906101000a900460ff16905090565b61255a6126a7565b73ffffffffffffffffffffffffffffffffffffffff16612578611dc7565b73ffffffffffffffffffffffffffffffffffffffff16146125ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c590613f05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561263e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263590613d45565b60405180910390fd5b61264781612fd8565b50565b6126558383836126a2565b61265d6119c2565b1561269d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269490614025565b60405180910390fd5b505050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561271f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271690613f65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561278f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278690613d65565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161286d9190614045565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e190613f45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561295a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295190613ca5565b60405180910390fd5b61296583838361309e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e290613e45565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a7e9190614152565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ae29190614045565b60405180910390a3612af58484846130ae565b50505050565b600080612b066126a7565b9050612b138582856130b3565b612b1e85858561287a565b60019150509392505050565b60005b8151811015612bbb576000600e6000848481518110612b4f57612b4e61437d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612bb3906142d6565b915050612b2d565b5050565b60005b8151811015612c50576001600e6000848481518110612be457612be361437d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612c48906142d6565b915050612bc2565b5050565b612c5c6119c2565b612c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9290613ce5565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612cdf6126a7565b604051612cec9190613c2b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5d90614005565b60405180910390fd5b612d726000838361309e565b8060026000828254612d849190614152565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612dd99190614152565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e3e9190614045565b60405180910390a3612e52600083836130ae565b5050565b612e67612e616126a7565b8261313f565b50565b612e726126a7565b73ffffffffffffffffffffffffffffffffffffffff16612e90611dc7565b73ffffffffffffffffffffffffffffffffffffffff1614612ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612edd90613f05565b60405180910390fd5b612ef06000612fd8565b565b612f0482612efe6126a7565b836130b3565b612f0e828261313f565b5050565b612f1a6119c2565b15612f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5190613e85565b60405180910390fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612f9e6126a7565b604051612fab9190613c2b565b60405180910390a1565b600080612fc06126a7565b9050612fcd81858561287a565b600191505092915050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6130a983838361264a565b505050565b505050565b60006130bf84846123bb565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114613139578181101561312b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312290613da5565b60405180910390fd5b61313884848484036126af565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156131af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a690613f25565b60405180910390fd5b6131bb8260008361309e565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323890613d05565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002600082825461329891906141a8565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132fd9190614045565b60405180910390a3613311836000846130ae565b505050565b82805482825590600052602060002090810192821561338f579160200282015b8281111561338e5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613336565b5b50905061339c9190613426565b5090565b8280546133ac90614273565b90600052602060002090601f0160209004810192826133ce5760008555613415565b82601f106133e757805160ff1916838001178555613415565b82800160010185558215613415579182015b828111156134145782518255916020019190600101906133f9565b5b5090506134229190613426565b5090565b5b8082111561343f576000816000905550600101613427565b5090565b6000613456613451846140a0565b61407b565b90508083825260208201905082856020860282011115613479576134786143e0565b5b60005b858110156134a9578161348f88826134f5565b84526020840193506020830192505060018101905061347c565b5050509392505050565b60006134c66134c1846140cc565b61407b565b9050828152602081018484840111156134e2576134e16143e5565b5b6134ed848285614231565b509392505050565b60008135905061350481614b0a565b92915050565b600082601f83011261351f5761351e6143db565b5b813561352f848260208601613443565b91505092915050565b600082601f83011261354d5761354c6143db565b5b813561355d8482602086016134b3565b91505092915050565b60008135905061357581614b21565b92915050565b600060208284031215613591576135906143ef565b5b600061359f848285016134f5565b91505092915050565b600080604083850312156135bf576135be6143ef565b5b60006135cd858286016134f5565b92505060206135de858286016134f5565b9150509250929050565b600080600060608486031215613601576136006143ef565b5b600061360f868287016134f5565b9350506020613620868287016134f5565b925050604061363186828701613566565b9150509250925092565b60008060408385031215613652576136516143ef565b5b6000613660858286016134f5565b925050602061367185828601613566565b9150509250929050565b600060208284031215613691576136906143ef565b5b600082013567ffffffffffffffff8111156136af576136ae6143ea565b5b6136bb8482850161350a565b91505092915050565b6000602082840312156136da576136d96143ef565b5b600082013567ffffffffffffffff8111156136f8576136f76143ea565b5b61370484828501613538565b91505092915050565b600060208284031215613723576137226143ef565b5b600061373184828501613566565b91505092915050565b60006137468383613752565b60208301905092915050565b61375b816141dc565b82525050565b61376a816141dc565b82525050565b600061377b8261410d565b6137858185614130565b9350613790836140fd565b8060005b838110156137c15781516137a8888261373a565b97506137b383614123565b925050600181019050613794565b5085935050505092915050565b6137d7816141ee565b82525050565b60006137e882614118565b6137f28185614141565b9350613802818560208601614240565b61380b816143f4565b840191505092915050565b6000613823602383614141565b915061382e82614405565b604082019050919050565b6000613846601883614141565b915061385182614454565b602082019050919050565b6000613869601483614141565b91506138748261447d565b602082019050919050565b600061388c602283614141565b9150613897826144a6565b604082019050919050565b60006138af601983614141565b91506138ba826144f5565b602082019050919050565b60006138d2602683614141565b91506138dd8261451e565b604082019050919050565b60006138f5602283614141565b91506139008261456d565b604082019050919050565b6000613918602e83614141565b9150613923826145bc565b604082019050919050565b600061393b601d83614141565b91506139468261460b565b602082019050919050565b600061395e602b83614141565b915061396982614634565b604082019050919050565b6000613981602e83614141565b915061398c82614683565b604082019050919050565b60006139a4601883614141565b91506139af826146d2565b602082019050919050565b60006139c7602b83614141565b91506139d2826146fb565b604082019050919050565b60006139ea602683614141565b91506139f58261474a565b604082019050919050565b6000613a0d602c83614141565b9150613a1882614799565b604082019050919050565b6000613a30601083614141565b9150613a3b826147e8565b602082019050919050565b6000613a53601583614141565b9150613a5e82614811565b602082019050919050565b6000613a76601983614141565b9150613a818261483a565b602082019050919050565b6000613a99601f83614141565b9150613aa482614863565b602082019050919050565b6000613abc602083614141565b9150613ac78261488c565b602082019050919050565b6000613adf602183614141565b9150613aea826148b5565b604082019050919050565b6000613b02602583614141565b9150613b0d82614904565b604082019050919050565b6000613b25602483614141565b9150613b3082614953565b604082019050919050565b6000613b48601583614141565b9150613b53826149a2565b602082019050919050565b6000613b6b602583614141565b9150613b76826149cb565b604082019050919050565b6000613b8e602a83614141565b9150613b9982614a1a565b604082019050919050565b6000613bb1601683614141565b9150613bbc82614a69565b602082019050919050565b6000613bd4601f83614141565b9150613bdf82614a92565b602082019050919050565b6000613bf7602a83614141565b9150613c0282614abb565b604082019050919050565b613c168161421a565b82525050565b613c2581614224565b82525050565b6000602082019050613c406000830184613761565b92915050565b60006020820190508181036000830152613c608184613770565b905092915050565b6000602082019050613c7d60008301846137ce565b92915050565b60006020820190508181036000830152613c9d81846137dd565b905092915050565b60006020820190508181036000830152613cbe81613816565b9050919050565b60006020820190508181036000830152613cde81613839565b9050919050565b60006020820190508181036000830152613cfe8161385c565b9050919050565b60006020820190508181036000830152613d1e8161387f565b9050919050565b60006020820190508181036000830152613d3e816138a2565b9050919050565b60006020820190508181036000830152613d5e816138c5565b9050919050565b60006020820190508181036000830152613d7e816138e8565b9050919050565b60006020820190508181036000830152613d9e8161390b565b9050919050565b60006020820190508181036000830152613dbe8161392e565b9050919050565b60006020820190508181036000830152613dde81613951565b9050919050565b60006020820190508181036000830152613dfe81613974565b9050919050565b60006020820190508181036000830152613e1e81613997565b9050919050565b60006020820190508181036000830152613e3e816139ba565b9050919050565b60006020820190508181036000830152613e5e816139dd565b9050919050565b60006020820190508181036000830152613e7e81613a00565b9050919050565b60006020820190508181036000830152613e9e81613a23565b9050919050565b60006020820190508181036000830152613ebe81613a46565b9050919050565b60006020820190508181036000830152613ede81613a69565b9050919050565b60006020820190508181036000830152613efe81613a8c565b9050919050565b60006020820190508181036000830152613f1e81613aaf565b9050919050565b60006020820190508181036000830152613f3e81613ad2565b9050919050565b60006020820190508181036000830152613f5e81613af5565b9050919050565b60006020820190508181036000830152613f7e81613b18565b9050919050565b60006020820190508181036000830152613f9e81613b3b565b9050919050565b60006020820190508181036000830152613fbe81613b5e565b9050919050565b60006020820190508181036000830152613fde81613b81565b9050919050565b60006020820190508181036000830152613ffe81613ba4565b9050919050565b6000602082019050818103600083015261401e81613bc7565b9050919050565b6000602082019050818103600083015261403e81613bea565b9050919050565b600060208201905061405a6000830184613c0d565b92915050565b60006020820190506140756000830184613c1c565b92915050565b6000614085614096565b905061409182826142a5565b919050565b6000604051905090565b600067ffffffffffffffff8211156140bb576140ba6143ac565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156140e7576140e66143ac565b5b6140f0826143f4565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061415d8261421a565b91506141688361421a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561419d5761419c61431f565b5b828201905092915050565b60006141b38261421a565b91506141be8361421a565b9250828210156141d1576141d061431f565b5b828203905092915050565b60006141e7826141fa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561425e578082015181840152602081019050614243565b8381111561426d576000848401525b50505050565b6000600282049050600182168061428b57607f821691505b6020821081141561429f5761429e61434e565b5b50919050565b6142ae826143f4565b810181811067ffffffffffffffff821117156142cd576142cc6143ac565b5b80604052505050565b60006142e18261421a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156143145761431361431f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5573657220616c72656164792077686974656c69737465640000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5573657220616c726561647920626c61636b6c69737465642100000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20756e7061757365206973206e6f7420616c6c6f77656420696e60008201527f207468697320636f6e7472616374000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f4572726f723a206d696e74206973206e6f7420616c6c6f77656420696e20746860008201527f697320636f6e7472616374000000000000000000000000000000000000000000602082015250565b7f5468697320616464726573732063616e6e6f7420686f6c64207468617420616d60008201527f6f756e74206f6620746f6b656e73000000000000000000000000000000000000602082015250565b7f526563697069656e7420697320626c61636b6c69737465640000000000000000600082015250565b7f4572726f723a206275726e206973206e6f7420616c6c6f77656420696e20746860008201527f697320636f6e7472616374000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a207061757365206973206e6f7420616c6c6f77656420696e207460008201527f68697320636f6e74726163740000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f53656e64657220697320626c61636b6c69737465640000000000000000000000600082015250565b7f526563697069656e74206e6f742077686974656c697374656400000000000000600082015250565b7f43616e6e6f7420736574206c657373207468616e206c6173742076616c756500600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c697374206e6f7420656e61626c65640000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c697374696e67206e6f7420706f737369626c65206f6e2074686960008201527f7320636f6e747261637400000000000000000000000000000000000000000000602082015250565b7f53656e646572206e6f742077686974656c697374656400000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b614b13816141dc565b8114614b1e57600080fd5b50565b614b2a8161421a565b8114614b3557600080fd5b5056fea2646970667358221220351e0807e7a07ebdd7c002b263b827c8a10f70087d77e9a5123c3aa00d6c4d5764736f6c6343000807003300000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4efd36001d69bf13c9bb72fe134b688139f68d400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000009254c0fcb2faa4550b9ba582558ce1d03ba3d05d0000000000000000000000000000000000000000000000000000000000000009555320446f6c6c61720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000355534400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Loading