[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApprovalToCurrentOwner", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "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": [], "name": "MAX_PURCHASABLE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "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": "baseURIExtended", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "extension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pack", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addressList", "type": "address[]" } ], "name": "preMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "preMintTotal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" } ], "name": "reserveTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": "_uri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_extension", "type": "string" } ], "name": "setExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_packAddr", "type": "address" } ], "name": "setPack", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" } ], "name": "setRoyaltyPayoutAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "_royalties", "type": "uint96" } ], "name": "setTokenRoyalties", "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": [], "name": "tokenRoyalties", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "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": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526000600c55604051806060016040528060368152602001620057b460369139600d908162000033919062000d38565b506040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600e90816200007a919062000d38565b506101f4600f60006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060646010557385e6cc88f3055b589eb1d4030863be2cfcc0763e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200011557600080fd5b506040518060400160405280600681526020017f517561636b7a00000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f517561636b7a0000000000000000000000000000000000000000000000000000815250816002908162000193919062000d38565b508060039081620001a5919062000d38565b50620001b66200025c60201b60201c565b6000819055505050620001de620001d26200026160201b60201c565b6200026960201b60201c565b600160098190555062000208620001fa6200032f60201b60201c565b60016200035960201b60201c565b62000256601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a90046bffffffffffffffffffffffff166200037f60201b60201c565b62001112565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200037b8282604051806020016040528060008152506200052260201b60201c565b5050565b6200038f6200053c60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115620003f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e79062000ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000462576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004599062000f18565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6200053783838360016200054660201b60201c565b505050565b6000612710905090565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620005b3576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008403620005ee576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200060360008683876200093e60201b60201c565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600081905060008582019050838015620007db5750620007da8773ffffffffffffffffffffffffffffffffffffffff166200094460201b62001ab51760201c565b5b15620008ad575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46200085960008884806001019550886200095760201b60201c565b62000890576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808203620007e2578260005414620008a757600080fd5b62000919565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808203620008ae575b81600081905550505062000937600086838762000ab860201b60201c565b5050505050565b50505050565b600080823b905060008111915050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620009856200026160201b60201c565b8786866040518563ffffffff1660e01b8152600401620009a994939291906200102a565b6020604051808303816000875af1925050508015620009e857506040513d601f19601f82011682018060405250810190620009e59190620010e0565b60015b62000a65573d806000811462000a1b576040519150601f19603f3d011682016040523d82523d6000602084013e62000a20565b606091505b50600081510362000a5d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b50505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b4057607f821691505b60208210810362000b565762000b5562000af8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bc07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b81565b62000bcc868362000b81565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c1962000c1362000c0d8462000be4565b62000bee565b62000be4565b9050919050565b6000819050919050565b62000c358362000bf8565b62000c4d62000c448262000c20565b84845462000b8e565b825550505050565b600090565b62000c6462000c55565b62000c7181848462000c2a565b505050565b5b8181101562000c995762000c8d60008262000c5a565b60018101905062000c77565b5050565b601f82111562000ce85762000cb28162000b5c565b62000cbd8462000b71565b8101602085101562000ccd578190505b62000ce562000cdc8562000b71565b83018262000c76565b50505b505050565b600082821c905092915050565b600062000d0d6000198460080262000ced565b1980831691505092915050565b600062000d28838362000cfa565b9150826002028217905092915050565b62000d438262000abe565b67ffffffffffffffff81111562000d5f5762000d5e62000ac9565b5b62000d6b825462000b27565b62000d7882828562000c9d565b600060209050601f83116001811462000db0576000841562000d9b578287015190505b62000da7858262000d1a565b86555062000e17565b601f19841662000dc08662000b5c565b60005b8281101562000dea5784890151825560018201915060208501945060208101905062000dc3565b8683101562000e0a578489015162000e06601f89168262000cfa565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b600062000e8e602a8362000e1f565b915062000e9b8262000e30565b604082019050919050565b6000602082019050818103600083015262000ec18162000e7f565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600062000f0060198362000e1f565b915062000f0d8262000ec8565b602082019050919050565b6000602082019050818103600083015262000f338162000ef1565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f678262000f3a565b9050919050565b62000f798162000f5a565b82525050565b62000f8a8162000be4565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000fcc57808201518184015260208101905062000faf565b60008484015250505050565b6000601f19601f8301169050919050565b600062000ff68262000f90565b62001002818562000f9b565b93506200101481856020860162000fac565b6200101f8162000fd8565b840191505092915050565b600060808201905062001041600083018762000f6e565b62001050602083018662000f6e565b6200105f604083018562000f7f565b818103606083015262001073818462000fe9565b905095945050505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b620010ba8162001083565b8114620010c657600080fd5b50565b600081519050620010da81620010af565b92915050565b600060208284031215620010f957620010f86200107e565b5b60006200110984828501620010c9565b91505092915050565b61469280620011226000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806345aeefde116101255780638da5cb5b116100ad578063c87b56dd1161007c578063c87b56dd146105c5578063e4d3d448146105f5578063e985e9c514610613578063ef08283814610643578063f2fde38b1461066157610211565b80638da5cb5b1461055157806395d89b411461056f578063a22cb4651461058d578063b88d4fde146105a957610211565b80636a627842116100f45780636a627842146104af57806370a08231146104df578063715018a61461050f57806378cf19e9146105195780637e2285aa1461053557610211565b806345aeefde1461042957806355f804b314610445578063613254ae146104615780636352211e1461047f57610211565b8063293b6c7d116101a857806332cb6b0c1161017757806332cb6b0c146103ad578063353c65c5146103cb5780633ccfd60b146103e757806342842e0e146103f157806342966c681461040d57610211565b8063293b6c7d146103245780632a55205a146103405780632d5537b0146103715780632dff84231461038f57610211565b8063119e4398116101e4578063119e4398146102b057806318160ddd146102ce5780631ebdcaae146102ec57806323b872dd1461030857610211565b806301ffc9a71461021657806306fdde0314610246578063081812fc14610264578063095ea7b314610294575b600080fd5b610230600480360381019061022b9190613337565b61067d565b60405161023d919061337f565b60405180910390f35b61024e61068f565b60405161025b919061342a565b60405180910390f35b61027e60048036038101906102799190613482565b610721565b60405161028b91906134f0565b60405180910390f35b6102ae60048036038101906102a99190613537565b61079d565b005b6102b86108a7565b6040516102c59190613586565b60405180910390f35b6102d66108ac565b6040516102e39190613586565b60405180910390f35b610306600480360381019061030191906135e5565b6108c3565b005b610322600480360381019061031d9190613612565b6109b9565b005b61033e600480360381019061033991906136ca565b6109c9565b005b61035a60048036038101906103559190613717565b610b0d565b604051610368929190613757565b60405180910390f35b610379610cf7565b604051610386919061342a565b60405180910390f35b610397610d85565b6040516103a4919061378f565b60405180910390f35b6103b5610da3565b6040516103c29190613586565b60405180910390f35b6103e560048036038101906103e091906137aa565b610da9565b005b6103ef610e69565b005b61040b60048036038101906104069190613612565b610f6e565b005b61042760048036038101906104229190613482565b610f8e565b005b610443600480360381019061043e91906137aa565b610f9a565b005b61045f600480360381019061045a9190613907565b6110a0565b005b61046961112f565b6040516104769190613586565b60405180910390f35b61049960048036038101906104949190613482565b611135565b6040516104a691906134f0565b60405180910390f35b6104c960048036038101906104c491906137aa565b61114b565b6040516104d69190613586565b60405180910390f35b6104f960048036038101906104f491906137aa565b61124a565b6040516105069190613586565b60405180910390f35b610517611319565b005b610533600480360381019061052e9190613537565b6113a1565b005b61054f600480360381019061054a9190613907565b61148e565b005b61055961151d565b60405161056691906134f0565b60405180910390f35b610577611547565b604051610584919061342a565b60405180910390f35b6105a760048036038101906105a2919061397c565b6115d9565b005b6105c360048036038101906105be9190613a5d565b611750565b005b6105df60048036038101906105da9190613482565b6117cc565b6040516105ec919061342a565b60405180910390f35b6105fd611876565b60405161060a919061342a565b60405180910390f35b61062d60048036038101906106289190613ae0565b611904565b60405161063a919061337f565b60405180910390f35b61064b611998565b60405161065891906134f0565b60405180910390f35b61067b600480360381019061067691906137aa565b6119be565b005b600061068882611ac8565b9050919050565b60606002805461069e90613b4f565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca90613b4f565b80156107175780601f106106ec57610100808354040283529160200191610717565b820191906000526020600020905b8154815290600101906020018083116106fa57829003601f168201915b5050505050905090565b600061072c82611b42565b610762576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107a882611135565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361080f576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661082e611b90565b73ffffffffffffffffffffffffffffffffffffffff1614158015610860575061085e81610859611b90565b611904565b155b15610897576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108a2838383611b98565b505050565b601481565b60006108b6611c4a565b6001546000540303905090565b6108cb611b90565b73ffffffffffffffffffffffffffffffffffffffff166108e961151d565b73ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690613bcc565b60405180910390fd5b80600f60006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506109b6601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a90046bffffffffffffffffffffffff16611c4f565b50565b6109c4838383611de4565b505050565b6109d1611b90565b73ffffffffffffffffffffffffffffffffffffffff166109ef61151d565b73ffffffffffffffffffffffffffffffffffffffff1614610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c90613bcc565b60405180910390fd5b601054600c5483839050610a599190613c1b565b1115610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9190613c9b565b60405180910390fd5b60005b82829050811015610b0857610ada838383818110610abe57610abd613cbb565b5b9050602002016020810190610ad391906137aa565b6001612298565b6001600c6000828254610aed9190613c1b565b92505081905550600181610b019190613c1b565b9050610a9d565b505050565b6000806000600b60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610ca257600a6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610cac6122b6565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610cd89190613cea565b610ce29190613d5b565b90508160000151819350935050509250929050565b600e8054610d0490613b4f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3090613b4f565b8015610d7d5780601f10610d5257610100808354040283529160200191610d7d565b820191906000526020600020905b815481529060010190602001808311610d6057829003601f168201915b505050505081565b600f60009054906101000a90046bffffffffffffffffffffffff1681565b6101a481565b610db1611b90565b73ffffffffffffffffffffffffffffffffffffffff16610dcf61151d565b73ffffffffffffffffffffffffffffffffffffffff1614610e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1c90613bcc565b60405180910390fd5b80600f600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610e71611b90565b73ffffffffffffffffffffffffffffffffffffffff16610e8f61151d565b73ffffffffffffffffffffffffffffffffffffffff1614610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90613bcc565b60405180910390fd5b600047905060008111610f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2490613dd8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610f6b57600080fd5b50565b610f8983838360405180602001604052806000815250611750565b505050565b610f97816122c0565b50565b610fa2611b90565b73ffffffffffffffffffffffffffffffffffffffff16610fc061151d565b73ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90613bcc565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061109d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a90046bffffffffffffffffffffffff16611c4f565b50565b6110a8611b90565b73ffffffffffffffffffffffffffffffffffffffff166110c661151d565b73ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390613bcc565b60405180910390fd5b80600d908161112b9190613fa4565b5050565b60105481565b6000611140826122ce565b600001519050919050565b6000600f600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906140c2565b60405180910390fd5b6101a460016111ea6108ac565b6111f49190613c1b565b1115611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90614154565b60405180910390fd5b611240826001612298565b6000549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b1576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b611321611b90565b73ffffffffffffffffffffffffffffffffffffffff1661133f61151d565b73ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90613bcc565b60405180910390fd5b61139f600061255d565b565b6113a9611b90565b73ffffffffffffffffffffffffffffffffffffffff166113c761151d565b73ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490613bcc565b60405180910390fd5b60008111801561144157506101a46114336108ac565b8261143e9190613c1b565b11155b611480576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611477906141c0565b60405180910390fd5b61148a8282612298565b5050565b611496611b90565b73ffffffffffffffffffffffffffffffffffffffff166114b461151d565b73ffffffffffffffffffffffffffffffffffffffff161461150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190613bcc565b60405180910390fd5b80600e90816115199190613fa4565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461155690613b4f565b80601f016020809104026020016040519081016040528092919081815260200182805461158290613b4f565b80156115cf5780601f106115a4576101008083540402835291602001916115cf565b820191906000526020600020905b8154815290600101906020018083116115b257829003601f168201915b5050505050905090565b6115e1611b90565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611645576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611652611b90565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166116ff611b90565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611744919061337f565b60405180910390a35050565b61175b848484611de4565b61177a8373ffffffffffffffffffffffffffffffffffffffff16611ab5565b801561178f575061178d84848484612623565b155b156117c6576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60606117d782611b42565b611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d9061422c565b60405180910390fd5b6000611820612773565b90506000815111611840576040518060200160405280600081525061186e565b8061184a84612805565b600e60405160200161185e9392919061430b565b6040516020818303038152906040525b915050919050565b600d805461188390613b4f565b80601f01602080910402602001604051908101604052809291908181526020018280546118af90613b4f565b80156118fc5780601f106118d1576101008083540402835291602001916118fc565b820191906000526020600020905b8154815290600101906020018083116118df57829003601f168201915b505050505081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600f600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119c6611b90565b73ffffffffffffffffffffffffffffffffffffffff166119e461151d565b73ffffffffffffffffffffffffffffffffffffffff1614611a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3190613bcc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa0906143ae565b60405180910390fd5b611ab28161255d565b50565b600080823b905060008111915050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611b3b5750611b3a82612965565b5b9050919050565b600081611b4d611c4a565b11158015611b5c575060005482105b8015611b89575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600090565b611c576122b6565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90614440565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b906144ac565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000611def826122ce565b90508373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611e5a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff16611e7b611b90565b73ffffffffffffffffffffffffffffffffffffffff161480611eaa5750611ea985611ea4611b90565b611904565b5b80611eef5750611eb8611b90565b73ffffffffffffffffffffffffffffffffffffffff16611ed784610721565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611f28576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f8e576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f9b8585856001612a47565b611fa760008487611b98565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600460008581526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060006001850190506000600460008381526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361222657600054821461222557878160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602001518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b505050828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122918585856001612a4d565b5050505050565b6122b2828260405180602001604052806000815250612a53565b5050565b6000612710905090565b6122cb816000612a65565b50565b6122d6613288565b6000829050806122e4611c4a565b111580156122f3575060005481105b15612526576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050806040015161252457600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614612408578092505050612558565b5b60011561252357818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161461251e578092505050612558565b612409565b5b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612649611b90565b8786866040518563ffffffff1660e01b815260040161266b9493929190614521565b6020604051808303816000875af19250505080156126a757506040513d601f19601f820116820180604052508101906126a49190614582565b60015b612720573d80600081146126d7576040519150601f19603f3d011682016040523d82523d6000602084013e6126dc565b606091505b506000815103612718576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600d805461278290613b4f565b80601f01602080910402602001604051908101604052809291908181526020018280546127ae90613b4f565b80156127fb5780601f106127d0576101008083540402835291602001916127fb565b820191906000526020600020905b8154815290600101906020018083116127de57829003601f168201915b5050505050905090565b60606000820361284c576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612960565b600082905060005b6000821461287e578080612867906145af565b915050600a826128779190613d5b565b9150612854565b60008167ffffffffffffffff81111561289a576128996137dc565b5b6040519080825280601f01601f1916602001820160405280156128cc5781602001600182028036833780820191505090505b5090505b60008514612959576001826128e591906145f7565b9150600a856128f4919061462b565b60306129009190613c1b565b60f81b81838151811061291657612915613cbb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856129529190613d5b565b94506128d0565b8093505050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612a3057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612a405750612a3f82612e54565b5b9050919050565b50505050565b50505050565b612a608383836001612ebe565b505050565b6000612a70836122ce565b90506000816000015190508215612b515760008173ffffffffffffffffffffffffffffffffffffffff16612aa2611b90565b73ffffffffffffffffffffffffffffffffffffffff161480612ad15750612ad082612acb611b90565b611904565b5b80612b165750612adf611b90565b73ffffffffffffffffffffffffffffffffffffffff16612afe86610721565b73ffffffffffffffffffffffffffffffffffffffff16145b905080612b4f576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b612b5f816000866001612a47565b612b6b60008583611b98565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060018160000160108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600460008781526020019081526020016000209050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600181600001601c6101000a81548160ff02191690831515021790555060006001870190506000600460008381526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612dce576000548214612dcd57848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085602001518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b5050505083600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612e3c816000866001612a4d565b60016000815480929190600101919050555050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612f2a576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008403612f64576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f716000868387612a47565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008190506000858201905083801561313b575061313a8773ffffffffffffffffffffffffffffffffffffffff16611ab5565b5b15613200575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46131b06000888480600101955088612623565b6131e6576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082036131415782600054146131fb57600080fd5b61326b565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808203613201575b8160008190555050506132816000868387612a4d565b5050505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613314816132df565b811461331f57600080fd5b50565b6000813590506133318161330b565b92915050565b60006020828403121561334d5761334c6132d5565b5b600061335b84828501613322565b91505092915050565b60008115159050919050565b61337981613364565b82525050565b60006020820190506133946000830184613370565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d45780820151818401526020810190506133b9565b60008484015250505050565b6000601f19601f8301169050919050565b60006133fc8261339a565b61340681856133a5565b93506134168185602086016133b6565b61341f816133e0565b840191505092915050565b6000602082019050818103600083015261344481846133f1565b905092915050565b6000819050919050565b61345f8161344c565b811461346a57600080fd5b50565b60008135905061347c81613456565b92915050565b600060208284031215613498576134976132d5565b5b60006134a68482850161346d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134da826134af565b9050919050565b6134ea816134cf565b82525050565b600060208201905061350560008301846134e1565b92915050565b613514816134cf565b811461351f57600080fd5b50565b6000813590506135318161350b565b92915050565b6000806040838503121561354e5761354d6132d5565b5b600061355c85828601613522565b925050602061356d8582860161346d565b9150509250929050565b6135808161344c565b82525050565b600060208201905061359b6000830184613577565b92915050565b60006bffffffffffffffffffffffff82169050919050565b6135c2816135a1565b81146135cd57600080fd5b50565b6000813590506135df816135b9565b92915050565b6000602082840312156135fb576135fa6132d5565b5b6000613609848285016135d0565b91505092915050565b60008060006060848603121561362b5761362a6132d5565b5b600061363986828701613522565b935050602061364a86828701613522565b925050604061365b8682870161346d565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261368a57613689613665565b5b8235905067ffffffffffffffff8111156136a7576136a661366a565b5b6020830191508360208202830111156136c3576136c261366f565b5b9250929050565b600080602083850312156136e1576136e06132d5565b5b600083013567ffffffffffffffff8111156136ff576136fe6132da565b5b61370b85828601613674565b92509250509250929050565b6000806040838503121561372e5761372d6132d5565b5b600061373c8582860161346d565b925050602061374d8582860161346d565b9150509250929050565b600060408201905061376c60008301856134e1565b6137796020830184613577565b9392505050565b613789816135a1565b82525050565b60006020820190506137a46000830184613780565b92915050565b6000602082840312156137c0576137bf6132d5565b5b60006137ce84828501613522565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613814826133e0565b810181811067ffffffffffffffff82111715613833576138326137dc565b5b80604052505050565b60006138466132cb565b9050613852828261380b565b919050565b600067ffffffffffffffff821115613872576138716137dc565b5b61387b826133e0565b9050602081019050919050565b82818337600083830152505050565b60006138aa6138a584613857565b61383c565b9050828152602081018484840111156138c6576138c56137d7565b5b6138d1848285613888565b509392505050565b600082601f8301126138ee576138ed613665565b5b81356138fe848260208601613897565b91505092915050565b60006020828403121561391d5761391c6132d5565b5b600082013567ffffffffffffffff81111561393b5761393a6132da565b5b613947848285016138d9565b91505092915050565b61395981613364565b811461396457600080fd5b50565b60008135905061397681613950565b92915050565b60008060408385031215613993576139926132d5565b5b60006139a185828601613522565b92505060206139b285828601613967565b9150509250929050565b600067ffffffffffffffff8211156139d7576139d66137dc565b5b6139e0826133e0565b9050602081019050919050565b6000613a006139fb846139bc565b61383c565b905082815260208101848484011115613a1c57613a1b6137d7565b5b613a27848285613888565b509392505050565b600082601f830112613a4457613a43613665565b5b8135613a548482602086016139ed565b91505092915050565b60008060008060808587031215613a7757613a766132d5565b5b6000613a8587828801613522565b9450506020613a9687828801613522565b9350506040613aa78782880161346d565b925050606085013567ffffffffffffffff811115613ac857613ac76132da565b5b613ad487828801613a2f565b91505092959194509250565b60008060408385031215613af757613af66132d5565b5b6000613b0585828601613522565b9250506020613b1685828601613522565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b6757607f821691505b602082108103613b7a57613b79613b20565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613bb66020836133a5565b9150613bc182613b80565b602082019050919050565b60006020820190508181036000830152613be581613ba9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c268261344c565b9150613c318361344c565b9250828201905080821115613c4957613c48613bec565b5b92915050565b7f517561636b7a3a206f766572206d6178207072656d696e740000000000000000600082015250565b6000613c856018836133a5565b9150613c9082613c4f565b602082019050919050565b60006020820190508181036000830152613cb481613c78565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613cf58261344c565b9150613d008361344c565b9250828202613d0e8161344c565b91508282048414831517613d2557613d24613bec565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d668261344c565b9150613d718361344c565b925082613d8157613d80613d2c565b5b828204905092915050565b7f517561636b7a3a204e6f7468696e6720746f2077697468647261770000000000600082015250565b6000613dc2601b836133a5565b9150613dcd82613d8c565b602082019050919050565b60006020820190508181036000830152613df181613db5565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613e5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613e1d565b613e648683613e1d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613ea1613e9c613e978461344c565b613e7c565b61344c565b9050919050565b6000819050919050565b613ebb83613e86565b613ecf613ec782613ea8565b848454613e2a565b825550505050565b600090565b613ee4613ed7565b613eef818484613eb2565b505050565b5b81811015613f1357613f08600082613edc565b600181019050613ef5565b5050565b601f821115613f5857613f2981613df8565b613f3284613e0d565b81016020851015613f41578190505b613f55613f4d85613e0d565b830182613ef4565b50505b505050565b600082821c905092915050565b6000613f7b60001984600802613f5d565b1980831691505092915050565b6000613f948383613f6a565b9150826002028217905092915050565b613fad8261339a565b67ffffffffffffffff811115613fc657613fc56137dc565b5b613fd08254613b4f565b613fdb828285613f17565b600060209050601f83116001811461400e5760008415613ffc578287015190505b6140068582613f88565b86555061406e565b601f19841661401c86613df8565b60005b828110156140445784890151825560018201915060208501945060208101905061401f565b86831015614061578489015161405d601f891682613f6a565b8355505b6001600288020188555050505b505050505050565b7f6e6f417574680000000000000000000000000000000000000000000000000000600082015250565b60006140ac6006836133a5565b91506140b782614076565b602082019050919050565b600060208201905081810360008301526140db8161409f565b9050919050565b7f517561636b7a3a20507572636861736520776f756c6420657863656564204d4160008201527f585f535550504c59000000000000000000000000000000000000000000000000602082015250565b600061413e6028836133a5565b9150614149826140e2565b604082019050919050565b6000602082019050818103600083015261416d81614131565b9050919050565b7f4e6f7420656e6f7567682072657365727665206c65667420666f72207465616d600082015250565b60006141aa6020836133a5565b91506141b582614174565b602082019050919050565b600060208201905081810360008301526141d98161419d565b9050919050565b7f517561636b7a3a20546f6b656e20646f6573206e6f7420657869737400000000600082015250565b6000614216601c836133a5565b9150614221826141e0565b602082019050919050565b6000602082019050818103600083015261424581614209565b9050919050565b600081905092915050565b60006142628261339a565b61426c818561424c565b935061427c8185602086016133b6565b80840191505092915050565b6000815461429581613b4f565b61429f818661424c565b945060018216600081146142ba57600181146142cf57614302565b60ff1983168652811515820286019350614302565b6142d885613df8565b60005b838110156142fa578154818901526001820191506020810190506142db565b838801955050505b50505092915050565b60006143178286614257565b91506143238285614257565b915061432f8284614288565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006143986026836133a5565b91506143a38261433c565b604082019050919050565b600060208201905081810360008301526143c78161438b565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b600061442a602a836133a5565b9150614435826143ce565b604082019050919050565b600060208201905081810360008301526144598161441d565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b60006144966019836133a5565b91506144a182614460565b602082019050919050565b600060208201905081810360008301526144c581614489565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006144f3826144cc565b6144fd81856144d7565b935061450d8185602086016133b6565b614516816133e0565b840191505092915050565b600060808201905061453660008301876134e1565b61454360208301866134e1565b6145506040830185613577565b818103606083015261456281846144e8565b905095945050505050565b60008151905061457c8161330b565b92915050565b600060208284031215614598576145976132d5565b5b60006145a68482850161456d565b91505092915050565b60006145ba8261344c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145ec576145eb613bec565b5b600182019050919050565b60006146028261344c565b915061460d8361344c565b925082820390508181111561462557614624613bec565b5b92915050565b60006146368261344c565b91506146418361344c565b92508261465157614650613d2c565b5b82820690509291505056fea26469706673582212209b82ee0b77ee45f8aee1e0a1bd4caf3a8cbda9311ccb89b8056f13e267ae054b64736f6c63430008110033697066733a2f2f516d656234715364526778736b544763627478574165456d614b68684a776f59475a476738476a704231664654782f