if (g_default_trust_domain || g_default_crypto_context) {  nss_SetError(NSS_ERROR_ALREADY_INITIALIZED); return PR_FAILURE; }
STAN_LoadDefaultNSS3TrustDomain (  void){    NSSTrustDomain *td;    NSSToken *token;    SECMODModuleList *mlp;    SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();    int i;    td = NSSTrustDomain_Create(NULL, NULL, NULL, NULL);    if (!td) {	return PR_FAILURE;    }    td->tokenList = nssList_Create(td->arena, PR_TRUE);    SECMOD_GetReadLock(moduleLock);    for (mlp = SECMOD_GetDefaultModuleList(); mlp != NULL; mlp=mlp->next) {	for (i=0; i < mlp->module->slotCount; i++) {	    token = nssToken_CreateFromPK11SlotInfo(td, mlp->module->slots[i]);	    PK11Slot_SetNSSToken(mlp->module->slots[i], token);	    nssList_Add(td->tokenList, token);	}    }    SECMOD_ReleaseReadLock(moduleLock);    td->tokens = nssList_CreateIterator(td->tokenList);    g_default_trust_domain = td;    g_default_crypto_context = NSSTrustDomain_CreateCryptoContext(td, NULL);    return PR_SUCCESS;}