[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_initBaseURI", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_mintAmount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "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": "removeWhitelistUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseExtension", "type": "string" } ], "name": "setBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newCost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newmaxMintAmount", "type": "uint256" } ], "name": "setmaxMintAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "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": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "whitelistUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "payable", "type": "function" } ]
60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c90816200004a9190620010eb565b50655af3107a4000600d55620186a0600e556101f4600f555f60105f6101000a81548160ff02191690831515021790555034801562000087575f80fd5b5060405162005b7e38038062005b7e8339818101604052810190620000ad919062001327565b8282815f9081620000bf9190620010eb565b508060019081620000d19190620010eb565b505050620000f4620000e86200012160201b60201c565b6200012860201b60201c565b6200010581620001eb60201b60201c565b620001183360016200021060201b60201c565b50505062001a0e565b5f33905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001fb6200037360201b60201c565b80600b90816200020c9190620010eb565b5050565b5f620002216200040460201b60201c565b905060105f9054906101000a900460ff16156200023c575f80fd5b5f821162000248575f80fd5b600f5482111562000257575f80fd5b600e5482826200026891906200140a565b111562000273575f80fd5b620002836200041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146200032a576001151560115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514620003295781600d546200031c919062001444565b34101562000328575f80fd5b5b5b5f600190505b8281116200036d57620003578482846200034b91906200140a565b6200043860201b60201c565b808062000364906200148e565b91505062000330565b50505050565b620003836200012160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003a96200041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000402576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003f99062001538565b60405180910390fd5b565b5f600880549050905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000459828260405180602001604052805f8152506200045d60201b60201c565b5050565b6200046f8383620004ca60201b60201c565b620004835f8484846200070660201b60201c565b620004c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004bc90620015cc565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200053b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000532906200163a565b60405180910390fd5b6200054c81620008a560201b60201c565b156200058f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200058690620016a8565b60405180910390fd5b620005a45f83836001620008ed60201b60201c565b620005b581620008a560201b60201c565b15620005f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005ef90620016a8565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4620007025f8383600162000a7960201b60201c565b5050565b5f6200072e8473ffffffffffffffffffffffffffffffffffffffff1662000a7f60201b60201c565b1562000898578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620007606200012160201b60201c565b8786866040518563ffffffff1660e01b815260040162000784949392919062001776565b6020604051808303815f875af1925050508015620007c257506040513d601f19601f82011682018060405250810190620007bf919062001822565b60015b62000847573d805f8114620007f3576040519150601f19603f3d011682016040523d82523d5f602084013e620007f8565b606091505b505f8151036200083f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083690620015cc565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506200089d565b600190505b949350505050565b5f8073ffffffffffffffffffffffffffffffffffffffff16620008ce8362000aa160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b620009018484848462000ada60201b60201c565b600181111562000948576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093f90620018c6565b60405180910390fd5b5f8290505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036200099757620009918162000ae060201b60201c565b620009df565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614620009de57620009dd858262000b2460201b60201c565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160362000a2a5762000a248162000c8560201b60201c565b62000a72565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161462000a715762000a70848262000d5060201b60201c565b5b5b5050505050565b50505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b50505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f600162000b388462000dd060201b60201c565b62000b449190620018e6565b90505f60075f8481526020019081526020015f2054905081811462000c1c575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f600160088054905062000c9a9190620018e6565b90505f60095f8481526020019081526020015f205490505f6008838154811062000cc95762000cc862001920565b5b905f5260205f2001549050806008838154811062000cec5762000ceb62001920565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f9055600880548062000d375762000d366200194d565b5b600190038181905f5260205f20015f9055905550505050565b5f62000d628362000dd060201b60201c565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000e42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e3990620019ee565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000f0357607f821691505b60208210810362000f195762000f1862000ebe565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000f7d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f40565b62000f89868362000f40565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000fd362000fcd62000fc78462000fa1565b62000faa565b62000fa1565b9050919050565b5f819050919050565b62000fee8362000fb3565b6200100662000ffd8262000fda565b84845462000f4c565b825550505050565b5f90565b6200101c6200100e565b6200102981848462000fe3565b505050565b5b818110156200105057620010445f8262001012565b6001810190506200102f565b5050565b601f8211156200109f57620010698162000f1f565b620010748462000f31565b8101602085101562001084578190505b6200109c620010938562000f31565b8301826200102e565b50505b505050565b5f82821c905092915050565b5f620010c15f1984600802620010a4565b1980831691505092915050565b5f620010db8383620010b0565b9150826002028217905092915050565b620010f68262000e87565b67ffffffffffffffff81111562001112576200111162000e91565b5b6200111e825462000eeb565b6200112b82828562001054565b5f60209050601f83116001811462001161575f84156200114c578287015190505b620011588582620010ce565b865550620011c7565b601f198416620011718662000f1f565b5f5b828110156200119a5784890151825560018201915060208501945060208101905062001173565b86831015620011ba5784890151620011b6601f891682620010b0565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6200120382620011e8565b810181811067ffffffffffffffff8211171562001225576200122462000e91565b5b80604052505050565b5f62001239620011cf565b9050620012478282620011f8565b919050565b5f67ffffffffffffffff82111562001269576200126862000e91565b5b6200127482620011e8565b9050602081019050919050565b5f5b83811015620012a057808201518184015260208101905062001283565b5f8484015250505050565b5f620012c1620012bb846200124c565b6200122e565b905082815260208101848484011115620012e057620012df620011e4565b5b620012ed84828562001281565b509392505050565b5f82601f8301126200130c576200130b620011e0565b5b81516200131e848260208601620012ab565b91505092915050565b5f805f60608486031215620013415762001340620011d8565b5b5f84015167ffffffffffffffff811115620013615762001360620011dc565b5b6200136f86828701620012f5565b935050602084015167ffffffffffffffff811115620013935762001392620011dc565b5b620013a186828701620012f5565b925050604084015167ffffffffffffffff811115620013c557620013c4620011dc565b5b620013d386828701620012f5565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620014168262000fa1565b9150620014238362000fa1565b92508282019050808211156200143e576200143d620013dd565b5b92915050565b5f620014508262000fa1565b91506200145d8362000fa1565b92508282026200146d8162000fa1565b91508282048414831517620014875762001486620013dd565b5b5092915050565b5f6200149a8262000fa1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620014cf57620014ce620013dd565b5b600182019050919050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62001520602083620014da565b91506200152d82620014ea565b602082019050919050565b5f6020820190508181035f830152620015518162001512565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f620015b4603283620014da565b9150620015c18262001558565b604082019050919050565b5f6020820190508181035f830152620015e581620015a6565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f62001622602083620014da565b91506200162f82620015ec565b602082019050919050565b5f6020820190508181035f830152620016538162001614565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f62001690601c83620014da565b91506200169d826200165a565b602082019050919050565b5f6020820190508181035f830152620016c18162001682565b9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620016f382620016c8565b9050919050565b6200170581620016e7565b82525050565b620017168162000fa1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f62001742826200171c565b6200174e818562001726565b93506200176081856020860162001281565b6200176b81620011e8565b840191505092915050565b5f6080820190506200178b5f830187620016fa565b6200179a6020830186620016fa565b620017a960408301856200170b565b8181036060830152620017bd818462001736565b905095945050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b620017fe81620017c8565b811462001809575f80fd5b50565b5f815190506200181c81620017f3565b92915050565b5f602082840312156200183a5762001839620011d8565b5b5f62001849848285016200180c565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e73656375746976652074725f8201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b5f620018ae603583620014da565b9150620018bb8262001852565b604082019050919050565b5f6020820190508181035f830152620018df81620018a0565b9050919050565b5f620018f28262000fa1565b9150620018ff8362000fa1565b92508282039050818111156200191a5762001919620013dd565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4552433732313a2061646472657373207a65726f206973206e6f7420612076615f8201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b5f620019d6602983620014da565b9150620019e3826200197a565b604082019050919050565b5f6020820190508181035f83015262001a0781620019c8565b9050919050565b6141628062001a1c5f395ff3fe60806040526004361061020e575f3560e01c806355f804b311610117578063a22cb4651161009f578063d5abeb011161006e578063d5abeb0114610760578063d936547e1461078a578063da3ef23f146107c6578063e985e9c5146107ee578063f2fde38b1461082a5761020e565b8063a22cb465146106aa578063b88d4fde146106d2578063c6682862146106fa578063c87b56dd146107245761020e565b806370a08231116100e657806370a08231146105dc578063715018a6146106185780637f00c7a61461062e5780638da5cb5b1461065657806395d89b41146106805761020e565b806355f804b3146105245780635c975abb1461054c5780636352211e146105765780636c0360eb146105b25761020e565b80632f745c591161019a57806342842e0e1161016957806342842e0e14610434578063438b63001461045c57806344a0d68a146104985780634a4c560d146104c05780634f6ccce7146104e85761020e565b80632f745c59146103aa57806330cc7ae0146103e65780633ccfd60b1461040e57806340c10f19146104185761020e565b8063095ea7b3116101e1578063095ea7b3146102dc57806313faede61461030457806318160ddd1461032e578063239c70ae1461035857806323b872dd146103825761020e565b806301ffc9a71461021257806302329a291461024e57806306fdde0314610276578063081812fc146102a0575b5f80fd5b34801561021d575f80fd5b5061023860048036038101906102339190612ad9565b610852565b6040516102459190612b1e565b60405180910390f35b348015610259575f80fd5b50610274600480360381019061026f9190612b61565b6108cb565b005b348015610281575f80fd5b5061028a6108ef565b6040516102979190612c16565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190612c69565b61097e565b6040516102d39190612cd3565b60405180910390f35b3480156102e7575f80fd5b5061030260048036038101906102fd9190612d16565b6109c0565b005b34801561030f575f80fd5b50610318610ad6565b6040516103259190612d63565b60405180910390f35b348015610339575f80fd5b50610342610adc565b60405161034f9190612d63565b60405180910390f35b348015610363575f80fd5b5061036c610ae8565b6040516103799190612d63565b60405180910390f35b34801561038d575f80fd5b506103a860048036038101906103a39190612d7c565b610aee565b005b3480156103b5575f80fd5b506103d060048036038101906103cb9190612d16565b610b4e565b6040516103dd9190612d63565b60405180910390f35b3480156103f1575f80fd5b5061040c60048036038101906104079190612dcc565b610bee565b005b610416610c4d565b005b610432600480360381019061042d9190612d16565b610d6d565b005b34801561043f575f80fd5b5061045a60048036038101906104559190612d7c565b610ea7565b005b348015610467575f80fd5b50610482600480360381019061047d9190612dcc565b610ec6565b60405161048f9190612eae565b60405180910390f35b3480156104a3575f80fd5b506104be60048036038101906104b99190612c69565b610f6b565b005b3480156104cb575f80fd5b506104e660048036038101906104e19190612dcc565b610f7d565b005b3480156104f3575f80fd5b5061050e60048036038101906105099190612c69565b610fdd565b60405161051b9190612d63565b60405180910390f35b34801561052f575f80fd5b5061054a60048036038101906105459190612ffa565b61104b565b005b348015610557575f80fd5b50610560611066565b60405161056d9190612b1e565b60405180910390f35b348015610581575f80fd5b5061059c60048036038101906105979190612c69565b611078565b6040516105a99190612cd3565b60405180910390f35b3480156105bd575f80fd5b506105c66110fc565b6040516105d39190612c16565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd9190612dcc565b611188565b60405161060f9190612d63565b60405180910390f35b348015610623575f80fd5b5061062c61123c565b005b348015610639575f80fd5b50610654600480360381019061064f9190612c69565b61124f565b005b348015610661575f80fd5b5061066a611261565b6040516106779190612cd3565b60405180910390f35b34801561068b575f80fd5b50610694611289565b6040516106a19190612c16565b60405180910390f35b3480156106b5575f80fd5b506106d060048036038101906106cb9190613041565b611319565b005b3480156106dd575f80fd5b506106f860048036038101906106f3919061311d565b61132f565b005b348015610705575f80fd5b5061070e611391565b60405161071b9190612c16565b60405180910390f35b34801561072f575f80fd5b5061074a60048036038101906107459190612c69565b61141d565b6040516107579190612c16565b60405180910390f35b34801561076b575f80fd5b506107746114c4565b6040516107819190612d63565b60405180910390f35b348015610795575f80fd5b506107b060048036038101906107ab9190612dcc565b6114ca565b6040516107bd9190612b1e565b60405180910390f35b3480156107d1575f80fd5b506107ec60048036038101906107e79190612ffa565b6114e7565b005b3480156107f9575f80fd5b50610814600480360381019061080f919061319d565b611502565b6040516108219190612b1e565b60405180910390f35b348015610835575f80fd5b50610850600480360381019061084b9190612dcc565b611590565b005b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c457506108c382611612565b5b9050919050565b6108d36116f3565b8060105f6101000a81548160ff02191690831515021790555050565b60605f80546108fd90613208565b80601f016020809104026020016040519081016040528092919081815260200182805461092990613208565b80156109745780601f1061094b57610100808354040283529160200191610974565b820191905f5260205f20905b81548152906001019060200180831161095757829003601f168201915b5050505050905090565b5f61098882611771565b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f6109ca82611078565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a31906132a8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610a596117bc565b73ffffffffffffffffffffffffffffffffffffffff161480610a885750610a8781610a826117bc565b611502565b5b610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90613336565b60405180910390fd5b610ad183836117c3565b505050565b600d5481565b5f600880549050905090565b600f5481565b610aff610af96117bc565b82611879565b610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b35906133c4565b60405180910390fd5b610b4983838361190d565b505050565b5f610b5883611188565b8210610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9090613452565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b610bf66116f3565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610c556116f3565b5f737abfc935ceec4547bf5cf70b00d4f333db651fdf73ffffffffffffffffffffffffffffffffffffffff1660645f47610c8f919061349d565b610c99919061350b565b604051610ca590613568565b5f6040518083038185875af1925050503d805f8114610cdf576040519150601f19603f3d011682016040523d82523d5f602084013e610ce4565b606091505b5050905080610cf1575f80fd5b5f610cfa611261565b73ffffffffffffffffffffffffffffffffffffffff1647604051610d1d90613568565b5f6040518083038185875af1925050503d805f8114610d57576040519150601f19603f3d011682016040523d82523d5f602084013e610d5c565b606091505b5050905080610d69575f80fd5b5050565b5f610d76610adc565b905060105f9054906101000a900460ff1615610d90575f80fd5b5f8211610d9b575f80fd5b600f54821115610da9575f80fd5b600e548282610db8919061357c565b1115610dc2575f80fd5b610dca611261565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6c576001151560115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514610e6b5781600d54610e5f919061349d565b341015610e6a575f80fd5b5b5b5f600190505b828111610ea157610e8e848284610e89919061357c565b611bf9565b8080610e99906135af565b915050610e72565b50505050565b610ec183838360405180602001604052805f81525061132f565b505050565b60605f610ed283611188565b90505f8167ffffffffffffffff811115610eef57610eee612ed6565b5b604051908082528060200260200182016040528015610f1d5781602001602082028036833780820191505090505b5090505f5b82811015610f6057610f348582610b4e565b828281518110610f4757610f466135f6565b5b6020026020010181815250508080600101915050610f22565b508092505050919050565b610f736116f3565b80600d8190555050565b610f856116f3565b600160115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f610fe6610adc565b8210611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90613693565b60405180910390fd5b6008828154811061103b5761103a6135f6565b5b905f5260205f2001549050919050565b6110536116f3565b80600b9081611062919061384e565b5050565b60105f9054906101000a900460ff1681565b5f8061108383611c16565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90613967565b60405180910390fd5b80915050919050565b600b805461110990613208565b80601f016020809104026020016040519081016040528092919081815260200182805461113590613208565b80156111805780601f1061115757610100808354040283529160200191611180565b820191905f5260205f20905b81548152906001019060200180831161116357829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee906139f5565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6112446116f3565b61124d5f611c4f565b565b6112576116f3565b80600f8190555050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461129890613208565b80601f01602080910402602001604051908101604052809291908181526020018280546112c490613208565b801561130f5780601f106112e65761010080835404028352916020019161130f565b820191905f5260205f20905b8154815290600101906020018083116112f257829003601f168201915b5050505050905090565b61132b6113246117bc565b8383611d12565b5050565b61134061133a6117bc565b83611879565b61137f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611376906133c4565b60405180910390fd5b61138b84848484611e79565b50505050565b600c805461139e90613208565b80601f01602080910402602001604051908101604052809291908181526020018280546113ca90613208565b80156114155780601f106113ec57610100808354040283529160200191611415565b820191905f5260205f20905b8154815290600101906020018083116113f857829003601f168201915b505050505081565b606061142882611ed5565b611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90613a83565b60405180910390fd5b5f611470611f15565b90505f81511161148e5760405180602001604052805f8152506114bc565b8061149884611fa5565b600c6040516020016114ac93929190613b5b565b6040516020818303038152906040525b915050919050565b600e5481565b6011602052805f5260405f205f915054906101000a900460ff1681565b6114ef6116f3565b80600c90816114fe919061384e565b5050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6115986116f3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90613bfb565b60405180910390fd5b61160f81611c4f565b50565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116dc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806116ec57506116eb8261206f565b5b9050919050565b6116fb6117bc565b73ffffffffffffffffffffffffffffffffffffffff16611719611261565b73ffffffffffffffffffffffffffffffffffffffff161461176f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176690613c63565b60405180910390fd5b565b61177a81611ed5565b6117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b090613967565b60405180910390fd5b50565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661183383611078565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061188483611078565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118c657506118c58185611502565b5b8061190457508373ffffffffffffffffffffffffffffffffffffffff166118ec8461097e565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661192d82611078565b73ffffffffffffffffffffffffffffffffffffffff1614611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a90613cf1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e890613d7f565b60405180910390fd5b6119fe83838360016120d8565b8273ffffffffffffffffffffffffffffffffffffffff16611a1e82611078565b73ffffffffffffffffffffffffffffffffffffffff1614611a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6b90613cf1565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611bf48383836001612233565b505050565b611c12828260405180602001604052805f815250612239565b5050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7790613de7565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e6c9190612b1e565b60405180910390a3505050565b611e8484848461190d565b611e9084848484612293565b611ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec690613e75565b60405180910390fd5b50505050565b5f8073ffffffffffffffffffffffffffffffffffffffff16611ef683611c16565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6060600b8054611f2490613208565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5090613208565b8015611f9b5780601f10611f7257610100808354040283529160200191611f9b565b820191905f5260205f20905b815481529060010190602001808311611f7e57829003601f168201915b5050505050905090565b60605f6001611fb384612415565b0190505f8167ffffffffffffffff811115611fd157611fd0612ed6565b5b6040519080825280601f01601f1916602001820160405280156120035781602001600182028036833780820191505090505b5090505f82602001820190505b600115612064578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612059576120586134de565b5b0494505f8503612010575b819350505050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6120e484848484612566565b6001811115612128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211f90613f03565b60405180910390fd5b5f8290505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361216d576121688161256c565b6121ac565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146121ab576121aa85826125b0565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121ed576121e881612706565b61222c565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461222b5761222a84826127c6565b5b5b5050505050565b50505050565b612243838361283e565b61224f5f848484612293565b61228e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228590613e75565b60405180910390fd5b505050565b5f6122b38473ffffffffffffffffffffffffffffffffffffffff16612a51565b15612408578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122dc6117bc565b8786866040518563ffffffff1660e01b81526004016122fe9493929190613f73565b6020604051808303815f875af192505050801561233957506040513d601f19601f820116820180604052508101906123369190613fd1565b60015b6123b8573d805f8114612367576040519150601f19603f3d011682016040523d82523d5f602084013e61236c565b606091505b505f8151036123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a790613e75565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061240d565b600190505b949350505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612471577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612467576124666134de565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106124ae576d04ee2d6d415b85acef810000000083816124a4576124a36134de565b5b0492506020810190505b662386f26fc1000083106124dd57662386f26fc1000083816124d3576124d26134de565b5b0492506010810190505b6305f5e1008310612506576305f5e10083816124fc576124fb6134de565b5b0492506008810190505b612710831061252b576127108381612521576125206134de565b5b0492506004810190505b6064831061254e5760648381612544576125436134de565b5b0492506002810190505b600a831061255d576001810190505b80915050919050565b50505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f60016125bc84611188565b6125c69190613ffc565b90505f60075f8481526020019081526020015f2054905081811461269d575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f60016008805490506127199190613ffc565b90505f60095f8481526020019081526020015f205490505f60088381548110612745576127446135f6565b5b905f5260205f20015490508060088381548110612765576127646135f6565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f905560088054806127ad576127ac61402f565b5b600190038181905f5260205f20015f9055905550505050565b5f6127d083611188565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a3906140a6565b60405180910390fd5b6128b581611ed5565b156128f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ec9061410e565b60405180910390fd5b6129025f838360016120d8565b61290b81611ed5565b1561294b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129429061410e565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612a4d5f83836001612233565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612ab881612a84565b8114612ac2575f80fd5b50565b5f81359050612ad381612aaf565b92915050565b5f60208284031215612aee57612aed612a7c565b5b5f612afb84828501612ac5565b91505092915050565b5f8115159050919050565b612b1881612b04565b82525050565b5f602082019050612b315f830184612b0f565b92915050565b612b4081612b04565b8114612b4a575f80fd5b50565b5f81359050612b5b81612b37565b92915050565b5f60208284031215612b7657612b75612a7c565b5b5f612b8384828501612b4d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612bc3578082015181840152602081019050612ba8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612be882612b8c565b612bf28185612b96565b9350612c02818560208601612ba6565b612c0b81612bce565b840191505092915050565b5f6020820190508181035f830152612c2e8184612bde565b905092915050565b5f819050919050565b612c4881612c36565b8114612c52575f80fd5b50565b5f81359050612c6381612c3f565b92915050565b5f60208284031215612c7e57612c7d612a7c565b5b5f612c8b84828501612c55565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cbd82612c94565b9050919050565b612ccd81612cb3565b82525050565b5f602082019050612ce65f830184612cc4565b92915050565b612cf581612cb3565b8114612cff575f80fd5b50565b5f81359050612d1081612cec565b92915050565b5f8060408385031215612d2c57612d2b612a7c565b5b5f612d3985828601612d02565b9250506020612d4a85828601612c55565b9150509250929050565b612d5d81612c36565b82525050565b5f602082019050612d765f830184612d54565b92915050565b5f805f60608486031215612d9357612d92612a7c565b5b5f612da086828701612d02565b9350506020612db186828701612d02565b9250506040612dc286828701612c55565b9150509250925092565b5f60208284031215612de157612de0612a7c565b5b5f612dee84828501612d02565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e2981612c36565b82525050565b5f612e3a8383612e20565b60208301905092915050565b5f602082019050919050565b5f612e5c82612df7565b612e668185612e01565b9350612e7183612e11565b805f5b83811015612ea1578151612e888882612e2f565b9750612e9383612e46565b925050600181019050612e74565b5085935050505092915050565b5f6020820190508181035f830152612ec68184612e52565b905092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f0c82612bce565b810181811067ffffffffffffffff82111715612f2b57612f2a612ed6565b5b80604052505050565b5f612f3d612a73565b9050612f498282612f03565b919050565b5f67ffffffffffffffff821115612f6857612f67612ed6565b5b612f7182612bce565b9050602081019050919050565b828183375f83830152505050565b5f612f9e612f9984612f4e565b612f34565b905082815260208101848484011115612fba57612fb9612ed2565b5b612fc5848285612f7e565b509392505050565b5f82601f830112612fe157612fe0612ece565b5b8135612ff1848260208601612f8c565b91505092915050565b5f6020828403121561300f5761300e612a7c565b5b5f82013567ffffffffffffffff81111561302c5761302b612a80565b5b61303884828501612fcd565b91505092915050565b5f806040838503121561305757613056612a7c565b5b5f61306485828601612d02565b925050602061307585828601612b4d565b9150509250929050565b5f67ffffffffffffffff82111561309957613098612ed6565b5b6130a282612bce565b9050602081019050919050565b5f6130c16130bc8461307f565b612f34565b9050828152602081018484840111156130dd576130dc612ed2565b5b6130e8848285612f7e565b509392505050565b5f82601f83011261310457613103612ece565b5b81356131148482602086016130af565b91505092915050565b5f805f806080858703121561313557613134612a7c565b5b5f61314287828801612d02565b945050602061315387828801612d02565b935050604061316487828801612c55565b925050606085013567ffffffffffffffff81111561318557613184612a80565b5b613191878288016130f0565b91505092959194509250565b5f80604083850312156131b3576131b2612a7c565b5b5f6131c085828601612d02565b92505060206131d185828601612d02565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061321f57607f821691505b602082108103613232576132316131db565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f613292602183612b96565b915061329d82613238565b604082019050919050565b5f6020820190508181035f8301526132bf81613286565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f5f8201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b5f613320603d83612b96565b915061332b826132c6565b604082019050919050565b5f6020820190508181035f83015261334d81613314565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e655f8201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b5f6133ae602d83612b96565b91506133b982613354565b604082019050919050565b5f6020820190508181035f8301526133db816133a2565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f755f8201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b5f61343c602b83612b96565b9150613447826133e2565b604082019050919050565b5f6020820190508181035f83015261346981613430565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134a782612c36565b91506134b283612c36565b92508282026134c081612c36565b915082820484148315176134d7576134d6613470565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61351582612c36565b915061352083612c36565b9250826135305761352f6134de565b5b828204905092915050565b5f81905092915050565b50565b5f6135535f8361353b565b915061355e82613545565b5f82019050919050565b5f61357282613548565b9150819050919050565b5f61358682612c36565b915061359183612c36565b92508282019050808211156135a9576135a8613470565b5b92915050565b5f6135b982612c36565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135eb576135ea613470565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f5f8201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b5f61367d602c83612b96565b915061368882613623565b604082019050919050565b5f6020820190508181035f8301526136aa81613671565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261370d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826136d2565b61371786836136d2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61375261374d61374884612c36565b61372f565b612c36565b9050919050565b5f819050919050565b61376b83613738565b61377f61377782613759565b8484546136de565b825550505050565b5f90565b613793613787565b61379e818484613762565b505050565b5b818110156137c1576137b65f8261378b565b6001810190506137a4565b5050565b601f821115613806576137d7816136b1565b6137e0846136c3565b810160208510156137ef578190505b6138036137fb856136c3565b8301826137a3565b50505b505050565b5f82821c905092915050565b5f6138265f198460080261380b565b1980831691505092915050565b5f61383e8383613817565b9150826002028217905092915050565b61385782612b8c565b67ffffffffffffffff8111156138705761386f612ed6565b5b61387a8254613208565b6138858282856137c5565b5f60209050601f8311600181146138b6575f84156138a4578287015190505b6138ae8582613833565b865550613915565b601f1984166138c4866136b1565b5f5b828110156138eb578489015182556001820191506020850194506020810190506138c6565b868310156139085784890151613904601f891682613817565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20696e76616c696420746f6b656e20494400000000000000005f82015250565b5f613951601883612b96565b915061395c8261391d565b602082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f7420612076615f8201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b5f6139df602983612b96565b91506139ea82613985565b604082019050919050565b5f6020820190508181035f830152613a0c816139d3565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f613a6d602f83612b96565b9150613a7882613a13565b604082019050919050565b5f6020820190508181035f830152613a9a81613a61565b9050919050565b5f81905092915050565b5f613ab582612b8c565b613abf8185613aa1565b9350613acf818560208601612ba6565b80840191505092915050565b5f8154613ae781613208565b613af18186613aa1565b9450600182165f8114613b0b5760018114613b2057613b52565b60ff1983168652811515820286019350613b52565b613b29856136b1565b5f5b83811015613b4a57815481890152600182019150602081019050613b2b565b838801955050505b50505092915050565b5f613b668286613aab565b9150613b728285613aab565b9150613b7e8284613adb565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613be5602683612b96565b9150613bf082613b8b565b604082019050919050565b5f6020820190508181035f830152613c1281613bd9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613c4d602083612b96565b9150613c5882613c19565b602082019050919050565b5f6020820190508181035f830152613c7a81613c41565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f613cdb602583612b96565b9150613ce682613c81565b604082019050919050565b5f6020820190508181035f830152613d0881613ccf565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613d69602483612b96565b9150613d7482613d0f565b604082019050919050565b5f6020820190508181035f830152613d9681613d5d565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f613dd1601983612b96565b9150613ddc82613d9d565b602082019050919050565b5f6020820190508181035f830152613dfe81613dc5565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f613e5f603283612b96565b9150613e6a82613e05565b604082019050919050565b5f6020820190508181035f830152613e8c81613e53565b9050919050565b7f455243373231456e756d657261626c653a20636f6e73656375746976652074725f8201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b5f613eed603583612b96565b9150613ef882613e93565b604082019050919050565b5f6020820190508181035f830152613f1a81613ee1565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f613f4582613f21565b613f4f8185613f2b565b9350613f5f818560208601612ba6565b613f6881612bce565b840191505092915050565b5f608082019050613f865f830187612cc4565b613f936020830186612cc4565b613fa06040830185612d54565b8181036060830152613fb28184613f3b565b905095945050505050565b5f81519050613fcb81612aaf565b92915050565b5f60208284031215613fe657613fe5612a7c565b5b5f613ff384828501613fbd565b91505092915050565b5f61400682612c36565b915061401183612c36565b925082820390508181111561402957614028613470565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f614090602083612b96565b915061409b8261405c565b602082019050919050565b5f6020820190508181035f8301526140bd81614084565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f6140f8601c83612b96565b9150614103826140c4565b602082019050919050565b5f6020820190508181035f830152614125816140ec565b905091905056fea26469706673582212207d265af43f8bd83ee0cd77be4e24aeb1f3bd336267bacbf2bde784db429d317964736f6c63430008180033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000034a4a4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c4c4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014d00000000000000000000000000000000000000000000000000000000000000