[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": false, "internalType": "string", "name": "uri", "type": "string" } ], "name": "ContractURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "walletAddress", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "crewId", "type": "uint256" } ], "name": "CrewJoin", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "walletAddress", "type": "address" }, { "indexed": true, "internalType": "enum CommunityMemory.MintStatus", "name": "mintStatus", "type": "uint8" } ], "name": "HolderMintStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "nominator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "nominee", "type": "address" } ], "name": "Nomination", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "MAX_CREW_SIZE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_OG_READER_COUNT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_READER_COUNT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "crewTracking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "crewId", "type": "uint256" } ], "name": "joinCrew", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "readerTokenAmount", "type": "uint256" } ], "name": "mintOwnerTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintReader", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "mintTracking", "outputs": [ { "internalType": "enum CommunityMemory.MintStatus", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[3]", "name": "readers", "type": "address[3]" } ], "name": "nominateReaders", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nomineeCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nominees", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "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": "_contractURIHash", "type": "string" } ], "name": "setContractURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newUri", "type": "string" } ], "name": "setMetadataUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_paused", "type": "bool" } ], "name": "setPaused", "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": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040525f600a555f600b55604051806080016040528060428152602001620053eb60429139600c908162000036919062000499565b506001600d5f6101000a81548160ff0219169083151502179055506040518060400160405280601081526020017f436f6d6d756e697479204d656d6f727900000000000000000000000000000000815250600e908162000097919062000499565b50348015620000a4575f80fd5b5033604051806080016040528060438152602001620053a860439139620000d1816200015d60201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000145575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200013c9190620005c0565b60405180910390fd5b62000156816200017260201b60201c565b50620005db565b80600290816200016e919062000499565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002b157607f821691505b602082108103620002c757620002c66200026c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200032b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ee565b620003378683620002ee565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003816200037b62000375846200034f565b62000358565b6200034f565b9050919050565b5f819050919050565b6200039c8362000361565b620003b4620003ab8262000388565b848454620002fa565b825550505050565b5f90565b620003ca620003bc565b620003d781848462000391565b505050565b5b81811015620003fe57620003f25f82620003c0565b600181019050620003dd565b5050565b601f8211156200044d576200041781620002cd565b6200042284620002df565b8101602085101562000432578190505b6200044a6200044185620002df565b830182620003dc565b50505b505050565b5f82821c905092915050565b5f6200046f5f198460080262000452565b1980831691505092915050565b5f6200048983836200045e565b9150826002028217905092915050565b620004a48262000235565b67ffffffffffffffff811115620004c057620004bf6200023f565b5b620004cc825462000299565b620004d982828562000402565b5f60209050601f8311600181146200050f575f8415620004fa578287015190505b6200050685826200047c565b86555062000575565b601f1984166200051f86620002cd565b5f5b82811015620005485784890151825560018201915060208501945060208101905062000521565b8683101562000568578489015162000564601f8916826200045e565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005a8826200057d565b9050919050565b620005ba816200059c565b82525050565b5f602082019050620005d55f830184620005af565b92915050565b614dbf80620005e95f395ff3fe608060405234801561000f575f80fd5b50600436106101d7575f3560e01c80638da5cb5b11610102578063defcda0f116100a0578063f242432a1161006f578063f242432a14610563578063f2b0498f1461057f578063f2dcda5c146105af578063f2fde38b146105cd576101d7565b8063defcda0f146104b5578063e5050777146104e5578063e8a3d48514610515578063e985e9c514610533576101d7565b8063a4b76e1f116100dc578063a4b76e1f1461041b578063b48b70ca14610439578063bd85b03914610469578063c6f9118114610499576101d7565b80638da5cb5b146103c5578063938e3d7b146103e3578063a22cb465146103ff576101d7565b806318160ddd1161017a57806349606c841161014957806349606c841461033f5780634e1273f41461035b5780634f558e791461038b578063715018a6146103bb576101d7565b806318160ddd146102df5780632eb2c2d6146102fd5780634041cd4d146103195780634935195d14610335576101d7565b806306fdde03116101b657806306fdde03146102595780630e89341c146102775780631130630c146102a757806316c38b3c146102c3576101d7565b8062fdd58e146101db57806301ffc9a71461020b57806304ad2d871461023b575b5f80fd5b6101f560048036038101906101f0919061354e565b6105e9565b604051610202919061359b565b60405180910390f35b61022560048036038101906102209190613609565b61063e565b604051610232919061364e565b60405180910390f35b61024361071f565b604051610250919061359b565b60405180910390f35b610261610724565b60405161026e91906136f1565b60405180910390f35b610291600480360381019061028c9190613711565b6107b0565b60405161029e91906136f1565b60405180910390f35b6102c160048036038101906102bc919061379d565b6107f0565b005b6102dd60048036038101906102d89190613812565b610848565b005b6102e761086c565b6040516102f4919061359b565b60405180910390f35b61031760048036038101906103129190613a25565b610875565b005b610333600480360381019061032e9190613711565b61091c565b005b61033d610b96565b005b61035960048036038101906103549190613b11565b610e95565b005b61037560048036038101906103709190613bfc565b611296565b6040516103829190613d29565b60405180910390f35b6103a560048036038101906103a09190613711565b61139d565b6040516103b2919061364e565b60405180910390f35b6103c36113b0565b005b6103cd6113c3565b6040516103da9190613d58565b60405180910390f35b6103fd60048036038101906103f8919061379d565b6113eb565b005b61041960048036038101906104149190613d71565b611442565b005b610423611458565b604051610430919061359b565b60405180910390f35b610453600480360381019061044e919061354e565b61145d565b6040516104609190613d58565b60405180910390f35b610483600480360381019061047e9190613711565b61149a565b604051610490919061359b565b60405180910390f35b6104b360048036038101906104ae9190613711565b6114b4565b005b6104cf60048036038101906104ca9190613daf565b611898565b6040516104dc9190613e4d565b60405180910390f35b6104ff60048036038101906104fa9190613daf565b6118b5565b60405161050c919061359b565b60405180910390f35b61051d6118ca565b60405161052a91906136f1565b60405180910390f35b61054d60048036038101906105489190613e66565b61195a565b60405161055a919061364e565b60405180910390f35b61057d60048036038101906105789190613ea4565b6119e8565b005b61059960048036038101906105949190613daf565b611fc7565b6040516105a6919061359b565b60405180910390f35b6105b7611fdc565b6040516105c4919061359b565b60405180910390f35b6105e760048036038101906105e29190613daf565b611fe1565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061070857507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610718575061071782612065565b5b9050919050565b609681565b600e805461073190613f64565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90613f64565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b505050505081565b60605f6107bc836120ce565b9050806107c884612160565b6040516020016107d9929190613fce565b604051602081830303815290604052915050919050565b6107f861222a565b61084482828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506122b1565b5050565b61085061222a565b80600d5f6101000a81548160ff02191690831515021790555050565b5f600454905090565b5f61087e6122c4565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156108c357506108c1868261195a565b155b156109075780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016108fe929190613ff1565b60405180910390fd5b61091486868686866122cb565b505050505050565b61092461222a565b5f6109376109306113c3565b60016105e9565b14610977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e90614062565b60405180910390fd5b6109996109826113c3565b60018360405180602001604052805f8152506123bf565b600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908360038111156109f9576109f8613dda565b5b021790555060016003811115610a1257610a11613dda565b5b3373ffffffffffffffffffffffffffffffffffffffff167f91cc0b28b399b7784ad6347634f7c2fb7a5409e53a64263bde60759c4c106e2960405160405180910390a35f600290505b6008811015610ad757610a86610a6f6113c3565b82600160405180602001604052805f8152506123bf565b803373ffffffffffffffffffffffffffffffffffffffff167ffd71a1ff9a9f64c9d5ae6eabb827f4cf2f1fbf83da684592f87cbdaf0bb9defc60405160405180910390a38080600101915050610a5b565b50600360065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690836003811115610b3857610b37613dda565b5b0217905550600380811115610b5057610b4f613dda565b5b3373ffffffffffffffffffffffffffffffffffffffff167f91cc0b28b399b7784ad6347634f7c2fb7a5409e53a64263bde60759c4c106e2960405160405180910390a350565b600d5f9054906101000a900460ff1615610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc906140ca565b60405180910390fd5b5f610bf13360016105e9565b14610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890614132565b60405180910390fd5b6096610c3d600161149a565b10610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c749061419a565b60405180910390fd5b601e600a5410610d385760026003811115610c9b57610c9a613dda565b5b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166003811115610cf757610cf6613dda565b5b14610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e90614228565b60405180910390fd5b5b5f6003811115610d4b57610d4a613dda565b5b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166003811115610da757610da6613dda565b5b03610dbc57600a5f8154600101919050819055505b600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690836003811115610e1c57610e1b613dda565b5b021790555060016003811115610e3557610e34613dda565b5b3373ffffffffffffffffffffffffffffffffffffffff167f91cc0b28b399b7784ad6347634f7c2fb7a5409e53a64263bde60759c4c106e2960405160405180910390a3610e933360018060405180602001604052805f8152506123bf565b565b600d5f9054906101000a900460ff1615610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906140ca565b60405180910390fd5b60016003811115610ef857610ef7613dda565b5b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166003811115610f5457610f53613dda565b5b1480610fcc5750600380811115610f6e57610f6d613dda565b5b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166003811115610fca57610fc9613dda565b5b145b61100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906142b6565b60405180910390fd5b5f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490506003811061108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690614344565b60405180910390fd5b5f5b600381101561124f575f73ffffffffffffffffffffffffffffffffffffffff168382600381106110c4576110c3614362565b5b6020020160208101906110d79190613daf565b73ffffffffffffffffffffffffffffffffffffffff160315611242575f600381111561110657611105613dda565b5b60065f85846003811061111c5761111b614362565b5b60200201602081019061112f9190613daf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600381111561118757611186613dda565b5b146111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be9061444b565b60405180910390fd5b8160010191506003821115611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890614344565b60405180910390fd5b611241338285846003811061122957611228614362565b5b60200201602081019061123c9190613daf565b612454565b5b8080600101915050611091565b508060085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b606081518351146112e257815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016112d9929190614469565b60405180910390fd5b5f835167ffffffffffffffff8111156112fe576112fd61383d565b5b60405190808252806020026020018201604052801561132c5781602001602082028036833780820191505090505b5090505f5b84518110156113925761136861135082876125f990919063ffffffff16565b611363838761260c90919063ffffffff16565b6105e9565b82828151811061137b5761137a614362565b5b602002602001018181525050806001019050611331565b508091505092915050565b5f806113a88361149a565b119050919050565b6113b861222a565b6113c15f61261f565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113f361222a565b8181600c9182611404929190614637565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051611436929190614730565b60405180910390a15050565b61145461144d6122c4565b83836126e2565b5050565b601e81565b6009602052815f5260405f20602052805f5260405f205f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f8381526020019081526020015f20549050919050565b600d5f9054906101000a900460ff1615611503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fa906140ca565b60405180910390fd5b60028110158015611515575060078111155b611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b9061479c565b60405180910390fd5b60038081111561156757611566613dda565b5b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660038111156115c3576115c2613dda565b5b03611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa9061482a565b60405180910390fd5b6001600381111561161757611616613dda565b5b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600381111561167357611672613dda565b5b146116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa906148b8565b60405180910390fd5b5f6116c56116bf6113c3565b836105e9565b6116ce8361149a565b6116d89190614903565b9050600160066116e89190614903565b8110611729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172090614980565b60405180910390fd5b600b5f815460010191905081905550600360065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083600381111561179857611797613dda565b5b02179055506003808111156117b0576117af613dda565b5b3373ffffffffffffffffffffffffffffffffffffffff167f91cc0b28b399b7784ad6347634f7c2fb7a5409e53a64263bde60759c4c106e2960405160405180910390a38160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550813373ffffffffffffffffffffffffffffffffffffffff167ffd71a1ff9a9f64c9d5ae6eabb827f4cf2f1fbf83da684592f87cbdaf0bb9defc60405160405180910390a36118943383600160405180602001604052805f8152506123bf565b5050565b6006602052805f5260405f205f915054906101000a900460ff1681565b6008602052805f5260405f205f915090505481565b6060600c80546118d990613f64565b80601f016020809104026020016040519081016040528092919081815260200182805461190590613f64565b80156119505780601f1061192757610100808354040283529160200191611950565b820191905f5260205f20905b81548152906001019060200180831161193357829003601f168201915b5050505050905090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6006806119f5919061499e565b600b541015611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090614a75565b60405180910390fd5b611a46858585858561284b565b600160075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115611b8d5760075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548473ffffffffffffffffffffffffffffffffffffffff167ffd71a1ff9a9f64c9d5ae6eabb827f4cf2f1fbf83da684592f87cbdaf0bb9defc60405160405180910390a35b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690836003811115611c3557611c34613dda565b5b021790555060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166003811115611c9657611c95613dda565b5b8473ffffffffffffffffffffffffffffffffffffffff167f91cc0b28b399b7784ad6347634f7c2fb7a5409e53a64263bde60759c4c106e2960405160405180910390a35f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690836003811115611d3857611d37613dda565b5b02179055505f6003811115611d5057611d4f613dda565b5b8573ffffffffffffffffffffffffffffffffffffffff167f91cc0b28b399b7784ad6347634f7c2fb7a5409e53a64263bde60759c4c106e2960405160405180910390a360085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f5b81811015611fbe575f60095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508060095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f41ab238d8086c9757f18d383b4e864a7cd52d584a4d7bbeaa3c669cfec288d3d60405160405180910390a3508080600101915050611e55565b50505050505050565b6007602052805f5260405f205f915090505481565b600681565b611fe961222a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612059575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016120509190613d58565b60405180910390fd5b6120628161261f565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6060600280546120dd90613f64565b80601f016020809104026020016040519081016040528092919081815260200182805461210990613f64565b80156121545780601f1061212b57610100808354040283529160200191612154565b820191905f5260205f20905b81548152906001019060200180831161213757829003601f168201915b50505050509050919050565b60605f600161216e846128f2565b0190505f8167ffffffffffffffff81111561218c5761218b61383d565b5b6040519080825280601f01601f1916602001820160405280156121be5781602001600182028036833780820191505090505b5090505f82602001820190505b60011561221f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161221457612213614a93565b5b0494505f85036121cb575b819350505050919050565b6122326122c4565b73ffffffffffffffffffffffffffffffffffffffff166122506113c3565b73ffffffffffffffffffffffffffffffffffffffff16146122af576122736122c4565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016122a69190613d58565b60405180910390fd5b565b80600290816122c09190614ac0565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361233b575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016123329190613d58565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123ab575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016123a29190613d58565b60405180910390fd5b6123b88585858585612a43565b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361242f575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016124269190613d58565b60405180910390fd5b5f8061243b8585612aef565b9150915061244c5f87848487612a43565b505050505050565b8060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083600381111561253e5761253d613dda565b5b02179055506002600381111561255757612556613dda565b5b8173ffffffffffffffffffffffffffffffffffffffff167f91cc0b28b399b7784ad6347634f7c2fb7a5409e53a64263bde60759c4c106e2960405160405180910390a38073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f41ab238d8086c9757f18d383b4e864a7cd52d584a4d7bbeaa3c669cfec288d3d60405160405180910390a3505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612752575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016127499190613d58565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161283e919061364e565b60405180910390a3505050565b5f6128546122c4565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156128995750612897868261195a565b155b156128dd5780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016128d4929190613ff1565b60405180910390fd5b6128ea8686868686612b1f565b505050505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061294e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161294457612943614a93565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061298b576d04ee2d6d415b85acef8100000000838161298157612980614a93565b5b0492506020810190505b662386f26fc1000083106129ba57662386f26fc1000083816129b0576129af614a93565b5b0492506010810190505b6305f5e10083106129e3576305f5e10083816129d9576129d8614a93565b5b0492506008810190505b6127108310612a085761271083816129fe576129fd614a93565b5b0492506004810190505b60648310612a2b5760648381612a2157612a20614a93565b5b0492506002810190505b600a8310612a3a576001810190505b80915050919050565b612a4f85858585612c25565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612ae8575f612a8b6122c4565b90506001845103612ad7575f612aaa5f8661260c90919063ffffffff16565b90505f612ac05f8661260c90919063ffffffff16565b9050612ad0838989858589612dc2565b5050612ae6565b612ae5818787878787612f71565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612b8f575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612b869190613d58565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612bff575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401612bf69190613d58565b60405180910390fd5b5f80612c0b8585612aef565b91509150612c1c8787848487612a43565b50505050505050565b612c3184848484613120565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612d04575f805b8351811015612ce9575f838281518110612c8457612c83614362565b5b602002602001015190508060035f878581518110612ca557612ca4614362565b5b602002602001015181526020019081526020015f205f828254612cc89190614b8f565b925050819055508083612cdb9190614b8f565b925050806001019050612c67565b508060045f828254612cfb9190614b8f565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612dbc575f805b8351811015612daa575f838281518110612d5757612d56614362565b5b602002602001015190508060035f878581518110612d7857612d77614362565b5b602002602001015181526020019081526020015f205f8282540392505081905550808301925050806001019050612d3a565b508060045f8282540392505081905550505b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612f69578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612e22959493929190614c14565b6020604051808303815f875af1925050508015612e5d57506040513d601f19601f82011682018060405250810190612e5a9190614c80565b60015b612ede573d805f8114612e8b576040519150601f19603f3d011682016040523d82523d5f602084013e612e90565b606091505b505f815103612ed657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612ecd9190613d58565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612f6757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f5e9190613d58565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115613118578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612fd1959493929190614cab565b6020604051808303815f875af192505050801561300c57506040513d601f19601f820116820180604052508101906130099190614c80565b60015b61308d573d805f811461303a576040519150601f19603f3d011682016040523d82523d5f602084013e61303f565b606091505b505f81510361308557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161307c9190613d58565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461311657846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161310d9190613d58565b60405180910390fd5b505b505050505050565b805182511461316a57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401613161929190614469565b60405180910390fd5b5f6131736122c4565b90505f5b835181101561336f575f613194828661260c90919063ffffffff16565b90505f6131aa838661260c90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146132cd575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561327957888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016132709493929190614d11565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461336257805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461335a9190614b8f565b925050819055505b5050806001019050613177565b50600183510361342a575f61338d5f8561260c90919063ffffffff16565b90505f6133a35f8561260c90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161341b929190614469565b60405180910390a450506134a9565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516134a0929190614d54565b60405180910390a45b5050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134ea826134c1565b9050919050565b6134fa816134e0565b8114613504575f80fd5b50565b5f81359050613515816134f1565b92915050565b5f819050919050565b61352d8161351b565b8114613537575f80fd5b50565b5f8135905061354881613524565b92915050565b5f8060408385031215613564576135636134b9565b5b5f61357185828601613507565b92505060206135828582860161353a565b9150509250929050565b6135958161351b565b82525050565b5f6020820190506135ae5f83018461358c565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135e8816135b4565b81146135f2575f80fd5b50565b5f81359050613603816135df565b92915050565b5f6020828403121561361e5761361d6134b9565b5b5f61362b848285016135f5565b91505092915050565b5f8115159050919050565b61364881613634565b82525050565b5f6020820190506136615f83018461363f565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561369e578082015181840152602081019050613683565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6136c382613667565b6136cd8185613671565b93506136dd818560208601613681565b6136e6816136a9565b840191505092915050565b5f6020820190508181035f83015261370981846136b9565b905092915050565b5f60208284031215613726576137256134b9565b5b5f6137338482850161353a565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261375d5761375c61373c565b5b8235905067ffffffffffffffff81111561377a57613779613740565b5b60208301915083600182028301111561379657613795613744565b5b9250929050565b5f80602083850312156137b3576137b26134b9565b5b5f83013567ffffffffffffffff8111156137d0576137cf6134bd565b5b6137dc85828601613748565b92509250509250929050565b6137f181613634565b81146137fb575f80fd5b50565b5f8135905061380c816137e8565b92915050565b5f60208284031215613827576138266134b9565b5b5f613834848285016137fe565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613873826136a9565b810181811067ffffffffffffffff821117156138925761389161383d565b5b80604052505050565b5f6138a46134b0565b90506138b0828261386a565b919050565b5f67ffffffffffffffff8211156138cf576138ce61383d565b5b602082029050602081019050919050565b5f6138f26138ed846138b5565b61389b565b9050808382526020820190506020840283018581111561391557613914613744565b5b835b8181101561393e578061392a888261353a565b845260208401935050602081019050613917565b5050509392505050565b5f82601f83011261395c5761395b61373c565b5b813561396c8482602086016138e0565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156139935761399261383d565b5b61399c826136a9565b9050602081019050919050565b828183375f83830152505050565b5f6139c96139c484613979565b61389b565b9050828152602081018484840111156139e5576139e4613975565b5b6139f08482856139a9565b509392505050565b5f82601f830112613a0c57613a0b61373c565b5b8135613a1c8482602086016139b7565b91505092915050565b5f805f805f60a08688031215613a3e57613a3d6134b9565b5b5f613a4b88828901613507565b9550506020613a5c88828901613507565b945050604086013567ffffffffffffffff811115613a7d57613a7c6134bd565b5b613a8988828901613948565b935050606086013567ffffffffffffffff811115613aaa57613aa96134bd565b5b613ab688828901613948565b925050608086013567ffffffffffffffff811115613ad757613ad66134bd565b5b613ae3888289016139f8565b9150509295509295909350565b5f81905082602060030282011115613b0b57613b0a613744565b5b92915050565b5f60608284031215613b2657613b256134b9565b5b5f613b3384828501613af0565b91505092915050565b5f67ffffffffffffffff821115613b5657613b5561383d565b5b602082029050602081019050919050565b5f613b79613b7484613b3c565b61389b565b90508083825260208201905060208402830185811115613b9c57613b9b613744565b5b835b81811015613bc55780613bb18882613507565b845260208401935050602081019050613b9e565b5050509392505050565b5f82601f830112613be357613be261373c565b5b8135613bf3848260208601613b67565b91505092915050565b5f8060408385031215613c1257613c116134b9565b5b5f83013567ffffffffffffffff811115613c2f57613c2e6134bd565b5b613c3b85828601613bcf565b925050602083013567ffffffffffffffff811115613c5c57613c5b6134bd565b5b613c6885828601613948565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ca48161351b565b82525050565b5f613cb58383613c9b565b60208301905092915050565b5f602082019050919050565b5f613cd782613c72565b613ce18185613c7c565b9350613cec83613c8c565b805f5b83811015613d1c578151613d038882613caa565b9750613d0e83613cc1565b925050600181019050613cef565b5085935050505092915050565b5f6020820190508181035f830152613d418184613ccd565b905092915050565b613d52816134e0565b82525050565b5f602082019050613d6b5f830184613d49565b92915050565b5f8060408385031215613d8757613d866134b9565b5b5f613d9485828601613507565b9250506020613da5858286016137fe565b9150509250929050565b5f60208284031215613dc457613dc36134b9565b5b5f613dd184828501613507565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60048110613e1857613e17613dda565b5b50565b5f819050613e2882613e07565b919050565b5f613e3782613e1b565b9050919050565b613e4781613e2d565b82525050565b5f602082019050613e605f830184613e3e565b92915050565b5f8060408385031215613e7c57613e7b6134b9565b5b5f613e8985828601613507565b9250506020613e9a85828601613507565b9150509250929050565b5f805f805f60a08688031215613ebd57613ebc6134b9565b5b5f613eca88828901613507565b9550506020613edb88828901613507565b9450506040613eec8882890161353a565b9350506060613efd8882890161353a565b925050608086013567ffffffffffffffff811115613f1e57613f1d6134bd565b5b613f2a888289016139f8565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613f7b57607f821691505b602082108103613f8e57613f8d613f37565b5b50919050565b5f81905092915050565b5f613fa882613667565b613fb28185613f94565b9350613fc2818560208601613681565b80840191505092915050565b5f613fd98285613f9e565b9150613fe58284613f9e565b91508190509392505050565b5f6040820190506140045f830185613d49565b6140116020830184613d49565b9392505050565b7f4f776e657220616c7265616479206d696e7465642e00000000000000000000005f82015250565b5f61404c601583613671565b915061405782614018565b602082019050919050565b5f6020820190508181035f83015261407981614040565b9050919050565b7f54686520636f6e747261637420697320706175736564000000000000000000005f82015250565b5f6140b4601683613671565b91506140bf82614080565b602082019050919050565b5f6020820190508181035f8301526140e1816140a8565b9050919050565b7f596f7520616c7265616479206f776e20612072656164657220746f6b656e2e005f82015250565b5f61411c601f83613671565b9150614127826140e8565b602082019050919050565b5f6020820190508181035f83015261414981614110565b9050919050565b7f4e6f206d6f72652072656164657220746f6b656e7320746f206d696e742100005f82015250565b5f614184601e83613671565b915061418f82614150565b602082019050919050565b5f6020820190508181035f8301526141b181614178565b9050919050565b7f596f75206e65656420746f206265206e6f6d696e6174656420696e206f7264655f8201527f7220746f206d696e7420612072656164657220746f6b656e2e00000000000000602082015250565b5f614212603983613671565b915061421d826141b8565b604082019050919050565b5f6020820190508181035f83015261423f81614206565b9050919050565b7f43616e6e6f74206e6f6d696e61746520616e20616464726573732e20596f75205f8201527f646f6e2774206f776e20612072656164657220746f6b656e207965742e000000602082015250565b5f6142a0603d83613671565b91506142ab82614246565b604082019050919050565b5f6020820190508181035f8301526142cd81614294565b9050919050565b7f596f7520616c7265616479206e6f6d696e617465642061206d6178696d756d205f8201527f6f662033206e6f6d696e6565732e000000000000000000000000000000000000602082015250565b5f61432e602e83613671565b9150614339826142d4565b604082019050919050565b5f6020820190508181035f83015261435b81614322565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f412063686f73656e206e6f6d696e656520697320696e656c696769626c6520285f8201527f616c7265616479206e6f6d696e6174656420627920736f6d656f6e6520656c7360208201527f652c2068617320616c7265616479206d696e746564206f7220616c726561647960408201527f206a6f696e656420612063726577290000000000000000000000000000000000606082015250565b5f614435606f83613671565b91506144408261438f565b608082019050919050565b5f6020820190508181035f83015261446281614429565b9050919050565b5f60408201905061447c5f83018561358c565b614489602083018461358c565b9392505050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026144f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826144bb565b61450086836144bb565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61453b6145366145318461351b565b614518565b61351b565b9050919050565b5f819050919050565b61455483614521565b61456861456082614542565b8484546144c7565b825550505050565b5f90565b61457c614570565b61458781848461454b565b505050565b5b818110156145aa5761459f5f82614574565b60018101905061458d565b5050565b601f8211156145ef576145c08161449a565b6145c9846144ac565b810160208510156145d8578190505b6145ec6145e4856144ac565b83018261458c565b50505b505050565b5f82821c905092915050565b5f61460f5f19846008026145f4565b1980831691505092915050565b5f6146278383614600565b9150826002028217905092915050565b6146418383614490565b67ffffffffffffffff81111561465a5761465961383d565b5b6146648254613f64565b61466f8282856145ae565b5f601f83116001811461469c575f841561468a578287013590505b614694858261461c565b8655506146fb565b601f1984166146aa8661449a565b5f5b828110156146d1578489013582556001820191506020850194506020810190506146ac565b868310156146ee57848901356146ea601f891682614600565b8355505b6001600288020188555050505b50505050505050565b5f61470f8385613671565b935061471c8385846139a9565b614725836136a9565b840190509392505050565b5f6020820190508181035f830152614749818486614704565b90509392505050565b7f496e656c696769626c6520637265772069642e000000000000000000000000005f82015250565b5f614786601383613671565b915061479182614752565b602082019050919050565b5f6020820190508181035f8301526147b38161477a565b9050919050565b7f43616e6e6f74206a6f696e20637265772e20596f7520616c7265616479206a6f5f8201527f696e6564206120637265772e0000000000000000000000000000000000000000602082015250565b5f614814602c83613671565b915061481f826147ba565b604082019050919050565b5f6020820190508181035f83015261484181614808565b9050919050565b7f43616e6e6f74206a6f696e20637265772e20596f7520646f6e2774206f776e205f8201527f612072656164657220746f6b656e207965742e00000000000000000000000000602082015250565b5f6148a2603383613671565b91506148ad82614848565b604082019050919050565b5f6020820190508181035f8301526148cf81614896565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61490d8261351b565b91506149188361351b565b92508282039050818111156149305761492f6148d6565b5b92915050565b7f4372657720697320616c726561647920636f6d706c6574652e000000000000005f82015250565b5f61496a601983613671565b915061497582614936565b602082019050919050565b5f6020820190508181035f8301526149978161495e565b9050919050565b5f6149a88261351b565b91506149b38361351b565b92508282026149c18161351b565b915082820484148315176149d8576149d76148d6565b5b5092915050565b7f596f752063616e6e6f74207472616e73666572206120746f6b656e206265666f5f8201527f726520616c6c206372657773206172652066756c6c79206a6f696e656420286160208201527f6c6c20657373617920746f6b656e7320617265206d696e746564292100000000604082015250565b5f614a5f605c83613671565b9150614a6a826149df565b606082019050919050565b5f6020820190508181035f830152614a8c81614a53565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b614ac982613667565b67ffffffffffffffff811115614ae257614ae161383d565b5b614aec8254613f64565b614af78282856145ae565b5f60209050601f831160018114614b28575f8415614b16578287015190505b614b20858261461c565b865550614b87565b601f198416614b368661449a565b5f5b82811015614b5d57848901518255600182019150602085019450602081019050614b38565b86831015614b7a5784890151614b76601f891682614600565b8355505b6001600288020188555050505b505050505050565b5f614b998261351b565b9150614ba48361351b565b9250828201905080821115614bbc57614bbb6148d6565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f614be682614bc2565b614bf08185614bcc565b9350614c00818560208601613681565b614c09816136a9565b840191505092915050565b5f60a082019050614c275f830188613d49565b614c346020830187613d49565b614c41604083018661358c565b614c4e606083018561358c565b8181036080830152614c608184614bdc565b90509695505050505050565b5f81519050614c7a816135df565b92915050565b5f60208284031215614c9557614c946134b9565b5b5f614ca284828501614c6c565b91505092915050565b5f60a082019050614cbe5f830188613d49565b614ccb6020830187613d49565b8181036040830152614cdd8186613ccd565b90508181036060830152614cf18185613ccd565b90508181036080830152614d058184614bdc565b90509695505050505050565b5f608082019050614d245f830187613d49565b614d31602083018661358c565b614d3e604083018561358c565b614d4b606083018461358c565b95945050505050565b5f6040820190508181035f830152614d6c8185613ccd565b90508181036020830152614d808184613ccd565b9050939250505056fea2646970667358221220392b84d5ad219b6ab9630c98420b091085b8276ea92c9ff57392638ca7c647ba64736f6c63430008180033697066733a2f2f626166796265696637766c7766676f626871627a6268773277716a6b727669637835333536796f667537767437696d6179786272656135696376792f697066733a2f2f6261666b72656967356d653379677a3434646e636d74767578356f7232796467616136636f6c717076667064686636696a33627277626469376475