1b528cefcSMark Murray# 2b528cefcSMark Murray# Error messages for the krb5 library 3b528cefcSMark Murray# 4b528cefcSMark Murray# This might look like a com_err file, but is not 5b528cefcSMark Murray# 6*ae771770SStanislav Sedovid "$Id$" 7b528cefcSMark Murray 8b528cefcSMark Murrayerror_table krb5 9b528cefcSMark Murray 10b528cefcSMark Murrayprefix KRB5KDC_ERR 11b528cefcSMark Murrayerror_code NONE, "No error" 12b528cefcSMark Murrayerror_code NAME_EXP, "Client's entry in database has expired" 13b528cefcSMark Murrayerror_code SERVICE_EXP, "Server's entry in database has expired" 14b528cefcSMark Murrayerror_code BAD_PVNO, "Requested protocol version not supported" 15b528cefcSMark Murrayerror_code C_OLD_MAST_KVNO, "Client's key is encrypted in an old master key" 16b528cefcSMark Murrayerror_code S_OLD_MAST_KVNO, "Server's key is encrypted in an old master key" 17b528cefcSMark Murrayerror_code C_PRINCIPAL_UNKNOWN, "Client not found in Kerberos database" 18b528cefcSMark Murrayerror_code S_PRINCIPAL_UNKNOWN, "Server not found in Kerberos database" 19b528cefcSMark Murrayerror_code PRINCIPAL_NOT_UNIQUE,"Principal has multiple entries in Kerberos database" 20b528cefcSMark Murrayerror_code NULL_KEY, "Client or server has a null key" 21b528cefcSMark Murrayerror_code CANNOT_POSTDATE, "Ticket is ineligible for postdating" 22b528cefcSMark Murrayerror_code NEVER_VALID, "Requested effective lifetime is negative or too short" 23b528cefcSMark Murrayerror_code POLICY, "KDC policy rejects request" 24b528cefcSMark Murrayerror_code BADOPTION, "KDC can't fulfill requested option" 25b528cefcSMark Murrayerror_code ETYPE_NOSUPP, "KDC has no support for encryption type" 26b528cefcSMark Murrayerror_code SUMTYPE_NOSUPP, "KDC has no support for checksum type" 27b528cefcSMark Murrayerror_code PADATA_TYPE_NOSUPP, "KDC has no support for padata type" 28b528cefcSMark Murrayerror_code TRTYPE_NOSUPP, "KDC has no support for transited type" 29b528cefcSMark Murrayerror_code CLIENT_REVOKED, "Clients credentials have been revoked" 30b528cefcSMark Murrayerror_code SERVICE_REVOKED, "Credentials for server have been revoked" 31b528cefcSMark Murrayerror_code TGT_REVOKED, "TGT has been revoked" 32b528cefcSMark Murrayerror_code CLIENT_NOTYET, "Client not yet valid - try again later" 33b528cefcSMark Murrayerror_code SERVICE_NOTYET, "Server not yet valid - try again later" 34b528cefcSMark Murrayerror_code KEY_EXPIRED, "Password has expired" 35b528cefcSMark Murrayerror_code PREAUTH_FAILED, "Preauthentication failed" 36b528cefcSMark Murrayerror_code PREAUTH_REQUIRED, "Additional pre-authentication required" 37b528cefcSMark Murrayerror_code SERVER_NOMATCH, "Requested server and ticket don't match" 38c19800e8SDoug Rabsonerror_code KDC_ERR_MUST_USE_USER2USER, "Server principal valid for user2user only" 39c19800e8SDoug Rabsonerror_code PATH_NOT_ACCEPTED, "KDC Policy rejects transited path" 40c19800e8SDoug Rabsonerror_code SVC_UNAVAILABLE, "A service is not available" 41b528cefcSMark Murray 42b528cefcSMark Murrayindex 31 43b528cefcSMark Murrayprefix KRB5KRB_AP 44b528cefcSMark Murrayerror_code ERR_BAD_INTEGRITY, "Decrypt integrity check failed" 45b528cefcSMark Murrayerror_code ERR_TKT_EXPIRED, "Ticket expired" 46b528cefcSMark Murrayerror_code ERR_TKT_NYV, "Ticket not yet valid" 47b528cefcSMark Murrayerror_code ERR_REPEAT, "Request is a replay" 48b528cefcSMark Murrayerror_code ERR_NOT_US, "The ticket isn't for us" 49b528cefcSMark Murrayerror_code ERR_BADMATCH, "Ticket/authenticator don't match" 50b528cefcSMark Murrayerror_code ERR_SKEW, "Clock skew too great" 51b528cefcSMark Murrayerror_code ERR_BADADDR, "Incorrect net address" 52b528cefcSMark Murrayerror_code ERR_BADVERSION, "Protocol version mismatch" 53b528cefcSMark Murrayerror_code ERR_MSG_TYPE, "Invalid message type" 54b528cefcSMark Murrayerror_code ERR_MODIFIED, "Message stream modified" 55b528cefcSMark Murrayerror_code ERR_BADORDER, "Message out of order" 56283d988cSMark Murrayerror_code ERR_ILL_CR_TKT, "Invalid cross-realm ticket" 57b528cefcSMark Murrayerror_code ERR_BADKEYVER, "Key version is not available" 58b528cefcSMark Murrayerror_code ERR_NOKEY, "Service key not available" 59b528cefcSMark Murrayerror_code ERR_MUT_FAIL, "Mutual authentication failed" 60b528cefcSMark Murrayerror_code ERR_BADDIRECTION, "Incorrect message direction" 61b528cefcSMark Murrayerror_code ERR_METHOD, "Alternative authentication method required" 62b528cefcSMark Murrayerror_code ERR_BADSEQ, "Incorrect sequence number in message" 63b528cefcSMark Murrayerror_code ERR_INAPP_CKSUM, "Inappropriate type of checksum in message" 64b528cefcSMark Murrayerror_code PATH_NOT_ACCEPTED, "Policy rejects transited path" 65b528cefcSMark Murray 66b528cefcSMark Murrayprefix KRB5KRB_ERR 67b528cefcSMark Murrayerror_code RESPONSE_TOO_BIG, "Response too big for UDP, retry with TCP" 68b528cefcSMark Murray# 53-59 are reserved 69b528cefcSMark Murrayindex 60 70b528cefcSMark Murrayerror_code GENERIC, "Generic error (see e-text)" 71b528cefcSMark Murrayerror_code FIELD_TOOLONG, "Field is too long for this implementation" 72b528cefcSMark Murray 735e9cd1aeSAssar Westerlund# pkinit 745e9cd1aeSAssar Westerlundindex 62 75c19800e8SDoug Rabsonprefix KRB5_KDC_ERR 765e9cd1aeSAssar Westerlunderror_code CLIENT_NOT_TRUSTED, "Client not trusted" 775e9cd1aeSAssar Westerlunderror_code KDC_NOT_TRUSTED, "KDC not trusted" 785e9cd1aeSAssar Westerlunderror_code INVALID_SIG, "Invalid signature" 79c19800e8SDoug Rabsonerror_code DH_KEY_PARAMETERS_NOT_ACCEPTED, "DH parameters not accepted" 80c19800e8SDoug Rabson 81c19800e8SDoug Rabsonindex 68 82c19800e8SDoug Rabsonprefix KRB5_KDC_ERR 83c19800e8SDoug Rabsonerror_code WRONG_REALM, "Wrong realm" 84c19800e8SDoug Rabson 85c19800e8SDoug Rabsonindex 69 865e9cd1aeSAssar Westerlundprefix KRB5_AP_ERR 875e9cd1aeSAssar Westerlunderror_code USER_TO_USER_REQUIRED, "User to user required" 885e9cd1aeSAssar Westerlund 89c19800e8SDoug Rabsonindex 70 90c19800e8SDoug Rabsonprefix KRB5_KDC_ERR 91c19800e8SDoug Rabsonerror_code CANT_VERIFY_CERTIFICATE, "Cannot verify certificate" 92c19800e8SDoug Rabsonerror_code INVALID_CERTIFICATE, "Certificate invalid" 93c19800e8SDoug Rabsonerror_code REVOKED_CERTIFICATE, "Certificate revoked" 94c19800e8SDoug Rabsonerror_code REVOCATION_STATUS_UNKNOWN, "Revocation status unknown" 95c19800e8SDoug Rabsonerror_code REVOCATION_STATUS_UNAVAILABLE, "Revocation status unavaible" 96c19800e8SDoug Rabsonerror_code CLIENT_NAME_MISMATCH, "Client name mismatch in certificate" 97c19800e8SDoug Rabsonerror_code INCONSISTENT_KEY_PURPOSE, "Inconsistent key purpose" 98c19800e8SDoug Rabsonerror_code DIGEST_IN_CERT_NOT_ACCEPTED, "Digest in certificate not accepted" 99c19800e8SDoug Rabsonerror_code PA_CHECKSUM_MUST_BE_INCLUDED, "paChecksum must be included" 100c19800e8SDoug Rabsonerror_code DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED, "Digest in signedData not accepted" 101c19800e8SDoug Rabsonerror_code PUBLIC_KEY_ENCRYPTION_NOT_SUPPORTED, "Public key encryption not supported" 102c19800e8SDoug Rabson 103c19800e8SDoug Rabson## these are never used 104c19800e8SDoug Rabson#index 80 105c19800e8SDoug Rabson#prefix KRB5_IAKERB 106c19800e8SDoug Rabson#error_code ERR_KDC_NOT_FOUND, "IAKERB proxy could not find a KDC" 107c19800e8SDoug Rabson#error_code ERR_KDC_NO_RESPONSE, "IAKERB proxy never reeived a response from a KDC" 108c19800e8SDoug Rabson 109*ae771770SStanislav Sedov# 82-93 are reserved 110*ae771770SStanislav Sedov 111*ae771770SStanislav Sedovindex 94 112*ae771770SStanislav Sedoverror_code INVALID_HASH_ALG, "Invalid OTP digest algorithm" 113*ae771770SStanislav Sedoverror_code INVALID_ITERATION_COUNT, "Invalid OTP iteration count" 114*ae771770SStanislav Sedov 115*ae771770SStanislav Sedov# 97-127 are reserved 1165e9cd1aeSAssar Westerlund 117b528cefcSMark Murrayindex 128 118b528cefcSMark Murrayprefix 119*ae771770SStanislav Sedoverror_code KRB5_ERR_RCSID, "$Id$" 120b528cefcSMark Murray 121b528cefcSMark Murrayerror_code KRB5_LIBOS_BADLOCKFLAG, "Invalid flag for file lock mode" 122b528cefcSMark Murrayerror_code KRB5_LIBOS_CANTREADPWD, "Cannot read password" 123b528cefcSMark Murrayerror_code KRB5_LIBOS_BADPWDMATCH, "Password mismatch" 124b528cefcSMark Murrayerror_code KRB5_LIBOS_PWDINTR, "Password read interrupted" 125b528cefcSMark Murray 126283d988cSMark Murrayerror_code KRB5_PARSE_ILLCHAR, "Invalid character in component name" 127b528cefcSMark Murrayerror_code KRB5_PARSE_MALFORMED, "Malformed representation of principal" 128b528cefcSMark Murray 129b528cefcSMark Murrayerror_code KRB5_CONFIG_CANTOPEN, "Can't open/find configuration file" 130b528cefcSMark Murrayerror_code KRB5_CONFIG_BADFORMAT, "Improper format of configuration file" 131b528cefcSMark Murrayerror_code KRB5_CONFIG_NOTENUFSPACE, "Insufficient space to return complete information" 132b528cefcSMark Murray 133b528cefcSMark Murrayerror_code KRB5_BADMSGTYPE, "Invalid message type specified for encoding" 134b528cefcSMark Murray 135b528cefcSMark Murrayerror_code KRB5_CC_BADNAME, "Credential cache name malformed" 136b528cefcSMark Murrayerror_code KRB5_CC_UNKNOWN_TYPE, "Unknown credential cache type" 137b528cefcSMark Murrayerror_code KRB5_CC_NOTFOUND, "Matching credential not found" 138b528cefcSMark Murrayerror_code KRB5_CC_END, "End of credential cache reached" 139b528cefcSMark Murray 140b528cefcSMark Murrayerror_code KRB5_NO_TKT_SUPPLIED, "Request did not supply a ticket" 141b528cefcSMark Murray 142b528cefcSMark Murrayerror_code KRB5KRB_AP_WRONG_PRINC, "Wrong principal in request" 143b528cefcSMark Murrayerror_code KRB5KRB_AP_ERR_TKT_INVALID, "Ticket has invalid flag set" 144b528cefcSMark Murray 145b528cefcSMark Murrayerror_code KRB5_PRINC_NOMATCH, "Requested principal and ticket don't match" 146b528cefcSMark Murrayerror_code KRB5_KDCREP_MODIFIED, "KDC reply did not match expectations" 147b528cefcSMark Murrayerror_code KRB5_KDCREP_SKEW, "Clock skew too great in KDC reply" 148b528cefcSMark Murrayerror_code KRB5_IN_TKT_REALM_MISMATCH, "Client/server realm mismatch in initial ticket request" 149b528cefcSMark Murray 150b528cefcSMark Murrayerror_code KRB5_PROG_ETYPE_NOSUPP, "Program lacks support for encryption type" 151b528cefcSMark Murrayerror_code KRB5_PROG_KEYTYPE_NOSUPP, "Program lacks support for key type" 152b528cefcSMark Murrayerror_code KRB5_WRONG_ETYPE, "Requested encryption type not used in message" 153b528cefcSMark Murrayerror_code KRB5_PROG_SUMTYPE_NOSUPP, "Program lacks support for checksum type" 154b528cefcSMark Murray 155b528cefcSMark Murrayerror_code KRB5_REALM_UNKNOWN, "Cannot find KDC for requested realm" 156b528cefcSMark Murrayerror_code KRB5_SERVICE_UNKNOWN, "Kerberos service unknown" 157b528cefcSMark Murrayerror_code KRB5_KDC_UNREACH, "Cannot contact any KDC for requested realm" 158b528cefcSMark Murrayerror_code KRB5_NO_LOCALNAME, "No local name found for principal name" 159b528cefcSMark Murray 160b528cefcSMark Murrayerror_code KRB5_MUTUAL_FAILED, "Mutual authentication failed" 161b528cefcSMark Murray 162b528cefcSMark Murray# some of these should be combined/supplanted by system codes 163b528cefcSMark Murray 164b528cefcSMark Murrayerror_code KRB5_RC_TYPE_EXISTS, "Replay cache type is already registered" 165b528cefcSMark Murrayerror_code KRB5_RC_MALLOC, "No more memory to allocate (in replay cache code)" 166b528cefcSMark Murrayerror_code KRB5_RC_TYPE_NOTFOUND, "Replay cache type is unknown" 167b528cefcSMark Murrayerror_code KRB5_RC_UNKNOWN, "Generic unknown RC error" 168b528cefcSMark Murrayerror_code KRB5_RC_REPLAY, "Message is a replay" 169b528cefcSMark Murrayerror_code KRB5_RC_IO, "Replay I/O operation failed XXX" 170b528cefcSMark Murrayerror_code KRB5_RC_NOIO, "Replay cache type does not support non-volatile storage" 171b528cefcSMark Murrayerror_code KRB5_RC_PARSE, "Replay cache name parse/format error" 172b528cefcSMark Murray 173b528cefcSMark Murrayerror_code KRB5_RC_IO_EOF, "End-of-file on replay cache I/O" 174b528cefcSMark Murrayerror_code KRB5_RC_IO_MALLOC, "No more memory to allocate (in replay cache I/O code)" 175b528cefcSMark Murrayerror_code KRB5_RC_IO_PERM, "Permission denied in replay cache code" 176b528cefcSMark Murrayerror_code KRB5_RC_IO_IO, "I/O error in replay cache i/o code" 177b528cefcSMark Murrayerror_code KRB5_RC_IO_UNKNOWN, "Generic unknown RC/IO error" 178b528cefcSMark Murrayerror_code KRB5_RC_IO_SPACE, "Insufficient system space to store replay information" 179b528cefcSMark Murray 180b528cefcSMark Murrayerror_code KRB5_TRANS_CANTOPEN, "Can't open/find realm translation file" 181b528cefcSMark Murrayerror_code KRB5_TRANS_BADFORMAT, "Improper format of realm translation file" 182b528cefcSMark Murray 183b528cefcSMark Murrayerror_code KRB5_LNAME_CANTOPEN, "Can't open/find lname translation database" 184b528cefcSMark Murrayerror_code KRB5_LNAME_NOTRANS, "No translation available for requested principal" 185b528cefcSMark Murrayerror_code KRB5_LNAME_BADFORMAT, "Improper format of translation database entry" 186b528cefcSMark Murray 187b528cefcSMark Murrayerror_code KRB5_CRYPTO_INTERNAL, "Cryptosystem internal error" 188b528cefcSMark Murray 189b528cefcSMark Murrayerror_code KRB5_KT_BADNAME, "Key table name malformed" 190b528cefcSMark Murrayerror_code KRB5_KT_UNKNOWN_TYPE, "Unknown Key table type" 191b528cefcSMark Murrayerror_code KRB5_KT_NOTFOUND, "Key table entry not found" 192b528cefcSMark Murrayerror_code KRB5_KT_END, "End of key table reached" 193b528cefcSMark Murrayerror_code KRB5_KT_NOWRITE, "Cannot write to specified key table" 194b528cefcSMark Murrayerror_code KRB5_KT_IOERR, "Error writing to key table" 195b528cefcSMark Murray 196b528cefcSMark Murrayerror_code KRB5_NO_TKT_IN_RLM, "Cannot find ticket for requested realm" 197b528cefcSMark Murrayerror_code KRB5DES_BAD_KEYPAR, "DES key has bad parity" 198b528cefcSMark Murrayerror_code KRB5DES_WEAK_KEY, "DES key is a weak key" 199b528cefcSMark Murray 200b528cefcSMark Murrayerror_code KRB5_BAD_ENCTYPE, "Bad encryption type" 201b528cefcSMark Murrayerror_code KRB5_BAD_KEYSIZE, "Key size is incompatible with encryption type" 202b528cefcSMark Murrayerror_code KRB5_BAD_MSIZE, "Message size is incompatible with encryption type" 203b528cefcSMark Murray 204b528cefcSMark Murrayerror_code KRB5_CC_TYPE_EXISTS, "Credentials cache type is already registered." 205b528cefcSMark Murrayerror_code KRB5_KT_TYPE_EXISTS, "Key table type is already registered." 206b528cefcSMark Murray 207b528cefcSMark Murrayerror_code KRB5_CC_IO, "Credentials cache I/O operation failed XXX" 208b528cefcSMark Murrayerror_code KRB5_FCC_PERM, "Credentials cache file permissions incorrect" 209b528cefcSMark Murrayerror_code KRB5_FCC_NOFILE, "No credentials cache file found" 210b528cefcSMark Murrayerror_code KRB5_FCC_INTERNAL, "Internal file credentials cache error" 211b528cefcSMark Murrayerror_code KRB5_CC_WRITE, "Error writing to credentials cache file" 212b528cefcSMark Murrayerror_code KRB5_CC_NOMEM, "No more memory to allocate (in credentials cache code)" 213b528cefcSMark Murrayerror_code KRB5_CC_FORMAT, "Bad format in credentials cache" 214c19800e8SDoug Rabsonerror_code KRB5_CC_NOT_KTYPE, "No credentials found with supported encryption types" 215b528cefcSMark Murray 216b528cefcSMark Murray# errors for dual tgt library calls 217b528cefcSMark Murrayerror_code KRB5_INVALID_FLAGS, "Invalid KDC option combination (library internal error)" 218b528cefcSMark Murrayerror_code KRB5_NO_2ND_TKT, "Request missing second ticket" 219b528cefcSMark Murray 220b528cefcSMark Murrayerror_code KRB5_NOCREDS_SUPPLIED, "No credentials supplied to library routine" 221b528cefcSMark Murray 222b528cefcSMark Murray# errors for sendauth (and recvauth) 223b528cefcSMark Murray 224b528cefcSMark Murrayerror_code KRB5_SENDAUTH_BADAUTHVERS, "Bad sendauth version was sent" 225b528cefcSMark Murrayerror_code KRB5_SENDAUTH_BADAPPLVERS, "Bad application version was sent (via sendauth)" 226b528cefcSMark Murrayerror_code KRB5_SENDAUTH_BADRESPONSE, "Bad response (during sendauth exchange)" 227b528cefcSMark Murrayerror_code KRB5_SENDAUTH_REJECTED, "Server rejected authentication (during sendauth exchange)" 228b528cefcSMark Murray 229b528cefcSMark Murray# errors for preauthentication 230b528cefcSMark Murray 231b528cefcSMark Murrayerror_code KRB5_PREAUTH_BAD_TYPE, "Unsupported preauthentication type" 232b528cefcSMark Murrayerror_code KRB5_PREAUTH_NO_KEY, "Required preauthentication key not supplied" 233b528cefcSMark Murrayerror_code KRB5_PREAUTH_FAILED, "Generic preauthentication failure" 234b528cefcSMark Murray 235b528cefcSMark Murray# version number errors 236b528cefcSMark Murray 237b528cefcSMark Murrayerror_code KRB5_RCACHE_BADVNO, "Unsupported replay cache format version number" 238b528cefcSMark Murrayerror_code KRB5_CCACHE_BADVNO, "Unsupported credentials cache format version number" 239b528cefcSMark Murrayerror_code KRB5_KEYTAB_BADVNO, "Unsupported key table format version number" 240b528cefcSMark Murray 241b528cefcSMark Murray# 242b528cefcSMark Murray# 243b528cefcSMark Murray 244b528cefcSMark Murrayerror_code KRB5_PROG_ATYPE_NOSUPP, "Program lacks support for address type" 245b528cefcSMark Murrayerror_code KRB5_RC_REQUIRED, "Message replay detection requires rcache parameter" 246b528cefcSMark Murrayerror_code KRB5_ERR_BAD_HOSTNAME, "Hostname cannot be canonicalized" 247b528cefcSMark Murrayerror_code KRB5_ERR_HOST_REALM_UNKNOWN, "Cannot determine realm for host" 248b528cefcSMark Murrayerror_code KRB5_SNAME_UNSUPP_NAMETYPE, "Conversion to service principal undefined for name type" 249b528cefcSMark Murray 250b528cefcSMark Murrayerror_code KRB5KRB_AP_ERR_V4_REPLY, "Initial Ticket response appears to be Version 4" 251b528cefcSMark Murrayerror_code KRB5_REALM_CANT_RESOLVE, "Cannot resolve KDC for requested realm" 252b528cefcSMark Murrayerror_code KRB5_TKT_NOT_FORWARDABLE, "Requesting ticket can't get forwardable tickets" 253b528cefcSMark Murrayerror_code KRB5_FWD_BAD_PRINCIPAL, "Bad principal name while trying to forward credentials" 254b528cefcSMark Murray 255b528cefcSMark Murrayerror_code KRB5_GET_IN_TKT_LOOP, "Looping detected inside krb5_get_in_tkt" 256b528cefcSMark Murrayerror_code KRB5_CONFIG_NODEFREALM, "Configuration file does not specify default realm" 257b528cefcSMark Murray 258b528cefcSMark Murrayerror_code KRB5_SAM_UNSUPPORTED, "Bad SAM flags in obtain_sam_padata" 259c19800e8SDoug Rabsonerror_code KRB5_SAM_INVALID_ETYPE, "Invalid encryption type in SAM challenge" 260c19800e8SDoug Rabsonerror_code KRB5_SAM_NO_CHECKSUM, "Missing checksum in SAM challenge" 261c19800e8SDoug Rabsonerror_code KRB5_SAM_BAD_CHECKSUM, "Bad checksum in SAM challenge" 262c19800e8SDoug Rabson 263c19800e8SDoug Rabsonindex 238 264c19800e8SDoug Rabsonerror_code KRB5_OBSOLETE_FN, "Program called an obsolete, deleted function" 265c19800e8SDoug Rabson 266c19800e8SDoug Rabsonindex 245 267c19800e8SDoug Rabsonerror_code KRB5_ERR_BAD_S2K_PARAMS, "Invalid key generation parameters from KDC" 268c19800e8SDoug Rabsonerror_code KRB5_ERR_NO_SERVICE, "Service not available" 269c19800e8SDoug Rabsonerror_code KRB5_CC_NOSUPP, "Credential cache function not supported" 270c19800e8SDoug Rabsonerror_code KRB5_DELTAT_BADFORMAT, "Invalid format of Kerberos lifetime or clock skew string" 271*ae771770SStanislav Sedoverror_code KRB5_PLUGIN_NO_HANDLE, "Supplied data not handled by this plugin" 272*ae771770SStanislav Sedoverror_code KRB5_PLUGIN_OP_NOTSUPP, "Plugin does not support the operaton" 273b528cefcSMark Murray 274b528cefcSMark Murrayend 275