From 39db72786ec179e67e3c1c0c71a2e93672999ea5 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 03 Dec 2009 18:04:49 +0000
Subject: [PATCH] Split SDK from server code and add build/packaging infrastructure.
---
sdk/src/org/opends/sdk/AttributeDescription.java | 4
sdk/src/org/opends/sdk/schema/IntegerFirstComponentEqualityMatchingRuleImpl.java | 8
sdk/src/org/opends/sdk/tools/LDAPCompare.java | 10
sdk/src/org/opends/sdk/asn1/ASN1ByteSequenceReader.java | 9
sdk/src/org/opends/sdk/AbstractConnection.java | 2
sdk/src/org/opends/sdk/schema/UserPasswordSyntaxImpl.java | 12
sdk/build-tools/org/opends/build/tools/MessagePropertyKey.java | 253
sdk/build.sh | 52
sdk/src/org/opends/sdk/schema/NameAndOptionalUIDSyntaxImpl.java | 6
sdk/src/com/sun/opends/sdk/util/messages_es.properties | 531 +
sdk/src/org/opends/sdk/schema/DirectoryStringSyntaxImpl.java | 4
sdk/src/org/opends/sdk/asn1/ASN1OutputStreamWriter.java | 4
sdk/src/org/opends/sdk/schema/DistinguishedNameSyntaxImpl.java | 2
sdk/resource/FindJavaHome.class | 0
sdk/src/org/opends/sdk/tools/ArgumentParser.java | 432
sdk/resource/bin/ldapmodify.bat | 33
sdk/src/org/opends/sdk/extensions/CancelRequest.java | 6
sdk/src/org/opends/sdk/schema/Schema.java | 4
sdk/src/org/opends/sdk/controls/PasswordExpiringControl.java | 6
sdk/src/org/opends/sdk/schema/UUIDEqualityMatchingRuleImpl.java | 8
sdk/src/org/opends/sdk/tools/ArgumentGroup.java | 2
sdk/src/org/opends/sdk/schema/RegexSyntaxImpl.java | 6
sdk/build-tools/org/opends/build/tools/GenerateMessageFile.java | 1000 +-
sdk/src/org/opends/sdk/extensions/PasswordPolicyStateExtendedOperation.java | 8
sdk/src/org/opends/sdk/tools/Argument.java | 74
sdk/src/org/opends/sdk/util/Platform.java | 4
sdk/src/org/opends/sdk/schema/SubstringAssertionSyntaxImpl.java | 8
sdk/src/org/opends/sdk/schema/PostalAddressSyntaxImpl.java | 2
sdk/src/org/opends/sdk/controls/ServerSideSortControl.java | 4
sdk/src/org/opends/sdk/schema/MatchingRuleSyntaxImpl.java | 12
sdk/src/org/opends/sdk/schema/TelexNumberSyntaxImpl.java | 10
sdk/src/org/opends/sdk/sasl/GSSAPISASLBindRequest.java | 7
sdk/src/org/opends/sdk/controls/PasswordExpiredControl.java | 4
sdk/src/org/opends/sdk/controls/PreReadControl.java | 10
sdk/src/org/opends/sdk/controls/ProxiedAuthV1Control.java | 8
sdk/src/org/opends/sdk/requests/Requests.java | 5
sdk/src/org/opends/sdk/schema/AbstractSubstringMatchingRuleImpl.java | 9
sdk/src/org/opends/sdk/controls/ProxiedAuthV2Control.java | 8
sdk/src/com/sun/opends/sdk/util/Message.java | 543 +
sdk/src/org/opends/sdk/schema/SchemaElement.java | 2
sdk/src/org/opends/sdk/controls/PagedResultsControl.java | 10
sdk/src/org/opends/sdk/schema/SyntaxImpl.java | 2
sdk/src/org/opends/sdk/tools/LDAPPasswordModify.java | 10
sdk/src/com/sun/opends/sdk/util/messages_zh_CN.properties | 531 +
sdk/src/org/opends/sdk/ldif/AbstractLDIFReader.java | 6
sdk/src/org/opends/sdk/schema/OctetStringSyntaxImpl.java | 2
sdk/resource/legal-notices/BinariesLicense.txt | 180
sdk/resource/opends_logo.png | 0
sdk/src/com/sun/opends/sdk/util/messages_fr.properties | 531 +
sdk/src/com/sun/opends/sdk/util/messages_ja.properties | 531 +
sdk/src/org/opends/sdk/extensions/GetSymmetricKeyRequest.java | 6
sdk/src/org/opends/sdk/schema/TelephoneNumberSyntaxImpl.java | 12
sdk/src/org/opends/sdk/schema/DITStructureRuleSyntaxImpl.java | 12
sdk/src/org/opends/sdk/tools/ApplicationKeyManager.java | 335
sdk/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleImpl.java | 4
sdk/resource/bin/ldappasswordmodify.bat | 33
sdk/resource/DynamicConstants.java.stubs | 178
sdk/src/org/opends/sdk/util/StaticUtils.java | 13
sdk/src/org/opends/sdk/controls/PersistentSearchControl.java | 6
sdk/src/org/opends/sdk/schema/EnumOrderingMatchingRule.java | 2
sdk/resource/bin/ldapmodify | 38
sdk/src/org/opends/sdk/schema/UUIDSyntaxImpl.java | 8
sdk/src/com/sun/opends/sdk/util/messages_de.properties | 531 +
sdk/src/org/opends/sdk/schema/IntegerOrderingMatchingRuleImpl.java | 4
sdk/src/org/opends/sdk/schema/UTCTimeSyntaxImpl.java | 6
sdk/src/org/opends/sdk/Filter.java | 9
sdk/src/org/opends/sdk/schema/AuthPasswordSyntaxImpl.java | 6
sdk/resource/bin/setcp.bat | 40
sdk/src/org/opends/sdk/tools/ArgumentException.java | 2
sdk/src/org/opends/sdk/schema/IA5StringSyntaxImpl.java | 6
sdk/src/org/opends/sdk/schema/UUIDOrderingMatchingRuleImpl.java | 8
sdk/src/com/sun/opends/sdk/util/messages_zh_TW.properties | 531 +
sdk/src/org/opends/sdk/tools/ArgumentParserConnectionFactory.java | 31
sdk/build.bat | 47
sdk/build.xml | 1206 +++
sdk/src/org/opends/sdk/schema/PresentationAddressSyntaxImpl.java | 2
sdk/src/org/opends/sdk/tools/Utils.java | 273
sdk/src/org/opends/sdk/controls/AuthorizationIdentityControl.java | 6
sdk/src/org/opends/sdk/schema/DirectoryStringFirstComponentEqualityMatchingRuleImpl.java | 6
sdk/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleImpl.java | 4
sdk/src/org/opends/sdk/schema/CountryStringSyntaxImpl.java | 6
sdk/src/org/opends/sdk/schema/SchemaNotFoundException.java | 2
sdk/src/org/opends/sdk/schema/Syntax.java | 6
sdk/src/org/opends/sdk/schema/BinarySyntaxImpl.java | 2
sdk/src/org/opends/sdk/extensions/PasswordModifyRequest.java | 4
sdk/src/org/opends/sdk/schema/CoreSchemaImpl.java | 2
sdk/src/org/opends/sdk/tools/HostnameMismatchCertificateException.java | 93
sdk/src/org/opends/sdk/tools/LDAPSearch.java | 15
sdk/src/org/opends/sdk/tools/MultiChoiceArgument.java | 20
sdk/src/org/opends/sdk/controls/VLVTarget.java | 4
sdk/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleImpl.java | 8
sdk/src/org/opends/sdk/ldap/UnexpectedRequestException.java | 2
sdk/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleImpl.java | 4
sdk/src/org/opends/sdk/schema/SupportedAlgorithmSyntaxImpl.java | 2
sdk/src/org/opends/sdk/schema/BitStringSyntaxImpl.java | 8
sdk/resource/README | 9
sdk/resource/bin/_script-util.sh | 319
sdk/src/org/opends/sdk/schema/FaxSyntaxImpl.java | 2
sdk/resource/legal-notices/OpenDS.LICENSE | 384 +
sdk/src/org/opends/sdk/tools/FileBasedArgument.java | 18
sdk/src/org/opends/sdk/tools/TrustAllTrustManager.java | 22
sdk/src/org/opends/sdk/schema/NumericStringSyntaxImpl.java | 6
sdk/src/org/opends/sdk/schema/BooleanSyntaxImpl.java | 4
sdk/resource/Messages.java.stub | 61
sdk/src/org/opends/sdk/controls/PostReadControl.java | 10
sdk/src/org/opends/sdk/tools/BooleanArgument.java | 10
sdk/src/org/opends/sdk/schema/DeliveryMethodSyntaxImpl.java | 6
sdk/resource/bin/ldappasswordmodify | 37
sdk/src/org/opends/sdk/extensions/GetConnectionIDRequest.java | 2
sdk/src/com/sun/opends/sdk/util/MessageBuilder.java | 456 +
sdk/src/org/opends/sdk/controls/PasswordPolicyControl.java | 4
sdk/src/org/opends/sdk/controls/AssertionControl.java | 6
sdk/src/org/opends/sdk/sasl/AbstractSASLContext.java | 24
sdk/src/org/opends/sdk/schema/DITContentRule.java | 4
sdk/src/org/opends/sdk/tools/ToolConstants.java | 614 +
sdk/src/org/opends/sdk/schema/OIDSyntaxImpl.java | 2
sdk/src/org/opends/sdk/schema/GuideSyntaxImpl.java | 4
sdk/src/org/opends/sdk/ldap/ASN1StreamWriter.java | 7
sdk/src/org/opends/sdk/asn1/ASN1InputStreamReader.java | 10
sdk/src/org/opends/sdk/ldap/UnsupportedMessageException.java | 2
sdk/src/org/opends/sdk/schema/CertificateListSyntaxImpl.java | 2
sdk/resource/bin/_client-script.bat | 61
sdk/src/org/opends/sdk/tools/ConsoleApplication.java | 594 +
sdk/src/org/opends/sdk/DN.java | 4
sdk/src/com/sun/opends/sdk/util/MessageDescriptor.java | 1272 +++
sdk/src/com/sun/opends/sdk/util/messages_ko.properties | 531 +
sdk/src/org/opends/sdk/schema/UnknownSchemaElementException.java | 2
sdk/src/org/opends/sdk/controls/SubtreeDeleteControl.java | 4
sdk/PRODUCT | 26
sdk/src/org/opends/sdk/schema/ObjectClass.java | 4
sdk/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleImpl.java | 2
sdk/src/org/opends/sdk/schema/FacsimileNumberSyntaxImpl.java | 10
sdk/src/org/opends/sdk/schema/CertificatePairSyntaxImpl.java | 2
sdk/src/org/opends/sdk/tools/TrustStoreTrustManager.java | 10
sdk/src/org/opends/sdk/util/LocalizedIllegalArgumentException.java | 2
sdk/src/org/opends/sdk/schema/NameForm.java | 10
sdk/src/org/opends/sdk/controls/PasswordPolicyWarningType.java | 6
sdk/src/org/opends/sdk/schema/LDAPSyntaxDescriptionSyntaxImpl.java | 6
sdk/src/org/opends/sdk/schema/MatchingRuleUseSyntaxImpl.java | 12
sdk/src/org/opends/sdk/schema/ObjectIdentifierFirstComponentEqualityMatchingRuleImpl.java | 6
sdk/src/org/opends/sdk/schema/TeletexTerminalIdentifierSyntaxImpl.java | 4
sdk/src/org/opends/sdk/util/Base64.java | 7
sdk/resource/bin/_script-util.bat | 220
sdk/src/org/opends/sdk/controls/EntryChangeNotificationControl.java | 8
sdk/src/org/opends/sdk/schema/EnhancedGuideSyntaxImpl.java | 4
sdk/src/org/opends/sdk/schema/OtherMailboxSyntaxImpl.java | 4
sdk/src/org/opends/sdk/util/LocalizableException.java | 2
sdk/src/com/sun/opends/sdk/util/messages.properties | 5692 +++++++++++++++
sdk/src/org/opends/sdk/ldif/LDIFChangeRecordReader.java | 7
sdk/src/org/opends/sdk/tools/DistrustAllTrustManager.java | 4
sdk/src/org/opends/sdk/controls/MatchedValuesControl.java | 4
sdk/src/org/opends/sdk/schema/IntegerSyntaxImpl.java | 10
sdk/src/org/opends/sdk/controls/PasswordPolicyErrorType.java | 4
sdk/resource/legal-notices/THIRDPARTYREADME.txt | 0
sdk/src/org/opends/sdk/schema/SchemaBuilder.java | 11
sdk/src/org/opends/sdk/schema/AttributeTypeSyntaxImpl.java | 12
sdk/src/org/opends/sdk/tools/StringArgument.java | 4
sdk/src/org/opends/sdk/DecodeException.java | 2
sdk/resource/bin/ldapcompare | 37
sdk/src/org/opends/sdk/schema/MatchingRule.java | 6
sdk/src/org/opends/sdk/schema/MatchingRuleUse.java | 6
sdk/resource/bin/ldapsearch.bat | 33
sdk/src/org/opends/sdk/ldap/UnexpectedResponseException.java | 2
sdk/src/org/opends/sdk/controls/AccountUsabilityControl.java | 10
sdk/src/org/opends/sdk/ldap/SASLStreamWriter.java | 1
sdk/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleImpl.java | 4
sdk/src/org/opends/sdk/ldif/LDIFEntryReader.java | 7
sdk/src/org/opends/sdk/schema/AttributeType.java | 4
sdk/src/org/opends/sdk/schema/IntegerEqualityMatchingRuleImpl.java | 4
sdk/src/org/opends/sdk/ResultCode.java | 4
sdk/resource/bin/_client-script.sh | 69
sdk/build-tools/org/opends/build/tools/Utilities.java | 71
sdk/src/org/opends/sdk/tools/ModRate.java | 27
sdk/src/org/opends/sdk/tools/PerformanceRunner.java | 240
sdk/src/org/opends/sdk/tools/CLIException.java | 104
sdk/src/org/opends/sdk/schema/JPEGSyntaxImpl.java | 2
sdk/src/org/opends/sdk/schema/DITContentRuleSyntaxImpl.java | 10
sdk/src/org/opends/sdk/schema/NameFormSyntaxImpl.java | 6
sdk/src/org/opends/sdk/schema/ProtocolInformationSyntaxImpl.java | 2
sdk/src/org/opends/sdk/schema/EnumSyntaxImpl.java | 6
sdk/resource/FindJavaHome.java | 68
sdk/src/org/opends/sdk/controls/VLVControl.java | 10
sdk/src/org/opends/sdk/tools/SearchRate.java | 138
sdk/src/org/opends/sdk/schema/PrintableStringSyntaxImpl.java | 6
sdk/src/org/opends/sdk/tools/LDAPModify.java | 178
sdk/resource/bin/ldapcompare.bat | 33
sdk/src/org/opends/sdk/tools/IntegerArgument.java | 31
sdk/src/org/opends/sdk/ldap/LDAPDecoder.java | 2
sdk/src/org/opends/sdk/schema/ConflictingSchemaElementException.java | 2
sdk/src/org/opends/sdk/schema/CertificateSyntaxImpl.java | 2
sdk/src/org/opends/sdk/tools/PromptingTrustManager.java | 483 +
sdk/src/org/opends/sdk/schema/GeneralizedTimeSyntaxImpl.java | 6
sdk/src/org/opends/sdk/tools/MultiColumnPrinter.java | 96
sdk/src/org/opends/sdk/schema/ObjectClassSyntaxImpl.java | 10
sdk/src/org/opends/sdk/schema/SchemaException.java | 2
sdk/resource/bin/ldapsearch | 37
/dev/null | 412 -
sdk/src/org/opends/sdk/schema/DITStructureRule.java | 6
sdk/src/org/opends/sdk/tools/SelectableCertificateKeyManager.java | 314
sdk/src/org/opends/sdk/ldap/ASN1StreamReader.java | 9
sdk/build.properties | 4
sdk/src/org/opends/sdk/asn1/AbstractASN1Reader.java | 5
sdk/src/org/opends/sdk/RDN.java | 4
sdk/src/org/opends/sdk/controls/GetEffectiveRightsRequestControl.java | 6
sdk/src/org/opends/sdk/schema/SchemaUtils.java | 4
205 files changed, 19,156 insertions(+), 2,413 deletions(-)
diff --git a/sdk/PRODUCT b/sdk/PRODUCT
new file mode 100755
index 0000000..3928299
--- /dev/null
+++ b/sdk/PRODUCT
@@ -0,0 +1,26 @@
+# The official full product name for the OpenDS LDAP SDK.
+PRODUCT_NAME=OpenDS LDAP SDK
+
+# The short name that should be used if the full name is not appropriate.
+SHORT_NAME=opends-sdk
+
+# The major version number for the Directory Server. It must be an integer.
+MAJOR_VERSION=0
+
+# The minor version number for the Directory Server. It must be an integer.
+MINOR_VERSION=1
+
+# The point version number for the Directory Server. It must be an integer.
+POINT_VERSION=0
+
+# The version qualifier string for the Directory Server. It should be blank
+# for the first official release with a new major, minor, and point version
+# number but may include additional text like "BETA1" or "HOTFIX2" for updates
+# that do not warrant incrementing the version number.
+VERSION_QUALIFIER=
+
+# A comma-delimited list of bug IDs for fixes included in this build. This
+# should be set in any non-official build given to a customer to address a
+# specific problem or set of problems identified in the corresponding official
+# release.
+FIX_IDS=
diff --git a/sdk/build-tools/org/opends/build/tools/GenerateMessageFile.java b/sdk/build-tools/org/opends/build/tools/GenerateMessageFile.java
index dd3371e..602dc30 100644
--- a/sdk/build-tools/org/opends/build/tools/GenerateMessageFile.java
+++ b/sdk/build-tools/org/opends/build/tools/GenerateMessageFile.java
@@ -26,230 +26,194 @@
*/
package org.opends.build.tools;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Location;
-import static org.opends.build.tools.Utilities.*;
-import org.opends.messages.Category;
-import org.opends.messages.Severity;
-import org.opends.messages.MessageDescriptor;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.Properties;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.UnknownFormatConversionException;
-import java.util.Calendar;
-import java.util.Arrays;
-import java.util.Locale;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.EnumSet;
+
+import static org.opends.build.tools.Utilities.*;
+
+import java.io.*;
+import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Location;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
+
+
+
/**
- * Generates a Java class containing representations of messages
- * found in a properties file.
+ * Generates a Java class containing representations of messages found
+ * in a properties file.
*/
-public class GenerateMessageFile extends Task {
+public class GenerateMessageFile extends Task
+{
+ /**
+ * The maximum number of arguments that can be handled by a specific
+ * subclass. If you define more subclasses be sure to increment this
+ * number appropriately.
+ */
+ static public final int DESCRIPTOR_MAX_ARG_HANDLER = 11;
+
+ /**
+ * The base name of the specific argument handling subclasses defined
+ * below. The class names consist of the base name followed by a
+ * number indicating the number of arguments that they handle when
+ * creating messages or the letter "N" meaning any number of
+ * arguments.
+ */
+ public static final String DESCRIPTOR_CLASS_BASE_NAME = "Arg";
private File source;
+
private File dest;
+
private boolean overwrite;
- static private final String MESSAGES_FILE_STUB =
- "resource/Messages.java.stub";
-
- /*
- * The registry filename is the result of the concatenation of the
- * location of where the source are generated, the package name and the
- * DESCRIPTORS_REG value.
- */
- static private String REGISTRY_FILE_NAME;
-
- static private final String DESCRIPTORS_REG = "descriptors.reg";
-
- /**
- * Used to set a category for all messages in the property file.
- * If set, the category for each message need not be encoded in
- * the message's property file key.
- */
- static private final String GLOBAL_CATEGORY = "global.category";
-
- /**
- * Used to set a severity for all messages in the property file.
- * If set, the severity for each message need not be encoded in
- * the message's property file key.
- */
- static private final String GLOBAL_SEVERITY = "global.severity";
-
- /**
- * Used to set a category mask for all messages in the property
- * file. If set, the category will automatically be assigned
- * USER_DEFINED and the value of <code>GLOBAL_CATEGORY</code>
- * will be ignored.
- */
- static private final String GLOBAL_CATEGORY_MASK = "global.mask";
+ static private final String MESSAGES_FILE_STUB = "resource/Messages.java.stub";
/**
* When true generates messages that have no ordinals.
*/
static private final String GLOBAL_ORDINAL = "global.ordinal";
- /**
- * When true and if the Java Web Start property is set use the class loader of
- * the jar where the MessageDescriptor is contained to retrieve the
- * ResourceBundle.
- */
- static private final String GLOBAL_USE_MESSAGE_JAR_IF_WEBSTART =
- "global.use.message.jar.if.webstart";
-
static private final Set<String> DIRECTIVE_PROPERTIES = new HashSet<String>();
- static {
- DIRECTIVE_PROPERTIES.add(GLOBAL_CATEGORY);
- DIRECTIVE_PROPERTIES.add(GLOBAL_CATEGORY_MASK);
- DIRECTIVE_PROPERTIES.add(GLOBAL_SEVERITY);
+ static
+ {
DIRECTIVE_PROPERTIES.add(GLOBAL_ORDINAL);
- DIRECTIVE_PROPERTIES.add(GLOBAL_USE_MESSAGE_JAR_IF_WEBSTART);
}
- static private final String SPECIFIER_REGEX =
- "%(\\d+\\$)?([-#+ 0,(\\<]*)?(\\d+)?(\\.\\d+)?([tT])?([a-zA-Z%])";
+ static private final String SPECIFIER_REGEX = "%(\\d+\\$)?([-#+ 0,(\\<]*)?(\\d+)?(\\.\\d+)?([tT])?([a-zA-Z%])";
- private final Pattern SPECIFIER_PATTERN = Pattern.compile(SPECIFIER_REGEX);
+ private final Pattern SPECIFIER_PATTERN = Pattern
+ .compile(SPECIFIER_REGEX);
/**
* Message giving formatting rules for string keys.
*/
static public String KEY_FORM_MSG;
- static {
- KEY_FORM_MSG = new StringBuilder()
- .append(".\n\nOpenDS message property keys must be of the form\n\n")
- .append("\t\'[CATEGORY]_[SEVERITY]_[DESCRIPTION]_[ORDINAL]\'\n\n")
- .append("where\n\n")
- .append("CATEGORY is one of ")
- .append(EnumSet.allOf(Category.class))
- .append("\n\nSEVERITY is one of ")
- .append(Severity.getPropertyKeyFormSet().toString())
- .append("\n\nDESCRIPTION is a descriptive string composed ")
- .append("of uppercase character, digits and underscores ")
- .append("describing the purpose of the message ")
- .append("\n\nORDINAL is an integer between 0 and 65535 that is ")
- .append("unique to other messages defined in this file.\n\n")
- .append("You can relax the mandate for including the CATEGORY, ")
- .append("SEVERITY, and/or ORDINAL by including one or more ")
- .append("of the following respective property directives in your ")
- .append("properties file: ")
- .append(GLOBAL_CATEGORY)
- .append(", ")
- .append(GLOBAL_SEVERITY)
- .append(", ")
- .append(GLOBAL_ORDINAL)
- .append("and setting their value appropriately.")
- .toString();
+ static
+ {
+ KEY_FORM_MSG = new StringBuilder().append(
+ ".\n\nOpenDS message property keys must be of the form\n\n")
+ .append("\t\'[DESCRIPTION]_[ORDINAL]\'\n\n")
+ .append("where\n\n").append(
+ "\n\nDESCRIPTION is a descriptive string composed ")
+ .append("of uppercase character, digits and underscores ")
+ .append("describing the purpose of the message ").append(
+ "\n\nORDINAL is an integer between 0 and 65535 that is ")
+ .append("unique to other messages defined in this file.\n\n")
+ .toString();
}
/*
* ISO_LANGUAGES contains all official supported languages for i18n
*/
- private static final List<String> ISO_LANGUAGES =
- Arrays.asList(Locale.getISOLanguages());
+ private static final List<String> ISO_LANGUAGES = Arrays
+ .asList(Locale.getISOLanguages());
+
/*
* ISO_COUNTRIES contains all official supported countries for i18n
*/
- private static final List<String> ISO_COUNTRIES =
- Arrays.asList(Locale.getISOCountries());
+ private static final List<String> ISO_COUNTRIES = Arrays
+ .asList(Locale.getISOCountries());
/*
- * A Pattern instance that matches "<label>_<language>_<country>.properties"
- * where <label> can be anything including '_'
- * <language> a two characters code contained in the ISO_LANGUAGES list
- * <country> a two characters code contained in the ISO_COUNTRIES list
- */
- private static final Pattern LANGUAGE_COUNTRY_MATCHER =
- Pattern.compile("(.*)_([a-z]{2})_([A-Z]{2}).properties");
+ * A Pattern instance that matches
+ * "<label>_<language>_<country>.properties" where <label> can be
+ * anything including '_' <language> a two characters code contained
+ * in the ISO_LANGUAGES list <country> a two characters code contained
+ * in the ISO_COUNTRIES list
+ */
+ private static final Pattern LANGUAGE_COUNTRY_MATCHER = Pattern
+ .compile("(.*)_([a-z]{2})_([A-Z]{2}).properties");
+
/*
* A Pattern instance that matches "<label>_<language>.properties"
* where <label> and <language> have same definition as above.
*/
- private static final Pattern LANGUAGE_MATCHER =
- Pattern.compile("(.*)_([a-z]{2}).properties");
+ private static final Pattern LANGUAGE_MATCHER = Pattern
+ .compile("(.*)_([a-z]{2}).properties");
+
+
/**
* Representation of a format specifier (for example %s).
*/
- private class FormatSpecifier {
+ private class FormatSpecifier
+ {
private String[] sa;
+
+
/**
* Creates a new specifier.
- * @param sa specifier components
+ *
+ * @param sa
+ * specifier components
*/
- FormatSpecifier(String[] sa) {
+ FormatSpecifier(String[] sa)
+ {
this.sa = sa;
}
+
+
/**
- * Indicates whether or not the specifier uses arguement
- * indexes (for example 2$).
+ * Indicates whether or not the specifier uses arguement indexes
+ * (for example 2$).
+ *
* @return boolean true if this specifier uses indexing
*/
- public boolean specifiesArgumentIndex() {
+ public boolean specifiesArgumentIndex()
+ {
return this.sa[0] != null;
}
+
+
/**
- * Returns a java class associated with a particular formatter
- * based on the conversion type of the specifier.
- * @return Class for representing the type of arguement used
- * as a replacement for this specifier.
+ * Returns a java class associated with a particular formatter based
+ * on the conversion type of the specifier.
+ *
+ * @return Class for representing the type of arguement used as a
+ * replacement for this specifier.
*/
- public Class getSimpleConversionClass() {
- Class c = null;
+ public Class<?> getSimpleConversionClass()
+ {
+ Class<?> c = null;
String sa4 = sa[4] != null ? sa[4].toLowerCase() : null;
String sa5 = sa[5] != null ? sa[5].toLowerCase() : null;
- if ("t".equals(sa4)) {
+ if ("t".equals(sa4))
+ {
c = Calendar.class;
- } else if (
- "b".equals(sa5)) {
+ }
+ else if ("b".equals(sa5))
+ {
c = Boolean.class;
- } else if (
- "h".equals(sa5)) {
+ }
+ else if ("h".equals(sa5))
+ {
c = Integer.class;
- } else if (
- "s".equals(sa5)) {
+ }
+ else if ("s".equals(sa5))
+ {
c = CharSequence.class;
- } else if (
- "c".equals(sa5)) {
+ }
+ else if ("c".equals(sa5))
+ {
c = Character.class;
- } else if (
- "d".equals(sa5) ||
- "o".equals(sa5) ||
- "x".equals(sa5) ||
- "e".equals(sa5) ||
- "f".equals(sa5) ||
- "g".equals(sa5) ||
- "a".equals(sa5)) {
+ }
+ else if ("d".equals(sa5) || "o".equals(sa5) || "x".equals(sa5)
+ || "e".equals(sa5) || "f".equals(sa5) || "g".equals(sa5)
+ || "a".equals(sa5))
+ {
c = Number.class;
- } else if (
- "n".equals(sa5) ||
- "%".equals(sa5)) {
+ }
+ else if ("n".equals(sa5) || "%".equals(sa5))
+ {
// ignore literals
}
return c;
@@ -257,73 +221,103 @@
}
+
+
/**
* Represents a message to be written into the messages files.
*/
- private class MessageDescriptorDeclaration {
+ private class MessageDescriptorDeclaration
+ {
private MessagePropertyKey key;
+
private String formatString;
+
private List<FormatSpecifier> specifiers;
- private List<Class> classTypes;
+
+ private List<Class<?>> classTypes;
+
private String[] constructorArgs;
+
+
/**
* Creates a parameterized instance.
- * @param key of the message
- * @param formatString of the message
+ *
+ * @param key
+ * of the message
+ * @param formatString
+ * of the message
*/
public MessageDescriptorDeclaration(MessagePropertyKey key,
- String formatString) {
+ String formatString)
+ {
this.key = key;
this.formatString = formatString;
this.specifiers = parse(formatString);
- this.classTypes = new ArrayList<Class>();
- for (FormatSpecifier f : specifiers) {
- Class c = f.getSimpleConversionClass();
- if (c != null) {
+ this.classTypes = new ArrayList<Class<?>>();
+ for (FormatSpecifier f : specifiers)
+ {
+ Class<?> c = f.getSimpleConversionClass();
+ if (c != null)
+ {
classTypes.add(c);
}
}
}
+
+
/**
* Gets the name of the Java class that will be used to represent
* this message's type.
+ *
* @return String representing the Java class name
*/
- public String getDescriptorClassDeclaration() {
+ public String getDescriptorClassDeclaration()
+ {
StringBuilder sb = new StringBuilder();
- if (useGenericMessageTypeClass()) {
- sb.append(getShortClassName(MessageDescriptor.class));
+ if (useGenericMessageTypeClass())
+ {
+ sb.append("MessageDescriptor");
sb.append(".");
- sb.append(MessageDescriptor.DESCRIPTOR_CLASS_BASE_NAME);
+ sb.append(DESCRIPTOR_CLASS_BASE_NAME);
sb.append("N");
- } else {
- sb.append(getShortClassName(MessageDescriptor.class));
+ }
+ else
+ {
+ sb.append("MessageDescriptor");
sb.append(".");
- sb.append(MessageDescriptor.DESCRIPTOR_CLASS_BASE_NAME);
+ sb.append(DESCRIPTOR_CLASS_BASE_NAME);
sb.append(classTypes.size());
sb.append(getClassTypeVariables());
}
return sb.toString();
}
+
+
/**
* Gets a string representing the message type class' variable
- * information (for example '<String,Integer>') that is based on
- * the type of arguments specified by the specifiers in this message.
+ * information (for example '<String,Integer>') that is based on the
+ * type of arguments specified by the specifiers in this message.
+ *
* @return String representing the message type class parameters
*/
- public String getClassTypeVariables() {
+ public String getClassTypeVariables()
+ {
StringBuilder sb = new StringBuilder();
- if (classTypes.size() > 0) {
+ if (classTypes.size() > 0)
+ {
sb.append("<");
- for (int i = 0; i < classTypes.size(); i++) {
- Class c = classTypes.get(i);
- if (c != null) {
+ for (int i = 0; i < classTypes.size(); i++)
+ {
+ Class<?> c = classTypes.get(i);
+ if (c != null)
+ {
sb.append(getShortClassName(c));
- if (i < classTypes.size() - 1) {
+ if (i < classTypes.size() - 1)
+ {
sb.append(",");
}
}
@@ -333,12 +327,16 @@
return sb.toString();
}
+
+
/**
- * Gets the javadoc comments that will appear above the messages declaration
- * in the messages file.
+ * Gets the javadoc comments that will appear above the messages
+ * declaration in the messages file.
+ *
* @return String comment
*/
- public String getComment() {
+ public String getComment()
+ {
StringBuilder sb = new StringBuilder();
sb.append(indent(1)).append("/**").append(EOL);
@@ -347,27 +345,36 @@
String ws = formatString; // wrapText(formatString, 70);
String[] sa = ws.split(EOL);
- for (String s : sa) {
+ for (String s : sa)
+ {
sb.append(indent(1)).append(" * ").append(s).append(EOL);
}
sb.append(indent(1)).append(" */").append(EOL);
return sb.toString();
}
+
+
/**
- * Sets the arguments that will be supplied in the declaration
- * of the message.
- * @param s array of string arguments that will be passed
- * in the constructor
+ * Sets the arguments that will be supplied in the declaration of
+ * the message.
+ *
+ * @param s
+ * array of string arguments that will be passed in the
+ * constructor
*/
- public void setConstructorArguments(String... s) {
+ public void setConstructorArguments(String... s)
+ {
this.constructorArgs = s;
}
+
+
/**
* {@inheritDoc}
*/
- public String toString() {
+ public String toString()
+ {
StringBuilder sb = new StringBuilder();
sb.append(getComment());
sb.append(indent(1));
@@ -381,10 +388,13 @@
sb.append("new ");
sb.append(getDescriptorClassDeclaration());
sb.append("(");
- if (constructorArgs != null) {
- for (int i = 0; i < constructorArgs.length; i++) {
+ if (constructorArgs != null)
+ {
+ for (int i = 0; i < constructorArgs.length; i++)
+ {
sb.append(constructorArgs[i]);
- if (i < constructorArgs.length - 1) {
+ if (i < constructorArgs.length - 1)
+ {
sb.append(",");
}
}
@@ -395,20 +405,29 @@
return sb.toString();
}
+
+
/**
- * Indicates whether the generic message type class should
- * be used. In general this is when a format specifier is
- * more complicated than we support or when the number of
- * arguments exceeeds the number of specific message type
- * classes (MessageType0, MessageType1 ...) that are defined.
+ * Indicates whether the generic message type class should be used.
+ * In general this is when a format specifier is more complicated
+ * than we support or when the number of arguments exceeeds the
+ * number of specific message type classes (MessageType0,
+ * MessageType1 ...) that are defined.
+ *
* @return boolean indicating
*/
- private boolean useGenericMessageTypeClass() {
- if (specifiers.size() > MessageDescriptor.DESCRIPTOR_MAX_ARG_HANDLER) {
+ private boolean useGenericMessageTypeClass()
+ {
+ if (specifiers.size() > DESCRIPTOR_MAX_ARG_HANDLER)
+ {
return true;
- } else if (specifiers != null) {
- for (FormatSpecifier s : specifiers) {
- if (s.specifiesArgumentIndex()) {
+ }
+ else if (specifiers != null)
+ {
+ for (FormatSpecifier s : specifiers)
+ {
+ if (s.specifiesArgumentIndex())
+ {
return true;
}
}
@@ -416,51 +435,66 @@
return false;
}
+
+
/**
* Look for format specifiers in the format string.
- * @param s format string
+ *
+ * @param s
+ * format string
* @return list of format specifiers
*/
- private List<FormatSpecifier> parse(String s) {
+ private List<FormatSpecifier> parse(String s)
+ {
List<FormatSpecifier> sl = new ArrayList<FormatSpecifier>();
Matcher m = SPECIFIER_PATTERN.matcher(s);
int i = 0;
- while (i < s.length()) {
- if (m.find(i)) {
+ while (i < s.length())
+ {
+ if (m.find(i))
+ {
// Anything between the start of the string and the beginning
// of the format specifier is either fixed text or contains
// an invalid format string.
- if (m.start() != i) {
+ if (m.start() != i)
+ {
// Make sure we didn't miss any invalid format specifiers
checkText(s.substring(i, m.start()));
// Assume previous characters were fixed text
- //al.add(new FixedString(s.substring(i, m.start())));
+ // al.add(new FixedString(s.substring(i, m.start())));
}
// Expect 6 groups in regular expression
String[] sa = new String[6];
- for (int j = 0; j < m.groupCount(); j++) {
+ for (int j = 0; j < m.groupCount(); j++)
+ {
sa[j] = m.group(j + 1);
}
sl.add(new FormatSpecifier(sa));
i = m.end();
- } else {
- // No more valid format specifiers. Check for possible invalid
+ }
+ else
+ {
+ // No more valid format specifiers. Check for possible invalid
// format specifiers.
checkText(s.substring(i));
// The rest of the string is fixed text
- //al.add(new FixedString(s.substring(i)));
+ // al.add(new FixedString(s.substring(i)));
break;
}
}
return sl;
}
- private void checkText(String s) {
+
+
+ private void checkText(String s)
+ {
int idx;
// If there are any '%' in the given string, we got a bad format
// specifier.
- if ((idx = s.indexOf('%')) != -1) {
+ if ((idx = s.indexOf('%')) != -1)
+ {
char c = (idx > s.length() - 2 ? '%' : s.charAt(idx + 1));
throw new UnknownFormatConversionException(String.valueOf(c));
}
@@ -468,132 +502,116 @@
}
+
+
/**
* Sets the source of the messages.
- * @param source File representing the properties
- * file containing messages
+ *
+ * @param source
+ * File representing the properties file containing messages
*/
- public void setSourceProps(File source) {
+ public void setSourceProps(File source)
+ {
this.source = source;
}
+
+
/**
- * Sets the file that will be generated containing
- * declarations of messages from <code>source</code>.
- * @param dest File destination
+ * Sets the file that will be generated containing declarations of
+ * messages from <code>source</code>.
+ *
+ * @param dest
+ * File destination
*/
- public void setDestJava(File dest) {
+ public void setDestJava(File dest)
+ {
this.dest = dest;
-
- /*
- * Set the descriptors.reg pathname to the same directory as the one used
- * to generate files and ensure all messages are generated in one place.
- */
- String projectBase = null;
- try {
- projectBase = getProject().getBaseDir().getCanonicalPath();
- } catch( java.io.IOException e) {
- throw new BuildException("Error processing " + dest +
- ": unable to retrieve project's directory of ant's project (" +
- e + ")");
- }
-
- String registry = dest.getAbsolutePath();
- // strip project directory prefix and replace properties filename with
- // $DESCRIPTORS_REG
- registry = registry.substring(projectBase.length()+1,
- registry.lastIndexOf(File.separator)+1)
- .concat(DESCRIPTORS_REG);
-
- if ( REGISTRY_FILE_NAME == null ) {
- REGISTRY_FILE_NAME = registry;
- } else {
- if ( ! REGISTRY_FILE_NAME.equals(registry) ) {
- // multiple messages are generated in several packages
- StringBuilder sb = new StringBuilder();
- // full pathname of $REGISTRY_FILE_NAME
- sb.append(projectBase)
- .append(File.separator)
- .append(REGISTRY_FILE_NAME);
- // change from generated directory to properties files directory
- sb.replace(0,
- getProject().getProperty("msg.javagen.dir").length(),
- getProject().getProperty("msg.dir"));
- // replace properties filename with source filename
- sb.replace(sb.lastIndexOf(File.separator)+1,
- sb.length(),
- source.getName());
- throw new BuildException("Error processing " + dest +
- ": all messages must be located in the same package thus " +
- "name of the source file should be " + sb);
-
- }
- }
}
+
+
/**
- * Indicates when true that an existing destination
- * file will be overwritten.
- * @param o boolean where true means overwrite
+ * Indicates when true that an existing destination file will be
+ * overwritten.
+ *
+ * @param o
+ * boolean where true means overwrite
*/
- public void setOverwrite(boolean o) {
+ public void setOverwrite(boolean o)
+ {
this.overwrite = o;
}
+
+
/**
* {@inheritDoc}
*/
@Override
- public void execute() throws BuildException {
+ public void execute() throws BuildException
+ {
- if ( this.dest == null ) {
+ if (this.dest == null)
+ {
// this is an example-plugin call:
// - check the source file is not a localization
// - guess the destination filename from source filename
String sourcefilename = source.getAbsolutePath();
- int filenameIndex = sourcefilename.lastIndexOf(File.separator)+1;
+ int filenameIndex = sourcefilename.lastIndexOf(File.separator) + 1;
String pathname = sourcefilename.substring(0, filenameIndex);
String filename = sourcefilename.substring(filenameIndex);
/*
- * Make sure only <label>.properties are generated thus avoiding to
- * generate messages for localized properties files.
+ * Make sure only <label>.properties are generated thus avoiding
+ * to generate messages for localized properties files.
*/
Matcher matcher = LANGUAGE_COUNTRY_MATCHER.matcher(filename);
- if ( matcher.find() ) {
- if ( ISO_LANGUAGES.contains(matcher.group(2))
- && ISO_COUNTRIES.contains(matcher.group(3)) ) {
- // do not generate message for <label>_<language>_<country>.properties
+ if (matcher.find())
+ {
+ if (ISO_LANGUAGES.contains(matcher.group(2))
+ && ISO_COUNTRIES.contains(matcher.group(3)))
+ {
+ // do not generate message for
+ // <label>_<language>_<country>.properties
return;
}
}
matcher = LANGUAGE_MATCHER.matcher(filename);
- if ( matcher.find() ) {
- if ( ISO_LANGUAGES.contains(matcher.group(2)) ) {
+ if (matcher.find())
+ {
+ if (ISO_LANGUAGES.contains(matcher.group(2)))
+ {
// do not generate message for <label>_<language>.properties
return;
}
}
// filename without ".properties"
- filename = filename.substring(0, filename.length()-11);
+ filename = filename.substring(0, filename.length() - 11);
// change to src-generated directory keeping package name
- pathname = pathname.replace(getProject().getProperty("msg.dir"),
- getProject().getProperty("msg.javagen.dir"));
+ pathname = pathname.replace(getProject().getProperty("src.dir"),
+ getProject().getProperty("srcgen.dir"));
- // append characters from filename to pathname starting with an uppercase
- // letter, ignoring '_' and uppering all characters prefixed with "_"
+ // append characters from filename to pathname starting with an
+ // uppercase letter, ignoring '_' and uppering all characters
+ // prefixed with "_"
StringBuilder sb = new StringBuilder(pathname);
boolean upperCaseNextChar = true;
- for(char c : filename.toCharArray()) {
- if ( c == '_' ) {
+ for (char c : filename.toCharArray())
+ {
+ if (c == '_')
+ {
upperCaseNextChar = true;
continue;
}
- if ( upperCaseNextChar ) {
+ if (upperCaseNextChar)
+ {
sb.append(Character.toUpperCase(c));
upperCaseNextChar = false;
- } else {
+ }
+ else
+ {
sb.append(c);
}
}
@@ -604,372 +622,296 @@
BufferedReader stubReader = null;
PrintWriter destWriter = null;
- try {
+ try
+ {
// Decide whether to generate messages based on modification
// times and print status messages.
- if (!source.exists()) {
- throw new BuildException("file " + source.getName() +
- " does not exist");
+ if (!source.exists())
+ {
+ throw new BuildException("file " + source.getName()
+ + " does not exist");
}
- if (dest.exists()) {
- if (this.overwrite || source.lastModified() > dest.lastModified()) {
+ if (dest.exists())
+ {
+ if (this.overwrite
+ || source.lastModified() > dest.lastModified())
+ {
dest.delete();
- log("Regenerating " + dest.getName() + " from " + source.getName());
- } else {
+ log("Regenerating " + dest.getName() + " from "
+ + source.getName());
+ }
+ else
+ {
log(dest.getName() + " is up to date");
return;
}
- } else {
+ }
+ else
+ {
File javaGenDir = dest.getParentFile();
- if (!javaGenDir.exists()) {
+ if (!javaGenDir.exists())
+ {
javaGenDir.mkdirs();
}
- log("Generating " + dest.getName() + " from " + source.getName());
+ log("Generating " + dest.getName() + " from "
+ + source.getName());
}
- stubReader = new BufferedReader(new InputStreamReader(getStubFile(),
- "UTF-8"));
+ stubReader = new BufferedReader(new InputStreamReader(
+ getStubFile(), "UTF-8"));
destWriter = new PrintWriter(dest, "UTF-8");
String stubLine;
Properties properties = new Properties();
properties.load(new FileInputStream(source));
- while (null != (stubLine = stubReader.readLine())) {
- if (stubLine.contains("${MESSAGES}")) {
+ while (null != (stubLine = stubReader.readLine()))
+ {
+ if (stubLine.contains("${MESSAGES}"))
+ {
Integer globalOrdinal = null;
String go = properties.getProperty(GLOBAL_ORDINAL);
- if (go != null) {
+ if (go != null)
+ {
globalOrdinal = new Integer(go);
}
- // Determine the value of the global category/mask if set
- Integer globalMask = null;
- Category globalCategory = null;
- String gms = properties.getProperty(GLOBAL_CATEGORY_MASK);
- if (gms != null) {
- globalMask = Integer.parseInt(gms);
- globalCategory = Category.USER_DEFINED;
- } else {
- String gcs = properties.getProperty(GLOBAL_CATEGORY);
- if (gcs != null) {
- globalCategory = Category.valueOf(gcs);
- }
- }
+ Map<MessagePropertyKey, String> keyMap = new TreeMap<MessagePropertyKey, String>();
- // Determine the value of the global severity
- Severity globalSeverity = null;
- String gss = properties.getProperty(GLOBAL_SEVERITY);
- if (gss != null) {
- globalSeverity = Severity.parseString(gss);
- }
-
- Map<MessagePropertyKey,String> keyMap =
- new TreeMap<MessagePropertyKey,String>();
-
- for (Object propO : properties.keySet()) {
+ for (Object propO : properties.keySet())
+ {
String propKey = propO.toString();
- try {
- if (!DIRECTIVE_PROPERTIES.contains(propKey)) {
- MessagePropertyKey key =
- MessagePropertyKey.parseString(
- propKey,
- globalCategory == null,
- globalSeverity == null,
- globalOrdinal == null);
+ try
+ {
+ if (!DIRECTIVE_PROPERTIES.contains(propKey))
+ {
+ MessagePropertyKey key = MessagePropertyKey
+ .parseString(propKey, globalOrdinal == null);
String formatString = properties.getProperty(propKey);
keyMap.put(key, formatString);
}
- } catch (IllegalArgumentException iae) {
- throw new BuildException(
- "ERROR: invalid property key " + propKey +
- ": " + iae.getMessage() +
- KEY_FORM_MSG);
+ }
+ catch (IllegalArgumentException iae)
+ {
+ throw new BuildException("ERROR: invalid property key "
+ + propKey + ": " + iae.getMessage() + KEY_FORM_MSG);
}
}
int usesOfGenericDescriptor = 0;
- Category firstCategory = null;
Set<Integer> usedOrdinals = new HashSet<Integer>();
- for (MessagePropertyKey key : keyMap.keySet()) {
+ for (MessagePropertyKey key : keyMap.keySet())
+ {
String formatString = keyMap.get(key);
- MessageDescriptorDeclaration message =
- new MessageDescriptorDeclaration(key, formatString);
+ MessageDescriptorDeclaration message = new MessageDescriptorDeclaration(
+ key, formatString);
- Category c = (globalCategory != null ?
- globalCategory : key.getCategory());
-
- // Check that this category is the same as all the
- // others in this file. Maybe this should be an error?
- if (firstCategory != null) {
- if (!firstCategory.equals(c)) {
- log("WARNING: multiple categories defined in " + source);
- }
- } else {
- firstCategory = c;
- }
-
- Severity s = (globalSeverity != null ?
- globalSeverity : key.getSeverity());
-
- if (c == null) {
- throw new BuildException(
- "No category could be assigned to message " +
- key + ". The category " +
- "must either be encoded in the property key or " +
- "or must be set by including the property " +
- GLOBAL_CATEGORY + " in the properties file" +
- KEY_FORM_MSG);
- }
-
- if (c == null) {
- throw new BuildException(
- "No severity could be assigned to message " +
- key + ". The severity " +
- "must either be encoded in the property key or " +
- "or must be set by including the property " +
- GLOBAL_SEVERITY + " in the properties file" +
- KEY_FORM_MSG);
- }
-
- if (globalOrdinal == null) {
+ if (globalOrdinal == null)
+ {
Integer ordinal = key.getOrdinal();
- if (usedOrdinals.contains(ordinal)) {
- throw new BuildException(
- "The ordinal value \'" + ordinal + "\' in key " +
- key + " has been previously defined in " +
- source + KEY_FORM_MSG);
- } else {
+ if (usedOrdinals.contains(ordinal))
+ {
+ throw new BuildException("The ordinal value \'"
+ + ordinal + "\' in key " + key
+ + " has been previously defined in " + source
+ + KEY_FORM_MSG);
+ }
+ else
+ {
usedOrdinals.add(ordinal);
}
}
- message.setConstructorArguments(
- "BASE",
- quote(key.toString()),
- globalMask != null ? globalMask.toString() : c.name(),
- s.name(),
- globalOrdinal != null ?
- globalOrdinal.toString() :
- key.getOrdinal().toString()
- );
+ message.setConstructorArguments("BASE", quote(key
+ .toString()), globalOrdinal != null ? globalOrdinal
+ .toString() : key.getOrdinal().toString());
destWriter.println(message.toString());
destWriter.println();
// Keep track of when we use the generic descriptor
// so that we can report it later
- if (message.useGenericMessageTypeClass()) {
+ if (message.useGenericMessageTypeClass())
+ {
usesOfGenericDescriptor++;
}
}
- log(" Message Generated:" + keyMap.size(), Project.MSG_VERBOSE);
+ log(" Message Generated:" + keyMap.size(),
+ Project.MSG_VERBOSE);
log(" MessageDescriptor.ArgN:" + usesOfGenericDescriptor,
- Project.MSG_VERBOSE);
+ Project.MSG_VERBOSE);
- } else {
+ }
+ else
+ {
stubLine = stubLine.replace("${PACKAGE}", getPackage());
- stubLine = stubLine.replace("${CLASS_NAME}",
- dest.getName().substring(0, dest.getName().length() -
- ".java".length()));
+ stubLine = stubLine
+ .replace("${CLASS_NAME}", dest.getName().substring(0,
+ dest.getName().length() - ".java".length()));
stubLine = stubLine.replace("${BASE}", getBase());
-
- String useMessageJarIfWebstart =
- properties.getProperty(GLOBAL_USE_MESSAGE_JAR_IF_WEBSTART);
- if ((useMessageJarIfWebstart != null) &&
- ("true".equalsIgnoreCase(useMessageJarIfWebstart) ||
- "on".equalsIgnoreCase(useMessageJarIfWebstart) ||
- "true".equalsIgnoreCase(useMessageJarIfWebstart)))
- {
- useMessageJarIfWebstart = "true";
- }
- else
- {
- useMessageJarIfWebstart = "false";
- }
- stubLine = stubLine.replace("${USE_MESSAGE_JAR_IF_WEBSTART}",
- useMessageJarIfWebstart);
destWriter.println(stubLine);
}
}
- registerMessageDescriptor(getMessageDescriptorFullClassName());
-
stubReader.close();
destWriter.close();
-
- } catch (Exception e) {
+ }
+ catch (Exception e)
+ {
// Don't leave a malformed file laying around. Delete
// it so it will be forced to be regenerated.
- if (dest.exists()) {
+ if (dest.exists())
+ {
dest.deleteOnExit();
}
e.printStackTrace();
- throw new BuildException("Error processing " + source +
- ": " + e.getMessage());
- } finally {
- if (stubReader != null) {
- try {
+ throw new BuildException("Error processing " + source + ": "
+ + e.getMessage());
+ }
+ finally
+ {
+ if (stubReader != null)
+ {
+ try
+ {
stubReader.close();
- } catch (Exception e){
+ }
+ catch (Exception e)
+ {
// ignore
}
}
- if (destWriter != null) {
- try {
+ if (destWriter != null)
+ {
+ try
+ {
destWriter.close();
- } catch (Exception e){
+ }
+ catch (Exception e)
+ {
// ignore
}
}
}
}
- private String getMessageDescriptorFullClassName() {
- return getPackage() + "." + getMessageDescriptorClassName();
- }
- private String getMessageDescriptorClassName() {
- return dest.getName().substring(
- 0, dest.getName().length() - ".java".length());
- }
- private String getBase() {
+ private String getBase()
+ {
String srcPath = unixifyPath(source.getAbsolutePath());
String base = srcPath.substring(srcPath.lastIndexOf("/") + 1,
- srcPath.length() - ".properties".length());
+ srcPath.length() - ".properties".length());
return base;
}
- private String getPackage() {
+
+
+ private String getPackage()
+ {
String destPath = unixifyPath(dest.getAbsolutePath());
- String msgJavaGenDir = unixifyPath(
- getProject().getProperty("msg.javagen.dir"));
- String c = destPath.substring(msgJavaGenDir.length()+1);
+ String msgJavaGenDir = unixifyPath(getProject().getProperty(
+ "srcgen.dir"));
+ String c = destPath.substring(msgJavaGenDir.length() + 1);
c = c.replace('/', '.');
c = c.substring(0, c.lastIndexOf(".")); // strip .java
c = c.substring(0, c.lastIndexOf(".")); // strip class name
return c;
}
- static private String indent(int indent) {
+
+
+ static private String indent(int indent)
+ {
char[] blankArray = new char[2 * indent];
Arrays.fill(blankArray, ' ');
return new String(blankArray);
}
- static private String quote(String s) {
- return new StringBuilder()
- .append("\"")
- .append(s)
- .append("\"")
- .toString();
+
+
+ static private String quote(String s)
+ {
+ return new StringBuilder().append("\"").append(s).append("\"")
+ .toString();
}
- static private String getShortClassName(Class c) {
+
+
+ static private String getShortClassName(Class<?> c)
+ {
String name;
String fqName = c.getName();
int i = fqName.lastIndexOf('.');
- if (i > 0) {
+ if (i > 0)
+ {
name = fqName.substring(i + 1);
- } else {
+ }
+ else
+ {
name = fqName;
}
return name;
}
- /**
- * Writes a record in the messages registry for the specifed
- * class name.
- * @param descClassName name of the message descriptor class
- * @return true if the class was acutally added to the registry;
- * false indicates that the class was already present.
- * @throws IOException if there is a problem with the file I/O
- */
- private boolean registerMessageDescriptor(String descClassName)
- throws IOException
+
+
+ private File getProjectBase()
{
- boolean classAdded = false;
- File registry = getRegistryFile();
- if (!isDescriptorRegistered(descClassName)) {
- FileOutputStream file = new FileOutputStream(registry,true);
- DataOutputStream out = new DataOutputStream(file);
- out.writeBytes(descClassName);
- out.writeBytes("\n");
- out.flush();
- out.close();
- }
- return classAdded;
- }
-
- private boolean isDescriptorRegistered(String descClassName)
- throws IOException
- {
- boolean isRegistered = false;
- BufferedReader reader = new BufferedReader(
- new FileReader(getRegistryFile()));
- String line;
- while(null != (line = reader.readLine())) {
- if (line.trim().equals(descClassName.trim())) {
- isRegistered = true;
- break;
- }
- }
- return isRegistered;
- }
-
- private File getRegistryFile() throws IOException {
- File registry = new File(getProjectBase(), REGISTRY_FILE_NAME);
- if (!registry.exists()) {
- File parent = registry.getParentFile();
- if (!parent.exists()) {
- parent.mkdirs();
- }
- registry.createNewFile();
- }
- return registry;
- }
-
- private File getProjectBase() {
File projectBase;
// Get the path to build.xml and return the parent
// directory else just return the working directory.
Location l = getLocation();
String fileName = l.getFileName();
- if (fileName != null) {
+ if (fileName != null)
+ {
File f = new File(fileName);
projectBase = f.getParentFile();
- } else {
+ }
+ else
+ {
projectBase = new File(System.getProperty("user.dir"));
}
return projectBase;
}
- private String unixifyPath(String path) {
+
+
+ private String unixifyPath(String path)
+ {
return path.replace("\\", "/");
}
+
+
/*
- * Returns the stub file ("resource/Messages.java.stub") from the appropriate
- * location: ant or jar file.
+ * Returns the stub file ("resource/Messages.java.stub") from the
+ * appropriate location: ant or jar file.
*/
- private InputStream getStubFile() {
+ private InputStream getStubFile()
+ {
InputStream result = null;
File stub = new File(getProjectBase(), MESSAGES_FILE_STUB);
- if ( stub.exists() ) {
+ if (stub.exists())
+ {
// this is the OpenDS's ant project calling
// Stub is located at OPENDS_ROOT/resource/Messages.java.stub
- try {
+ try
+ {
result = new FileInputStream(stub);
- } catch (FileNotFoundException e) {
- // should neven happen
- throw new BuildException("Unable to load template " +
- MESSAGES_FILE_STUB + ": " + e.getMessage());
}
- } else {
+ catch (FileNotFoundException e)
+ {
+ // should never happen
+ throw new BuildException("Unable to load template "
+ + MESSAGES_FILE_STUB + ": " + e.getMessage());
+ }
+ }
+ else
+ {
// this is the example plugin's ant project calling
// Stub is located at build-tools.jar:resource/Messages.java.stub
result = getClass().getResourceAsStream(MESSAGES_FILE_STUB);
@@ -978,18 +920,4 @@
return result;
}
- /**
- * For testing.
- * @param args from command line
- */
- public static void main(String[] args) {
- File source = new File("src/messages/messages/tools.properties");
- File dest = new File("/tmp/org/opends/XXX.java");
- GenerateMessageFile gmf = new GenerateMessageFile();
- gmf.setOverwrite(true);
- gmf.setDestJava(dest);
- gmf.setSourceProps(source);
- gmf.execute();
- }
-
}
diff --git a/sdk/build-tools/org/opends/build/tools/MessagePropertyKey.java b/sdk/build-tools/org/opends/build/tools/MessagePropertyKey.java
index 93ee9e5..e610e73 100644
--- a/sdk/build-tools/org/opends/build/tools/MessagePropertyKey.java
+++ b/sdk/build-tools/org/opends/build/tools/MessagePropertyKey.java
@@ -27,239 +27,190 @@
package org.opends.build.tools;
-import org.opends.messages.Category;
-import org.opends.messages.Severity;
-
-import java.util.EnumSet;
-
/**
- * OpenDS messages defined in properties files must be defined
- * with the ordinal and in most cases category and severity encoded
- * in the message key. This class helps with generating and
- * parsing of these keys.
- *
- * Keys must be of the form
- *
- * CATEGORY_SEVERITY_DESCRIPTION_ORDINAL
- *
+ * OpenDS messages defined in properties files must be defined with the
+ * ordinal and in most cases category and severity encoded in the
+ * message key. This class helps with generating and parsing of these
+ * keys. Keys must be of the form CATEGORY_SEVERITY_DESCRIPTION_ORDINAL
* where:
* <ul>
- * <li>
- * CATEGORY is the string representation of one of the
- * <code>Category</code> enums.
- * </li>
- * <li>
- * SEVERITY is the long or abbreviated form of one of
- * the <code>Severity</code> enums.
- * </li>
- * <li>
- * DESCRIPTION is an uppercase string containing characters
- * and the underscore character for describing the purpose
- * of the message.
- * </li>
- * <li>
- * ORDINAL is an integer that makes the message unique witin
- * the property file.
- * </li>
+ * <li>CATEGORY is the string representation of one of the
+ * <code>Category</code> enums.</li>
+ * <li>SEVERITY is the long or abbreviated form of one of the
+ * <code>Severity</code> enums.</li>
+ * <li>DESCRIPTION is an uppercase string containing characters and the
+ * underscore character for describing the purpose of the message.</li>
+ * <li>ORDINAL is an integer that makes the message unique witin the
+ * property file.</li>
* </ul>
- *
*/
// TODO: move this class to GenerateMessageFile when DirectoryServer
// no longer needs to support dumpMessages()
-public class MessagePropertyKey
- implements Comparable<MessagePropertyKey> {
-
- private Category category;
-
- private Severity severity;
+public class MessagePropertyKey implements
+ Comparable<MessagePropertyKey>
+{
private String description;
private Integer ordinal;
+
+
/**
* Creates a message property key from a string value.
- * @param keyString from properties file
- * @param includesCategory when true expects ordinals to be encoded
- * in the keystring; when false the mandate is relaxed
- * @param includesSeverity when true expects ordinals to be encoded
- * in the keystring; when false the mandate is relaxed
- * @param includesOrdinal when true expects ordinals to be encoded
- * in the keystring; when false the mandate is relaxed
+ *
+ * @param keyString
+ * from properties file
+ * @param includesOrdinal
+ * when true expects ordinals to be encoded in the keystring;
+ * when false the mandate is relaxed
* @return MessagePropertyKey created from string
*/
- static public MessagePropertyKey parseString(
- String keyString,
- boolean includesCategory,
- boolean includesSeverity,
- boolean includesOrdinal) {
+ static public MessagePropertyKey parseString(String keyString,
+ boolean includesOrdinal)
+ {
- Category category = null;
- Severity severity = null;
String description;
Integer ordinal = null;
String k = keyString;
- for (Category c : EnumSet.allOf(Category.class)) {
- String cName = c.name();
- if (k.startsWith(cName)) {
- category = c;
- if ('_' != k.charAt(cName.length())) {
- throw new IllegalArgumentException(
- "Error processing " + keyString + ". Category must be " +
- "separated from the rest of the " +
- "key with an '_' character");
- }
- k = k.substring(cName.length() + 1);
- break;
- }
- }
- if (category == null && includesCategory) {
- throw new IllegalArgumentException("Category not included in key " +
- keyString);
- }
- for (Severity s : EnumSet.allOf(Severity.class)) {
- String sName = s.propertyKeyFormName();
- if (k.startsWith(sName)) {
- severity = s;
- if ('_' != k.charAt(sName.length())) {
- throw new IllegalArgumentException(
- "Error processing " + keyString + ". Severity must be " +
- "separated from the rest of the " +
- "key with an '_' character");
- }
- k = k.substring(sName.length() + 1);
- break;
- }
- }
- if (severity == null && includesSeverity) {
- throw new IllegalArgumentException("Severity not included in key " +
- keyString);
- }
-
- if (includesOrdinal) {
+ if (includesOrdinal)
+ {
int li = k.lastIndexOf("_");
- if (li != -1) {
+ if (li != -1)
+ {
description = k.substring(0, li).toUpperCase();
- } else {
- throw new IllegalArgumentException(
- "Incorrectly formatted key " + keyString);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Incorrectly formatted key "
+ + keyString);
}
- try {
+ try
+ {
String ordString = k.substring(li + 1);
ordinal = Integer.parseInt(ordString);
- } catch (Exception nfe) {
- throw new IllegalArgumentException("Error parsing ordinal for key " +
- keyString);
}
- } else {
+ catch (Exception nfe)
+ {
+ throw new IllegalArgumentException(
+ "Error parsing ordinal for key " + keyString);
+ }
+ }
+ else
+ {
description = k;
}
- return new MessagePropertyKey(category, severity, description, ordinal);
+ return new MessagePropertyKey(description, ordinal);
}
+
+
/**
* Creates a parameterized instance.
- * @param category of this key
- * @param severity of this key
- * @param description of this key
- * @param ordinal of this key
+ *
+ * @param description
+ * of this key
+ * @param ordinal
+ * of this key
*/
- public MessagePropertyKey(Category category, Severity severity,
- String description, Integer ordinal) {
- this.category = category;
- this.severity = severity;
+ public MessagePropertyKey(String description, Integer ordinal)
+ {
this.description = description;
this.ordinal = ordinal;
}
- /**
- * Gets the category of this key.
- * @return Category of this key
- */
- public Category getCategory() {
- return this.category;
- }
- /**
- * Gets the severity of this key.
- * @return Severity of this key
- */
- public Severity getSeverity() {
- return this.severity;
- }
/**
* Gets the description of this key.
+ *
* @return description of this key
*/
- public String getDescription() {
+ public String getDescription()
+ {
return this.description;
}
+
+
/**
* Gets the ordinal of this key.
+ *
* @return ordinal of this key
*/
- public Integer getOrdinal() {
+ public Integer getOrdinal()
+ {
return this.ordinal;
}
+
+
/**
- * Gets the name of the MessageDescriptor as it should appear
- * in the messages file.
+ * Gets the name of the MessageDescriptor as it should appear in the
+ * messages file.
+ *
* @return name of message descriptor
*/
- public String getMessageDescriptorName() {
- return new StringBuilder()
- .append(this.severity.messageDesciptorName())
- .append("_")
- .append(this.description).toString();
+ public String getMessageDescriptorName()
+ {
+ String name = this.description;
+
+ name = name.replaceFirst("^MILD_WARN", "WARN");
+ name = name.replaceFirst("^SEVERE_WARN", "WARN");
+ name = name.replaceFirst("^MILD_ERR", "ERR");
+ name = name.replaceFirst("^SEVERE_ERR", "ERR");
+ name = name.replaceFirst("^FATAL_ERR", "ERR");
+
+ return name;
}
+
+
/**
* {@inheritDoc}
*/
- public String toString() {
- return getPropertyKeyName(true, true, true);
+ public String toString()
+ {
+ return getPropertyKeyName(true);
}
+
+
/**
* Gets the name of the key as it would appear in a properties file.
- * @param includeCategory in the name
- * @param includeSeverity in the name
- * @param includeOrdinal in the name
+ *
+ * @param includeOrdinal
+ * in the name
* @return string representing the property key
*/
- public String getPropertyKeyName(boolean includeCategory,
- boolean includeSeverity,
- boolean includeOrdinal) {
+ public String getPropertyKeyName(boolean includeOrdinal)
+ {
StringBuilder sb = new StringBuilder();
- if (category != null && includeCategory) {
- sb.append(category.name());
- sb.append("_");
- }
- if (severity != null && includeSeverity) {
- sb.append(severity.propertyKeyFormName());
- sb.append("_");
- }
sb.append(description);
- if (ordinal != null && includeOrdinal) {
+ if (ordinal != null && includeOrdinal)
+ {
sb.append("_");
sb.append(ordinal);
}
return sb.toString();
}
+
+
/**
* {@inheritDoc}
*/
- public int compareTo(MessagePropertyKey k) {
- if (ordinal == k.ordinal) {
+ public int compareTo(MessagePropertyKey k)
+ {
+ if (ordinal == k.ordinal)
+ {
return description.compareTo(k.description);
- } else {
+ }
+ else
+ {
return ordinal.compareTo(k.ordinal);
}
}
diff --git a/sdk/build-tools/org/opends/build/tools/Utilities.java b/sdk/build-tools/org/opends/build/tools/Utilities.java
index 2ad4f22..30f5a6a 100644
--- a/sdk/build-tools/org/opends/build/tools/Utilities.java
+++ b/sdk/build-tools/org/opends/build/tools/Utilities.java
@@ -25,35 +25,44 @@
* Copyright 2008 Sun Microsystems, Inc.
*/
package org.opends.build.tools;
-import org.opends.messages.Message;
+
+
import java.util.StringTokenizer;
+
+
/**
*/
-public class Utilities {
+public class Utilities
+{
/**
* The end-of-line character for this platform.
*/
public static final String EOL = System.getProperty("line.separator");
+
+
/**
- * Inserts line breaks into the provided buffer to wrap text at no more than
- * the specified column width. Wrapping will only be done at space boundaries
- * and if there are no spaces within the specified width, then wrapping will
- * be performed at the first space after the specified column.
- *
- * @param text The text to be wrapped.
- * @param width The maximum number of characters to allow on a line if there
- * is a suitable breaking point.
- *
- * @return The wrapped text.
+ * Inserts line breaks into the provided buffer to wrap text at no
+ * more than the specified column width. Wrapping will only be done at
+ * space boundaries and if there are no spaces within the specified
+ * width, then wrapping will be performed at the first space after the
+ * specified column.
+ *
+ * @param text
+ * The text to be wrapped.
+ * @param width
+ * The maximum number of characters to allow on a line if
+ * there is a suitable breaking point.
+ * @return The wrapped text.
*/
public static String wrapText(String text, int width)
{
- StringBuilder buffer = new StringBuilder();
- StringTokenizer lineTokenizer = new StringTokenizer(text, "\r\n", true);
+ StringBuilder buffer = new StringBuilder();
+ StringTokenizer lineTokenizer = new StringTokenizer(text, "\r\n",
+ true);
while (lineTokenizer.hasMoreTokens())
{
String line = lineTokenizer.nextToken();
@@ -69,17 +78,20 @@
}
else
{
- // The line doesn't fit in the specified width, so it needs to be
- // wrapped. Do so at space boundaries.
- StringBuilder lineBuffer = new StringBuilder();
- StringBuilder delimBuffer = new StringBuilder();
- StringTokenizer wordTokenizer = new StringTokenizer(line, " ", true);
+ // The line doesn't fit in the specified width, so it needs to
+ // be
+ // wrapped. Do so at space boundaries.
+ StringBuilder lineBuffer = new StringBuilder();
+ StringBuilder delimBuffer = new StringBuilder();
+ StringTokenizer wordTokenizer = new StringTokenizer(line, " ",
+ true);
while (wordTokenizer.hasMoreTokens())
{
String word = wordTokenizer.nextToken();
if (word.equals(" "))
{
- // It's a space, so add it to the delim buffer only if the line
+ // It's a space, so add it to the delim buffer only if the
+ // line
// buffer is not empty.
if (lineBuffer.length() > 0)
{
@@ -88,7 +100,8 @@
}
else if (word.length() > width)
{
- // This is a long word that can't be wrapped, so we'll just have to
+ // This is a long word that can't be wrapped, so we'll just
+ // have to
// make do.
if (lineBuffer.length() > 0)
{
@@ -100,7 +113,8 @@
if (wordTokenizer.hasMoreTokens())
{
- // The next token must be a space, so remove it. If there are
+ // The next token must be a space, so remove it. If there
+ // are
// still more tokens after that, then append an EOL.
wordTokenizer.nextToken();
if (wordTokenizer.hasMoreTokens())
@@ -116,9 +130,10 @@
}
else
{
- // It's not a space, so see if we can fit it on the curent line.
- int newLineLength = lineBuffer.length() + delimBuffer.length() +
- word.length();
+ // It's not a space, so see if we can fit it on the curent
+ // line.
+ int newLineLength = lineBuffer.length()
+ + delimBuffer.length() + word.length();
if (newLineLength < width)
{
// It does fit on the line, so add it.
@@ -131,7 +146,8 @@
}
else
{
- // It doesn't fit on the line, so end the current line and start
+ // It doesn't fit on the line, so end the current line and
+ // start
// a new one.
buffer.append(lineBuffer);
buffer.append(EOL);
@@ -147,7 +163,8 @@
}
}
- // If there's anything left in the line buffer, then add it to the
+ // If there's anything left in the line buffer, then add it to
+ // the
// final buffer.
buffer.append(lineBuffer);
}
diff --git a/sdk/build.bat b/sdk/build.bat
new file mode 100755
index 0000000..19320be
--- /dev/null
+++ b/sdk/build.bat
@@ -0,0 +1,47 @@
+@echo off
+
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2008 Sun Microsystems, Inc.
+
+setlocal
+
+set DIR_HOME=%~dP0
+
+if "%JAVA_HOME%" == "" goto noJavaHome
+goto runAnt
+
+:noJavaHome
+echo Error: JAVA_HOME environment variable is not set.
+echo Please set it to a valid Java 5 installation.
+goto end
+
+
+:runAnt
+
+"%DIR_HOME%\ext\ant\bin\ant" %*
+
+
+:end
+
diff --git a/sdk/build.properties b/sdk/build.properties
new file mode 100755
index 0000000..15ff27d
--- /dev/null
+++ b/sdk/build.properties
@@ -0,0 +1,4 @@
+pkg.toolkit.dir=
+
+
+
diff --git a/sdk/build.sh b/sdk/build.sh
new file mode 100755
index 0000000..f971db3
--- /dev/null
+++ b/sdk/build.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2008 Sun Microsystems, Inc.
+
+
+# Change to the location of this build script.
+cd `dirname $0`
+
+
+# See if JAVA_HOME is set. If not, then see if there is a java executable in
+# the path and try to figure it out.
+if test -z "${JAVA_HOME}"
+then
+ JAVA_HOME=`java -cp resource FindJavaHome`
+ if test -z "${JAVA_HOME}"
+ then
+ echo "Please set JAVA_HOME to the root of a Java 5.0 installation."
+ exit 1
+ else
+ export JAVA_HOME
+ fi
+fi
+
+
+ANT_HOME=`pwd`/ext/ant
+export ANT_HOME
+# Execute the ant script and pass it any additional command-line arguments.
+ext/ant/bin/ant --noconfig ${*}
+
diff --git a/sdk/build.xml b/sdk/build.xml
new file mode 100755
index 0000000..8d25929
--- /dev/null
+++ b/sdk/build.xml
@@ -0,0 +1,1206 @@
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License"). You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ ! Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !
+ ! Copyright 2009 Sun Microsystems, Inc.
+ ! -->
+
+<project name="OpenDS LDAP SDK" basedir="." default="package">
+ <description>
+ This is the build script for the OpenDS LDAP SDK. See the BUILDING
+ file in this directory for build instructions.
+ </description>
+
+ <!-- Build JVM properties -->
+ <property name="MEM" value="512M" />
+
+ <!-- General server-wide properties -->
+ <property name="src.dir" location="src" />
+ <property name="srcgen.dir" location="src-generated" />
+ <property name="build.dir" location="build" />
+ <property name="classes.dir" location="${build.dir}/classes" />
+ <property name="build.lib.dir" location="${build.dir}/lib" />
+ <property name="lib.dir" location="lib" />
+ <property name="ext.dir" location="ext" />
+ <property name="package.dir" location="${build.dir}/package" />
+ <property name="javadoc.dir" location="${build.dir}/javadoc" />
+ <property name="wiki.home" value="https://www.opends.org/wiki" />
+ <property name="resource.dir" location="resource" />
+ <property name="scripts.dir" location="${resource.dir}/bin" />
+ <property name="build.debuglevel" value="lines,vars,source" />
+
+ <!-- Properties for build tools -->
+ <property name="buildtools.src.dir" location="build-tools" />
+ <property name="buildtools.classes.dir"
+ location="${build.dir}/build-tools/classes" />
+
+ <!-- Properties for use in unit testing. -->
+ <property name="unittest.testng.dir" location="tests/unit-tests-testng" />
+ <property name="unittest.testng.src.dir"
+ location="${unittest.testng.dir}/src/sdk" />
+ <property name="unittest.classes.dir"
+ location="${build.dir}/unit-tests/classes" />
+ <property name="unittest.report.dir"
+ location="${build.dir}/unit-tests/report" />
+ <property name="unittest.resource.dir"
+ location="${build.dir}/unit-tests/resource" />
+
+ <!-- Properties for coverage diff reports -->
+ <property name="cvgdiff.dir" location="build/diff" />
+ <property name="cvgdiff.report.dir" location="${cvgdiff.dir}/report" />
+
+ <!-- Properties for code coverage testing. -->
+ <property name="coverage.dir" location="build/coverage" />
+ <property name="coverage.report.dir"
+ location="${coverage.dir}/reports/unit" />
+ <property name="coverage.instr.dir"
+ location="${coverage.dir}/instrumentedcode" />
+ <property name="coverage.data.dir"
+ location="${coverage.dir}/gathereddata" />
+
+ <!-- Properties for the EMMA code coverage tool. -->
+ <property name="emma.dir" location="${ext.dir}/emma/lib" />
+
+ <!-- Properties for the TestNG unit testing tool. -->
+ <property name="testng.dir" location="${ext.dir}/testng" />
+ <property name="testng.lib.dir" location="${testng.dir}/lib" />
+
+ <!-- Properties for the ANT build tool. -->
+ <property name="ant.dir" location="${ext.dir}/ant" />
+ <property name="ant.lib.dir" location="${ant.dir}/lib" />
+
+ <!-- Properties for the checkstyle tool. -->
+ <property name="checkstyle.dir" location="${ext.dir}/checkstyle" />
+ <property name="checkstyle.cache.dir" location=".checkstyle-cache" />
+
+ <!-- Properties for the SVNKit tool. -->
+ <property name="svnkit.dir" location="${ext.dir}/svnkit" />
+
+ <!-- Properties for OpenDS LDAP SDK version information. -->
+ <property name="dynconstants.file"
+ location="${srcgen.dir}/com/sun/opends/sdk/util/DynamicConstants.java" />
+ <property name="dynconstants.stubfile"
+ location="${resource.dir}/DynamicConstants.java.stubs" />
+ <property file="PRODUCT" />
+
+ <!-- The build target that should be used before committing code. -->
+ <target name="precommit"
+ depends="checkstyle,clean,checkprecommit,testwithcoverage"
+ description="Perform all processing needed before committing code.">
+ </target>
+
+ <!-- The build target that should be used to build everything. -->
+ <target name="all"
+ depends="checkstyle,clean,checkprecommit,srczip,javadoc,testallwithcoverage"
+ description="Build using all defined targets.">
+ </target>
+
+ <!-- Package the OpenDS LDAP SDK for distribution. -->
+ <target name="package"
+ depends="prepackage"
+ description="Package the OpenDS LDAP SDK for distribution.">
+ <zip destfile="${package.dir}/${SHORT_NAME}-${VERSION_NUMBER_STRING}.zip">
+ <zipfileset dir="${package.dir}"
+ includes="${SHORT_NAME}-${VERSION_NUMBER_STRING}"
+ filemode="644"
+ dirmode="700" />
+ <zipfileset dir="${package.dir}"
+ includes="${SHORT_NAME}-${VERSION_NUMBER_STRING}/**/*"
+ excludes="${SHORT_NAME}-${VERSION_NUMBER_STRING}/bin/*,${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_client-script.sh,${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_script-util.sh,${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_server-script.sh,${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_mixed-script.sh,${SHORT_NAME}-${VERSION_NUMBER_STRING}/setup,${SHORT_NAME}-${VERSION_NUMBER_STRING}/uninstall,${SHORT_NAME}-${VERSION_NUMBER_STRING}/upgrade,${SHORT_NAME}-${VERSION_NUMBER_STRING}/QuickSetup.app/Contents/MacOS/JavaApplicationStub,${SHORT_NAME}-${VERSION_NUMBER_STRING}/Uninstall.app/Contents/MacOS/JavaApplicationStub,${SHORT_NAME}-${VERSION_NUMBER_STRING}/bin/ControlPanel.app/Contents/MacOS/JavaApplicationStub"
+ filemode="644"
+ dirmode="755" />
+ <zipfileset dir="${package.dir}"
+ includes="${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_client-script.sh,${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_script-util.sh,${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_server-script.sh,${SHORT_NAME}-${VERSION_NUMBER_STRING}/lib/_mixed-script.sh"
+ filemode="755"
+ dirmode="755" />
+ <zipfileset dir="${package.dir}"
+ includes="${SHORT_NAME}-${VERSION_NUMBER_STRING}/bin/*"
+ excludes="${SHORT_NAME}-${VERSION_NUMBER_STRING}/bin/README_WINDOWS.txt"
+ filemode="755"
+ dirmode="755" />
+ <zipfileset dir="${package.dir}"
+ includes="${SHORT_NAME}-${VERSION_NUMBER_STRING}/bin/README_WINDOWS.txt"
+ filemode="644"
+ dirmode="755" />
+ <zipfileset dir="${package.dir}"
+ includes="${SHORT_NAME}-${VERSION_NUMBER_STRING}/setup,${SHORT_NAME}-${VERSION_NUMBER_STRING}/uninstall,${SHORT_NAME}-${VERSION_NUMBER_STRING}/upgrade,${SHORT_NAME}-${VERSION_NUMBER_STRING}/QuickSetup.app/Contents/MacOS/JavaApplicationStub,${SHORT_NAME}-${VERSION_NUMBER_STRING}/Uninstall.app/Contents/MacOS/JavaApplicationStub,${SHORT_NAME}-${VERSION_NUMBER_STRING}/bin/ControlPanel.app/Contents/MacOS/JavaApplicationStub"
+ filemode="755"
+ dirmode="755" />
+ </zip>
+ <property name="package.built" value="true" />
+
+ <!-- print a time stamp in Unix 'date' format -->
+ <tstamp>
+ <format property="package.built.ts"
+ pattern="EEE MMM dd HH:mm:ss zzz yyyy" />
+ </tstamp>
+ <echo message="Package Built: ${package.built.ts}" />
+ </target>
+
+
+ <!-- Generate Java message objects from properties. -->
+ <target name="generatemessages" depends="buildtools">
+ <typedef name="genmsg"
+ classname="org.opends.build.tools.GenerateMessageFile">
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </typedef>
+ <genmsg sourceProps="${src.dir}/com/sun/opends/sdk/util/messages.properties"
+ destJava="${srcgen.dir}/com/sun/opends/sdk/util/Messages.java">
+ </genmsg>
+ </target>
+
+ <!-- Remove all dynamically-generated build files. -->
+ <target name="clean"
+ description="Clean up any files generated during the build process">
+ <delete dir="${build.dir}" />
+ <delete includeemptydirs="true">
+ <fileset dir="${srcgen.dir}" includes="**/*" />
+ </delete>
+ </target>
+
+ <!-- Set the property valid.java.version if the java version is valid. -->
+ <target name="validjavaversion" depends="buildtools">
+ <property name="min.java.version" value="1.5.0_08" />
+ <typedef name="validjavaversion"
+ classname="org.opends.build.tools.ValidJavaVersion">
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </typedef>
+ <condition property="valid.java.version">
+ <validjavaversion minVersion="${min.java.version}" />
+ </condition>
+ </target>
+
+ <!-- Warn if the build java version is too old. -->
+ <target name="checkjavaversion"
+ depends="validjavaversion"
+ unless="valid.java.version">
+ <echo level="warning"
+ message="WARNING: Java version ${java.version} is too old." />
+ <echo level="warning"
+ message="Java version ${min.java.version} or later is required to build ${SHORT_NAME}." />
+ </target>
+
+ <!-- Perform common initialization common to several targets. -->
+ <target name="init">
+ <path id="run.classpath">
+ <pathelement location="${classes.dir}" />
+ </path>
+ <tstamp>
+ <format property="timestamp"
+ pattern="yyyyMMddHHmmss'Z'"
+ timezone="UTC" />
+ </tstamp>
+ <condition property="DEBUG_BUILD" value="false">
+ <not>
+ <isset property="DEBUG_BUILD" />
+ </not>
+ </condition>
+ <!--
+ ! For some reason, some Apple VMs put quotes around the value of the
+ ! java.vm.vendor property, which wreaks havoc with DynamicConstants. This
+ ! pair of conditions attempts to work around that by detecting the quote
+ ! and surrounding the value with backslashes.
+ ! -->
+ <condition property="JVM_VENDOR" value="Apple Computer">
+ <contains string="${java.vm.vendor}"
+ substring="Apple Computer"
+ casesensitive="false" />
+ </condition>
+ <condition property="JVM_VENDOR" value="${java.vm.vendor}">
+ <not>
+ <isset property="JVM_VENDOR" />
+ </not>
+ </condition>
+ </target>
+
+ <!-- Build the DynamicConstants.java file and any of its dependencies. -->
+ <target name="dynamicconstants" depends="init,buildtools">
+ <!-- Get the revision number of the current Subversion workspace -->
+ <taskdef name="getsvnrevision"
+ classname="org.opends.build.tools.GetSubversionRevision">
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${svnkit.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+
+ <getsvnrevision property="REVISION_NUMBER" />
+
+ <!-- Get the url repo of the current Subversion workspace -->
+ <taskdef name="getsvnurlrepo"
+ classname="org.opends.build.tools.GetSubversionUrlRepo">
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${svnkit.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+
+ <getsvnurlrepo property="URL_REPOSITORY" />
+
+ <!-- Construct the version number string -->
+ <taskdef name="getversionnumber"
+ classname="org.opends.build.tools.CreateVersionString">
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+
+ <getversionnumber property="VERSION_NUMBER_STRING" />
+
+
+ <!--
+ ! Generate the DynamicConstants.java file.
+ !
+ ! Warning: the .stubs file references the following properties
+ ! PRODUCT_NAME, SHORT_NAME, MAJOR_VERSION, MINOR_VERSION, POINT_VERSION,
+ ! VERSION_QUALIFIER, FIX_IDS, timestamp, user.name, java.version,
+ ! java.vendor, java.vm.version, JVM_VENDOR, DEBUG_BUILD,
+ ! REVISION_NUMBER, URL_REPOSITORY, VERSION_NUMBER_STRING
+ !
+ ! If you change the name of any of those properties in this build.xml
+ ! you'll need to reflect the same change in the .stubs file
+ ! -->
+ <condition property="BUILD_NUMBER" value="-1">
+ <not>
+ <isset property="BUILD_NUMBER" />
+ </not>
+ </condition>
+
+ <copy file="${dynconstants.stubfile}"
+ tofile="${dynconstants.file}"
+ overwrite="true">
+ <filterchain>
+ <expandproperties />
+ </filterchain>
+ </copy>
+ </target>
+
+ <!-- Check modified files to see if any svn:eol-style or copyright updates
+ are needed. -->
+ <target name="checkprecommit" depends="buildtools">
+ <taskdef name="checkprecommit"
+ classname="org.opends.build.tools.CheckPrecommit">
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${svnkit.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+ <checkprecommit />
+ </target>
+
+ <!-- Ensure that the source code meets basic style requirements. -->
+ <target name="checkstyle">
+ <mkdir dir="${checkstyle.cache.dir}" />
+
+ <taskdef resource="checkstyletask.properties"
+ classpath="${checkstyle.dir}/checkstyle-all-4.1.jar" />
+
+ <checkstyle config="${checkstyle.dir}/opends-checkstyle.xml"
+ failOnViolation="true">
+ <fileset dir="${src.dir}">
+ <include name="**/*.java" />
+ </fileset>
+ <formatter type="plain" />
+ </checkstyle>
+
+ <checkstyle config="${checkstyle.dir}/opends-doctarget-checkstyle.xml"
+ failOnViolation="true">
+ <fileset dir="${src.dir}/org" includes="**/*.java" />
+ <formatter type="plain" />
+ </checkstyle>
+
+ <checkstyle config="${checkstyle.dir}/opends-unittest-checkstyle.xml"
+ failOnViolation="true">
+ <fileset dir="${unittest.testng.src.dir}" includes="**/*.java" />
+ <formatter type="plain" />
+ </checkstyle>
+ </target>
+
+ <!-- Compile the OpenDS LDAP SDK source files. -->
+ <target name="compile"
+ depends="init,checkjavaversion,dynamicconstants,generatemessages"
+ description="Compile the OpenDS LDAP SDK source files.">
+ <mkdir dir="${classes.dir}" />
+ <mkdir dir="${build.lib.dir}" />
+
+ <javac srcdir="${src.dir}:${srcgen.dir}"
+ destdir="${classes.dir}"
+ debug="on"
+ debuglevel="${build.debuglevel}"
+ source="1.5"
+ target="1.5"
+ deprecation="true"
+ fork="true"
+ memoryInitialSize="${MEM}"
+ memoryMaximumSize="${MEM}">
+ <compilerarg value="-Xlint:all" />
+
+ <classpath>
+ <fileset dir="${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="build-tools.jar" />
+ </fileset>
+ <fileset dir="${build.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </javac>
+
+ <copy todir="${classes.dir}">
+ <fileset dir="${src.dir}" includes="**/*.properties" />
+ <fileset dir="${srcgen.dir}" includes="**/*.properties" />
+ </copy>
+ </target>
+
+ <!-- Populate the OpenDS LDAP SDK package, but don't zip it up. -->
+ <target name="prepackage" depends="clean,compile">
+ <property name="pdir"
+ location="${package.dir}/${SHORT_NAME}-${VERSION_NUMBER_STRING}" />
+
+ <mkdir dir="${pdir}" />
+ <mkdir dir="${pdir}/bat" />
+ <mkdir dir="${pdir}/bin" />
+ <mkdir dir="${pdir}/legal-notices" />
+ <mkdir dir="${pdir}/lib" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}.jar"
+ basedir="${classes.dir}"
+ excludes="**/*_fr.properties,**/*_ja.properties,**/*_de.properties,**/*_es.properties,**/*_zh_TW.properties,**/*_zh_CN.properties,**/*_ko.properties"
+ compress="true"
+ index="true" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}_fr.jar"
+ basedir="${classes.dir}"
+ includes="**/*_fr.properties"
+ compress="true"
+ index="true" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}_ja.jar"
+ basedir="${classes.dir}"
+ includes="**/*_ja.properties"
+ compress="true"
+ index="true" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}_de.jar"
+ basedir="${classes.dir}"
+ includes="**/*_de.properties"
+ compress="true"
+ index="true" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}_es.jar"
+ basedir="${classes.dir}"
+ includes="**/*_es.properties"
+ compress="true"
+ index="true" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}_ko.jar"
+ basedir="${classes.dir}"
+ includes="**/*_ko.properties"
+ compress="true"
+ index="true" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}_zh_CN.jar"
+ basedir="${classes.dir}"
+ includes="**/*_zh_CN.properties"
+ compress="true"
+ index="true" />
+
+ <jar jarfile="${pdir}/lib/${SHORT_NAME}_zh_TW.jar"
+ basedir="${classes.dir}"
+ includes="**/*_zh_TW.properties"
+ compress="true"
+ index="true" />
+
+ <copy todir="${pdir}/lib">
+ <fileset file="${lib.dir}/*.jar" />
+ </copy>
+
+ <copy todir="${pdir}/lib">
+ <fileset file="${lib.dir}/*.exe" />
+ </copy>
+
+ <fixcrlf srcDir="${scripts.dir}"
+ destDir="${pdir}/bin"
+ excludes="*.bat,_client-script.sh,_script-util.sh"
+ eol="lf" />
+ <fixcrlf srcDir="${scripts.dir}"
+ destDir="${pdir}/lib"
+ includes="_client-script.sh,_script-util.sh"
+ eol="lf" />
+ <fixcrlf srcDir="${scripts.dir}"
+ destDir="${pdir}/bat"
+ excludes="_client-script.bat,_script-util.bat,setcp.bat"
+ includes="*.bat"
+ eol="crlf" />
+ <fixcrlf srcDir="${scripts.dir}"
+ destDir="${pdir}/lib"
+ includes="_client-script.bat,_script-util.bat,setcp.bat"
+ eol="crlf" />
+
+ <copy todir="${pdir}/legal-notices">
+ <fileset dir="${resource.dir}/legal-notices" />
+ </copy>
+
+ <copy todir="${pdir}">
+ <fileset file="${resource.dir}/opends_logo.png" />
+ </copy>
+
+ <chmod perm="755">
+ <fileset dir="${pdir}/bin">
+ </fileset>
+ </chmod>
+ <chmod file="${pdir}/lib/_client-script.sh" perm="755" />
+ <chmod file="${pdir}/lib/_script-util.sh" perm="755" />
+ </target>
+
+ <!-- Generate JavaDoc documentation from the source files -->
+ <target name="javadoc" description="Generate JavaDoc documentation.">
+ <mkdir dir="${javadoc.dir}" />
+
+ <javadoc destdir="${javadoc.dir}"
+ source="1.5"
+ additionalparam="-quiet"
+ linksource="yes"
+ windowtitle="${PRODUCT_NAME} API Documentation"
+ maxmemory="${MEM}">
+ <classpath>
+ <fileset dir="${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+
+ <dirset dir="${classes.dir}" />
+ </classpath>
+
+ <packageset dir="${src.dir}" />
+ </javadoc>
+ </target>
+
+ <!-- Internal target to prepare to generate a code coverage report. -->
+ <target name="coverage">
+ <property name="coverage.enabled" value="true" />
+
+ <mkdir dir="${coverage.dir}" />
+ <mkdir dir="${coverage.data.dir}" />
+ <mkdir dir="${coverage.instr.dir}" />
+ <mkdir dir="${coverage.report.dir}" />
+
+ <path id="run.classpath">
+ <pathelement location="${classes.dir}" />
+ </path>
+ </target>
+
+ <!-- Prepare to execute the OpenDS LDAP SDK TestNG unit tests. -->
+ <target name="test.OpenDS.package.required" depends="dynamicconstants">
+ <condition property="test.OpenDS.package.required">
+ <available file="${package.dir}/${SHORT_NAME}-${VERSION_NUMBER_STRING}.zip" />
+ </condition>
+ </target>
+
+ <target name="testinit-package"
+ depends="test.OpenDS.package.required"
+ unless="test.OpenDS.package.required">
+ <echo message="Performing full rebuild (no OpenDS zip package found)" />
+ <antcall target="package" />
+ </target>
+
+ <target name="testinit-recompile"
+ depends="test.OpenDS.package.required"
+ if="test.OpenDS.package.required">
+ <echo message="Performing partial rebuild (OpenDS zip package found)" />
+ <mkdir dir="${classes.dir}" />
+
+ <javac srcdir="${src.dir}:${srcgen.dir}"
+ destdir="${classes.dir}"
+ debug="on"
+ debuglevel="${build.debuglevel}"
+ source="1.5"
+ target="1.5"
+ deprecation="true"
+ fork="true"
+ memoryInitialSize="${MEM}"
+ memoryMaximumSize="${MEM}">
+ <compilerarg value="-Xlint:all" />
+
+ <classpath>
+ <fileset dir="${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="build-tools.jar" />
+ </fileset>
+ <fileset dir="${build.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </javac>
+
+ <copy todir="${classes.dir}">
+ <fileset dir="${src.dir}" includes="**/*.properties" />
+ <fileset dir="${srcgen.dir}" includes="**/*.properties" />
+ </copy>
+ </target>
+
+ <target name="testinit" depends="testinit-package,testinit-recompile">
+ <!-- If we are to perform coverage tests, then set that up. -->
+ <path id="emma.lib">
+ <pathelement location="${emma.dir}/emma.jar" />
+ <pathelement location="${emma.dir}/emma_ant.jar" />
+ </path>
+
+ <taskdef resource="emma_ant.properties" classpathref="emma.lib" />
+
+ <emma enabled="${coverage.enabled}">
+ <instr instrpathref="run.classpath"
+ destdir="${coverage.instr.dir}"
+ metadatafile="${coverage.data.dir}/metadata.emma"
+ merge="true" />
+ </emma>
+
+ <!-- Compile the test cases -->
+ <mkdir dir="${unittest.classes.dir}" />
+ <javac srcdir="${unittest.testng.src.dir}"
+ destdir="${unittest.classes.dir}"
+ debug="on"
+ debuglevel="${build.debuglevel}"
+ source="1.5"
+ target="1.5"
+ deprecation="true"
+ fork="true"
+ memoryInitialSize="${MEM}"
+ memoryMaximumSize="${MEM}">
+ <compilerarg value="-Xlint:all" />
+
+ <classpath>
+ <fileset dir="${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ <fileset dir="${testng.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ <path refid="run.classpath" />
+ </classpath>
+ </javac>
+
+ <copy todir="${unittest.classes.dir}">
+ <fileset dir="${unittest.testng.src.dir}"
+ includes="**/*.properties" />
+ </copy>
+
+ <!-- Prep the TestNG XML file -->
+
+ <condition property="test.groups" value="exclude=slow">
+ <not>
+ <or>
+ <isset property="test.groups" />
+ <isset property="test.packages" />
+ <isset property="test.classes" />
+ <isset property="test.methods" />
+ </or>
+ </not>
+ </condition>
+
+ <!-- do not run tests dependent upon creation of the .zip file -->
+ <condition property="test.packages"
+ value="org.opends.sdk.*,com.sun.opends.sdk.*">
+ <and>
+ <not>
+ <or>
+ <isset property="test.packages" />
+ <isset property="test.classes" />
+ <isset property="test.methods" />
+ </or>
+ </not>
+ <not>
+ <equals arg1="${package.built}" arg2="true" />
+ </not>
+ </and>
+ </condition>
+
+ <!-- run tests dependent upon creation of the .zip file -->
+ <condition property="test.packages"
+ value="org.opends.sdk.*,com.sun.opends.sdk.*">
+ <and>
+ <not>
+ <or>
+ <isset property="test.packages" />
+ <isset property="test.classes" />
+ <isset property="test.methods" />
+ </or>
+ </not>
+ <equals arg1="${package.built}" arg2="true" />
+ </and>
+ </condition>
+
+
+ <condition property="test.classes" value="">
+ <not>
+ <or>
+ <isset property="test.classes" />
+ <isset property="test.methods" />
+ </or>
+ </not>
+ </condition>
+
+ <condition property="test.methods" value="">
+ <not>
+ <or>
+ <isset property="test.methods" />
+ </or>
+ </not>
+ </condition>
+
+ <mkdir dir="${unittest.resource.dir}" />
+ <typedef name="preptestng"
+ classname="org.opends.build.tools.PrepTestNG"
+ classpath="${build.dir}/build-tools/build-tools.jar" />
+
+
+ <preptestng file="${testng.dir}/testng.xml"
+ tofile="${unittest.resource.dir}/testng.xml"
+ grouplist="${test.groups}"
+ packagelist="${test.packages}"
+ classList="${test.classes}"
+ methodList="${test.methods}" />
+
+ <antcall target="testinit.checkFailedTestsOnly" />
+ </target>
+
+
+
+ <!-- If we were asked to run only the tests that failed,
+ then we overwrite the testng.xml that we just generated
+ with testng-failed.xml, which TestNG generated. -->
+ <target name="testinit.checkFailedTestsOnly" if="test.failures">
+ <!-- Ensure that some of the tests failed last time. -->
+ <available property="testng-failed.xml.exists"
+ file="${unittest.report.dir}/testng-failed.xml" />
+ <fail message="No unit tests failed in the previous run."
+ unless="testng-failed.xml.exists" />
+
+ <!-- We replace the 'Failed suite [OpenDS]' with 'OpenDS' so we
+ don't end up with 'Failed suite [Failed suite [OpenDS]]]' etc. -->
+ <replace file="${unittest.report.dir}/testng-failed.xml"
+ token="Failed suite [OpenDS]"
+ value="OpenDS" />
+ <replace file="${unittest.report.dir}/testng-failed.xml"
+ token="default(failed)"
+ value="default" />
+
+ <copy file="${unittest.report.dir}/testng-failed.xml"
+ tofile="${unittest.resource.dir}/testng.xml"
+ overwrite="true" />
+
+ <echo message="Will run the failed unit tests only" />
+ </target>
+
+ <!-- Generate coverage diff report -->
+ <target name="coveragediff">
+ <condition property="test.diff.srcpath" value="">
+ <not>
+ <isset property="test.diff.srcpath" />
+ </not>
+ </condition>
+
+ <condition property="test.diff.enabled" value="true">
+ <not>
+ <isset property="test.diff.disable" />
+ </not>
+ </condition>
+
+ <condition property="test.diff.verbose" value="false">
+ <not>
+ <isset property="test.diff.verbose" />
+ </not>
+ </condition>
+
+ <condition property="test.diff.enabled" value="false">
+ <isset property="test.diff.disable" />
+ </condition>
+
+ <!-- The SVN revision to perform the diff against when calculating
+ the coverage diff. It can be a revision number, a timestamp,
+ or a revision keyword (BASE, COMMITTED, and PREV make the
+ most sense). The primary use case for this setting is to do
+ a coverage diff against the previous revision when there are
+ no changes in the working copy. It defaults to BASE. -->
+ <condition property="test.diff.from.revision" value="BASE">
+ <not>
+ <isset property="test.diff.from.revision" />
+ </not>
+ </condition>
+
+ <mkdir dir="${cvgdiff.report.dir}" />
+ <taskdef name="coveragediff"
+ classname="org.opends.build.tools.CoverageDiff">
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${emma.dir}">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${svnkit.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+
+ <coveragediff emmadatapath="${coverage.data.dir}"
+ outputpath="${cvgdiff.report.dir}"
+ diffpath="${test.diff.srcpath}"
+ enabled="${test.diff.enabled}"
+ verbose="${test.diff.verbose}"
+ fromrevision="${test.diff.from.revision}" />
+
+ </target>
+
+
+
+ <!-- Execute the OpenDS LDAP SDK TestNG unit tests in text mode. -->
+ <target name="enableTestNGAssertions">
+ <property name="TESTASSERT" value="true" />
+ </target>
+
+ <!-- Execute all of the OpenDS LDAP SDK TestNG unit tests in text mode. -->
+ <target name="testall"
+ depends="enableTestNGAssertions,prepdefaultalltest,testinit,runtests"
+ description="Run all of the TestNG tests (including 'slow' ones) with assertions enabled. See 'testwithcoverage' for properties you can set.">
+ </target>
+
+ <!-- Execute the OpenDS LDAP SDK TestNG unit tests in text mode. -->
+ <target name="test"
+ depends="testinit,runtests"
+ description="Execute the OpenDS LDAP SDK TestNG unit tests in text mode. Set '-Dorg.opends.test.suppressOutput=false' to see the output from the unit tests. Set '-Dtest.failures=true' to run only the tests that failed previously.">
+ </target>
+
+ <!-- Execute the OpenDS LDAP SDK TestNG unit tests in text mode with a coverage report. -->
+ <target name="testwithcoverage"
+ depends="coverage,test,coveragediff"
+ description="Execute the OpenDS LDAP SDK TestNG unit tests in text mode with a coverage report. Use -Dtest.packages, -Dtest.classes, or -Dtest.methods to control which unit tests are run. Use -Dtest.diff.srcpath to control which src files show up in the coverage diff. See the 'test' package for other properties you can set.">
+ </target>
+
+ <!-- Execute the OpenDS LDAP SDK TestNG unit tests in text mode with a coverage report and slow tests. -->
+ <target name="testallwithcoverage"
+ depends="coverage,testall,coveragediff"
+ description="The same as 'testwithcoverage' except 'testall' is run instead of 'test'.">
+ </target>
+
+ <target name="testhelp" unless="disable.test.help">
+ <echo message="About to run the unit tests. Ant options to control the tests:" />
+ <echo message="" />
+ <echo message=" -Dorg.opends.test.suppressOutput=false" />
+ <echo message=" writes the unit test output to the screen" />
+ <echo message="" />
+ <echo message=" -Dtest.progress="default,memory"" />
+ <echo message=" Unless explicity disabled using -Dtest.progress=none, the" />
+ <echo message=" tests provide continuous progress of the tests that are being" />
+ <echo message=" run. The specific options to set for this property are" />
+ <echo message="" />
+ <echo message=" none: no progress output" />
+ <echo message=" all: enables all progress (slows tests)" />
+ <echo message=" default: same as "time,count,restarts"" />
+ <echo message=" time: timing information for the tests" />
+ <echo message=" count: # of run test classes, methods, and invocations" />
+ <echo message=" memory: running total of memory usage (slows tests)" />
+ <echo message=" threadcount: running total of active threads" />
+ <echo message=" threadchange: +/- changes for active threads between tests" />
+ <echo message=" restarts: running total of in-core server restarts" />
+ <echo message="" />
+ <echo message=" To specifying multiple values, nseparate them with ',' and" />
+ <echo message=" quote the entire value. For instance, when you want the default" />
+ <echo message=" output plus more, do -Dtest.progress="default,memory"." />
+ <echo message="" />
+ <echo message=" Enabling memory progress slows down the tests significantly." />
+ <echo message=" Include the otherwise undocumented property "gcs" to see how" />
+ <echo message=" much time each progress line spends doing garbage collections" />
+ <echo message=" to get an accurate measure of memory usage." />
+ <echo message="" />
+ <echo message=" A new line of progress is written when TestNG completes running tests" />
+ <echo message=" for a class. This progress is reported immediately before TestNG" />
+ <echo message=" starts to run the first test of the next class. All @BeforeClass" />
+ <echo message=" and @BeforeMethod methods will have been invoked for the next" />
+ <echo message=" class as well as the @DataProvider (if any) for the first test method." />
+ <echo message=" Keep this in mind when debugging memory usage, running times, and" />
+ <echo message=" thread creation." />
+ <echo message="" />
+ <echo message=" -Dtestng.verbosity0to5=5" />
+ <echo message=" for example has TestNG dump the maximum amount of debugging" />
+ <echo message=" output to stdout. This output is useful to check the order" />
+ <echo message=" in which test methods are invoked. Valid values are integer" />
+ <echo message=" values from 0 (no output) to 5 (maximum output). Since this" />
+ <echo message=" implicitly sets -Dorg.opends.test.suppressOutput=false," />
+ <echo message=" other stderr/stdout output generated by the unit tests will" />
+ <echo message=" also be displayed." />
+ <echo message="" />
+ <echo message=" -Dorg.opends.test.pauseOnFailure=true" />
+ <echo message=" pauses the test suite whenever a failure occurs allowing you to inspect" />
+ <echo message=" the server more closely in the failure state" />
+ <echo message="" />
+ <echo message=" -Dorg.opends.test.copyClassesToTestPackage=true" />
+ <echo message=" copies the classes into the test server root. This enables you to run" />
+ <echo message=" the server tools on the test server. It can slow down the test startup" />
+ <echo message=" so the files are not copied by default." />
+ <echo message="" />
+ <echo message=" -Dtest.failed=true" />
+ <echo message=" runs only the tests that failed last time" />
+ <echo message="" />
+ <echo message=" -Dtest.diff.srcpath=src/org/opends/sdk/requests" />
+ <echo message=" for example includes only the classes in" />
+ <echo message=" src/org/opends/sdk/requests in the coveragediff report." />
+ <echo message=" To list multiple directories or files, separate them with" />
+ <echo message=" a space as you would an argument list to 'svn diff' and quote" />
+ <echo message=" the whole value." />
+ <echo message="" />
+ <echo message=" -Dtest.groups=exclude=slow" />
+ <echo message=" for example excludes the slow tests. Each value is expected" />
+ <echo message=" group inclusion/exclusion clause which consists of either 'include'" />
+ <echo message=" or 'exclude' followed by the '=' character and then a group name." />
+ <echo message=" For multiple group clauses, separate them with a ',' and " />
+ <echo message=" quote the entire value. Debug logging is disabled." />
+ <echo message="" />
+ <echo message=" -Dtest.packages=org.opends.sdk.requests" />
+ <echo message=" for example runs only the tests in the requests package" />
+ <echo message=" For multiple packages, separate them with a ',' and " />
+ <echo message=" quote the entire value. Debug logging is disabled." />
+ <echo message="" />
+ <echo message=" -Dtest.classes=org.opends.sdk.TestDN" />
+ <echo message=" for example only runs the TestDN class" />
+ <echo message=" For multiple classes, separate them with a ',' and " />
+ <echo message=" quote the entire value. Debug logging is disabled." />
+ <echo message="" />
+ <echo message=" -Dtest.methods=org.opends.sdk.TestDN.testGetRDN" />
+ <echo message=" for example only runs the testGetRDN method" />
+ <echo message=" For multiple methods within the same class, append additional" />
+ <echo message=" method names to the end separating them with a ',' and " />
+ <echo message=" quote the entire value. Debug logging is disabled." />
+ <echo message="" />
+ <echo message=" -Dtest.remote.debug.port=5005" />
+ <echo message=" for example will allow you to remotely debug the unit tests from" />
+ <echo message=" the debugger of your choice by pointing it at port 5005." />
+ <echo message=" The unit tests will not start to run until the debugger is attached" />
+ <echo message=" unless you also specify -Dtest.remote.debug.suspend=n." />
+ <echo message="" />
+ </target>
+
+
+
+ <!-- Internal target to execute the OpenDS LDAP SDK TestNG unit tests in text mode after everything has been initialized. -->
+ <target name="runtests">
+ <antcall target="testhelp" />
+
+ <mkdir dir="${unittest.report.dir}" />
+
+ <taskdef resource="testngtasks">
+ <classpath>
+ <fileset dir="${testng.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+
+ <!-- This sets TESTASSERT to false if and only if it's not already set. -->
+ <condition property="TESTASSERT" value="false">
+ <not>
+ <isset property="TESTASSERT" />
+ </not>
+ </condition>
+
+ <!-- This sets testng.verbosity if it's not already set. -->
+ <condition property="testng.verbosity0to5" value="0">
+ <not>
+ <isset property="testng.verbosity0to5" />
+ </not>
+ </condition>
+
+ <!-- This sets unsuppresses the test output if and only if testng
+ is configured to dump debug output. -->
+ <condition property="org.opends.test.suppressOutput" value="false">
+ <not>
+ <equals arg1="${testng.verbosity0to5}" arg2="0" />
+ </not>
+ </condition>
+
+ <!-- This sets org.opends.test.suppressOutput if and only if it's not
+ already set. -->
+ <condition property="org.opends.test.suppressOutput" value="true">
+ <not>
+ <isset property="org.opends.test.suppressOutput" />
+ </not>
+ </condition>
+
+ <!-- This sets org.opends.test.pauseOnFailure if and only if it's not
+ already set. -->
+ <condition property="org.opends.test.pauseOnFailure" value="false">
+ <not>
+ <isset property="org.opends.test.pauseOnFailure" />
+ </not>
+ </condition>
+
+ <condition property="org.opends.test.copyClassesToTestPackage"
+ value="false">
+ <not>
+ <isset property="org.opends.test.copyClassesToTestPackage" />
+ </not>
+ </condition>
+
+ <condition property="test.progress" value="">
+ <not>
+ <isset property="test.progress" />
+ </not>
+ </condition>
+
+
+ <!-- If the debug port was set, we pass these options into the <testng> target below:
+ -Xdebug
+ -Xnoagent
+ -Djava.compiler=NONE
+ -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
+ -->
+ <condition property="test.remote.debug.suspend" value="y">
+ <not>
+ <isset property="test.remote.debug.suspend" />
+ </not>
+ </condition>
+ <condition property="jvm.debug.arg1"
+ value="-Xdebug"
+ else="-Dopends.bogus.debug.arg1">
+ <isset property="test.remote.debug.port" />
+ </condition>
+ <condition property="jvm.debug.arg2"
+ value="-Xnoagent"
+ else="-Dopends.bogus.debug.arg2">
+ <isset property="test.remote.debug.port" />
+ </condition>
+ <condition property="jvm.debug.arg3"
+ value="-Djava.compiler=NONE"
+ else="-Dopends.bogus.debug.arg3">
+ <isset property="test.remote.debug.port" />
+ </condition>
+ <condition property="jvm.debug.arg4"
+ value="-Xrunjdwp:transport=dt_socket,server=y,suspend=${test.remote.debug.suspend},address=${test.remote.debug.port}"
+ else="-Dopends.bogus.debug.arg4">
+ <isset property="test.remote.debug.port" />
+ </condition>
+
+
+ <!-- Cleanout the old reports. Otherwise, the old testng-failed.xml
+ will hang around even if all of the tests pass. -->
+ <delete>
+ <fileset dir="${unittest.report.dir}" includes="*" />
+ </delete>
+
+ <!-- Our testng listener will remove this file if all of the
+ tests passed. This allows us to generate the coverage
+ report even if the tests failed and still fail the build. -->
+ <touch file="${unittest.report.dir}/.tests-failed-marker" />
+
+ <testng outputdir="${unittest.report.dir}"
+ haltonfailure="false"
+ verbose="${testng.verbosity0to5}"
+ enableAssert="${TESTASSERT}"
+ listeners="org.opends.server.TestListener org.testng.reporters.FailedReporter"
+ useDefaultListeners="false"
+ suiteRunnerClass="org.opends.server.SuiteRunner">
+ <classpath>
+ <pathelement location="${coverage.instr.dir}" />
+ <pathelement location="${classes.dir}" />
+ <pathelement location="${unittest.classes.dir}" />
+ <pathelement location="${resource.dir}" />
+ <path refid="run.classpath" />
+ <path refid="emma.lib" />
+
+ <fileset dir="${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ <fileset dir="${testng.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ </classpath>
+ <jvmarg value="-Demma.coverage.out.file=${coverage.data.dir}/unit.emma" />
+ <jvmarg value="-Demma.coverage.out.merge=false" />
+ <jvmarg value="-Dorg.opends.test.suppressOutput=${org.opends.test.suppressOutput}" />
+ <jvmarg value="-Dorg.opends.test.pauseOnFailure=${org.opends.test.pauseOnFailure}" />
+ <jvmarg value="-Dorg.opends.test.copyClassesToTestPackage=${org.opends.test.copyClassesToTestPackage}" />
+ <jvmarg value="-Dtest.progress=${test.progress}" />
+ <jvmarg value="-Xms${MEM}" />
+ <jvmarg value="-Xmx${MEM}" />
+ <jvmarg value="${jvm.debug.arg1}" />
+ <jvmarg value="${jvm.debug.arg2}" />
+ <jvmarg value="${jvm.debug.arg3}" />
+ <jvmarg value="${jvm.debug.arg4}" />
+ <xmlfileset dir="${unittest.resource.dir}" includes="testng.xml" />
+ </testng>
+
+ <!-- Our testng listener will create this file if any of the
+ tests failed. This allows us to generate the coverage
+ report even if the tests failed. -->
+ <available property="testng.tests.failed"
+ file="${unittest.report.dir}/.tests-failed-marker" />
+
+ <!-- Delete all of the report suite sub-directories since we only
+ have a single suite. -->
+ <delete dir="${unittest.report.dir}/${SHORT_NAME}" />
+
+ <emma enabled="${coverage.enabled}">
+ <report sourcepath="${src.dir}">
+ <fileset dir="${coverage.data.dir}">
+ <include name="unit.emma" />
+ <include name="metadata.emma" />
+ </fileset>
+
+ <txt outfile="${coverage.report.dir}/coverage.txt" />
+ <html outfile="${coverage.report.dir}/index.html" />
+ <xml outfile="${coverage.report.dir}/coverage.xml" />
+ </report>
+
+ </emma>
+
+ <!-- We delay failing until after the coverage report is generated. -->
+ <fail message="The unit tests failed." if="testng.tests.failed" />
+
+ </target>
+
+ <target name="prepdefaultalltest">
+ <condition property="test.groups" value="">
+ <not>
+ <or>
+ <isset property="test.groups" />
+ <isset property="test.packages" />
+ <isset property="test.classes" />
+ <isset property="test.methods" />
+ </or>
+ </not>
+ </condition>
+ </target>
+
+ <target name="testreport" depends="test">
+ <junitreport todir="${unittest.report.dir}">
+ <fileset dir="${unittest.report.dir}">
+ <include name="*.xml" />
+ </fileset>
+
+ <report format="noframes" todir="${unittest.report.dir}" />
+ </junitreport>
+ </target>
+
+ <target name="buildtools" depends="init">
+
+ <mkdir dir="${buildtools.classes.dir}" />
+
+ <copy file="${resource.dir}/Messages.java.stub"
+ todir="${buildtools.classes.dir}/org/opends/build/tools/resource" />
+
+ <!--
+ <javac srcdir="${srcgen.dir}"
+ destdir="${buildtools.classes.dir}"
+ debug="on"
+ debuglevel="${build.debuglevel}"
+ source="1.5"
+ target="1.5"
+ deprecation="true"
+ fork="true"
+ memoryInitialSize="${MEM}"
+ memoryMaximumSize="${MEM}" />
+ -->
+ <javac srcdir="${buildtools.src.dir}"
+ destdir="${buildtools.classes.dir}"
+ debug="on"
+ debuglevel="${build.debuglevel}"
+ source="1.5"
+ target="1.5"
+ deprecation="true"
+ fork="true"
+ memoryInitialSize="${MEM}"
+ memoryMaximumSize="${MEM}">
+ <compilerarg value="-Xlint:all" />
+
+ <classpath>
+ <fileset dir="${ant.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ <fileset dir="${emma.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ <fileset dir="${svnkit.dir}">
+ <include name="*.jar" />
+ </fileset>
+
+ <path refid="run.classpath" />
+ </classpath>
+ </javac>
+
+ <jar jarfile="${build.dir}/build-tools/build-tools.jar"
+ basedir="${buildtools.classes.dir}"
+ compress="true"
+ index="true" />
+ </target>
+
+ <!-- Generate a src.zip file containing all the sdk source. -->
+ <target name="srczip"
+ description="Generate a src.zip file with all the sdk source.">
+ <zip destfile="${build.dir}/src.zip">
+ <zipfileset dir="${src.dir}"
+ excludes="**/.svn"
+ filemode="644"
+ dirmode="755" />
+ <zipfileset dir="${srcgen.dir}"
+ excludes="**/.svn"
+ filemode="644"
+ dirmode="755" />
+ </zip>
+ </target>
+</project>
diff --git a/sdk/resource/DynamicConstants.java.stubs b/sdk/resource/DynamicConstants.java.stubs
index a5dbc9e..26c13a0 100644
--- a/sdk/resource/DynamicConstants.java.stubs
+++ b/sdk/resource/DynamicConstants.java.stubs
@@ -22,65 +22,60 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2009 Sun Microsystems, Inc.
+ * Copyright 2009 Sun Microsystems, Inc.
*/
-package org.opends.server.util;
+package com.sun.opends.sdk.util;
/**
* This file contains a number of constants that are used throughout the
- * Directory Server source. It was dynamically generated as part of the
- * Directory Server build process and should not be edited directly.
+ * ${PRODUCT_NAME} source. It was dynamically generated as part of the
+ * build process and should not be edited directly.
*/
-@org.opends.server.types.PublicAPI(
- stability=org.opends.server.types.StabilityLevel.UNCOMMITTED,
- mayInstantiate=false,
- mayExtend=false,
- mayInvoke=true)
public final class DynamicConstants
{
/**
- * The official full product name for the Directory Server.
+ * The official full product name for the ${PRODUCT_NAME}.
*/
public static String PRODUCT_NAME = "${PRODUCT_NAME}";
/**
- * The short product name for the Directory Server.
+ * The short product name for the ${PRODUCT_NAME}.
*/
public static String SHORT_NAME = "${SHORT_NAME}";
/**
- * The major version number for the Directory Server.
+ * The major version number for the ${PRODUCT_NAME}.
*/
public static int MAJOR_VERSION = ${MAJOR_VERSION};
/**
- * The minor version number for the Directory Server.
+ * The minor version number for the ${PRODUCT_NAME}.
*/
public static int MINOR_VERSION = ${MINOR_VERSION};
/**
- * The point version number for the Directory Server.
+ * The point version number for the ${PRODUCT_NAME}.
*/
public static int POINT_VERSION = ${POINT_VERSION};
/**
- * The official build number for the Directory Server.
+ * The official build number for the ${PRODUCT_NAME}.
*/
public static int BUILD_NUMBER = ${BUILD_NUMBER};
/**
- * The version qualifier string for the Directory Server.
+ * The version qualifier string for the ${PRODUCT_NAME}.
*/
public static String VERSION_QUALIFIER = "${VERSION_QUALIFIER}";
/**
- * The set of bug IDs for fixes included in this build of the Directory
- * Server.
+ * The set of bug IDs for fixes included in this
+ * build of the ${PRODUCT_NAME}.
*/
public static String FIX_IDS = "${FIX_IDS}";
/**
- * The build ID for the generated build of the Directory Server.
+ * The build ID for the generated build of the ${PRODUCT_NAME}.
*/
public static String BUILD_ID = "${timestamp}";
@@ -115,7 +110,7 @@
public static String BUILD_OS = "${os.name} ${os.version} ${os.arch}";
/**
- * Indicates whether this is a debug build of the Directory Server that may
+ * Indicates whether this is a debug build of the ${PRODUCT_NAME} that may
* include additional debugging facilities not available in standard release
* versions.
*/
@@ -145,18 +140,6 @@
"${DOC_REFERENCE_WIKI}";
/**
- * The documentation url.
- */
- public static String DOC_QUICK_REFERENCE_GUIDE =
- "${DOC_QUICK_REFERENCE_GUIDE}";
-
- /**
- * The administration guide.
- */
- public static String ADMINISTRATION_GUIDE_URL =
- "${ADMINISTRATION_GUIDE_URL}";
-
- /**
* A string representation of the version number.
*/
public static String VERSION_NUMBER_STRING =
@@ -173,136 +156,7 @@
*/
public static String RELEASE_VERSION_STRING =
OPENDS_NUMBER_STRING;
-
-
- /**
- * Test if a specific class is provided to overwrite the BUILD definitions
- * By the release definitions provided by
- * org.opends.server.util.ReleaseDefinition
- */
-
- static {
-
- try {
- Class c;
- if (org.opends.server.util.SetupUtils.isWebStart())
- {
- Class<?> cS = Class.forName("org.opends.server.util.SetupUtils");
- java.net.URL[] urls = new java.net.URL[]
- {
- cS.getProtectionDomain().getCodeSource().getLocation()
- };
- ClassLoader webstartClassLoader = new java.net.URLClassLoader(urls);
- c = webstartClassLoader.loadClass(
- "org.opends.server.util.ReleaseDefinition");
- }
- else
- {
- c = Class.forName("org.opends.server.util.ReleaseDefinition");
- }
- Object obj = c.newInstance();
-
- try {
- PRODUCT_NAME = (String)c.getField("PRODUCT_NAME").get(obj);
- }
- catch (Exception ex) {}
- try {
- SHORT_NAME = (String)c.getField("SHORT_NAME").get(obj);
- }
- catch (Exception ex) {}
- try {
- MAJOR_VERSION = (Integer)c.getField("MAJOR_VERSION").get(obj);
- }
- catch (Exception ex) {}
- try {
- MINOR_VERSION = (Integer)c.getField("MINOR_VERSION").get(obj);
- }
- catch (Exception ex) {}
- try {
- POINT_VERSION = (Integer)c.getField("POINT_VERSION").get(obj);
- }
- catch (Exception ex) {}
- try {
- BUILD_NUMBER = (Integer)c.getField("BUILD_NUMBER").get(obj);
- }
- catch (Exception ex) {}
- try {
- VERSION_QUALIFIER = (String)c.getField("VERSION_QUALIFIER").get(obj);
- }
- catch (Exception ex) {}
- try {
- FIX_IDS = (String)c.getField("FIX_IDS").get(obj);
- }
- catch (Exception ex) {}
- try{
- BUILD_ID = (String)c.getField("BUILD_ID").get(obj);
- }
- catch (Exception ex) {}
- try{
- BUILD_USER = (String)c.getField("BUILD_USER").get(obj);
- }
- catch (Exception ex) {}
- try{
- REVISION_NUMBER = (Long)c.getField("REVISION_NUMBER").get(obj);
- }
- catch (Exception ex) {}
- try{
- BUILD_JAVA_VERSION = (String)c.getField("BUILD_JAVA_VERSION").get(obj);
- }
- catch (Exception ex) {}
- try{
- BUILD_JAVA_VENDOR = (String)c.getField("BUILD_JAVA_VENDOR").get(obj);
- }
- catch (Exception ex) {}
- try{
- BUILD_JVM_VERSION = (String)c.getField("BUILD_JVM_VERSION").get(obj);
- }
- catch (Exception ex) {}
- try{
- BUILD_JVM_VENDOR = (String)c.getField("BUILD_JVM_VENDOR").get(obj);
- }
- catch (Exception ex) {}
- try{
- BUILD_OS = (String)c.getField("BUILD_OS").get(obj);
- }
- catch (Exception ex) {}
- try{
- DEBUG_BUILD = (Boolean)c.getField("DEBUG_BUILD").get(obj);
- }
- catch (Exception ex) {}
- try{
- URL_REPOSITORY = (String)c.getField("URL_REPOSITORY").get(obj);
- }
- catch (Exception ex) {}
- try{
- DOC_REFERENCE_WIKI =
- (String)c.getField("DOC_REFERENCE_WIKI").get(obj);
- }
- catch(Exception ex) {}
- try{
- DOC_QUICK_REFERENCE_GUIDE =
- (String)c.getField("DOC_QUICK_REFERENCE_GUIDE").get(obj);
- }
- catch(Exception ex) {}
- try{
- ADMINISTRATION_GUIDE_URL =
- (String)c.getField("ADMINISTRATION_GUIDE_URL").get(obj);
- }
- catch(Exception ex) {}
- try{
- VERSION_NUMBER_STRING =
- (String)c.getField("VERSION_NUMBER_STRING").get(obj);
- }
- catch (Exception ex) {}
- try{
- RELEASE_VERSION_STRING = VERSION_NUMBER_STRING
- + " (OpenDS version = "
- + OPENDS_NUMBER_STRING + ")" ;
- }
- catch (Exception ex) {}
- } catch (Exception ex) {
- }
- }
+
/**
* A compact version string for this product, suitable for use in path
* names and similar cases.
diff --git a/sdk/resource/FindJavaHome.class b/sdk/resource/FindJavaHome.class
new file mode 100755
index 0000000..c0ae713
--- /dev/null
+++ b/sdk/resource/FindJavaHome.class
Binary files differ
diff --git a/sdk/resource/FindJavaHome.java b/sdk/resource/FindJavaHome.java
new file mode 100755
index 0000000..daccc5c
--- /dev/null
+++ b/sdk/resource/FindJavaHome.java
@@ -0,0 +1,68 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2006-2008 Sun Microsystems, Inc.
+ */
+import java.io.*;
+
+
+
+/**
+ * This program provides a simple utility that determines the location of the
+ * Java installation. The output will be in a form suitable for use in a
+ * JAVA_HOME environment variable.
+ */
+public class FindJavaHome
+{
+ public static void main(String[] args)
+ throws Exception
+ {
+ String javaHome = System.getProperty("java.home");
+ File javaHomeDir = new File(javaHome);
+ if (! javaHomeDir.exists())
+ {
+ throw new Exception("System property java.home doesn't reference a " +
+ "real directory");
+ }
+
+ String javacPath = File.separator + "bin" + File.separator + "javac";
+ File javacFile = new File(javaHome + javacPath);
+ if (! javacFile.exists())
+ {
+ javacFile = new File(javaHomeDir.getParent() + javacPath);
+ if (javacFile.exists())
+ {
+ javaHomeDir = new File(javaHomeDir.getParent());
+ }
+ else
+ {
+ throw new Exception("Unable to determine Java compiler location " +
+ "from java.home property value " + javaHome);
+ }
+ }
+
+ System.out.println(javaHomeDir.getAbsolutePath());
+ }
+}
+
diff --git a/sdk/resource/Messages.java.stub b/sdk/resource/Messages.java.stub
new file mode 100755
index 0000000..dff34e8
--- /dev/null
+++ b/sdk/resource/Messages.java.stub
@@ -0,0 +1,61 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2009 Sun Microsystems, Inc.
+ */
+
+package ${PACKAGE};
+
+import com.sun.opends.sdk.util.MessageDescriptor;
+
+/**
+ * This file contains a number of constants that are used throughout the
+ * OpenDS LDAP SDK source. It was dynamically generated as part of the
+ * OpenDS LDAP SDK build process and should not be edited directly.
+ */
+public final class ${CLASS_NAME} {
+
+ /** Base property for resource bundle containing messages */
+ private static final String BASE = "${BASE}";
+
+ // Prevent instantiation.
+ private ${CLASS_NAME}() {
+ // Do nothing.
+ }
+
+ ${MESSAGES}
+
+ /**
+ * Returns the Class Loader to be used to get the ResourceBundle,
+ * it returns <CODE>null</CODE> if the default ClassLoader is to be
+ * used.
+ * @return the Class Loader to be used to get the ResourceBundle,
+ * it returns <CODE>null</CODE> if the default ClassLoader is to be
+ * used.
+ */
+ private static ClassLoader getClassLoader()
+ {
+ return ${CLASS_NAME}.class.getClassLoader();
+ }
+}
diff --git a/sdk/resource/README b/sdk/resource/README
new file mode 100755
index 0000000..224ca7d
--- /dev/null
+++ b/sdk/resource/README
@@ -0,0 +1,9 @@
+OpenDS LDAP SDK
+
+This archive contains the OpenDS LDAP SDK. Complete documentation for
+this product may be found online at https://OpenDS.dev.java.net/.
+
+This product is made available under the Common Development and Distribution
+License (CDDL). The complete text for this license, and for alternate licenses
+of included components, may be found in the legal-notices directory.
+
diff --git a/sdk/resource/bin/_client-script.bat b/sdk/resource/bin/_client-script.bat
new file mode 100755
index 0000000..b5a4ac5
--- /dev/null
+++ b/sdk/resource/bin/_client-script.bat
@@ -0,0 +1,61 @@
+
+@echo off
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem by brackets "[]" replaced with your own identifying information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2006-2009 Sun Microsystems, Inc.
+
+rem This script is used to invoke various client-side processes. It should not
+rem be invoked directly by end users.
+
+setlocal
+for %%i in (%~sf0) do set DIR_HOME=%%~dPsi..
+set INSTALL_ROOT=%DIR_HOME%
+
+set INSTANCE_DIR=
+for /f "delims=" %%a in (%INSTALL_ROOT%\instance.loc) do (
+ set INSTANCE_DIR=%%a
+)
+set CUR_DIR=%~dp0
+cd /d %INSTALL_ROOT%
+cd /d %INSTANCE_DIR%
+set INSTANCE_ROOT=%CD%
+cd /d %CUR_DIR%
+
+if "%OPENDS_INVOKE_CLASS%" == "" goto noInvokeClass
+goto launchCommand
+
+:noInvokeClass
+echo Error: OPENDS_INVOKE_CLASS environment variable is not set.
+pause
+goto end
+
+:launchCommand
+set SCRIPT_UTIL_CMD=set-full-environment
+call "%INSTALL_ROOT%\lib\_script-util.bat" $*
+if NOT %errorlevel% == 0 exit /B %errorlevel%
+
+"%OPENDS_JAVA_BIN%" %OPENDS_JAVA_ARGS% %SCRIPT_NAME_ARG% %OPENDS_INVOKE_CLASS% %*
+
+:end
+
diff --git a/sdk/resource/bin/_client-script.sh b/sdk/resource/bin/_client-script.sh
new file mode 100755
index 0000000..1ee6c4e
--- /dev/null
+++ b/sdk/resource/bin/_client-script.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006-2008 Sun Microsystems, Inc.
+
+
+# This script is used to invoke various client-side processes. It should not
+# be invoked directly by end users.
+if test -z "${OPENDS_INVOKE_CLASS}"
+then
+ echo "ERROR: OPENDS_INVOKE_CLASS environment variable is not set."
+ exit 1
+fi
+
+
+# Capture the current working directory so that we can change to it later.
+# Then capture the location of this script and the Directory Server install
+# root so that we can use them to create appropriate paths.
+WORKING_DIR=`pwd`
+
+cd "`dirname "${0}"`"
+SCRIPT_DIR=`pwd`
+
+cd ..
+INSTALL_ROOT=`pwd`
+export INSTALL_ROOT
+
+cd "${WORKING_DIR}"
+
+
+# Set environment variables
+SCRIPT_UTIL_CMD=set-full-environment
+export SCRIPT_UTIL_CMD
+if [ -z "$NO_CHECK" ]
+then
+ NO_CHECK=1
+ export NO_CHECK
+fi
+. "${INSTALL_ROOT}/lib/_script-util.sh"
+RETURN_CODE=$?
+if test ${RETURN_CODE} -ne 0
+then
+ exit ${RETURN_CODE}
+fi
+
+# Launch the appropriate client utility.
+"${OPENDS_JAVA_BIN}" ${OPENDS_JAVA_ARGS} ${SCRIPT_NAME_ARG} "${OPENDS_INVOKE_CLASS}" "${@}"
diff --git a/sdk/resource/bin/_script-util.bat b/sdk/resource/bin/_script-util.bat
new file mode 100755
index 0000000..813b37c
--- /dev/null
+++ b/sdk/resource/bin/_script-util.bat
@@ -0,0 +1,220 @@
+@echo off
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem by brackets "[]" replaced with your own identifying information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2008-2009 Sun Microsystems, Inc.
+
+set SET_JAVA_HOME_AND_ARGS_DONE=false
+set SET_ENVIRONMENT_VARS_DONE=false
+set SET_CLASSPATH_DONE=false
+
+if "%INSTALL_ROOT%" == "" goto setInstanceRoot
+
+:scriptBegin
+if "%SCRIPT_UTIL_CMD%" == "set-full-environment-and-test-java" goto setFullEnvironmentAndTestJava
+if "%SCRIPT_UTIL_CMD%" == "set-full-environment" goto setFullEnvironment
+if "%SCRIPT_UTIL_CMD%" == "set-java-home-and-args" goto setJavaHomeAndArgs
+if "%SCRIPT_UTIL_CMD%" == "set_environment_vars" goto setEnvironmentVars
+if "%SCRIPT_UTIL_CMD%" == "test-java" goto testJava
+if "%SCRIPT_UTIL_CMD%" == "set-classpath" goto setClassPath
+goto prepareCheck
+
+:setInstanceRoot
+setlocal
+for %%i in (%~sf0) do set DIR_HOME=%%~dPsi..
+set INSTALL_ROOT=%DIR_HOME%
+set INSTANCE_DIR=
+for /f "delims=" %%a in (%INSTALL_ROOT%\instance.loc) do (
+ set INSTANCE_DIR=%%a
+)
+set CUR_DIR=%~dp0
+cd /d %INSTALL_ROOT%
+cd /d %INSTANCE_DIR%
+set INSTANCE_ROOT=%CD%
+cd /d %CUR_DIR%
+goto scriptBegin
+
+
+:setClassPath
+if "%SET_CLASSPATH_DONE%" == "true" goto prepareCheck
+FOR %%x in ("%INSTALL_ROOT%\lib\*.jar") DO call "%INSTALL_ROOT%\lib\setcp.bat" %%x
+if "%INSTALL_ROOT%" == "%INSTANCE_ROOT%"goto setClassPathDone
+FOR %%x in ("%INSTANCE_ROOT%\lib\*.jar") DO call "%INSTANCE_ROOT%\lib\setcp.bat" %%x
+FOR %%x in ("%INSTALL_ROOT%\resources\*.jar") DO call "%INSTALL_ROOT%\lib\setcp.bat" %%x
+set CLASSPATH=%INSTANCE_ROOT%\classes;%CLASSPATH%
+:setClassPathDone
+set SET_CLASSPATH_DONE=true
+goto scriptBegin
+
+:setFullEnvironment
+if "%SET_JAVA_HOME_AND_ARGS_DONE%" == "false" goto setJavaHomeAndArgs
+if "%SET_CLASSPATH_DONE%" == "false" goto setClassPath
+if "%SET_ENVIRONMENT_VARS_DONE%" == "false" goto setEnvironmentVars
+goto prepareCheck
+
+:setFullEnvironmentAndTestJava
+if "%SET_JAVA_HOME_AND_ARGS_DONE%" == "false" goto setJavaHomeAndArgs
+if "%SET_CLASSPATH_DONE%" == "false" goto setClassPath
+if "%SET_ENVIRONMENT_VARS_DONE%" == "false" goto setEnvironmentVars
+goto testJava
+
+
+:setJavaHomeAndArgs
+if "%SET_JAVA_HOME_AND_ARGS_DONE%" == "true" goto prepareCheck
+if not exist "%INSTANCE_ROOT%\lib\set-java-home.bat" goto checkEnvJavaArgs
+call "%INSTANCE_ROOT%\lib\set-java-home.bat"
+if "%OPENDS_JAVA_BIN%" == "" goto checkEnvJavaArgs
+:endJavaHomeAndArgs
+set SET_JAVA_HOME_AND_ARGS_DONE=true
+goto scriptBegin
+
+:checkEnvJavaArgs
+if "%OPENDS_JAVA_BIN%" == "" goto checkOpenDSJavaHome
+if not exist "%OPENDS_JAVA_BIN%" goto checkOpenDSJavaHome
+goto endJavaHomeAndArgs
+
+:checkOpenDSJavaHome
+if "%OPENDS_JAVA_HOME%" == "" goto checkJavaBin
+if not exist "%OPENDS_JAVA_HOME%\bin\java.exe" goto checkJavaBin
+set OPENDS_JAVA_BIN=%OPENDS_JAVA_HOME%\bin\java.exe
+goto endJavaHomeAndArgs
+
+:checkJavaBin
+if "%JAVA_BIN%" == "" goto checkJavaHome
+if not exist "%JAVA_BIN%" goto checkJavaHome
+set OPENDS_JAVA_BIN=%JAVA_BIN%
+goto endJavaHomeAndArgs
+
+:checkJavaHome
+if "%JAVA_HOME%" == "" goto checkJavaPath
+if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaFound
+set OPENDS_JAVA_BIN=%JAVA_HOME%\bin\java.exe
+goto endJavaHomeAndArgs
+
+:checkJavaPath
+java.exe -version > NUL 2>&1
+if not %errorlevel% == 0 goto noJavaFound
+set OPENDS_JAVA_BIN=java.exe
+goto endJavaHomeAndArgs
+
+:noJavaFound
+echo ERROR: Could not find a valid Java binary to be used.
+echo You must specify the path to a valid Java 5.0 or higher version.
+echo The procedure to follow is:
+echo 1. Delete the file %INSTANCE_ROOT%\lib\set-java-home.bat if it exists.
+echo 2. Set the environment variable OPENDS_JAVA_HOME to the root of a valid
+echo Java 5.0 installation.
+echo If you want to have specific Java settings for each command line you must
+echo follow the steps 3 and 4.
+echo 3. Edit the properties file specifying the Java binary and the Java arguments
+echo for each command line. The Java properties file is located in:
+echo %INSTANCE_ROOT%\config\java.properties.
+echo 4. Run the command-line %INSTALL_ROOT%\bat\dsjavaproperties.bat
+pause
+exit /B 1
+
+:setEnvironmentVars
+if %SET_ENVIRONMENT_VARS_DONE% == "true" goto prepareCheck
+set PATH=%SystemRoot%;%PATH%
+set SCRIPT_NAME_ARG=-Dorg.opends.server.scriptName=%SCRIPT_NAME%
+set SET_ENVIRONMENT_VARS_DONE=true
+goto scriptBegin
+
+:testJava
+"%OPENDS_JAVA_BIN%" %OPENDS_JAVA_ARGS% org.opends.server.tools.InstallDS -t > NUL 2>&1
+set RESULT_CODE=%errorlevel%
+if %RESULT_CODE% == 13 goto notSupportedJavaHome
+if not %RESULT_CODE% == 0 goto noValidJavaHome
+goto prepareCheck
+
+:noValidJavaHome
+if NOT "%OPENDS_JAVA_ARGS%" == "" goto noValidHomeWithArgs
+echo ERROR: The detected Java version could not be used. The detected
+echo Java binary is:
+echo %OPENDS_JAVA_BIN%
+echo You must specify the path to a valid Java 5.0 or higher version.
+echo The procedure to follow is:
+echo 1. Delete the file %INSTANCE_ROOT%\lib\set-java-home.bat if it exists.
+echo 2. Set the environment variable OPENDS_JAVA_HOME to the root of a valid
+echo Java 5.0 installation.
+echo If you want to have specific Java settings for each command line you must
+echo follow the steps 3 and 4.
+echo 3. Edit the properties file specifying the Java binary and the Java arguments
+echo for each command line. The Java properties file is located in:
+echo %INSTANCE_ROOT%\config\java.properties.
+echo 4. Run the command-line %INSTALL_ROOT%\bat\dsjavaproperties.bat
+pause
+exit /B 1
+
+:notSupportedJavaHome
+rem We get here when the java version is 5 (or up) but not supported. We run
+rem InstallDS again to see a localized message.
+"%OPENDS_JAVA_BIN%" %OPENDS_JAVA_ARGS% org.opends.server.tools.InstallDS -t
+pause
+exit /B 1
+
+:noValidHomeWithArgs
+echo ERROR: The detected Java version could not be used with the set of Java
+echo arguments %OPENDS_JAVA_ARGS%.
+echo The detected Java binary is:
+echo %OPENDS_JAVA_BIN%
+echo You must specify the path to a valid Java 5.0 or higher version.
+echo The procedure to follow is:
+echo 1. Delete the file %INSTANCE_ROOT%\lib\set-java-home.bat if it exists.
+echo 2. Set the environment variable OPENDS_JAVA_HOME to the root of a valid
+echo Java 5.0 installation.
+echo If you want to have specific Java settings for each command line you must
+echo follow the steps 3 and 4.
+echo 3. Edit the properties file specifying the Java binary and the Java arguments
+echo for each command line. The Java properties file is located in:
+echo %INSTANCE_ROOT%\config\java.properties.
+echo 4. Run the command-line %INSTALL_ROOT%\bat\dsjavaproperties.bat
+pause
+exit /B 1
+
+:isVersionOrHelp
+if [%1] == [] goto check
+if [%1] == [--help] goto end
+if [%1] == [-H] goto end
+if [%1] == [--version] goto end
+if [%1] == [-V] goto end
+if [%1] == [--fullversion] goto end
+if [%1] == [-F] goto end
+shift
+goto isVersionOrHelp
+
+:prepareCheck
+rem Perform check unless it is specified not to do it
+if "%NO_CHECK%" == "" set NO_CHECK=false
+goto isVersionOrHelp
+
+:check
+if "%NO_CHECK%" == "true" goto end
+if "%CHECK_VERSION%" == "true" set OPT_CHECK_VERSION=--checkVersion
+"%OPENDS_JAVA_BIN%" %SCRIPT_NAME_ARG% -DINSTALL_ROOT="%INSTALL_ROOT%" -DINSTANCE_ROOT="%INSTANCE_ROOT%" org.opends.server.tools.configurator.CheckInstance %OPT_CHECK_VERSION%
+set RESULT_CODE=%errorlevel%
+if "%RESULT_CODE%" == "0" goto end
+exit /B 1
+
+:end
+exit /B 0
diff --git a/sdk/resource/bin/_script-util.sh b/sdk/resource/bin/_script-util.sh
new file mode 100755
index 0000000..47a58b4
--- /dev/null
+++ b/sdk/resource/bin/_script-util.sh
@@ -0,0 +1,319 @@
+#!/bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2008-2009 Sun Microsystems, Inc.
+
+#
+# function that sets the java home
+#
+set_java_home_and_args() {
+ if test -f "${INSTANCE_ROOT}/lib/set-java-home"
+ then
+ . "${INSTANCE_ROOT}/lib/set-java-home"
+ fi
+ if test -z "${OPENDS_JAVA_BIN}"
+ then
+ if test -z "${OPENDS_JAVA_HOME}"
+ then
+ if test -z "${JAVA_BIN}"
+ then
+ if test -z "${JAVA_HOME}"
+ then
+ OPENDS_JAVA_BIN=`which java 2> /dev/null`
+ if test ${?} -eq 0
+ then
+ export OPENDS_JAVA_BIN
+ else
+ echo "Please set OPENDS_JAVA_HOME to the root of a Java 5 (or later) installation"
+ echo "or edit the java.properties file and then run the dsjavaproperties script to"
+ echo "specify the Java version to be used"
+ exit 1
+ fi
+ else
+ OPENDS_JAVA_BIN="${JAVA_HOME}/bin/java"
+ export OPENDS_JAVA_BIN
+ fi
+ else
+ OPENDS_JAVA_BIN="${JAVA_BIN}"
+ export OPENDS_JAVA_BIN
+ fi
+ else
+ OPENDS_JAVA_BIN="${OPENDS_JAVA_HOME}/bin/java"
+ export OPENDS_JAVA_BIN
+ fi
+ fi
+}
+
+# Determine whether the detected Java environment is acceptable for use.
+test_java() {
+ if test -z "${OPENDS_JAVA_ARGS}"
+ then
+ "${OPENDS_JAVA_BIN}" org.opends.server.tools.InstallDS -t 2> /dev/null
+ RESULT_CODE=${?}
+ if test ${RESULT_CODE} -eq 13
+ then
+ # This is a particular error code that means that the Java version is 5
+ # but not supported. Let InstallDS to display the localized error message
+ "${OPENDS_JAVA_BIN}" org.opends.server.tools.InstallDS -t
+ exit 1
+ elif test ${RESULT_CODE} -ne 0
+ then
+ echo "ERROR: The detected Java version could not be used. The detected"
+ echo "Java binary is:"
+ echo "${OPENDS_JAVA_BIN}"
+ echo "You must specify the path to a valid Java 5.0 or higher version."
+ echo "The procedure to follow is:"
+ echo "1. Delete the file ${INSTANCE_ROOT}/lib/set-java-home" if it exists.
+ echo "2. Set the environment variable OPENDS_JAVA_HOME to the root of a valid "
+ echo "Java 5.0 installation."
+ echo "If you want to have specific Java settings for each command line you must"
+ echo "follow the steps 3 and 4."
+ echo "3. Edit the properties file specifying the Java binary and the Java arguments"
+ echo "for each command line. The Java properties file is located in:"
+ echo "${INSTANCE_ROOT}/config/java.properties."
+ echo "4. Run the command-line ${INSTANCE_ROOT}/bin/dsjavaproperties"
+ exit 1
+ fi
+ else
+ "${OPENDS_JAVA_BIN}" ${OPENDS_JAVA_ARGS} org.opends.server.tools.InstallDS -t 2> /dev/null
+ RESULT_CODE=${?}
+ if test ${RESULT_CODE} -eq 13
+ then
+ # This is a particular error code that means that the Java version is 5
+ # but not supported. Let InstallDS to display the localized error message
+ "${OPENDS_JAVA_BIN}" org.opends.server.tools.InstallDS -t
+ exit 1
+ elif test ${RESULT_CODE} -ne 0
+ then
+ echo "ERROR: The detected Java version could not be used with the set of Java"
+ echo "arguments ${OPENDS_JAVA_ARGS}."
+ echo "The detected Java binary is:"
+ echo "${OPENDS_JAVA_BIN}"
+ echo "You must specify the path to a valid Java 5.0 or higher version."
+ echo "The procedure to follow is:"
+ echo "1. Delete the file ${INSTANCE_ROOT}/lib/set-java-home" if it exists.
+ echo "2. Set the environment variable OPENDS_JAVA_HOME to the root of a valid "
+ echo "Java 5.0 installation."
+ echo "If you want to have specific Java settings for each command line you must"
+ echo "follow the steps 3 and 4."
+ echo "3. Edit the properties file specifying the Java binary and the Java arguments"
+ echo "for each command line. The Java properties file is located in:"
+ echo "${INSTANCE_ROOT}/config/java.properties."
+ echo "4. Run the command-line ${INSTANCE_ROOT}/bin/dsjavaproperties"
+ exit 1
+ fi
+ fi
+}
+
+# Explicitly set the PATH, LD_LIBRARY_PATH, LD_PRELOAD, and other important
+# system environment variables for security and compatibility reasons.
+set_environment_vars() {
+ PATH=/bin:/usr/bin
+ LD_LIBRARY_PATH=
+ LD_LIBRARY_PATH_32=
+ LD_LIBRARY_PATH_64=
+ LD_PRELOAD=
+ LD_PRELOAD_32=
+ LD_PRELOAD_64=
+ export PATH LD_LIBRARY_PATH LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64 \
+ LD_PRELOAD LD_PRELOAD_32 LD_PRELOAD_64
+ SCRIPT_NAME_ARG=-Dorg.opends.server.scriptName=${SCRIPT_NAME}
+ export SCRIPT_NAME_ARG
+}
+
+# Configure the appropriate CLASSPATH.
+set_classpath() {
+ CLASSPATH=${INSTANCE_ROOT}/classes
+ for JAR in ${INSTALL_ROOT}/resources/*.jar
+ do
+ CLASSPATH=${CLASSPATH}:${JAR}
+ done
+ for JAR in ${INSTALL_ROOT}/lib/*.jar
+ do
+ CLASSPATH=${CLASSPATH}:${JAR}
+ done
+ if [ "${INSTALL_ROOT}" != "${INSTANCE_ROOT}" ]
+ then
+ for JAR in ${INSTANCE_ROOT}/lib/*.jar
+ do
+ CLASSPATH=${CLASSPATH}:${JAR}
+ done
+ fi
+ export CLASSPATH
+}
+
+isVersionOrHelp() {
+ for opt in `echo $*`
+ do
+ if [ $opt = "-V" ] || [ $opt = "--version" ] ||
+ [ $opt = "-H" ] || [ $opt = "--help" ] ||
+ [ $opt = "-F" ] || [ $opt = "--fullversion" ]
+ then
+ return 0
+ fi
+ done
+ return 1
+}
+
+if test "${INSTALL_ROOT}" = ""
+then
+ # Capture the current working directory so that we can change to it later.
+ # Then capture the location of this script and the Directory Server instance
+ # root so that we can use them to create appropriate paths.
+ WORKING_DIR=`pwd`
+
+ cd "`dirname "${0}"`"
+ cd ..
+ INSTALL_ROOT=`pwd`
+ cd "${WORKING_DIR}"
+fi
+
+if test "${INSTANCE_ROOT}" = ""
+then
+ if [ -f ${INSTALL_ROOT}/configure ]
+ then
+ if [ -f /etc/opends/instance.loc ]
+ then
+ if [ "${SCRIPT_NAME}" = "configure" ]
+ then
+ isVersionOrHelp $*
+ if [ $? -eq 1 ]
+ then
+ echo "${INSTALL_ROOT}/configure has already been run. Exiting."
+ exit 0
+ fi
+ fi
+ read INSTANCE_ROOT < /etc/opends/instance.loc
+ else
+ if [ "${SCRIPT_NAME}" != "configure" ]
+ then
+ isVersionOrHelp $*
+ if [ $? -eq 1 ]
+ then
+ echo "No instance found. Run ${INSTALL_ROOT}/configure to create it."
+ exit 1
+ fi
+ fi
+ fi
+ else
+ if [ -f ${INSTALL_ROOT}/instance.loc ]
+ then
+ read location < ${INSTALL_ROOT}/instance.loc
+ case `echo ${location}` in
+ /*)
+ INSTANCE_ROOT=${location}
+ break
+ ;;
+ *)
+ INSTANCE_ROOT=${INSTALL_ROOT}/${location}
+ break
+ ;;
+ esac
+ else
+ INSTANCE_ROOT=${INSTALL_ROOT}
+ fi
+ fi
+ if [ -d "${INSTANCE_ROOT}" ]
+ then
+ CURRENT_DIR=`pwd`
+ cd "${INSTANCE_ROOT}"
+ INSTANCE_ROOT=`pwd`
+ export INSTANCE_ROOT
+ cd "${CURRENT_DIR}"
+ fi
+fi
+
+if test "${SCRIPT_UTIL_CMD}" = "set-full-environment-and-test-java"
+then
+ set_java_home_and_args
+ set_environment_vars
+ set_classpath
+ test_java
+elif test "${SCRIPT_UTIL_CMD}" = "set-full-environment"
+then
+ set_java_home_and_args
+ set_environment_vars
+ set_classpath
+elif test "${SCRIPT_UTIL_CMD}" = "set-java-home-and-args"
+then
+ set_java_home_and_args
+elif test "${SCRIPT_UTIL_CMD}" = "set-environment-vars"
+then
+ set_environment_vars
+elif test "${SCRIPT_UTIL_CMD}" = "set-classpath"
+then
+ set_classpath
+elif test "${SCRIPT_UTIL_CMD}" = "test-java"
+then
+ test_java
+fi
+
+current_user()
+{
+USER=`id`
+CURRENT_IFS=${IFS}
+IFS="()"
+set -- ${USER}
+echo $2
+IFS=${CURRENT_IFS}
+}
+
+if [ "${SCRIPT_NAME}" != "configure" ] && [ "${SCRIPT_NAME}" != "unconfigure" ]
+then
+ # Perform check unless it is specified not to do it
+ if [ -z "$NO_CHECK" ]
+ then
+ NO_CHECK=0
+ fi
+ if [ ${NO_CHECK} -eq 0 ]
+ then
+ # No check for --version or --help option
+ isVersionOrHelp $*
+ if [ $? -eq 0 ]
+ then
+ NO_CHECK=1
+ fi
+ fi
+ if [ ${NO_CHECK} -eq 0 ]
+ then
+ set_classpath
+ # Check instance
+ CURRENT_USER="`current_user`"
+ if [ "${CHECK_VERSION}" = "yes" ]
+ then
+ OPT_CHECK_VERSION="--checkVersion"
+ else
+ OPT_CHECK_VERSION=""
+ fi
+ # Launch the CheckInstance process.
+ "${OPENDS_JAVA_BIN}" ${SCRIPT_NAME_ARG} -DINSTALL_ROOT=${INSTALL_ROOT} -DINSTANCE_ROOT=${INSTANCE_ROOT} org.opends.server.tools.configurator.CheckInstance --currentUser ${CURRENT_USER} ${OPT_CHECK_VERSION}
+ # return part
+ RETURN_CODE=$?
+ if [ ${RETURN_CODE} -ne 0 ]
+ then
+ exit 1
+ fi
+ fi
+fi
diff --git a/sdk/resource/bin/ldapcompare b/sdk/resource/bin/ldapcompare
new file mode 100755
index 0000000..26ca941
--- /dev/null
+++ b/sdk/resource/bin/ldapcompare
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006-2008 Sun Microsystems, Inc.
+
+
+# This script may be used to perform LDAP compare operations.
+OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPCompare"
+export OPENDS_INVOKE_CLASS
+
+SCRIPT_NAME="ldapcompare"
+export SCRIPT_NAME
+
+SCRIPT_DIR=`dirname "${0}"`
+"${SCRIPT_DIR}/../lib/_client-script.sh" "${@}"
diff --git a/sdk/resource/bin/ldapcompare.bat b/sdk/resource/bin/ldapcompare.bat
new file mode 100755
index 0000000..0c5eec5
--- /dev/null
+++ b/sdk/resource/bin/ldapcompare.bat
@@ -0,0 +1,33 @@
+
+@echo off
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem by brackets "[]" replaced with your own identifying information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2006-2008 Sun Microsystems, Inc.
+
+setlocal
+
+set OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPCompare"
+set SCRIPT_NAME=ldapcompare
+for %%i in (%~sf0) do call "%%~dPsi\..\lib\_client-script.bat" %*
+
diff --git a/sdk/resource/bin/ldapmodify b/sdk/resource/bin/ldapmodify
new file mode 100755
index 0000000..db11fc0
--- /dev/null
+++ b/sdk/resource/bin/ldapmodify
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006-2008 Sun Microsystems, Inc.
+
+
+# This script may be used to perform LDAP add, delete, modify, and modify DN
+# operations.
+OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPModify"
+export OPENDS_INVOKE_CLASS
+
+SCRIPT_NAME="ldapmodify"
+export SCRIPT_NAME
+
+SCRIPT_DIR=`dirname "${0}"`
+"${SCRIPT_DIR}/../lib/_client-script.sh" "${@}"
diff --git a/sdk/resource/bin/ldapmodify.bat b/sdk/resource/bin/ldapmodify.bat
new file mode 100755
index 0000000..7ad361d
--- /dev/null
+++ b/sdk/resource/bin/ldapmodify.bat
@@ -0,0 +1,33 @@
+
+@echo off
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem by brackets "[]" replaced with your own identifying information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2006-2008 Sun Microsystems, Inc.
+
+setlocal
+
+set OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPModify"
+set SCRIPT_NAME=ldapmodify
+for %%i in (%~sf0) do call "%%~dPsi\..\lib\_client-script.bat" %*
+
diff --git a/sdk/resource/bin/ldappasswordmodify b/sdk/resource/bin/ldappasswordmodify
new file mode 100755
index 0000000..8d88905
--- /dev/null
+++ b/sdk/resource/bin/ldappasswordmodify
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006-2008 Sun Microsystems, Inc.
+
+
+# This script may be used to perform LDAP password modify operations.
+OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPPasswordModify"
+export OPENDS_INVOKE_CLASS
+
+SCRIPT_NAME="ldappasswordmodify"
+export SCRIPT_NAME
+
+SCRIPT_DIR=`dirname "${0}"`
+"${SCRIPT_DIR}/../lib/_client-script.sh" "${@}"
diff --git a/sdk/resource/bin/ldappasswordmodify.bat b/sdk/resource/bin/ldappasswordmodify.bat
new file mode 100755
index 0000000..beaf907
--- /dev/null
+++ b/sdk/resource/bin/ldappasswordmodify.bat
@@ -0,0 +1,33 @@
+
+@echo off
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem by brackets "[]" replaced with your own identifying information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2006-2008 Sun Microsystems, Inc.
+
+setlocal
+
+set OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPPasswordModify"
+set SCRIPT_NAME=ldappasswordmodify
+for %%i in (%~sf0) do call "%%~dPsi\..\lib\_client-script.bat" %*
+
diff --git a/sdk/resource/bin/ldapsearch b/sdk/resource/bin/ldapsearch
new file mode 100755
index 0000000..a827ce1
--- /dev/null
+++ b/sdk/resource/bin/ldapsearch
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006-2008 Sun Microsystems, Inc.
+
+
+# This script may be used to perform LDAP search operations.
+OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPSearch"
+export OPENDS_INVOKE_CLASS
+
+SCRIPT_NAME="ldapsearch"
+export SCRIPT_NAME
+
+SCRIPT_DIR=`dirname "${0}"`
+"${SCRIPT_DIR}/../lib/_client-script.sh" "${@}"
diff --git a/sdk/resource/bin/ldapsearch.bat b/sdk/resource/bin/ldapsearch.bat
new file mode 100755
index 0000000..59e86d7
--- /dev/null
+++ b/sdk/resource/bin/ldapsearch.bat
@@ -0,0 +1,33 @@
+
+@echo off
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem by brackets "[]" replaced with your own identifying information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2006-2008 Sun Microsystems, Inc.
+
+setlocal
+
+set OPENDS_INVOKE_CLASS="org.opends.sdk.tools.LDAPSearch"
+set SCRIPT_NAME=ldapsearch
+for %%i in (%~sf0) do call "%%~dPsi\..\lib\_client-script.bat" %*
+
diff --git a/sdk/resource/bin/setcp.bat b/sdk/resource/bin/setcp.bat
new file mode 100755
index 0000000..89dda4f
--- /dev/null
+++ b/sdk/resource/bin/setcp.bat
@@ -0,0 +1,40 @@
+
+rem CDDL HEADER START
+rem
+rem The contents of this file are subject to the terms of the
+rem Common Development and Distribution License, Version 1.0 only
+rem (the "License"). You may not use this file except in compliance
+rem with the License.
+rem
+rem You can obtain a copy of the license at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE
+rem or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+rem See the License for the specific language governing permissions
+rem and limitations under the License.
+rem
+rem When distributing Covered Code, include this CDDL HEADER in each
+rem file and include the License file at
+rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+rem add the following below this CDDL HEADER, with the fields enclosed
+rem by brackets "[]" replaced with your own identifying information:
+rem Portions Copyright [yyyy] [name of copyright owner]
+rem
+rem CDDL HEADER END
+rem
+rem
+rem Copyright 2006-2008 Sun Microsystems, Inc.
+
+set CLASSPATHCOMPONENT=%1
+if ""%1""=="""" goto gotAllArgs
+shift
+
+:argCheck
+if ""%1""=="""" goto gotAllArgs
+set CLASSPATHCOMPONENT=%CLASSPATHCOMPONENT% %1
+shift
+goto argCheck
+
+:gotAllArgs
+set CLASSPATH=%CLASSPATHCOMPONENT%;%CLASSPATH%
+
+
diff --git a/sdk/resource/legal-notices/BinariesLicense.txt b/sdk/resource/legal-notices/BinariesLicense.txt
new file mode 100755
index 0000000..6d9c8c2
--- /dev/null
+++ b/sdk/resource/legal-notices/BinariesLicense.txt
@@ -0,0 +1,180 @@
+SUN MICROSYSTEMS, INC. SOFTWARE LICENSE AGREEMENTS
+
+SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE BELOW DEFINED SOFTWARE
+TO YOU ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN
+THIS SOFTWARE LICENSE AGREEMENT ("AGREEMENT").
+
+PLEASE READ THE AGREEMENT CAREFULLY. BY DOWNLOADING OR INSTALLING THIS
+SOFTWARE, YOU ACCEPT THE FULL TERMS OF THE AGREEMENT.
+
+1. Definitions.
+
+"Software" means all the portions of the OpenDS distribution provided by Sun
+only in binary code form, and including any updates or error corrections or
+documentation provided by Sun under this Agreement.
+
+2. Permitted Uses.
+
+Subject to the terms and conditions of this Agreement and restrictions and
+exceptions set forth in the Software's documentation, Sun grants you a
+non-exclusive, non-transferable, limited license without fees to
+
+(a) reproduce and use internally the Software for the purposes of developing
+or running OpenDS or modified versions of OpenDS.
+
+(b) reproduce and distribute the Software (and also portions of Software
+identified as Redistributable in the documentation accompanying Software),
+provided that you
+
+ (i) distribute the Software or Redistributables bundled as part of, and for
+the sole purpose of running, OpenDS or modified versions of OpenDS;
+
+ (ii) do not remove or alter any proprietary legends or notices contained in
+or on the Software or Redistributables,
+
+ (iii) only distribute the Software or Redistributables subject to a license
+agreement that protects Sun's interests consistent with the terms contained in
+this Agreement, and
+
+ (iv) you agree to defend and indemnify Sun and its licensors from and against
+any damages, costs, liabilities, settlement amounts and/or expenses (including
+attorneys' fees) incurred in connection with any claim, lawsuit or action by
+any third party that arises or results from the use or distribution of any and
+all Programs, Software, or Redistributables.
+
+3. Restrictions.
+
+(a) The copies of Software provided to you under this Agreement is licensed,
+not sold, to you by Sun. Sun reserves all rights not expressly granted.
+
+(b) You may not modify Software. However if the documentation accompanying
+Software lists specific portions of Software, such as header files, class
+libraries, reference source code, and/or redistributable files, that may be
+handled differently, you may do so only as provided in the documentation.
+
+(c) You may not rent, lease, lend or encumber Software.
+
+(d) you do not remove or alter any proprietary legends or notices contained
+in the Software,
+
+(e) Unless enforcement is prohibited by applicable law, you may not decompile,
+or reverse engineer Software.
+
+(f) The terms and conditions of this Agreement will apply to any Software
+updates, provided to you at Sun's discretion, that replace and/or supplement
+the original Software, unless such update contains a separate license.
+
+(g) Software is confidential and copyrighted.
+
+(h) Software is not designed, licensed or intended for use in the design,
+construction, operation or maintenance of any nuclear facility and Sun and
+its licensors disclaim any express or implied warranty of fitness for such uses.
+
+(i) No right, title or interest in or to any trademark, service mark, logo or
+trade name of Sun or its licensors is granted under this Agreement.
+
+(j) If your Permitted Use in this Agreement permits the distribution Software
+or portions of the Software, you may only distribute the Software subject to
+a license agreement that protects Sun's interests consistent with the terms
+contained in this Agreement.
+
+4. Java Compatibility and Open Source.
+
+Software may contain Java technology. You may not create additional classes
+to, or modifications of, the Java technology, except under compatibility
+requirements available under a separate agreement available at www.java.net.
+Sun supports and benefits from the global community of open source developers,
+and thanks the community for its important contributions and open
+standards-based technology, which Sun has adopted into many of its products.
+Please note that portions of Software may be provided with notices and open
+source licenses from such communities and third parties that govern the use of
+those portions, and any licenses granted hereunder do not alter any rights and
+obligations you may have under such open source licenses, however, the
+disclaimer of warranty and limitation of liability provisions in this Agreement
+will apply to all Software in this distribution.
+
+5. Term and Termination.
+
+The Agreement is effective on the Date you receive the Software and remains
+effective until terminated. Your rights under this Agreement will terminate
+immediately without notice from Sun if you materially breach it or take any
+action in derogation of Sun's and/or its licensors' rights to Software. Sun
+may terminate this Agreement should any Software become, or in Sun's reasonable
+opinion likely to become, the subject of a claim of intellectual property
+infringement or trade secret misappropriation. Upon termination, you will
+cease use of, and destroy, Software and confirm compliance in writing to Sun.
+Sections 1, 3, 4, 5, and 7-13 will survive termination of the Agreement.
+
+6. Limited Warranty.
+
+Sun warrants to you that for a period of 90 days from the date of receipt, the
+media on which Software is furnished (if any) will be free of defects in
+materials and workmanship under normal use. Except for the foregoing, Software
+is provided "AS IS". Your exclusive remedy and Sun's entire liability under this
+limited warranty will be at Sun's option to replace Software media or refund the
+fee paid for Software. Some states do not allow limitations on certain implied
+warranties, so the above may not apply to you. This limited warranty gives you
+specific legal rights. You may have others, which vary from state to state.
+
+7. Disclaimer of Warranty.
+
+UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS,
+REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE
+DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY
+INVALID.
+
+8. Limitation of Liability.
+
+TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE
+LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT,
+CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE
+THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE
+SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no
+event will Sun's liability to you, whether in contract, tort (including
+negligence), or otherwise, exceed the amount paid by you for Software under this
+Agreement. The foregoing limitations will apply even if the above stated
+warranty fails of its essential purpose. Some states do not allow the exclusion
+of incidental or consequential damages, so some of the terms above may not be
+applicable to you.
+
+9. Export Regulations.
+
+All Software, documents, technical data, and any other materials delivered under
+this Agreement are subject to U.S. export control laws and may be subject to
+export or import regulations in other countries. You agree to comply strictly
+with these laws and regulations and acknowledge that you have the responsibility
+to obtain any licenses to export, re-export, or import as may be required after
+delivery to you.
+
+10. U.S. Government Restricted Rights.
+
+If Software is being acquired by or on behalf of the U.S. Government or by a
+U.S. Government prime contractor or subcontractor (at any tier), then the
+Government's rights in Software and accompanying documentation will be only as
+set forth in this Agreement; this is in accordance with 48 CFR 227.7201 through
+227.7202-4 (for Department of Defense (DOD) acquisitions) and with 48 CFR 2.101
+and 12.212 (for non-DOD acquisitions).
+
+11. Governing Law.
+
+Any action related to this Agreement will be governed by California law and
+controlling U.S. federal law. No choice of law rules of any jurisdiction will
+apply.
+
+12. Severability.
+
+If any provision of this Agreement is held to be unenforceable, this Agreement
+will remain in effect with the provision omitted, unless omission would
+frustrate the intent of the parties, in which case this Agreement will
+immediately terminate.
+
+13. Integration.
+
+This Agreement is the entire agreement between you and Sun relating to its
+subject matter. It supersedes all prior or contemporaneous oral or written
+communications, proposals, representations and warranties and prevails over any
+conflicting or additional terms of any quote, order, acknowledgment, or other
+communication between the parties relating to its subject matter during the term
+of this Agreement. No modification of this Agreement will be binding, unless in
+writing and signed by an authorized representative of each party.
diff --git a/sdk/resource/legal-notices/OpenDS.LICENSE b/sdk/resource/legal-notices/OpenDS.LICENSE
new file mode 100755
index 0000000..da23621
--- /dev/null
+++ b/sdk/resource/legal-notices/OpenDS.LICENSE
@@ -0,0 +1,384 @@
+Unless otherwise noted, all files in this distribution are released
+under the Common Development and Distribution License (CDDL).
+Exceptions are noted within the associated source files.
+
+--------------------------------------------------------------------
+
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0
+
+1. Definitions.
+
+ 1.1. "Contributor" means each individual or entity that creates
+ or contributes to the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original
+ Software, prior Modifications used by a Contributor (if any),
+ and the Modifications made by that particular Contributor.
+
+ 1.3. "Covered Software" means (a) the Original Software, or (b)
+ Modifications, or (c) the combination of files containing
+ Original Software with files containing Modifications, in
+ each case including portions thereof.
+
+ 1.4. "Executable" means the Covered Software in any form other
+ than Source Code.
+
+ 1.5. "Initial Developer" means the individual or entity that first
+ makes Original Software available under this License.
+
+ 1.6. "Larger Work" means a work which combines Covered Software or
+ portions thereof with code not governed by the terms of this
+ License.
+
+ 1.7. "License" means this document.
+
+ 1.8. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed
+ herein.
+
+ 1.9. "Modifications" means the Source Code and Executable form of
+ any of the following:
+
+ A. Any file that results from an addition to, deletion from or
+ modification of the contents of a file containing Original
+ Software or previous Modifications;
+
+ B. Any new file that contains any part of the Original
+ Software or previous Modifications; or
+
+ C. Any new file that is contributed or otherwise made
+ available under the terms of this License.
+
+ 1.10. "Original Software" means the Source Code and Executable
+ form of computer software code that is originally released
+ under this License.
+
+ 1.11. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by
+ grantor.
+
+ 1.12. "Source Code" means (a) the common form of computer software
+ code in which modifications are made and (b) associated
+ documentation included in or with such code.
+
+ 1.13. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms
+ of, this License. For legal entities, "You" includes any
+ entity which controls, is controlled by, or is under common
+ control with You. For purposes of this definition,
+ "control" means (a) the power, direct or indirect, to cause
+ the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty
+ percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants.
+
+ 2.1. The Initial Developer Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, the Initial
+ Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer, to use,
+ reproduce, modify, display, perform, sublicense and
+ distribute the Original Software (or portions thereof),
+ with or without Modifications, and/or as part of a Larger
+ Work; and
+
+ (b) under Patent Claims infringed by the making, using or
+ selling of Original Software, to make, have made, use,
+ practice, sell, and offer for sale, and/or otherwise
+ dispose of the Original Software (or portions thereof).
+
+ (c) The licenses granted in Sections 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ or otherwise makes the Original Software available to a
+ third party under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: (1) for code that You delete from the Original
+ Software, or (2) for infringements caused by: (i) the
+ modification of the Original Software, or (ii) the
+ combination of the Original Software with other software
+ or devices.
+
+ 2.2. Contributor Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, each
+ Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor to use, reproduce,
+ modify, display, perform, sublicense and distribute the
+ Modifications created by such Contributor (or portions
+ thereof), either on an unmodified basis, with other
+ Modifications, as Covered Software and/or as part of a
+ Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either
+ alone and/or in combination with its Contributor Version
+ (or portions of such combination), to make, use, sell,
+ offer for sale, have made, and/or otherwise dispose of:
+ (1) Modifications made by that Contributor (or portions
+ thereof); and (2) the combination of Modifications made by
+ that Contributor with its Contributor Version (or portions
+ of such combination).
+
+ (c) The licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first distributes or
+ otherwise makes the Modifications available to a third
+ party.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: (1) for any code that Contributor has deleted
+ from the Contributor Version; (2) for infringements caused
+ by: (i) third party modifications of Contributor Version,
+ or (ii) the combination of Modifications made by that
+ Contributor with other software (except as part of the
+ Contributor Version) or other devices; or (3) under Patent
+ Claims infringed by Covered Software in the absence of
+ Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Availability of Source Code.
+
+ Any Covered Software that You distribute or otherwise make
+ available in Executable form must also be made available in Source
+ Code form and that Source Code form must be distributed only under
+ the terms of this License. You must include a copy of this
+ License with every copy of the Source Code form of the Covered
+ Software You distribute or otherwise make available. You must
+ inform recipients of any such Covered Software in Executable form
+ as to how they can obtain such Covered Software in Source Code
+ form in a reasonable manner on or through a medium customarily
+ used for software exchange.
+
+ 3.2. Modifications.
+
+ The Modifications that You create or to which You contribute are
+ governed by the terms of this License. You represent that You
+ believe Your Modifications are Your original creation(s) and/or
+ You have sufficient rights to grant the rights conveyed by this
+ License.
+
+ 3.3. Required Notices.
+
+ You must include a notice in each of Your Modifications that
+ identifies You as the Contributor of the Modification. You may
+ not remove or alter any copyright, patent or trademark notices
+ contained within the Covered Software, or any notices of licensing
+ or any descriptive text giving attribution to any Contributor or
+ the Initial Developer.
+
+ 3.4. Application of Additional Terms.
+
+ You may not offer or impose any terms on any Covered Software in
+ Source Code form that alters or restricts the applicable version
+ of this License or the recipients' rights hereunder. You may
+ choose to offer, and to charge a fee for, warranty, support,
+ indemnity or liability obligations to one or more recipients of
+ Covered Software. However, you may do so only on Your own behalf,
+ and not on behalf of the Initial Developer or any Contributor.
+ You must make it absolutely clear that any such warranty, support,
+ indemnity or liability obligation is offered by You alone, and You
+ hereby agree to indemnify the Initial Developer and every
+ Contributor for any liability incurred by the Initial Developer or
+ such Contributor as a result of warranty, support, indemnity or
+ liability terms You offer.
+
+ 3.5. Distribution of Executable Versions.
+
+ You may distribute the Executable form of the Covered Software
+ under the terms of this License or under the terms of a license of
+ Your choice, which may contain terms different from this License,
+ provided that You are in compliance with the terms of this License
+ and that the license for the Executable form does not attempt to
+ limit or alter the recipient's rights in the Source Code form from
+ the rights set forth in this License. If You distribute the
+ Covered Software in Executable form under a different license, You
+ must make it absolutely clear that any terms which differ from
+ this License are offered by You alone, not by the Initial
+ Developer or Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred
+ by the Initial Developer or such Contributor as a result of any
+ such terms You offer.
+
+ 3.6. Larger Works.
+
+ You may create a Larger Work by combining Covered Software with
+ other code not governed by the terms of this License and
+ distribute the Larger Work as a single product. In such a case,
+ You must make sure the requirements of this License are fulfilled
+ for the Covered Software.
+
+4. Versions of the License.
+
+ 4.1. New Versions.
+
+ Sun Microsystems, Inc. is the initial license steward and may
+ publish revised and/or new versions of this License from time to
+ time. Each version will be given a distinguishing version number.
+ Except as provided in Section 4.3, no one other than the license
+ steward has the right to modify this License.
+
+ 4.2. Effect of New Versions.
+
+ You may always continue to use, distribute or otherwise make the
+ Covered Software available under the terms of the version of the
+ License under which You originally received the Covered Software.
+ If the Initial Developer includes a notice in the Original
+ Software prohibiting it from being distributed or otherwise made
+ available under any subsequent version of the License, You must
+ distribute and make the Covered Software available under the terms
+ of the version of the License under which You originally received
+ the Covered Software. Otherwise, You may also choose to use,
+ distribute or otherwise make the Covered Software available under
+ the terms of any subsequent version of the License published by
+ the license steward.
+
+ 4.3. Modified Versions.
+
+ When You are an Initial Developer and You want to create a new
+ license for Your Original Software, You may create and use a
+ modified version of this License if You: (a) rename the license
+ and remove any references to the name of the license steward
+ (except to note that the license differs from this License); and
+ (b) otherwise make it clear that the license contains terms which
+ differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+ BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+ INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+ SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+ PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+ PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+ COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+ INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
+ NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+ WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+ DISCLAIMER.
+
+6. TERMINATION.
+
+ 6.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to
+ cure such breach within 30 days of becoming aware of the breach.
+ Provisions which, by their nature, must remain in effect beyond
+ the termination of this License shall survive.
+
+ 6.2. If You assert a patent infringement claim (excluding
+ declaratory judgment actions) against Initial Developer or a
+ Contributor (the Initial Developer or Contributor against whom You
+ assert such claim is referred to as "Participant") alleging that
+ the Participant Software (meaning the Contributor Version where
+ the Participant is a Contributor or the Original Software where
+ the Participant is the Initial Developer) directly or indirectly
+ infringes any patent, then any and all rights granted directly or
+ indirectly to You by such Participant, the Initial Developer (if
+ the Initial Developer is not the Participant) and all Contributors
+ under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
+ notice from Participant terminate prospectively and automatically
+ at the expiration of such 60 day notice period, unless if within
+ such 60 day period You withdraw Your claim with respect to the
+ Participant Software against such Participant either unilaterally
+ or pursuant to a written agreement with Participant.
+
+ 6.3. In the event of termination under Sections 6.1 or 6.2 above,
+ all end user licenses that have been validly granted by You or any
+ distributor hereunder prior to termination (excluding licenses
+ granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+ INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+ COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+ LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+ CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+ STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+ INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+ NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+ CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+ APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+ The Covered Software is a "commercial item," as that term is
+ defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+ computer software" (as that term is defined at 48
+ C.F.R. 252.227-7014(a)(1)) and "commercial computer software
+ documentation" as such terms are used in 48 C.F.R. 12.212
+ (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48
+ C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
+ U.S. Government End Users acquire Covered Software with only those
+ rights set forth herein. This U.S. Government Rights clause is in
+ lieu of, and supersedes, any other FAR, DFAR, or other clause or
+ provision that addresses Government rights in computer software
+ under this License.
+
+9. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed
+ by the law of the jurisdiction specified in a notice contained
+ within the Original Software (except to the extent applicable law,
+ if any, provides otherwise), excluding such jurisdiction's
+ conflict-of-law provisions. Any litigation relating to this
+ License shall be subject to the jurisdiction of the courts located
+ in the jurisdiction and venue specified in a notice contained
+ within the Original Software, with the losing party responsible
+ for costs, including, without limitation, court costs and
+ reasonable attorneys' fees and expenses. The application of the
+ United Nations Convention on Contracts for the International Sale
+ of Goods is expressly excluded. Any law or regulation which
+ provides that the language of a contract shall be construed
+ against the drafter shall not apply to this License. You agree
+ that You alone are responsible for compliance with the United
+ States export administration regulations (and the export control
+ laws and regulation of any other countries) when You use,
+ distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or
+ indirectly, out of its utilization of rights under this License
+ and You agree to work with Initial Developer and Contributors to
+ distribute such responsibility on an equitable basis. Nothing
+ herein is intended or shall be deemed to constitute any admission
+ of liability.
+
+--------------------------------------------------------------------
+
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
+DISTRIBUTION LICENSE (CDDL)
+
+For Covered Software in this distribution, this License shall
+be governed by the laws of the State of California (excluding
+conflict-of-law provisions).
+
+Any litigation relating to this License shall be subject to the
+jurisdiction of the Federal Courts of the Northern District of
+California and the state courts of the State of California, with
+venue lying in Santa Clara County, California.
diff --git a/sdk/resource/legal-notices/THIRDPARTYREADME.txt b/sdk/resource/legal-notices/THIRDPARTYREADME.txt
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/sdk/resource/legal-notices/THIRDPARTYREADME.txt
diff --git a/sdk/resource/opends_logo.png b/sdk/resource/opends_logo.png
new file mode 100755
index 0000000..3e0b880
--- /dev/null
+++ b/sdk/resource/opends_logo.png
Binary files differ
diff --git a/sdk/src/com/sun/opends/sdk/util/Message.java b/sdk/src/com/sun/opends/sdk/util/Message.java
new file mode 100755
index 0000000..b97b1e0
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/Message.java
@@ -0,0 +1,543 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008 Sun Microsystems, Inc.
+ */
+
+package com.sun.opends.sdk.util;
+
+
+
+import java.util.Formattable;
+import java.util.Formatter;
+import java.util.IllegalFormatException;
+import java.util.Locale;
+
+
+
+/**
+ * Renders sensitive textural strings. In most cases message are
+ * intended to render textural strings in a locale-sensitive manner
+ * although this class defines convenience methods for creating
+ * uninternationalized <code>Message</code> objects that render the same
+ * text regardless of the requested locale. This class implements
+ * <code>CharSequence</code> so that messages can be supplied as
+ * arguments to other messages. This way messages can be composed of
+ * fragments of other messages if necessary.
+ *
+ * @see MessageDescriptor
+ */
+public final class Message implements CharSequence, Formattable,
+ Comparable<Message>
+{
+
+ /** Represents an empty message string. */
+ public static final Message EMPTY = Message.raw("");
+
+ // Variable used to workaround a bug in AIX Java 1.6
+ // TODO: remove this code once the JDK issue referenced in 3077 is
+ // closed.
+ private final boolean isAIXPost5 = isAIXPost5();
+
+
+
+ /**
+ * Creates an uninternationalized message that will render itself the
+ * same way regardless of the locale requested in
+ * <code>toString(Locale)</code>. The message will have a category of
+ * <code>Category.USER_DEFINED</code> and a severity of
+ * <code>Severity.INFORMATION</code> Note that the types for
+ * <code>args</code> must be consistent with any argument specifiers
+ * appearing in <code>formatString</code> according to the rules of
+ * java.util.Formatter. A mismatch in type information will cause this
+ * message to render without argument substitution. Before using this
+ * method you should be sure that the message you are creating is
+ * locale sensitive. If so you should instead create a formal message.
+ *
+ * @param formatString
+ * of the message or the message itself if not arguments are
+ * necessary
+ * @param args
+ * any arguments for the format string
+ * @return a message object that will render the same in all locales;
+ * null if <code>formatString</code> is null
+ */
+ static public Message raw(CharSequence formatString, Object... args)
+ {
+ Message message = null;
+ if (formatString != null)
+ {
+ message = new MessageDescriptor.Raw(formatString).get(args);
+ }
+ return message;
+ }
+
+
+
+ /**
+ * Creates an uninternationalized message from the string
+ * representation of an object. Note that the types for
+ * <code>args</code> must be consistent with any argument specifiers
+ * appearing in <code>formatString</code> according to the rules of
+ * java.util.Formatter. A mismatch in type information will cause this
+ * message to render without argument substitution.
+ *
+ * @param object
+ * from which the message will be created
+ * @param arguments
+ * for message
+ * @return a message object that will render the same in all locales;
+ * null if <code>object</code> is null
+ */
+ static public Message fromObject(Object object, Object... arguments)
+ {
+ Message message = null;
+ if (object != null)
+ {
+ CharSequence cs = object.toString();
+ message = raw(cs, arguments);
+ }
+ return message;
+ }
+
+
+
+ /**
+ * Returns the string representation of the message in the default
+ * locale.
+ *
+ * @param message
+ * to stringify
+ * @return String representation of of <code>message</code> of null if
+ * <code>message</code> is null
+ */
+ static public String toString(Message message)
+ {
+ return message != null ? message.toString() : null;
+ }
+
+
+
+ /** Descriptor of this message. */
+ private final MessageDescriptor descriptor;
+
+ /** Values used to replace argument specifiers in the format string. */
+ private final Object[] args;
+
+
+
+ /**
+ * Gets the string representation of this message.
+ *
+ * @return String representation of this message
+ */
+ public String toString()
+ {
+ return toString(Locale.getDefault());
+ }
+
+
+
+ /**
+ * Gets the string representation of this message appropriate for
+ * <code>locale</code>.
+ *
+ * @param locale
+ * for which the string representation will be returned
+ * @return String representation of this message
+ */
+ public String toString(Locale locale)
+ {
+ String s;
+ String fmt = descriptor.getFormatString(locale);
+ if (descriptor.requiresFormatter())
+ {
+ try
+ {
+ // TODO: remove this code once the JDK issue referenced in 3077
+ // is
+ // closed.
+ if (isAIXPost5)
+ {
+ // Java 6 in AIX Formatter does not handle properly
+ // Formattable
+ // arguments; this code is a workaround for the problem.
+ boolean changeType = false;
+ for (Object o : args)
+ {
+ if (o instanceof Formattable)
+ {
+ changeType = true;
+ break;
+ }
+ }
+ if (changeType)
+ {
+ Object[] newArgs = new Object[args.length];
+ for (int i = 0; i < args.length; i++)
+ {
+ if (args[i] instanceof Formattable)
+ {
+ newArgs[i] = args[i].toString();
+ }
+ else
+ {
+ newArgs[i] = args[i];
+ }
+ }
+ s = new Formatter(locale).format(locale, fmt, newArgs)
+ .toString();
+ }
+ else
+ {
+ s = new Formatter(locale).format(locale, fmt, args)
+ .toString();
+ }
+ }
+ else
+ {
+ s = new Formatter(locale).format(locale, fmt, args)
+ .toString();
+ }
+ }
+ catch (IllegalFormatException e)
+ {
+ // This should not happend with any of our internal messages.
+ // However, this may happen for raw messages that have a
+ // mismatch between argument specifier type and argument type.
+ s = fmt;
+ }
+ }
+ else
+ {
+ s = fmt;
+ }
+ if (s == null) s = "";
+ return s;
+ }
+
+
+
+ /**
+ * Gets the descriptor that holds descriptive information about this
+ * message.
+ *
+ * @return MessageDescriptor information
+ */
+ public MessageDescriptor getDescriptor()
+ {
+ return this.descriptor;
+ }
+
+
+
+ /**
+ * Returns the length of this message as rendered using the default
+ * locale.
+ *
+ * @return the number of <code>char</code>s in this message
+ */
+ public int length()
+ {
+ return length(Locale.getDefault());
+ }
+
+
+
+ /**
+ * Returns the byte representation of this messages in the default
+ * locale.
+ *
+ * @return bytes for this message
+ */
+ public byte[] getBytes()
+ {
+ return toString().getBytes();
+ }
+
+
+
+ /**
+ * Returns the <code>char</code> value at the specified index of this
+ * message rendered using the default locale.
+ *
+ * @param index
+ * the index of the <code>char</code> value to be returned
+ * @return the specified <code>char</code> value
+ * @throws IndexOutOfBoundsException
+ * if the <tt>index</tt> argument is negative or not less
+ * than <tt>length()</tt>
+ */
+ public char charAt(int index) throws IndexOutOfBoundsException
+ {
+ return charAt(Locale.getDefault(), index);
+ }
+
+
+
+ /**
+ * Returns a new <code>CharSequence</code> that is a subsequence of
+ * this message rendered using the default locale. The subsequence
+ * starts with the <code>char</code> value at the specified index and
+ * ends with the <code>char</code> value at index <tt>end - 1</tt>.
+ * The length (in <code>char</code>s) of the returned sequence is
+ * <tt>end - start</tt>, so if <tt>start == end</tt> then an empty
+ * sequence is returned.
+ *
+ * @param start
+ * the start index, inclusive
+ * @param end
+ * the end index, exclusive
+ * @return the specified subsequence
+ * @throws IndexOutOfBoundsException
+ * if <tt>start</tt> or <tt>end</tt> are negative, if
+ * <tt>end</tt> is greater than <tt>length()</tt>, or if
+ * <tt>start</tt> is greater than <tt>end</tt>
+ */
+ public CharSequence subSequence(int start, int end)
+ throws IndexOutOfBoundsException
+ {
+ return subSequence(Locale.getDefault(), start, end);
+ }
+
+
+
+ /**
+ * Returns the length of this message as rendered using a specific
+ * locale.
+ *
+ * @param locale
+ * for which the rendering of this message will be used in
+ * determining the length
+ * @return the number of <code>char</code>s in this message
+ */
+ public int length(Locale locale)
+ {
+ return toString(locale).length();
+ }
+
+
+
+ /**
+ * Returns the <code>char</code> value at the specified index of this
+ * message rendered using a specific.
+ *
+ * @param locale
+ * for which the rendering of this message will be used in
+ * determining the character
+ * @param index
+ * the index of the <code>char</code> value to be returned
+ * @return the specified <code>char</code> value
+ * @throws IndexOutOfBoundsException
+ * if the <tt>index</tt> argument is negative or not less
+ * than <tt>length()</tt>
+ */
+ public char charAt(Locale locale, int index)
+ throws IndexOutOfBoundsException
+ {
+ return toString(locale).charAt(index);
+ }
+
+
+
+ /**
+ * Returns a new <code>CharSequence</code> that is a subsequence of
+ * this message rendered using a specific locale. The subsequence
+ * starts with the <code>char</code> value at the specified index and
+ * ends with the <code>char</code> value at index <tt>end - 1</tt>.
+ * The length (in <code>char</code>s) of the returned sequence is
+ * <tt>end - start</tt>, so if <tt>start == end</tt> then an empty
+ * sequence is returned.
+ *
+ * @param locale
+ * for which the rendering of this message will be used in
+ * determining the character
+ * @param start
+ * the start index, inclusive
+ * @param end
+ * the end index, exclusive
+ * @return the specified subsequence
+ * @throws IndexOutOfBoundsException
+ * if <tt>start</tt> or <tt>end</tt> are negative, if
+ * <tt>end</tt> is greater than <tt>length()</tt>, or if
+ * <tt>start</tt> is greater than <tt>end</tt>
+ */
+ public CharSequence subSequence(Locale locale, int start, int end)
+ throws IndexOutOfBoundsException
+ {
+ return toString(locale).subSequence(start, end);
+ }
+
+
+
+ /**
+ * Formats the object using the provided {@link Formatter formatter}.
+ *
+ * @param formatter
+ * The {@link Formatter formatter}.
+ * @param flags
+ * The flags modify the output format. The value is
+ * interpreted as a bitmask. Any combination of the following
+ * flags may be set:
+ * {@link java.util.FormattableFlags#LEFT_JUSTIFY},
+ * {@link java.util.FormattableFlags#UPPERCASE}, and
+ * {@link java.util.FormattableFlags#ALTERNATE}. If no flags
+ * are set, the default formatting of the implementing class
+ * will apply.
+ * @param width
+ * The minimum number of characters to be written to the
+ * output. If the length of the converted value is less than
+ * the <tt>width</tt> then the output will be padded by <tt>' '</tt>
+ * until the total number of characters equals width. The
+ * padding is at the beginning by default. If the
+ * {@link java.util.FormattableFlags#LEFT_JUSTIFY} flag is
+ * set then the padding will be at the end. If <tt>width</tt>
+ * is <tt>-1</tt> then there is no minimum.
+ * @param precision
+ * The maximum number of characters to be written to the
+ * output. The precision is applied before the width, thus
+ * the output will be truncated to <tt>precision</tt>
+ * characters even if the <tt>width</tt> is greater than the
+ * <tt>precision</tt>. If <tt>precision</tt> is <tt>-1</tt>
+ * then there is no explicit limit on the number of
+ * characters.
+ * @throws IllegalFormatException
+ * If any of the parameters are invalid. For specification
+ * of all possible formatting errors, see the <a
+ * href="../util/Formatter.html#detail">Details</a> section
+ * of the formatter class specification.
+ */
+ public void formatTo(Formatter formatter, int flags, int width,
+ int precision) throws IllegalFormatException
+ {
+ // Ignores flags, width and precission for now.
+ // see javadoc for Formattable
+ Locale l = formatter.locale();
+ formatter.format(l, descriptor.getFormatString(l), args);
+ }
+
+
+
+ /**
+ * Creates a parameterized instance. See the class header for
+ * instructions on how to create messages outside this package.
+ *
+ * @param descriptor
+ * for this message
+ * @param args
+ * arguments for replacing specifiers in the message's format
+ * string
+ */
+ Message(MessageDescriptor descriptor, Object... args)
+ {
+ this.descriptor = descriptor;
+ this.args = args;
+ }
+
+
+
+ /**
+ * Compares this object with the specified object for order. Returns a
+ * negative integer, zero, or a positive integer as this object is
+ * less than, equal to, or greater than the specified object.
+ *
+ * @param o
+ * the object to be compared.
+ * @return a negative integer, zero, or a positive integer as this
+ * object is less than, equal to, or greater than the
+ * specified object.
+ */
+ public int compareTo(Message o)
+ {
+ return toString().compareTo(o.toString());
+ }
+
+
+
+ /**
+ * Indicates whether some other message is "equal to" this one.
+ * Messages are considered equal if their string representation in the
+ * default locale are equal.
+ *
+ * @param o
+ * the reference object with which to compare.
+ * @return <code>true</code> if this object is the same as the obj
+ * argument; <code>false</code> otherwise.
+ * @see #hashCode()
+ * @see java.util.Hashtable
+ */
+ public boolean equals(Object o)
+ {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Message message = (Message) o;
+
+ return toString().equals(message.toString());
+ }
+
+
+
+ /**
+ * Returns a hash code value for the object.
+ *
+ * @return a hash code value for this object.
+ * @see java.lang.Object#equals(java.lang.Object)
+ * @see java.util.Hashtable
+ */
+ public int hashCode()
+ {
+ int result;
+ result = 31 * toString().hashCode();
+ return result;
+ }
+
+
+
+ // TODO: remove this code once the JDK issue referenced in 3077 is
+ // closed.
+ /**
+ * Returns whether we are running post 1.5 on AIX or not.
+ *
+ * @return <CODE>true</CODE> if we are running post 1.5 on AIX and
+ * <CODE>false</CODE> otherwise.
+ */
+ private boolean isAIXPost5()
+ {
+ boolean isJDK15 = false;
+ try
+ {
+ String javaRelease = System.getProperty("java.version");
+ isJDK15 = javaRelease.startsWith("1.5");
+ }
+ catch (Throwable t)
+ {
+ System.err.println("Cannot get the java version: " + t);
+ }
+ boolean isAIX = "aix".equalsIgnoreCase(System
+ .getProperty("os.name"));
+ return !isJDK15 && isAIX;
+ }
+
+}
diff --git a/sdk/src/com/sun/opends/sdk/util/MessageBuilder.java b/sdk/src/com/sun/opends/sdk/util/MessageBuilder.java
new file mode 100755
index 0000000..7c9d4ba
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/MessageBuilder.java
@@ -0,0 +1,456 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2007-2009 Sun Microsystems, Inc.
+ */
+
+package com.sun.opends.sdk.util;
+
+
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+
+
+
+;
+
+/**
+ * A builder used specifically for messages. As messages are appended
+ * they are translated to their string representation for storage using
+ * the locale specified in the constructor. Note that before you use
+ * this class you should consider whether it is appropriate. In general
+ * composing messages by appending message to each other may not produce
+ * a message that is formatted appropriately for all locales. It is
+ * usually better to create messages by composition. In other words you
+ * should create a base message that contains one or more string
+ * argument specifiers (%s) and define other message objects to use as
+ * replacement variables. In this way language translators have a change
+ * to reformat the message for a particular locale if necessary.
+ */
+public final class MessageBuilder implements Appendable, CharSequence,
+ Serializable
+{
+
+ private static final long serialVersionUID = -3292823563904285315L;
+
+ /** Used internally to store appended messages. */
+ private final StringBuilder sb = new StringBuilder();
+
+ /** Used internally to store appended messages. */
+ private final List<Message> messages = new LinkedList<Message>();
+
+ /** Used to render the string representation of appended messages. */
+ private final Locale locale;
+
+
+
+ /**
+ * Constructs an instance that will build messages in the default
+ * locale.
+ */
+ public MessageBuilder()
+ {
+ this(Locale.getDefault());
+ }
+
+
+
+ /**
+ * Constructs an instance that will build messages in the default
+ * locale having an initial message.
+ *
+ * @param message
+ * initial message
+ */
+ public MessageBuilder(Message message)
+ {
+ this(Locale.getDefault());
+ append(message);
+ }
+
+
+
+ /**
+ * Constructs an instance that will build messages in the default
+ * locale having an initial message.
+ *
+ * @param message
+ * initial message
+ */
+ public MessageBuilder(String message)
+ {
+ this(Locale.getDefault());
+ append(message);
+ }
+
+
+
+ /**
+ * Constructs an instance from another <code>MessageBuilder</code>.
+ *
+ * @param mb
+ * from which to construct a new message builder
+ */
+ public MessageBuilder(MessageBuilder mb)
+ {
+ for (Message msg : mb.messages)
+ {
+ this.messages.add(msg);
+ }
+ this.sb.append(sb);
+ this.locale = mb.locale;
+ }
+
+
+
+ /**
+ * Constructs an instance that will build messages in a specified
+ * locale.
+ *
+ * @param locale
+ * used for translating appended messages
+ */
+ public MessageBuilder(Locale locale)
+ {
+ this.locale = locale;
+ }
+
+
+
+ /**
+ * Append a message to this builder. The string representation of the
+ * locale specifed in the constructor will be stored in this builder.
+ *
+ * @param message
+ * to be appended
+ * @return reference to this builder
+ */
+ public MessageBuilder append(Message message)
+ {
+ if (message != null)
+ {
+ sb.append(message.toString(locale));
+ messages.add(message);
+ }
+ return this;
+ }
+
+
+
+ /**
+ * Append an integer to this builder.
+ *
+ * @param number
+ * to append
+ * @return reference to this builder
+ */
+ public MessageBuilder append(int number)
+ {
+ append(String.valueOf(number));
+ return this;
+ }
+
+
+
+ /**
+ * Append an object to this builder.
+ *
+ * @param object
+ * to append
+ * @return reference to this builder
+ */
+ public MessageBuilder append(Object object)
+ {
+ if (object != null)
+ {
+ append(String.valueOf(object));
+ }
+ return this;
+ }
+
+
+
+ /**
+ * Append a string to this builder.
+ *
+ * @param cs
+ * to append
+ * @return reference to this builder
+ */
+ public MessageBuilder append(CharSequence cs)
+ {
+ if (cs != null)
+ {
+ sb.append(cs);
+ if (cs instanceof Message)
+ {
+ messages.add((Message) cs);
+ }
+ else
+ {
+ messages.add(Message.raw(cs));
+ }
+ }
+ return this;
+ }
+
+
+
+ /**
+ * Appends a subsequence of the specified character sequence to this
+ * <tt>Appendable</tt>.
+ * <p>
+ * An invocation of this method of the form <tt>out.append(csq, start,
+ * end)</tt> when <tt>csq</tt> is not <tt>null</tt>, behaves in
+ * exactly the same way as the invocation
+ *
+ * <pre>
+ * out.append(csq.subSequence(start, end))
+ * </pre>
+ *
+ * @param csq
+ * The character sequence from which a subsequence will be
+ * appended. If <tt>csq</tt> is <tt>null</tt>, then
+ * characters will be appended as if <tt>csq</tt> contained
+ * the four characters <tt>"null"</tt>.
+ * @param start
+ * The index of the first character in the subsequence
+ * @param end
+ * The index of the character following the last character in
+ * the subsequence
+ * @return A reference to this <tt>Appendable</tt>
+ * @throws IndexOutOfBoundsException
+ * If <tt>start</tt> or <tt>end</tt> are negative,
+ * <tt>start</tt> is greater than <tt>end</tt>, or
+ * <tt>end</tt> is greater than <tt>csq.length()</tt>
+ */
+ public MessageBuilder append(CharSequence csq, int start, int end)
+ throws IndexOutOfBoundsException
+ {
+ return append(csq.subSequence(start, end));
+ }
+
+
+
+ /**
+ * Appends the specified character to this <tt>Appendable</tt>.
+ *
+ * @param c
+ * The character to append
+ * @return A reference to this <tt>Appendable</tt>
+ */
+ public MessageBuilder append(char c)
+ {
+ return append(String.valueOf(c));
+ }
+
+
+
+ /**
+ * Returns a string containing the characters in this sequence in the
+ * same order as this sequence. The length of the string will be the
+ * length of this sequence.
+ *
+ * @return a string consisting of exactly this sequence of characters
+ */
+ public String toString()
+ {
+ return sb.toString();
+ }
+
+
+
+ /**
+ * Returns a string representation of the appended content in the
+ * specific locale. Only <code>Message</code>s appended to this
+ * builder are rendered in the requested locale. Raw strings appended
+ * to this buffer are not translated to different locale.
+ *
+ * @param locale
+ * requested
+ * @return String representation
+ */
+ public String toString(Locale locale)
+ {
+ StringBuilder sb = new StringBuilder();
+ for (Message m : messages)
+ {
+ sb.append(m.toString(locale));
+ }
+ return sb.toString();
+ }
+
+
+
+ /**
+ * Returns a raw message representation of the appended content.
+ *
+ * @return Message raw message representing builder content
+ */
+ public Message toMessage()
+ {
+ if (messages.isEmpty())
+ {
+ return Message.EMPTY;
+ }
+
+ StringBuffer fmtString = new StringBuffer();
+ for (int i = 0; i < messages.size(); i++)
+ {
+ fmtString.append("%s");
+ }
+
+ return Message.raw(fmtString, messages.toArray());
+ }
+
+
+
+ /**
+ * Returns the length of the string representation of this builder
+ * using the default locale.
+ *
+ * @return the number of <code>char</code>s in this message
+ */
+ public int length()
+ {
+ return length(Locale.getDefault());
+ }
+
+
+
+ /**
+ * Returns the <code>char</code> value at the specified index of the
+ * string representation of this builder using the default locale.
+ *
+ * @param index
+ * the index of the <code>char</code> value to be returned
+ * @return the specified <code>char</code> value
+ * @throws IndexOutOfBoundsException
+ * if the <tt>index</tt> argument is negative or not less
+ * than <tt>length()</tt>
+ */
+ public char charAt(int index) throws IndexOutOfBoundsException
+ {
+ return charAt(Locale.getDefault(), index);
+ }
+
+
+
+ /**
+ * Returns a new <code>CharSequence</code> that is a subsequence of
+ * the string representation of this builder using the default locale.
+ * The subsequence starts with the <code>char</code> value at the
+ * specified index and ends with the <code>char</code> value at index
+ * <tt>end - 1</tt>. The length (in <code>char</code>s) of the
+ * returned sequence is <tt>end - start</tt>, so if
+ * <tt>start == end</tt> then an empty sequence is returned.
+ *
+ * @param start
+ * the start index, inclusive
+ * @param end
+ * the end index, exclusive
+ * @return the specified subsequence
+ * @throws IndexOutOfBoundsException
+ * if <tt>start</tt> or <tt>end</tt> are negative, if
+ * <tt>end</tt> is greater than <tt>length()</tt>, or if
+ * <tt>start</tt> is greater than <tt>end</tt>
+ */
+ public CharSequence subSequence(int start, int end)
+ throws IndexOutOfBoundsException
+ {
+ return subSequence(Locale.getDefault(), start, end);
+ }
+
+
+
+ /**
+ * Returns the length of the string representation of this builder
+ * using a specific locale.
+ *
+ * @param locale
+ * for which the rendering of this message will be used in
+ * determining the length
+ * @return the number of <code>char</code>s in this message
+ */
+ public int length(Locale locale)
+ {
+ return toString(locale).length();
+ }
+
+
+
+ /**
+ * Returns the <code>char</code> value at the specified index of the
+ * string representation of this builder using a specific locale.
+ *
+ * @param locale
+ * for which the rendering of this message will be used in
+ * determining the character
+ * @param index
+ * the index of the <code>char</code> value to be returned
+ * @return the specified <code>char</code> value
+ * @throws IndexOutOfBoundsException
+ * if the <tt>index</tt> argument is negative or not less
+ * than <tt>length()</tt>
+ */
+ public char charAt(Locale locale, int index)
+ throws IndexOutOfBoundsException
+ {
+ return toString(locale).charAt(index);
+ }
+
+
+
+ /**
+ * Returns a new <code>CharSequence</code> that is a subsequence of
+ * the string representation of this builder using a specific locale.
+ * The subsequence starts with the <code>char</code> value at the
+ * specified index and ends with the <code>char</code> value at index
+ * <tt>end - 1</tt>. The length (in <code>char</code>s) of the
+ * returned sequence is <tt>end - start</tt>, so if
+ * <tt>start == end</tt> then an empty sequence is returned.
+ *
+ * @param locale
+ * for which the rendering of this message will be used in
+ * determining the character
+ * @param start
+ * the start index, inclusive
+ * @param end
+ * the end index, exclusive
+ * @return the specified subsequence
+ * @throws IndexOutOfBoundsException
+ * if <tt>start</tt> or <tt>end</tt> are negative, if
+ * <tt>end</tt> is greater than <tt>length()</tt>, or if
+ * <tt>start</tt> is greater than <tt>end</tt>
+ */
+ public CharSequence subSequence(Locale locale, int start, int end)
+ throws IndexOutOfBoundsException
+ {
+ return toString(locale).subSequence(start, end);
+ }
+
+}
diff --git a/sdk/src/com/sun/opends/sdk/util/MessageDescriptor.java b/sdk/src/com/sun/opends/sdk/util/MessageDescriptor.java
new file mode 100755
index 0000000..7dc9270
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/MessageDescriptor.java
@@ -0,0 +1,1272 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008 Sun Microsystems, Inc.
+ */
+
+package com.sun.opends.sdk.util;
+
+
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+
+
+/**
+ * Base class for all Message descriptor classes.
+ */
+public abstract class MessageDescriptor
+{
+
+ /**
+ * ID for messages that don't have a real ID.
+ */
+ public static final int NULL_ID = -1;
+
+
+
+ /**
+ * Subclass for creating messages with no arguments.
+ */
+ static public final class Arg0 extends MessageDescriptor
+ {
+
+ /**
+ * Cached copy of the message created by this descriptor. We can get
+ * away with this for the zero argument message because it is
+ * immutable.
+ */
+ private Message message;
+
+ private boolean requiresFormat;
+
+
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg0(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ message = new Message(this);
+ requiresFormat = containsArgumentLiterals(getFormatString());
+ }
+
+
+
+ /**
+ * Creates a message.
+ *
+ * @return Message object
+ */
+ public Message get()
+ {
+ return message;
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return requiresFormat;
+ }
+ }
+
+
+
+ /**
+ * Subclass for creating messages with one argument.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ */
+ static public final class Arg1<T1> extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg1(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ */
+ public Message get(T1 a1)
+ {
+ return new Message(this, a1);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with two arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ */
+ static public final class Arg2<T1, T2> extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg2(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2)
+ {
+ return new Message(this, a1, a2);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with three arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ */
+ static public final class Arg3<T1, T2, T3> extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg3(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3)
+ {
+ return new Message(this, a1, a2, a3);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with four arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ */
+ static public final class Arg4<T1, T2, T3, T4> extends
+ MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg4(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4)
+ {
+ return new Message(this, a1, a2, a3, a4);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with five arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ * @param <T5>
+ * The type of the fifth message argument.
+ */
+ static public final class Arg5<T1, T2, T3, T4, T5> extends
+ MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg5(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ * @param a5
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
+ {
+ return new Message(this, a1, a2, a3, a4, a5);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with six arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ * @param <T5>
+ * The type of the fifth message argument.
+ * @param <T6>
+ * The type of the sixth message argument.
+ */
+ static public final class Arg6<T1, T2, T3, T4, T5, T6> extends
+ MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg6(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ * @param a5
+ * message argument
+ * @param a6
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
+ {
+ return new Message(this, a1, a2, a3, a4, a5, a6);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with seven arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ * @param <T5>
+ * The type of the fifth message argument.
+ * @param <T6>
+ * The type of the sixth message argument.
+ * @param <T7>
+ * The type of the seventh message argument.
+ */
+ static public final class Arg7<T1, T2, T3, T4, T5, T6, T7> extends
+ MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg7(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ * @param a5
+ * message argument
+ * @param a6
+ * message argument
+ * @param a7
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7)
+ {
+ return new Message(this, a1, a2, a3, a4, a5, a6, a7);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with eight arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ * @param <T5>
+ * The type of the fifth message argument.
+ * @param <T6>
+ * The type of the sixth message argument.
+ * @param <T7>
+ * The type of the seventh message argument.
+ * @param <T8>
+ * The type of the eighth message argument.
+ */
+ static public final class Arg8<T1, T2, T3, T4, T5, T6, T7, T8>
+ extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg8(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ * @param a5
+ * message argument
+ * @param a6
+ * message argument
+ * @param a7
+ * message argument
+ * @param a8
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7,
+ T8 a8)
+ {
+ return new Message(this, a1, a2, a3, a4, a5, a6, a7, a8);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with nine arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ * @param <T5>
+ * The type of the fifth message argument.
+ * @param <T6>
+ * The type of the sixth message argument.
+ * @param <T7>
+ * The type of the seventh message argument.
+ * @param <T8>
+ * The type of the eighth message argument.
+ * @param <T9>
+ * The type of the ninth message argument.
+ */
+ static public final class Arg9<T1, T2, T3, T4, T5, T6, T7, T8, T9>
+ extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg9(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ * @param a5
+ * message argument
+ * @param a6
+ * message argument
+ * @param a7
+ * message argument
+ * @param a8
+ * message argument
+ * @param a9
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7,
+ T8 a8, T9 a9)
+ {
+ return new Message(this, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with ten arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ * @param <T5>
+ * The type of the fifth message argument.
+ * @param <T6>
+ * The type of the sixth message argument.
+ * @param <T7>
+ * The type of the seventh message argument.
+ * @param <T8>
+ * The type of the eighth message argument.
+ * @param <T9>
+ * The type of the ninth message argument.
+ * @param <T10>
+ * The type of the tenth message argument.
+ */
+ static public final class Arg10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
+ extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg10(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ * @param a5
+ * message argument
+ * @param a6
+ * message argument
+ * @param a7
+ * message argument
+ * @param a8
+ * message argument
+ * @param a9
+ * message argument
+ * @param a10
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7,
+ T8 a8, T9 a9, T10 a10)
+ {
+ return new Message(this, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with eleven arguments.
+ *
+ * @param <T1>
+ * The type of the first message argument.
+ * @param <T2>
+ * The type of the second message argument.
+ * @param <T3>
+ * The type of the third message argument.
+ * @param <T4>
+ * The type of the fourth message argument.
+ * @param <T5>
+ * The type of the fifth message argument.
+ * @param <T6>
+ * The type of the sixth message argument.
+ * @param <T7>
+ * The type of the seventh message argument.
+ * @param <T8>
+ * The type of the eighth message argument.
+ * @param <T9>
+ * The type of the ninth message argument.
+ * @param <T10>
+ * The type of the tenth message argument.
+ * @param <T11>
+ * The type of the eleventh message argument.
+ */
+ static public final class Arg11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
+ extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public Arg11(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param a1
+ * message argument
+ * @param a2
+ * message argument
+ * @param a3
+ * message argument
+ * @param a4
+ * message argument
+ * @param a5
+ * message argument
+ * @param a6
+ * message argument
+ * @param a7
+ * message argument
+ * @param a8
+ * message argument
+ * @param a9
+ * message argument
+ * @param a10
+ * message argument
+ * @param a11
+ * message argument
+ */
+ public Message get(T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7,
+ T8 a8, T9 a9, T10 a10, T11 a11)
+ {
+ return new Message(this, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
+ a11);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * Subclass for creating messages with an any number of arguments. In
+ * general this class should be used when a message needs to be
+ * defined with more arguments that can be handled with the current
+ * number of subclasses
+ */
+ static public final class ArgN extends MessageDescriptor
+ {
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param rbBase
+ * base of the backing resource bundle
+ * @param key
+ * for accessing the format string from the resource bundle
+ * @param ordinal
+ * of created messages
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ public ArgN(String rbBase, String key, int ordinal,
+ ClassLoader classLoader)
+ {
+ super(rbBase, key, ordinal, classLoader);
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param args
+ * message arguments
+ */
+ public Message get(Object... args)
+ {
+ return new Message(this, args);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return true;
+ }
+
+ }
+
+
+
+ /**
+ * A descriptor for creating a raw message from a <code>String</code>.
+ * In general this descriptor should NOT be used internally. OpenDS
+ * plugins may want to use the mechanism to create messages without
+ * storing their strings in resource bundles.
+ */
+ static final class Raw extends MessageDescriptor
+ {
+
+ private String formatString;
+
+ private boolean requiresFormatter;
+
+
+
+ /**
+ * Creates a parameterized instance.
+ *
+ * @param formatString
+ * for created messages
+ */
+ Raw(CharSequence formatString)
+ {
+ super(null, null, null, null);
+ this.formatString = formatString != null ? formatString
+ .toString() : "";
+ this.requiresFormatter = this.formatString.matches(".*%.*");
+ }
+
+
+
+ /**
+ * Creates a message with arguments that will replace format
+ * specifiers in the assocated format string when the message is
+ * rendered to string representation.
+ *
+ * @return Message object
+ * @param args
+ * message arguments
+ */
+ public Message get(Object... args)
+ {
+ return new Message(this, args);
+ }
+
+
+
+ /**
+ * Overridden in order to bypass the resource bundle plumbing and
+ * return the format string directly.
+ *
+ * @param locale
+ * ignored
+ * @return format string
+ */
+ @Override
+ String getFormatString(Locale locale)
+ {
+ return this.formatString;
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ boolean requiresFormatter()
+ {
+ return this.requiresFormatter;
+ }
+
+ }
+
+
+
+ /** String for accessing backing resource bundle. */
+ private final String rbBase;
+
+ /** Used for accessing format string from the resource bundle. */
+ private final String key;
+
+ /**
+ * The value that makes a message unique among other messages having
+ * the same severity and category. May be null for raw messages.
+ */
+ private final Integer ordinal;
+
+ /**
+ * The class loader to be used to retrieve the ResourceBundle. If null
+ * the default class loader will be used.
+ */
+ private final ClassLoader classLoader;
+
+ private final Map<Locale, String> formatStrMap = new HashMap<Locale, String>();
+
+
+
+ /**
+ * Obtains the ordinal value for this message which makes messages
+ * unique among messages defined with the same category and severity.
+ *
+ * @return int ordinal value
+ */
+ public final int getOrdinal()
+ {
+ if (this.ordinal == null)
+ return 0;
+ else
+ return this.ordinal;
+ }
+
+
+
+ /**
+ * Returns the key for accessing the message template in a resource
+ * bundle. May be null for raw messages.
+ *
+ * @return key of this message
+ */
+ public final String getKey()
+ {
+ return this.key;
+ }
+
+
+
+ /**
+ * Obtains the resource bundle base string used to access the resource
+ * bundle containing created message's format string. May be null for
+ * raw messages.
+ *
+ * @return string base
+ */
+ public final String getBase()
+ {
+ return this.rbBase;
+ }
+
+
+
+ /**
+ * Indicates whether or not this descriptor format string should be
+ * processed by Formatter during string rendering.
+ *
+ * @return boolean where true means Formatter should be used; false
+ * otherwise
+ * @see java.util.Formatter
+ */
+ abstract boolean requiresFormatter();
+
+
+
+ /**
+ * Obtains the format string for constructing the string value of this
+ * message according to the default locale.
+ *
+ * @return format string
+ */
+ final String getFormatString()
+ {
+ return getFormatString(Locale.getDefault());
+ }
+
+
+
+ /**
+ * Obtains the format string for constructing the string value of this
+ * message according to the requested locale.
+ *
+ * @param locale
+ * for the returned format string
+ * @return format string
+ */
+ String getFormatString(Locale locale)
+ {
+ String fmtStr = formatStrMap.get(locale);
+ if (fmtStr == null)
+ {
+ ResourceBundle bundle = getBundle(locale);
+ fmtStr = bundle.getString(this.key);
+ formatStrMap.put(locale, fmtStr);
+ }
+ return fmtStr;
+ }
+
+
+
+ /**
+ * Indicates whether or not formatting should be applied to the given
+ * format string. Note that a format string might have literal
+ * specifiers (%% or %n for example) that require formatting but are
+ * not replaced by arguments.
+ *
+ * @param s
+ * candiate for formatting
+ * @return boolean where true indicates that the format string
+ * requires formatting
+ */
+ protected final boolean containsArgumentLiterals(String s)
+ {
+ return s.matches(".*%[n|%].*"); // match Formatter literals
+ }
+
+
+
+ private ResourceBundle getBundle(Locale locale)
+ {
+ if (locale == null) locale = Locale.getDefault();
+ if (classLoader == null)
+ {
+ return ResourceBundle.getBundle(this.rbBase, locale);
+ }
+ else
+ {
+ return ResourceBundle.getBundle(this.rbBase, locale, classLoader);
+ }
+ }
+
+
+
+ /**
+ * Creates a parameterized message descriptor.
+ *
+ * @param rbBase
+ * string for accessing the underlying message bundle
+ * @param key
+ * for accessing the format string from the message bundle
+ * @param ordinal
+ * of any created message
+ * @param classLoader
+ * the class loader to be used to get the ResourceBundle
+ */
+ private MessageDescriptor(String rbBase, String key, Integer ordinal,
+ ClassLoader classLoader)
+ {
+ this.rbBase = rbBase;
+ this.key = key;
+ this.ordinal = ordinal;
+ this.classLoader = classLoader;
+ }
+
+}
diff --git a/sdk/src/com/sun/opends/sdk/util/messages.properties b/sdk/src/com/sun/opends/sdk/util/messages.properties
new file mode 100755
index 0000000..41e3c13
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages.properties
@@ -0,0 +1,5692 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+
+
+
+#
+# Global directives
+#
+global.ordinal=-1
+
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+
+#
+# Schema messages
+#
+SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE=Unable to retrieve \
+ approximate matching rule %s used as the default for the %s attribute syntax. \
+ Approximate matching will not be allowed by default for attributes with this \
+ syntax
+SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE=Unable to retrieve \
+ equality matching rule %s used as the default for the %s attribute syntax. \
+ Equality matching will not be allowed by default for attributes with this \
+ syntax
+SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE=Unable to retrieve \
+ ordering matching rule %s used as the default for the %s attribute syntax. \
+ Ordering matches will not be allowed by default for attributes with this \
+ syntax
+SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE=Unable to retrieve \
+ substring matching rule %s used as the default for the %s attribute syntax. \
+ Substring matching will not be allowed by default for attributes with this \
+ syntax
+SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN=The provided value "%s" is not \
+ allowed for attributes with a Boolean syntax. The only allowed values are \
+ 'TRUE' and 'FALSE'
+SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT=The provided value "%s" is too \
+ short to be a valid bit string. A bit string must be a series of binary \
+ digits surrounded by single quotes and followed by a capital letter B
+SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED=The provided value "%s" is not \
+ a valid bit string because it is not surrounded by single quotes and followed \
+ by a capital letter B
+SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT=The provided value "%s" is \
+ not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH=The provided value "%s" \
+ is not a valid country string because the length is not exactly two characters
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE=The provided value "%s" \
+ is not a valid country string because it contains one or more non-printable \
+ characters
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS=The provided value "%s" is \
+ not a valid delivery method value because it does not contain any elements
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT=The provided value \
+ "%s" is not a valid delivery method value because "%s" is not a valid method
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT=The provided value "%s" \
+ is too short to be a valid generalized time value
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR=The provided value \
+ "%s" is not a valid generalized time value because the '%s' character is not \
+ allowed in the century or year specification
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH=The provided value \
+ "%s" is not a valid generalized time value because "%s" is not a valid month \
+ specification
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY=The provided value \
+ "%s" is not a valid generalized time value because "%s" is not a valid day \
+ specification
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR=The provided value \
+ "%s" is not a valid generalized time value because "%s" is not a valid hour \
+ specification
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE=The provided value \
+ "%s" is not a valid generalized time value because "%s" is not a valid minute \
+ specification
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND=The provided value \
+ "%s" is not a valid generalized time value because "%s" is not a valid second \
+ specification
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND=The provided \
+ value "%s" is not a valid generalized time value because the sub-second \
+ component is not valid (between 1 and 3 numeric digits)
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND=The provided value \
+ "%s" is not a valid generalized time value because the sub-second value may \
+ not contain more than three digits
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET=The provided value \
+ "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+ offset
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR=The provided value \
+ "%s" is not a valid generalized time value because it contains an invalid \
+ character '%s' at position %d
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE=The provided value \
+ "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID=The provided value "%s" could not be parsed \
+ as a valid distinguished name: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA=The provided value "%s" could not be \
+ parsed as a valid distinguished name because the last non-space character was \
+ a comma or semicolon
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT=The provided value "%s" could \
+ not be parsed as a valid distinguished name because numeric digit '%s' is not \
+ allowed as the first character in an attribute name
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR=The provided value "%s" could not \
+ be parsed as a valid distinguished name because character '%c' at position %d \
+ is not allowed in an attribute name
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR=The provided value \
+ "%s" could not be parsed as a valid distinguished name because the underscore \
+ character is not allowed in an attribute name unless the %s configuration \
+ option is enabled
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH=The provided value "%s" \
+ could not be parsed as a valid distinguished name because the hyphen \
+ character is not allowed as the first character of an attribute name
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE=The provided value \
+ "%s" could not be parsed as a valid distinguished name because the underscore \
+ character is not allowed as the first character of an attribute name even if \
+ the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT=The provided value "%s" \
+ could not be parsed as a valid distinguished name because the digit '%c' is \
+ not allowed as the first character of an attribute name unless the \
+ name is specified as an OID or the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME=The provided value "%s" could not be \
+ parsed as a valid distinguished name because it contained an RDN containing \
+ an empty attribute name
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD=The provided value "%s" could \
+ not be parsed as a valid distinguished name because the parsed attribute name \
+ %s included a period but that name did not appear to be a valid OID
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME=The provided value "%s" could \
+ not be parsed as a valid distinguished name because the last non-space \
+ character was part of the attribute name '%s'
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL=The provided value "%s" could not be \
+ parsed as a valid distinguished name because the next non-space character \
+ after attribute name "%s" should have been an equal sign but instead was '%c'
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR=The provided value "%s" could not be \
+ parsed as a valid distinguished name because character '%c' at position %d is \
+ not valid
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT=The provided value "%s" could \
+ not be parsed as a valid distinguished name because an attribute value \
+ started with an octothorpe (#) but was not followed by a positive multiple of \
+ two hexadecimal digits
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT=The provided value "%s" could not \
+ be parsed as a valid distinguished name because an attribute value started \
+ with an octothorpe (#) but contained a character %c that was not a valid \
+ hexadecimal digit
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE=The provided value "%s" \
+ could not be parsed as a valid distinguished name because an unexpected \
+ failure occurred while attempting to parse an attribute value from one of the \
+ RDN components: "%s"
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE=The provided value "%s" could not \
+ be parsed as a valid distinguished name because one of the RDN components \
+ included a quoted value that did not have a corresponding closing quotation \
+ mark
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID=The provided value "%s" \
+ could not be parsed as a valid distinguished name because one of the RDN \
+ components included a value with an escaped hexadecimal digit that was not \
+ followed by a second hexadecimal digit
+SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO=The provided value "%s" could \
+ not be parsed as a valid integer because the first digit may not be zero \
+ unless it is the only digit
+SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH=The provided value "%s" \
+ could not be parsed as a valid integer because the dash may only appear if it \
+ is the first character of the value followed by one or more digits
+SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER=The provided value "%s" \
+ could not be parsed as a valid integer because character '%c' at position %d \
+ is not allowed in an integer value
+SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE=The provided value "%s" could \
+ not be parsed as a valid integer because it did not contain any digits
+SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE=The provided value "%s" \
+ could not be parsed as a valid integer because it contained only a dash not \
+ followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE=The provided value could not be parsed \
+ as a valid OID because it did not contain any characters
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER=The provided value "%s" could not \
+ be parsed as a valid OID because it had an illegal character at position %d
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS=The provided value "%s" could \
+ not be parsed as a valid OID because it had two consecutive periods at or \
+ near position %d
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD=The provided value "%s" could not \
+ be parsed as a valid OID because it ends with a period
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE=The provided value could not be \
+ parsed as a valid attribute type description because it was empty or \
+ contained only whitespace
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS=The provided value \
+ "%s" could not be parsed as an attribute type description because an open \
+ parenthesis was expected at position %d but instead a '%s' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE=The provided value "%s" \
+ could not be parsed as an attribute type description because the end of the \
+ value was encountered while the Directory Server expected more data to be \
+ provided
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as an attribute type description because the \
+ numeric OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as an attribute type description because the \
+ numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID=The provided \
+ value "%s" could not be parsed as an attribute type description because the \
+ non-numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR=The provided value "%s" could \
+ not be parsed as an attribute type description because it contained an \
+ illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS=The provided \
+ value "%s" could not be parsed as an attribute type description because it \
+ contained an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE=The provided value "%s" could \
+ not be parsed as an attribute type description because a single quote was \
+ expected as the first non-blank character following token %s. However, the \
+ character %s was found instead
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE=The definition for \
+ the attribute type with OID %s declared a superior type with an OID of %s. \
+ No attribute type with this OID exists in the server schema
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR=The definition for \
+ the attribute type with OID %s declared that approximate matching should be \
+ performed using the matching rule "%s". No such approximate matching rule is \
+ configured for use in the Directory Server
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR=The definition for \
+ the attribute type with OID %s declared that equality matching should be \
+ performed using the matching rule "%s". No such equality matching rule is \
+ configured for use in the Directory Server
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR=The definition for \
+ the attribute type with OID %s declared that ordering matching should be \
+ performed using the matching rule "%s". No such ordering matching rule is \
+ configured for use in the Directory Server
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR=The definition for \
+ the attribute type with OID %s declared that substring matching should be \
+ performed using the matching rule "%s". No such substring matching rule is \
+ configured for use in the Directory Server
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX=The definition for the \
+ attribute type with OID %s declared that it should have a syntax with OID %s. \
+ No such syntax is configured for use in the Directory Server
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE=The definition \
+ for the attribute type with OID %s declared that it should have an attribute \
+ usage of %s. This is an invalid usage
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS=The provided value \
+ "%s" could not be parsed as an attribute type description because a single \
+ quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE=The provided value could not \
+ be parsed as a valid objectclass description because it was empty or \
+ contained only whitespace
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS=The provided \
+ value "%s" could not be parsed as an objectclass description because an open \
+ parenthesis was expected at position %d but instead a '%s' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE=The provided value "%s" \
+ could not be parsed as an objectclass description because the end of the \
+ value was encountered while the Directory Server expected more data to be \
+ provided
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as an objectclass description because the \
+ numeric OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as an objectclass description because the \
+ numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID=The provided \
+ value "%s" could not be parsed as an objectclass description because the \
+ non-numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR=The provided value "%s" \
+ could not be parsed as an objectclass description because it contained an \
+ illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS=The provided \
+ value "%s" could not be parsed as an objectclass description because it \
+ contained an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE=The provided value "%s" \
+ could not be parsed as an objectclass description because a single quote was \
+ expected as the first non-blank character following token %s. However, the \
+ character %s was found instead
+SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS=The definition \
+ for the objectclass with OID %s declared a superior objectclass with an OID \
+ of %s. No objectclass with this OID exists in the server schema
+SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS=The provided \
+ value "%s" could not be parsed as an objectclass description because a single \
+ quote was expected at position %d but the character %s was found instead
+SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR=The definition \
+ for the objectclass with OID %s declared that it should include required \
+ attribute "%s". No attribute type matching this name or OID exists in the \
+ server schema
+SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR=The definition \
+ for the objectclass with OID %s declared that it should include optional \
+ attribute "%s". No attribute type matching this name or OID exists in the \
+ server schema
+SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER=The provided value "%s" \
+ cannot be parsed as a valid IA5 string because it contains an illegal \
+ character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE=This indicates whether \
+ the telephone number attribute syntax should use a strict mode in which it \
+ will only accept values in the ITU-T E.123 format. If this is enabled, then \
+ any value not in this format will be rejected. If this is disabled, then any \
+ value will be accepted, but only the digits will be considered when \
+ performing matching
+SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE=An error \
+ occurred while trying to retrieve attribute \
+ ds-cfg-strict-format from configuration entry %s: %s. The \
+ Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+ for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY=The provided value is not a valid \
+ telephone number because it is empty or null
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS=The provided value "%s" is not a \
+ valid telephone number because strict telephone number checking is enabled \
+ and the value does not start with a plus sign in compliance with the ITU-T \
+ E.123 specification
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR=The provided value "%s" is not \
+ a valid telephone number because strict telephone number checking is enabled \
+ and the character %s at position %d is not allowed by the ITU-T E.123 \
+ specification
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS=The provided value "%s" is not a \
+ valid telephone number because it does not contain any numeric digits
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE=The value of configuration \
+ attribute ds-cfg-strict-format, which indicates whether to \
+ use strict telephone number syntax checking, has been updated to %s in \
+ configuration entry %s
+SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR=The provided value \
+ "%s" is not a valid numeric string because it contained character %s at \
+ position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE=The provided value is not \
+ a valid numeric string because it did not contain any characters. A numeric \
+ string value must contain at least one numeric digit or space
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE=The provided value could not \
+ be parsed as a valid attribute syntax description because it was empty or \
+ contained only whitespace
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS=The provided \
+ value "%s" could not be parsed as an attribute syntax description because an \
+ open parenthesis was expected at position %d but instead a '%s' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE=The provided value "%s" \
+ could not be parsed as an attribute syntax description because the end of the \
+ value was encountered while the Directory Server expected more data to be \
+ provided
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as an attribute syntax description because the \
+ numeric OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as an attribute syntax description because the \
+ numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID=The provided \
+ value "%s" could not be parsed as an attribute syntax description because the \
+ non-numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS=The provided \
+ value "%s" could not be parsed as an attribute syntax description because it \
+ contained an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN=The provided value \
+ "%s" could not be parsed as an attribute syntax description because an \
+ unexpected error occurred while trying to read the "DESC" token from the \
+ string at or near position %d: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC=The provided value "%s" \
+ could not be parsed as an attribute syntax description because the "DESC" \
+ token was expected but the string "%s" was found instead
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE=The provided value \
+ "%s" could not be parsed as an attribute syntax description because an \
+ unexpected error occurred while trying to read the value of the "DESC" token \
+ from the string at or near position %d: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS=The provided \
+ value "%s" could not be parsed as an attribute syntax description because a \
+ close parenthesis was expected at position %d but instead a '%s' character \
+ was found
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE=The provided \
+ value "%s" could not be parsed as an attribute syntax description because an \
+ illegal character %s was found at position %d after the close parenthesis
+SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS=The provided \
+ value "%s" could not be parsed as an attribute syntax description because a \
+ single quote was expected at position %d but the character %s was found \
+ instead
+SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE=The provided value \
+ could not be parsed as a printable string because it was null or empty. A \
+ printable string must contain at least one character
+SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER=The provided \
+ value "%s" could not be parsed as a printable string because it contained an \
+ invalid character %s at position %d
+SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD=The provided value "*" \
+ could not be parsed as a substring assertion because it consists only of a \
+ wildcard character and zero-length substrings are not allowed
+SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS=The provided \
+ value "%s" could not be parsed as a substring assertion because it contains \
+ consecutive wildcard characters at position %d and zero-length substrings are \
+ not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT=The provided value %s is too \
+ short to be a valid UTC time value
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR=The provided value %s is not a \
+ valid UTC time value because the %s character is not allowed in the century \
+ or year specification
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH=The provided value %s is not \
+ a valid UTC time value because %s is not a valid month specification
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY=The provided value %s is not a \
+ valid UTC time value because %s is not a valid day specification
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR=The provided value %s is not a \
+ valid UTC time value because %s is not a valid hour specification
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE=The provided value %s is not \
+ a valid UTC time value because %s is not a valid minute specification
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR=The provided value %s is not a \
+ valid UTC time value because it contains an invalid character %s at position \
+ %d
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND=The provided value %s is not \
+ a valid UTC time value because %s is not a valid second specification
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET=The provided value %s is not \
+ a valid UTC time value because %s is not a valid GMT offset
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE=The provided value %s could \
+ not be parsed as a valid UTC time: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE=The provided value could not be \
+ parsed as a valid DIT content rule description because it was empty or \
+ contained only whitespace
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS=The provided value \
+ "%s" could not be parsed as a DIT content rule description because an open \
+ parenthesis was expected at position %d but instead a '%s' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE=The provided value "%s" could \
+ not be parsed as a DIT content rule description because the end of the value \
+ was encountered while the Directory Server expected more data to be provided
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided value \
+ "%s" could not be parsed as a DIT content rule description because the \
+ numeric OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided value \
+ "%s" could not be parsed as a DIT content rule description because the \
+ numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID=The provided value \
+ "%s" could not be parsed as a DIT content rule description because the \
+ non-numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS=The provided value \
+ "%s" could not be parsed as a DIT content rule description because it \
+ contained an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR=The provided value "%s" could not \
+ be parsed as a DIT content rule description because it contained an illegal \
+ character %s at position %d
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS=The DIT content rule \
+ "%s" is associated with a structural objectclass %s that is not defined in \
+ the server schema
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL=The DIT content \
+ rule "%s" is associated with the objectclass with OID %s (%s). This \
+ objectclass exists in the server schema but is defined as %s rather than \
+ structural
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS=The DIT content rule \
+ "%s" is associated with an auxiliary objectclass %s that is not defined in \
+ the server schema
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY=The DIT content \
+ rule "%s" is associated with an auxiliary objectclass %s. This objectclass \
+ exists in the server schema but is defined as %s rather than auxiliary
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR=The DIT content rule "%s" \
+ is associated with a required attribute type %s that is not defined in the \
+ server schema
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR=The DIT content rule "%s" \
+ is associated with an optional attribute type %s that is not defined in the \
+ server schema
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR=The DIT content rule \
+ "%s" is associated with a prohibited attribute type %s that is not defined in \
+ the server schema
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS=The provided value "%s" \
+ could not be parsed as a DIT content rule description because a single quote \
+ was expected at position %d but the %s character was found instead
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE=The provided value could not \
+ be parsed as a valid name form description because it was empty or contained \
+ only whitespace
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS=The provided \
+ value "%s" could not be parsed as a name form description because an open \
+ parenthesis was expected at position %d but instead a '%c' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE=The provided value "%s" \
+ could not be parsed as a name form description because the end of the value \
+ was encountered while the Directory Server expected more data to be provided
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as a name form description because the numeric \
+ OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as a name form description because the numeric \
+ OID contained an illegal character %c at position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID=The provided \
+ value "%s" could not be parsed as a name form description because the \
+ non-numeric OID contained an illegal character %c at position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS=The provided \
+ value "%s" could not be parsed as a name form description because it \
+ contained an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR=The provided value "%s" could \
+ not be parsed as a name form description because it contained an illegal \
+ character %c at position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS=The name form \
+ description "%s" is associated with a structural objectclass %s that is not \
+ defined in the server schema
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL=The name \
+ form description "%s" is associated with the objectclass with OID %s (%s). \
+ This objectclass exists in the server schema but is defined as %s rather than \
+ structural
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR=The definition for \
+ the name form with OID %s declared that it should include required attribute \
+ "%s". No attribute type matching this name or OID exists in the server \
+ schema
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR=The definition for \
+ the name form with OID %s declared that it should include optional attribute \
+ "%s". No attribute type matching this name or OID exists in the server \
+ schema
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS=The provided value \
+ "%s" could not be parsed as a name form description because it does not \
+ specify the structural objectclass with which it is associated
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS=The provided value \
+ "%s" could not be parsed as a name form description because a single quote \
+ was expected at position %d but the %c character was found instead
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE=The provided value could not be \
+ parsed as a valid matching rule description because it was empty or contained \
+ only whitespace
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS=The provided value "%s" \
+ could not be parsed as a matching rule description because an open \
+ parenthesis was expected at position %d but instead a '%s' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE=The provided value "%s" could not \
+ be parsed as a matching rule description because the end of the value was \
+ encountered while the Directory Server expected more data to be provided
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided value \
+ "%s" could not be parsed as a matching rule description because the numeric \
+ OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided value \
+ "%s" could not be parsed as a matching rule description because the numeric \
+ OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID=The provided value \
+ "%s" could not be parsed as a matching rule description because the \
+ non-numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS=The provided value \
+ "%s" could not be parsed as a matching rule description because it contained \
+ an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR=The provided value "%s" could not be \
+ parsed as a matching rule description because it contained an illegal \
+ character %s at position %d
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX=The matching rule description "%s" \
+ is associated with attribute syntax %s that is not defined in the server \
+ schema
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX=The provided value "%s" could not be \
+ parsed as a matching rule description because it does not specify the \
+ attribute syntax with which it is associated
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS=The provided value "%s" \
+ could not be parsed as a matching rule description because a single quote was \
+ expected at position %d but the %s character was found instead
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE=The provided value could not be \
+ parsed as a valid matching rule use description because it was empty or \
+ contained only whitespace
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS=The provided value \
+ "%s" could not be parsed as a matching rule use description because an open \
+ parenthesis was expected at position %d but instead a '%s' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE=The provided value "%s" could \
+ not be parsed as a matching rule use description because the end of the value \
+ was encountered while the Directory Server expected more data to be provided
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided \
+ value "%s" could not be parsed as a matching rule use description because the \
+ numeric OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided value \
+ "%s" could not be parsed as a matching rule use description because the \
+ numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID=The provided value \
+ "%s" could not be parsed as a matching rule use description because the \
+ non-numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE=The provided value "%s" \
+ could not be parsed as a matching rule use description because the specified \
+ matching rule %s is unknown
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS=The provided \
+ value "%s" could not be parsed as a matching rule use description because it \
+ contained an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR=The provided value "%s" could not \
+ be parsed as a matching rule use description because it contained an illegal \
+ character %s at position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR=The matching rule use description \
+ "%s" is associated with attribute type %s that is not defined in the server \
+ schema
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR=The provided value "%s" could not be \
+ parsed as a matching rule description because it does not specify the set of \
+ attribute types that may be used with the associated OID
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS=The provided value "%s" \
+ could not be parsed as a matching rule use description because a single quote \
+ was expected at position %d but the %s character was found instead
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE=The provided value could not be \
+ parsed as a valid DIT structure rule description because it was empty or \
+ contained only whitespace
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS=The provided value \
+ "%s" could not be parsed as a DIT structure rule description because an open \
+ parenthesis was expected at position %d but instead a '%s' character was \
+ found
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE=The provided value "%s" could \
+ not be parsed as a DIT structure rule description because the end of the \
+ value was encountered while the Directory Server expected more data to be \
+ provided
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID=The provided value "%s" \
+ could not be parsed as a DIT structure rule description because the rule ID \
+ contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS=The provided value \
+ "%s" could not be parsed as a DIT structure rule description because it \
+ contained an unexpected closing parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR=The provided value "%s" could not \
+ be parsed as a DIT structure rule description because it contained an illegal \
+ character %s at position %d
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM=The provided value "%s" could \
+ not be parsed as a DIT structure rule description because it referenced an \
+ unknown name form %s
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID=The provided value "%s" could \
+ not be parsed as a DIT structure rule description because it referenced an \
+ unknown rule ID %d for a superior DIT structure rule
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM=The provided value "%s" could not \
+ be parsed as a DIT structure rule description because it did not specify the \
+ name form for the rule
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS=The provided value "%s" \
+ could not be parsed as a DIT structure rule description because a single \
+ quote was expected at position %d but the %s character was found instead
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID=The provided value \
+ "%s" could not be parsed as a DIT structure rule description because the \
+ numeric OID contained two consecutive periods at position %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID=The provided value \
+ "%s" could not be parsed as a DIT structure rule description because the \
+ numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID=The provided value \
+ "%s" could not be parsed as a DIT structure rule description because the \
+ non-numeric OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT=The provided value "%s" is too short \
+ to be a valid telex number value
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE=The provided value "%s" does not \
+ hold a valid telex number because a character %s at position %d was not a \
+ valid printable string character
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR=The provided value "%s" does not \
+ hold a valid telex number because character %s at position %d was neither a \
+ valid printable string character nor a dollar sign to separate the telex \
+ number components
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED=The provided value "%s" does not \
+ hold a valid telex number because the end of the value was found before three \
+ dollar-delimited printable strings could be read
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY=The provided value could not be \
+ parsed as a valid facsimile telephone number because it was empty
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE=The provided value "%s" \
+ could not be parsed as a valid facsimile telephone number because character \
+ %s at position %d was not a valid printable string character
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR=The provided value "%s" \
+ could not be parsed as a valid facsimile telephone number because it ends \
+ with a dollar sign, but that dollar sign should have been followed by a fax \
+ parameter
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER=The provided value "%s" \
+ could not be parsed as a valid facsimile telephone number because the string \
+ "%s" between positions %d and %d was not a valid fax parameter
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN=The provided value "%s" could \
+ not be parsed as a valid name and optional UID value because an error \
+ occurred while trying to parse the DN portion: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT=The provided value \
+ "%s" could not be parsed as a valid name and optional UID value because the \
+ UID portion contained an illegal binary digit %s at position %d
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY=The provided value could not be \
+ parsed as a valid teletex terminal identifier because it was empty
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE=The provided value "%s" \
+ could not be parsed as a valid teletex terminal identifier because character \
+ %s at position %d was not a valid printable string character
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR=The provided value "%s" \
+ could not be parsed as a valid teletex terminal identifier because it ends \
+ with a dollar sign, but that dollar sign should have been followed by a TTX \
+ parameter
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON=The provided value "%s" \
+ could not be parsed as a valid teletex terminal identifier because the \
+ parameter string does not contain a colon to separate the name from the value
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER=The provided value "%s" \
+ could not be parsed as a valid teletex terminal identifier because the string \
+ "%s" is not a valid TTX parameter name
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE=The provided value could \
+ not be parsed as an other mailbox value because it was empty
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE=The provided value "%s" \
+ could not be parsed as an other mailbox value because there was no mailbox \
+ type before the dollar sign
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR=The provided value \
+ "%s" could not be parsed as an other mailbox value because the mailbox type \
+ contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX=The provided value "%s" \
+ could not be parsed as an other mailbox value because there was no mailbox \
+ after the dollar sign
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR=The provided value \
+ "%s" could not be parsed as an other mailbox value because the mailbox \
+ contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC=The provided value "%s" could not be \
+ parsed as a guide value because it did not contain an objectclass name or OID \
+ before the octothorpe (#) character
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR=The provided value "%s" could not \
+ be parsed as a guide value because the criteria portion %s contained an \
+ illegal character %c at position %d
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN=The provided value "%s" \
+ could not be parsed as a guide value because the criteria portion %s did not \
+ contain a close parenthesis that corresponded to the initial open parenthesis
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK=The provided value "%s" \
+ could not be parsed as a guide value because the criteria portion %s started \
+ with a question mark but was not followed by the string "true" or "false"
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR=The provided value "%s" could not be \
+ parsed as a guide value because the criteria portion %s did not contain a \
+ dollar sign to separate the attribute type from the match type
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR=The provided value "%s" could not be \
+ parsed as a guide value because the criteria portion %s did not specify an \
+ attribute type before the dollar sign
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE=The provided value "%s" could \
+ not be parsed as a guide value because the criteria portion %s did not \
+ specify a match type after the dollar sign
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE=The provided value "%s" \
+ could not be parsed as a guide value because the criteria portion %s had an \
+ invalid match type starting at position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP=The provided value "%s" could \
+ not be parsed as an enhanced guide value because it did not contain an \
+ octothorpe (#) character to separate the objectclass from the criteria
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC=The provided value "%s" could \
+ not be parsed as an enhanced guide value because it did not contain an \
+ objectclass name or OID before the octothorpe (#) character
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID=The provided \
+ value "%s" could not be parsed as an enhanced guide value because the numeric \
+ OID %s specifying the objectclass contained two consecutive periods at \
+ position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID=The provided \
+ value "%s" could not be parsed as an enhanced guide value because the numeric \
+ OID %s specifying the objectclass contained an illegal character %s at \
+ position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME=The provided \
+ value "%s" could not be parsed as an enhanced guide value because the \
+ objectclass name %s contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP=The provided value "%s" \
+ could not be parsed as an enhanced guide value because it did not have an \
+ octothorpe (#) character to separate the criteria from the scope
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE=The provided value "%s" could \
+ not be parsed as an enhanced guide value because no scope was provided after \
+ the final octothorpe (#) character
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE=The provided value "%s" \
+ could not be parsed as an enhanced guide value because the specified scope %s \
+ was invalid
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA=The provided value "%s" \
+ could not be parsed as an enhanced guide value because it did not specify any \
+ criteria between the octothorpe (#) characters
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE=The provided value %s could not be \
+ parsed as a valid OID: %s
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE=An unexpected \
+ error occurred while trying to normalize value %s as a generalized time \
+ value: %s
+SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE=An error occurred \
+ while attempting to compare two AttributeValue objects using the \
+ caseExactOrderingMatch matching rule because the normalized form of one of \
+ those values could not be retrieved: %s
+SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE=An error occurred while \
+ attempting to compare two objects using the caseExactOrderingMatch matching \
+ rule because the objects were of an unsupported type %s. Only byte arrays, \
+ ASN.1 octet strings, and attribute value objects may be compared
+SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE=An error occurred \
+ while attempting to compare two AttributeValue objects using the \
+ caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+ those values could not be retrieved: %s
+SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE=An error occurred while \
+ attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+ rule because the objects were of an unsupported type %s. Only byte arrays, \
+ ASN.1 octet strings, and attribute value objects may be compared
+SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE=An error \
+ occurred while attempting to compare two AttributeValue objects using the \
+ generalizedTimeOrderingMatch matching rule because the normalized form of one \
+ of those values could not be retrieved: %s
+SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE=An error occurred \
+ while attempting to compare two objects using the \
+ generalizedTimeOrderingMatch matching rule because the objects were of an \
+ unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+ value objects may be compared
+SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE=An error occurred while \
+ attempting to compare two AttributeValue objects using the \
+ integerOrderingMatch matching rule because the normalized form of one of \
+ those values could not be retrieved: %s
+SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE=An error occurred while \
+ attempting to compare two objects using the integerOrderingMatch matching \
+ rule because the objects were of an unsupported type %s. Only byte arrays, \
+ ASN.1 octet strings, and attribute value objects may be compared
+SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE=An error occurred \
+ while attempting to compare two AttributeValue objects using the \
+ numericStringOrderingMatch matching rule because the normalized form of one \
+ of those values could not be retrieved: %s
+SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE=An error occurred \
+ while attempting to compare two objects using the numericStringOrderingMatch \
+ matching rule because the objects were of an unsupported type %s. Only byte \
+ arrays, ASN.1 octet strings, and attribute value objects may be compared
+SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE=An error occurred \
+ while attempting to compare two AttributeValue objects using the \
+ octetStringOrderingMatch matching rule because the normalized form of one of \
+ those values could not be retrieved: %s
+SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE=An error occurred while \
+ attempting to compare two objects using the octetStringOrderingMatch matching \
+ rule because the objects were of an unsupported type %s. Only byte arrays, \
+ ASN.1 octet strings, and attribute value objects may be compared
+SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH=The provided value "%s" has \
+ an invalid length for a UUID. All UUID values must have a length of exactly \
+ 36 bytes, but the provided value had a length of %d bytes
+SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH=The provided value "%s" should \
+ have had a dash at position %d, but the character '%s' was found instead
+SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX=The provided value "%s" should \
+ have had a hexadecimal digit at position %d, but the character '%s' was found \
+ instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH=Indicates \
+ whether attributes with the directory string syntax will be allowed to have \
+ zero-length values. This is technically not allowed by the LDAP \
+ specifications, but it may be useful for backward compatibility with previous \
+ Directory Server releases
+SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH=An \
+ error occurred while trying to determine the value of the %s configuration \
+ attribute, which indicates whether directory string attributes should be \
+ allowed to have zero-length values: %s
+SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE=The \
+ operation attempted to assign a zero-length value to an attribute with the \
+ directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH=The %s \
+ attribute in configuration entry %s has been updated with a new value of %s
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR=The provided \
+ authPassword value had an invalid scheme character at position %d
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME=The provided authPassword value \
+ had a zero-length scheme element
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR=The provided \
+ authPassword value was missing the separator character or had an illegal \
+ character between the scheme and authInfo elements
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR=The provided \
+ authPassword value had an invalid authInfo character at position %d
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO=The provided authPassword \
+ value had a zero-length authInfo element
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR=The provided \
+ authPassword value was missing the separator character or had an illegal \
+ character between the authInfo and authValue elements
+SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS=The provided value \
+ "%s" could not be parsed by the integer first component matching rule because \
+ it did not start with a parenthesis
+SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE=The provided value "%s" could not \
+ be parsed by the integer first component matching rule because it did not \
+ have any non-space characters after the opening parenthesis
+SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT=The provided value "%s" \
+ could not be parsed by the integer first component matching rule because it \
+ did not have any space characters after the first component
+SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT=The provided value \
+ "%s" could not be parsed by the integer first component matching rule because \
+ the first component does not appear to be an integer value
+SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE=No value was given to decode by \
+ the user password attribute syntax
+SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE=Unable to decode the \
+ provided value according to the user password syntax because the value does \
+ not start with the opening curly brace ("{") character
+SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE=Unable to decode the \
+ provided value according to the user password syntax because the value does \
+ not contain a closing curly brace ("}") character
+SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME=Unable to decode the provided \
+ value according to the user password syntax because the value does not \
+ contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID=The provided \
+ value "%s" could not be parsed as a valid RFC 3672 subtree specification
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID=The provided \
+ value "%s" could not be parsed as a valid absolute subtree specification
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID=The provided \
+ value "%s" could not be parsed as a valid relative subtree specification
+SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER=The provided value %s is not \
+ allowed for attributes with a Integer syntax
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR=The provided \
+ authPassword value had an invalid authValue character at position %d
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE=The provided authPassword \
+ value had a zero-length authValue element
+SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR=The provided \
+ authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER=The provided \
+ value "%s" could not be parsed as an attribute syntax extension because an \
+ invalid character was found at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION=The attribute syntax \
+ could not be parsed because of an invalid extension.%s
+SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE=The definition \
+ for objectclass %s is invalid because it has an objectclass type of %s but \
+ this is incompatible with the objectclass type %s for the superior class %s
+SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP=The \
+ definition for objectclass %s is invalid because it is defined as a \
+ structural class but its superior chain does not include the "top" \
+ objectclass
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE=The definition \
+ for attribute type %s is invalid because its attribute usage %s is not the \
+ same as the usage for its superior type %s
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE=The \
+ definition for attribute type %s is invalid because it is defined as a \
+ collective type but the superior type %s is not collective
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE=The \
+ definition for attribute type %s is invalid because it is not defined as a \
+ collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL=The DIT \
+ content rule "%s" is not valid because it prohibits the use of attribute type \
+ %s which is required by the associated structural object class %s
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY=The DIT content \
+ rule "%s" is not valid because it prohibits the use of attribute type %s \
+ which is required by the associated auxiliary object class %s
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL=The definition \
+ for attribute type %s is invalid because it is declared COLLECTIVE but does \
+ not have a usage of userApplications
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL=The \
+ definition for attribute type %s is invalid because it is declared \
+ NO-USER-MODIFICATION but does not have an operational usage
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR=The \
+ provided value %s is not a valid generalized time value because it contains \
+ illegal character %s in the fraction component
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION=The provided \
+ value %s is not a valid generalized time value because it does not contain at \
+ least one digit after the period to use as the fractional component
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO=The provided \
+ value %s is not a valid generalized time value because it does not end with \
+ 'Z' or a time zone offset
+SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME=The provided value \
+ %s is not a valid generalized time value because it represents an invalid \
+ time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED=A schema element could not be imported: %s, %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE=The collation \
+ rule %s under matching rule entry %s is invalid as the locale %s is not supported \
+ by JVM
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT=The provided \
+ collation rule %s does not contain a valid format of OID:LOCALE
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR=The provided \
+ value "%s" could not be parsed as a valid distinguished name because an \
+ attribute value started with a character at position %d that needs to be escaped
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR=The provided value "%s" could not \
+ be parsed as a valid attribute type definition because character '%c' at \
+ position %d is not allowed in an attribute type name
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR=The provided value \
+ "%s" could not be parsed as a valid attribute type definition because the \
+ underscore character is not allowed in an attribute type name unless the \
+ %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH=The provided value "%s" \
+ could not be parsed as a valid attribute type definition because the hyphen \
+ character is not allowed as the first character of an attribute type name
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE=The provided value \
+ "%s" could not be parsed as a valid attribute type definition because the \
+ underscore character is not allowed as the first character of an attribute \
+ type name even if the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT=The provided value "%s" \
+ could not be parsed as a valid attribute type definition because the \
+ digit '%c' is not allowed as the first character of an attribute type name \
+ unless the name is specified as an OID or the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR=The provided value "%s" could not \
+ be parsed as a valid object class definition because character '%c' at \
+ position %d is not allowed in an object class name
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR=The provided value \
+ "%s" could not be parsed as a valid object class definition because the \
+ underscore character is not allowed in an object class name unless the \
+ %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH=The provided value "%s" \
+ could not be parsed as a valid object class definition because the hyphen \
+ character is not allowed as the first character of an object class name
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE=The provided value \
+ "%s" could not be parsed as a valid object class definition because the \
+ underscore character is not allowed as the first character of an object \
+ class name even if the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT=The provided value "%s" \
+ could not be parsed as a valid object class definition because the \
+ digit '%c' is not allowed as the first character of an object class name \
+ unless the name is specified as an OID or the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_MULTIPLE_SUPERIOR_CLASS=The provided "%s" \
+ value could not be parsed as a valid superior object class definition because \
+ definition for the objectclass with OID %s has already declared a superior objectclass with an OID \
+ of %s. Multiple inheritance of objectclasses is not yet supported
+MILD_WARN_ATTR_INVALID_RELATIVE_TIME_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because the \
+ character '%c' is not allowed. The acceptable values are s(second),m(minute), \
+ ,h(hour),d(day) and w(week)
+MILD_WARN_ATTR_INVALID_PARTIAL_TIME_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because the \
+ character '%c' is not allowed. The acceptable values are DD (date),MM(month) \
+ and YYYY(year)
+MILD_WARN_ATTR_MISSING_CHAR_PARTIAL_TIME_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because an invalid \
+ character '%c' is found instead of '%c' at position %d
+MILD_WARN_ATTR_INVALID_DATE_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because "%d" is not \
+ a valid date specification
+MILD_WARN_ATTR_INVALID_MONTH_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because "%d" is not \
+ a valid month specification
+MILD_WARN_ATTR_INVALID_YEAR_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because "%d" is not \
+ a valid year specification
+MILD_WARN_ATTR_DUPLICATE_DATE_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because there is \
+ conflicting value "%d" for DD(Date) specification
+MILD_WARN_ATTR_DUPLICATE_MONTH_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because there is \
+ conflicting value "%d" for MM(Month) specification
+MILD_WARN_ATTR_DUPLICATE_YEAR_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because there is \
+ conflicting value "%d" for YYYY(Year) specification
+MILD_WARN_ATTR_MISSING_YEAR_PARTIAL_TIME_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because it does \
+ not contain year in YYYY format
+MILD_WARN_ATTR_CONFLICTING_ASSERTION_FORMAT=The provided \
+ value "%s" could not be parsed as a valid assertion value because more than \
+ one time units are not allowed
+MILD_WARN_ATTR_LDAP_SYNTAX_ILLEGAL_CHAR_IN_OID=The provided value "%s" \
+ could not be parsed as an ldap syntax because the OID contained an illegal \
+ character %s at position %d
+MILD_WARN_ATTR_SYNTAX_LDAPSYNTAX_UNKNOWN_EXT=The provided value "%s" \
+ could not be parsed as an ldap syntax because it contains an unrecognized \
+ extension %s at position %d
+MILD_WARN_ATTR_SYNTAX_LDAPSYNTAX_REGEX_INVALID_VALUE=The provided value \
+ "%s" cannot be parsed as a valid regex syntax because it does not match \
+ the pattern "%s"
+MILD_WARN_ATTR_SYNTAX_LDAPSYNTAX_REGEX_NO_PATTERN=The provided value "%s" \
+ could not be parsed as a regex syntax because it does not contain a regex pattern
+MILD_WARN_ATTR_SYNTAX_LDAPSYNTAX_REGEX_INVALID_PATTERN=The definition for the \
+ syntax with OID "%s" could not be parsed as a regex syntax because the provided \
+ regex pattern "%s" is invalid
+MILD_ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS=Unexpected closing \
+ parenthesis at position %d
+MILD_ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS=A single quote was \
+ expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID=Non-numeric \
+ OID contained an illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_ILLEGAL_CHAR=Illegal character %s at position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_REQUIRED_ATTR=The provided value \
+ "%s" could not be parsed as a name form description because it does not \
+ specify a required naming attribute
+MILD_ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE= The provided value could not \
+ be parsed as a valid rule ID because it did not contain any characters
+MILD_ERR_ATTR_SYNTAX_RULE_ID_INVALID=The value "%s" \
+ could not be parsed as a valid rule ID
+MILD_ERR_ATTR_SYNTAX_UNKNOWN_SUB_SYNTAX=The definition for the \
+ syntax with OID %s declared that it should have a substitution syntax with \
+ OID %s. No such syntax is defined
+MILD_WARN_ATTR_SYNTAX_NOT_IMPLEMENTED=The syntax with OID %s is not \
+ implemented. It will be substituted by the default syntax with OID %s
+MILD_WARN_MATCHING_RULE_NOT_IMPLEMENTED=The matching rule with OID %s is \
+ not implemented. It will be substituted by the default matching rule %s
+MILD_ERR_ATTR_SYNTAX_ILLEGAL_TOKEN=Illegal token %s
+MILD_ERR_ATTR_SYNTAX_TRUNCATED_VALUE=Unexpected end of value
+MILD_ERR_ATTR_SYNTAX_CYCLIC_SUB_SYNTAX=The definition for the \
+ syntax with OID %s declared a cyclic substitution.
+MILD_ERR_SCHEMA_REPLACE_CORE_ELEMENT=Unable to add schema element with \
+ OID %s because it conflicts with a core element %s
+MILD_WARN_ATTR_SYNTAX_LDAPSYNTAX_ENUM_INVALID_VALUE=The provided value \
+ "%s" cannot be parsed because it is not allowed by enumeration syntax \
+ with OID "%s"
+MILD_WARN_ATTR_SYNTAX_LDAPSYNTAX_ENUM_DUPLICATE_VALUE=The provided value \
+ "%s" cannot be parsed as an enumeration syntax because it contains a \
+ duplicate value "%s" at position %d
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_BAD_APPROXIMATE_MR=The definition for \
+ the attribute type with OID %s declared that approximate matching should be \
+ performed using the matching rule "%s". This matching rule is defined in \
+ the schema, but it is not an approximate matching rule
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_BAD_EQUALITY_MR=The definition for \
+ the attribute type with OID %s declared that equality matching should be \
+ performed using the matching rule "%s". This matching rule is defined in \
+ the schema, but it is not an equality matching rule
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_BAD_ORDERING_MR=The definition for \
+ the attribute type with OID %s declared that ordering matching should be \
+ performed using the matching rule "%s". This matching rule is defined in \
+ the schema, but it is not an ordering matching rule
+SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_BAD_SUBSTRING_MR=The definition for \
+ the attribute type with OID %s declared that substring matching should be \
+ performed using the matching rule "%s". This matching rule is defined in \
+ the schema, but it is not an substring matching rule
+MILD_ERR_ATTR_SYNTAX_EMPTY_VALUE=The provided value could not be \
+ parsed because it was empty or contained only whitespace
+MILD_ERR_ATTR_SYNTAX_EXPECTED_OPEN_PARENTHESIS=The provided value \
+ "%s" could not be parsed because an open parenthesis was expected at \
+ position %d but instead a '%s' character was found
+SEVERE_WARN_ATTR_TYPE_UNKNOWN=No attribute type with name or \
+ OID "%s" exists in the schema
+SEVERE_WARN_OBJECTCLASS_UNKNOWN=No object class with name or \
+ OID "%s" exists in the schema
+SEVERE_WARN_MR_UNKNOWN=No matching rule with name or \
+ OID "%s" exists in the schema
+SEVERE_WARN_MRU_UNKNOWN=No matching rule use with name or \
+ OID "%s" exists in the schema
+SEVERE_WARN_DCR_UNKNOWN=No DIT content rule with name or \
+ OID "%s" exists in the schema
+SEVERE_WARN_DSR_UNKNOWN=No DIT structure rule with ID "%s" exists \
+ in the schema
+SEVERE_WARN_NAMEFORM_UNKNOWN=No name form with name or \
+ OID "%s" exists in the schema
+SEVERE_WARN_SYNTAX_UNKNOWN=No syntax with OID "%s" exists in the \
+ schema
+SEVERE_WARN_ATTR_TYPE_AMBIGIOUS=Multiple attribute types with name %s \
+ exists in the schema
+SEVERE_WARN_OBJECTCLASS_AMBIGIOUS=Multiple object classes with name \
+ %s exists in the schema
+SEVERE_WARN_MR_AMBIGIOUS=Multiple matching rules with name %s \
+ exists in the schema
+SEVERE_WARN_MRU_AMBIGIOUS=Multiple matching rule uses with name %s \
+ exists in the schema
+SEVERE_WARN_DCR_AMBIGIOUS=Multiple DIT content rules with name %s \
+ exists in the schema
+SEVERE_WARN_NAMEFORM_AMBIGIOUS=Multiple name forms with name %s \
+ exists in the schema
+SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_NO_WILDCARDS=The provided \
+ value "%s" could not be parsed as a substring assertion because it does not \
+ contain any wildcard characters
+SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_EMPTY=The provided value \
+ could not be parsed as a substring assertion because it is zero-length
+SEVERE_ERR_SYNTAX_VALIDATION_FAIL=Validation of syntax definition %s \
+ failed and will be removed from the schema: %s
+SEVERE_ERR_OC_VALIDATION_FAIL=Validation of object class definition %s \
+ failed and will be removed from the schema: %s
+SEVERE_ERR_ATTR_TYPE_VALIDATION_FAIL=Validation of attribute type \
+ definition %s failed and will be removed from the schema: %s
+SEVERE_ERR_MR_VALIDATION_FAIL=Validation of matching rule definition %s \
+ failed and will be removed from the schema: %s
+SEVERE_ERR_MRU_VALIDATION_FAIL=Validation of matching rule use definition \
+ %s failed and will be removed from the schema: %s
+SEVERE_ERR_DCR_VALIDATION_FAIL=Validation of DIT content rule definition \
+ %s failed and will be removed from the schema: %s
+SEVERE_ERR_DSR_VALIDATION_FAIL=Validation of DIT structure rule definition \
+ %s failed and will be removed from the schema: %s
+SEVERE_ERR_NAMEFORM_VALIDATION_FAIL=Validation of name form definition %s \
+ failed and will be removed from the schema: %s
+SEVERE_ERR_NO_SUBSCHEMA_SUBENTRY_ATTR=The entry %s does not include \
+ a subschemaSubentry attribute
+MILD_ERR_ATTRIBUTE_DESCRIPTION_TYPE_NOT_FOUND=The attribute description "%s" \
+ could not be parsed due to the following reason: %s
+MILD_ERR_RDN_TYPE_NOT_FOUND=The RDN "%s" could not be parsed due to the \
+ following reason: %s
+MILD_ERR_DN_TYPE_NOT_FOUND=The DN "%s" could not be parsed due to the \
+ following reason: %s
+MILD_ERR_ATTRIBUTE_DESCRIPTION_EMPTY=The attribute description \
+ "%s" could not be parsed because it was empty
+MILD_ERR_ATTRIBUTE_DESCRIPTION_ILLEGAL_CHARACTER=The attribute description \
+ "%s" could not be parsed because it contains an invalid character "%c" at \
+ position %d
+MILD_ERR_ATTRIBUTE_DESCRIPTION_NO_TYPE=The attribute description \
+ "%s" could not be parsed because it does not contain an attribute type name
+MILD_ERR_ATTRIBUTE_DESCRIPTION_EMPTY_OPTION=The attribute description \
+ "%s" could not be parsed because it contains a zero length option
+MILD_ERR_ATTRIBUTE_DESCRIPTION_INTERNAL_WHITESPACE=The attribute \
+ description "%s" could not be parsed because it contains internal white space
+SEVERE_ERR_INVALID_SUBSCHEMA_SUBENTRY_ATTR=The entry %s includes \
+ a subschemaSubentry attribute but it contains an invalid distinguished \
+ name "%s": %s
+MILD_WARN_ATTR_TYPE_NOT_DEFINED=The definition for the \
+ attribute type with OID %s declared that it should have a syntax \
+ with OID %s which is is not defined in the schema. The missing syntax \
+ will be substituted by the core schema syntax: %s
+#
+# Core messages
+#
+MILD_ERR_SCHEMA_CONFLICTING_ATTRIBUTE_OID=Unable to register attribute \
+ type %s with the server schema because its OID %s conflicts with the OID of \
+ an existing attribute type %s
+MILD_ERR_SCHEMA_CONFLICTING_ATTRIBUTE_NAME=Unable to register attribute \
+ type %s with the server schema because its name %s conflicts with the name of \
+ an existing attribute type %s
+MILD_ERR_SCHEMA_CONFLICTING_OBJECTCLASS_OID=Unable to register \
+ objectclass %s with the server schema because its OID %s conflicts with the \
+ OID of an existing objectclass %s
+MILD_ERR_SCHEMA_CONFLICTING_OBJECTCLASS_NAME=Unable to register \
+ objectclass %s with the server schema because its name %s conflicts with the \
+ name of an existing objectclass %s
+MILD_ERR_SCHEMA_CONFLICTING_SYNTAX_OID=Unable to register attribute \
+ syntax %s with the server schema because its OID %s conflicts with the OID of \
+ an existing syntax %s
+MILD_ERR_SCHEMA_CONFLICTING_MR_OID=Unable to register matching rule %s \
+ with the server schema because its OID %s conflicts with the OID of an \
+ existing matching rule %s
+MILD_ERR_SCHEMA_CONFLICTING_MR_NAME=Unable to register matching rule %s \
+ with the server schema because its name %s conflicts with the name of an \
+ existing matching rule %s
+MILD_ERR_SCHEMA_CONFLICTING_MATCHING_RULE_USE=Unable to register matching \
+ rule use %s with the server schema because its matching rule %s conflicts \
+ with the matching rule for an existing matching rule use %s
+MILD_ERR_SCHEMA_CONFLICTING_DIT_CONTENT_RULE=Unable to register DIT \
+ content rule %s with the server schema because its structural objectclass %s \
+ conflicts with the structural objectclass for an existing DIT content rule %s
+MILD_ERR_SCHEMA_CONFLICTING_DIT_STRUCTURE_RULE_NAME_FORM=Unable to \
+ register DIT structure rule %s with the server schema because its name form \
+ %s conflicts with the name form for an existing DIT structure rule %s
+MILD_ERR_SCHEMA_CONFLICTING_DIT_STRUCTURE_RULE_ID=Unable to register DIT \
+ structure rule %s with the server schema because its rule ID %d conflicts \
+ with the rule ID for an existing DIT structure rule %s
+MILD_ERR_SCHEMA_CONFLICTING_NAME_FORM_OC=Unable to register name form %s \
+ with the server schema because its structural objectclass %s conflicts with \
+ the structural objectclass for an existing name form %s
+MILD_ERR_SCHEMA_CONFLICTING_NAME_FORM_OID=Unable to register name form %s \
+ with the server schema because its OID %s conflicts with the OID for an \
+ existing name form %s
+MILD_ERR_SCHEMA_CONFLICTING_NAME_FORM_NAME=Unable to register name form \
+ %s with the server schema because its name %s conflicts with the name for an \
+ existing name form %s
+INFO_RESULT_SUCCESS=Success
+INFO_RESULT_OPERATIONS_ERROR=Operations Error
+INFO_RESULT_PROTOCOL_ERROR=Protocol Error
+INFO_RESULT_TIME_LIMIT_EXCEEDED=Time Limit Exceeded
+INFO_RESULT_SIZE_LIMIT_EXCEEDED=Size Limit Exceeded
+INFO_RESULT_COMPARE_FALSE=Compare False
+INFO_RESULT_COMPARE_TRUE=Compare True
+INFO_RESULT_AUTH_METHOD_NOT_SUPPORTED=Authentication Method Not Supported
+INFO_RESULT_STRONG_AUTH_REQUIRED=Strong Authentication Required
+INFO_RESULT_REFERRAL=Referral
+INFO_RESULT_ADMIN_LIMIT_EXCEEDED=Administrative Limit Exceeded
+INFO_RESULT_UNAVAILABLE_CRITICAL_EXTENSION=Unavailable Critical Extension
+INFO_RESULT_CONFIDENTIALITY_REQUIRED=Confidentiality Required
+INFO_RESULT_SASL_BIND_IN_PROGRESS=SASL Bind in Progress
+INFO_RESULT_NO_SUCH_ATTRIBUTE=No Such Attribute
+INFO_RESULT_UNDEFINED_ATTRIBUTE_TYPE=Undefined Attribute Type
+INFO_RESULT_INAPPROPRIATE_MATCHING=Inappropriate Matching
+INFO_RESULT_CONSTRAINT_VIOLATION=Constraint Violation
+INFO_RESULT_ATTRIBUTE_OR_VALUE_EXISTS=Attribute or Value Exists
+INFO_RESULT_INVALID_ATTRIBUTE_SYNTAX=Invalid Attribute Syntax
+INFO_RESULT_NO_SUCH_OBJECT=No Such Entry
+INFO_RESULT_ALIAS_PROBLEM=Alias Problem
+INFO_RESULT_INVALID_DN_SYNTAX=Invalid DN Syntax
+INFO_RESULT_ALIAS_DEREFERENCING_PROBLEM=Alias Dereferencing Problem
+INFO_RESULT_INAPPROPRIATE_AUTHENTICATION=Inappropriate Authentication
+INFO_RESULT_INVALID_CREDENTIALS=Invalid Credentials
+INFO_RESULT_INSUFFICIENT_ACCESS_RIGHTS=Insufficient Access Rights
+INFO_RESULT_BUSY=Busy
+INFO_RESULT_UNAVAILABLE=Unavailable
+INFO_RESULT_UNWILLING_TO_PERFORM=Unwilling to Perform
+INFO_RESULT_LOOP_DETECT=Loop Detected
+INFO_RESULT_NAMING_VIOLATION=Naming Violation
+INFO_RESULT_OBJECTCLASS_VIOLATION=Object Class Violation
+INFO_RESULT_NOT_ALLOWED_ON_NONLEAF=Not Allowed on Non-Leaf
+INFO_RESULT_NOT_ALLOWED_ON_RDN=Not Allowed on RDN
+INFO_RESULT_ENTRY_ALREADY_EXISTS=Entry Already Exists
+INFO_RESULT_OBJECTCLASS_MODS_PROHIBITED=Object Class Modifications \
+ Prohibited
+INFO_RESULT_AFFECTS_MULTIPLE_DSAS=Affects Multiple DSAs
+INFO_RESULT_CANCELED=Canceled
+INFO_RESULT_NO_SUCH_OPERATION=No Such Operation
+INFO_RESULT_TOO_LATE=Too Late
+INFO_RESULT_CANNOT_CANCEL=Cannot Cancel
+INFO_RESULT_OTHER=Other
+INFO_RESULT_CLIENT_SIDE_SERVER_DOWN=Server Connection Closed
+INFO_RESULT_CLIENT_SIDE_LOCAL_ERROR=Local Error
+INFO_RESULT_CLIENT_SIDE_ENCODING_ERROR=Encoding Error
+INFO_RESULT_CLIENT_SIDE_DECODING_ERROR=Decoding Error
+INFO_RESULT_CLIENT_SIDE_TIMEOUT=Client-Side Timeout
+INFO_RESULT_CLIENT_SIDE_AUTH_UNKNOWN=Unknown Authentication Mechanism
+INFO_RESULT_CLIENT_SIDE_FILTER_ERROR=Filter Error
+INFO_RESULT_CLIENT_SIDE_USER_CANCELLED=Cancelled by User
+INFO_RESULT_CLIENT_SIDE_PARAM_ERROR=Parameter Error
+INFO_RESULT_CLIENT_SIDE_NO_MEMORY=Out of Memory
+INFO_RESULT_CLIENT_SIDE_CONNECT_ERROR=Connect Error
+INFO_RESULT_CLIENT_SIDE_NOT_SUPPORTED=Operation Not Supported
+INFO_RESULT_CLIENT_SIDE_CONTROL_NOT_FOUND=Control Not Found
+INFO_RESULT_CLIENT_SIDE_NO_RESULTS_RETURNED=No Results Returned
+INFO_RESULT_CLIENT_SIDE_MORE_RESULTS_TO_RETURN=More Results to Return
+INFO_RESULT_CLIENT_SIDE_CLIENT_LOOP=Referral Loop Detected
+INFO_RESULT_CLIENT_SIDE_REFERRAL_LIMIT_EXCEEDED=Referral Hop Limit Exceeded
+INFO_RESULT_AUTHORIZATION_DENIED=Authorization Denied
+INFO_RESULT_ASSERTION_FAILED=Assertion Failed
+INFO_RESULT_SORT_CONTROL_MISSING=Sort Control Missing
+INFO_RESULT_OFFSET_RANGE_ERROR=Offset Range Error
+INFO_RESULT_VIRTUAL_LIST_VIEW_ERROR=Virtual List View Error
+INFO_RESULT_NO_OPERATION=No Operation
+#
+# Protocol messages
+#
+MILD_ERR_ASN1_TRUCATED_TYPE_BYTE=Cannot decode the ASN.1 element because an \
+ unexpected end of file was reached while reading the type byte
+MILD_ERR_ASN1_TRUNCATED_LENGTH_BYTE=Cannot decode the ASN.1 element because \
+ an unexpected end of file was reached while reading the first length byte
+MILD_ERR_ASN1_INVALID_NUM_LENGTH_BYTES=Cannot decode the ASN.1 element \
+ because it contained a multi-byte length with an invalid number of bytes (%d)
+MILD_ERR_ASN1_TRUNCATED_LENGTH_BYTES=Cannot decode the ASN.1 element because \
+ an unexpected end of file was reached while reading a multi-byte length of \
+ %d bytes
+MILD_ERR_ASN1_BOOLEAN_TRUNCATED_VALUE=Cannot decode the ASN.1 boolean \
+ element of because an unexpected end of file was reached while reading value \
+ bytes (%d)
+MILD_ERR_ASN1_BOOLEAN_INVALID_LENGTH=Cannot decode the ASN.1 \
+ boolean element because the decoded value length was not exactly one byte \
+ (decoded length was %d)
+MILD_ERR_ASN1_NULL_TRUNCATED_VALUE=Cannot decode the ASN.1 null \
+ element of because an unexpected end of file was reached while reading value \
+ bytes (%d)
+MILD_ERR_ASN1_NULL_INVALID_LENGTH=Cannot decode the ASN.1 null element \
+ because the decoded value length was not exactly zero bytes \
+ (decoded length was %d)
+MILD_ERR_ASN1_OCTET_STRING_TRUNCATED_VALUE=Cannot decode the ASN.1 octet \
+ string element of because an unexpected end of file was reached while reading \
+ value bytes (%d)
+MILD_ERR_ASN1_INTEGER_TRUNCATED_VALUE=Cannot decode the ASN.1 integer \
+ element of because an unexpected end of file was reached while reading \
+ value bytes (%d)
+MILD_ERR_ASN1_INTEGER_INVALID_LENGTH=Cannot decode the \
+ provided ASN.1 integer element because the length of the \
+ element value was not between one and four bytes (actual length was %d)
+MILD_ERR_ASN1_SEQUENCE_READ_NOT_STARTED=Cannot decode the end of the ASN.1 \
+ sequence or set because the start of the sequence was not read
+MILD_ERR_ASN1_SEQUENCE_READ_NOT_ENDED=Cannot decode the end of the ASN.1 \
+ sequence or set because %d bytes are not read from the sequence of %d bytes \
+ in length
+MILD_ERR_ASN1_SKIP_TRUNCATED_VALUE=Cannot skip the ASN.1 element of because \
+ an unexpected end of file was reached while reading value bytes (%d)
+MILD_ERR_ASN1_SEQUENCE_SET_TRUNCATED_VALUE=Cannot decode the ASN.1 sequence \
+ or set element of because an unexpected end of file was reached while reading \
+ value bytes (%d)
+MILD_ERR_LDAP_MESSAGE_DECODE_NULL=Cannot decode the provided ASN.1 \
+ sequence as an LDAP message because the sequence was null
+MILD_ERR_LDAP_MESSAGE_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 sequence as an LDAP message because the sequence contained an \
+ invalid number of elements (expected 2 or 3, got %d)
+MILD_ERR_LDAP_MESSAGE_DECODE_MESSAGE_ID=Cannot decode the provided ASN.1 \
+ sequence as an LDAP message because the first element of the sequence could \
+ not be decoded as an integer message ID: %s
+MILD_ERR_LDAP_MESSAGE_DECODE_PROTOCOL_OP=Cannot decode the provided ASN.1 \
+ sequence as an LDAP message because the second element of the sequence could \
+ not be decoded as the protocol op: %s
+MILD_ERR_LDAP_MESSAGE_DECODE_CONTROLS=Cannot decode the provided ASN.1 \
+ sequence as an LDAP message because the third element of the sequence could \
+ not be decoded as the set of controls: %s
+MILD_ERR_LDAP_CONTROL_DECODE_NULL=Cannot decode the provided ASN.1 element \
+ as an LDAP control because the element was null
+MILD_ERR_LDAP_CONTROL_DECODE_SEQUENCE=Cannot decode the provided ASN.1 \
+ element as an LDAP control because the element could not be decoded as a \
+ sequence: %s
+MILD_ERR_LDAP_CONTROL_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP control because the control sequence \
+ contained an invalid number of elements (expected 1 to 3, got %d)
+MILD_ERR_LDAP_CONTROL_DECODE_OID=Cannot decode the provided ASN.1 element \
+ as an LDAP control because the OID could not be decoded as a string: %s
+MILD_ERR_LDAP_CONTROL_DECODE_CRITICALITY=Cannot decode the provided ASN.1 \
+ element as an LDAP control because the criticality could not be decoded as \
+ Boolean value: %s
+MILD_ERR_LDAP_CONTROL_DECODE_VALUE=Cannot decode the provided ASN.1 \
+ element as an LDAP control because the value could not be decoded as an octet \
+ string: %s
+MILD_ERR_LDAP_CONTROL_DECODE_INVALID_TYPE=Cannot decode the provided ASN.1 \
+ element as an LDAP control because the BER type for the second element in the \
+ sequence was invalid (expected 01 or 04, got %x)
+MILD_ERR_LDAP_CONTROL_DECODE_CONTROLS_NULL=Cannot decode the provided \
+ ASN.1 element as a set of LDAP controls because the element was null
+MILD_ERR_LDAP_CONTROL_DECODE_CONTROLS_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as a set of LDAP controls because the element could not be \
+ decoded as a sequence: %s
+MILD_ERR_LDAP_ABANDON_REQUEST_DECODE_ID=Cannot decode the provided ASN.1 \
+ element as an LDAP abandon request protocol op because a problem occurred \
+ while trying to obtain the message ID of the operation to abandon: %s
+MILD_ERR_LDAP_RESULT_DECODE_SEQUENCE=Cannot decode the provided ASN.1 \
+ element as an LDAP result protocol op because a problem occurred while trying \
+ to parse the result sequence: %s
+MILD_ERR_LDAP_RESULT_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP result protocol op because the result \
+ sequence did not contain a valid number of elements (expected 3 or 4, got %d)
+MILD_ERR_LDAP_RESULT_DECODE_RESULT_CODE=Cannot decode the provided ASN.1 \
+ element as an LDAP result protocol op because the first element in the result \
+ sequence could not be decoded as an integer result code: %s
+MILD_ERR_LDAP_RESULT_DECODE_MATCHED_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP result protocol op because the second element in the \
+ result sequence could not be decoded as the matched DN: %s
+MILD_ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE=Cannot decode the provided ASN.1 \
+ element as an LDAP result protocol op because the third element in the result \
+ sequence could not be decoded as the error message: %s
+MILD_ERR_LDAP_RESULT_DECODE_REFERRALS=Cannot decode the provided ASN.1 \
+ element as an LDAP result protocol op because the fourth element in the \
+ result sequence could not be decoded as a set of referral URLs: %s
+MILD_ERR_LDAP_BIND_RESULT_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP bind response protocol op because the \
+ result sequence did not contain a valid number of elements (expected 3 to 5, \
+ got %d)
+MILD_ERR_LDAP_BIND_RESULT_DECODE_SERVER_SASL_CREDENTIALS=Cannot decode the \
+ provided ASN.1 element as an LDAP bind response protocol op because the final \
+ element in the result sequence could not be decoded as the server SASL \
+ credentials: %s
+MILD_ERR_LDAP_BIND_RESULT_DECODE_INVALID_TYPE=Cannot decode the provided \
+ ASN.1 element as an LDAP bind response protocol op because the BER type for \
+ the fourth element in the sequence was invalid (expected A3 or 87, got %x)
+MILD_ERR_LDAP_EXTENDED_RESULT_DECODE_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP bind response protocol op because the \
+ result sequence did not contain a valid number of elements (expected 3 to 6, \
+ got %d)
+MILD_ERR_LDAP_EXTENDED_RESULT_DECODE_REFERRALS=Cannot decode the provided \
+ ASN.1 element as an LDAP bind response protocol op because the set of \
+ referral URLs could not be decoded: %s
+MILD_ERR_LDAP_EXTENDED_RESULT_DECODE_OID=Cannot decode the provided ASN.1 \
+ element as an LDAP bind response protocol op because the response OID could \
+ not be decoded: %s
+MILD_ERR_LDAP_EXTENDED_RESULT_DECODE_VALUE=Cannot decode the provided \
+ ASN.1 element as an LDAP bind response protocol op because the response value \
+ could not be decoded: %s
+MILD_ERR_LDAP_EXTENDED_RESULT_DECODE_INVALID_TYPE=Cannot decode the \
+ provided ASN.1 element as an LDAP extended response protocol op because one \
+ of the elements it contained had an invalid BER type (expected A3, 8A, or 8B, \
+ got %x)
+MILD_ERR_LDAP_UNBIND_DECODE=Cannot decode the provided ASN.1 element as an \
+ LDAP unbind request protocol op: %s
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP bind request protocol op because the element could \
+ not be decoded as a sequence: %s
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP bind request protocol op because the \
+ request sequence had an invalid number of elements (expected 3, got %d)
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_VERSION=Cannot decode the provided ASN.1 \
+ element as an LDAP bind request protocol op because the protocol version \
+ could not be decoded as an integer: %s
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP bind request protocol op because the bind DN could not be \
+ properly decoded: %s
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_PASSWORD=Cannot decode the provided \
+ ASN.1 element as an LDAP bind request protocol op because the password to use \
+ for simple authentication could not be decoded: %s
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_SASL_INFO=Cannot decode the provided \
+ ASN.1 element as an LDAP bind request protocol op because the SASL \
+ authentication information could not be decoded: %s
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_INVALID_CRED_TYPE=Cannot decode the \
+ provided ASN.1 element as an LDAP bind request protocol op because the \
+ authentication info element had an invalid BER type (expected 80 or A3, got \
+ %x)
+MILD_ERR_LDAP_BIND_REQUEST_DECODE_CREDENTIALS=Cannot decode the provided \
+ ASN.1 element as an LDAP bind request protocol op because an unexpected error \
+ occurred while trying to decode the authentication info element: %s
+MILD_ERR_LDAP_COMPARE_REQUEST_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP compare request protocol op because the element \
+ could not be decoded as a sequence: %s
+MILD_ERR_LDAP_COMPARE_REQUEST_DECODE_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP compare request protocol op because the \
+ request sequence had an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_COMPARE_REQUEST_DECODE_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP compare request protocol op because the target DN could \
+ not be properly decoded: %s
+MILD_ERR_LDAP_COMPARE_REQUEST_DECODE_AVA=Cannot decode the provided ASN.1 \
+ element as an LDAP compare request protocol op because the attribute value \
+ assertion could not be decoded as a sequence: %s
+MILD_ERR_LDAP_COMPARE_REQUEST_DECODE_AVA_COUNT=Cannot decode the provided \
+ ASN.1 element as an LDAP compare request protocol op because the attribute \
+ value assertion sequence had an invalid number of elements (expected 2, got \
+ %d)
+MILD_ERR_LDAP_COMPARE_REQUEST_DECODE_TYPE=Cannot decode the provided ASN.1 \
+ element as an LDAP compare request protocol op because the attribute type \
+ could not be properly decoded: %s
+MILD_ERR_LDAP_COMPARE_REQUEST_DECODE_VALUE=Cannot decode the provided \
+ ASN.1 element as an LDAP compare request protocol op because the assertion \
+ value could not be properly decoded: %s
+MILD_ERR_LDAP_DELETE_REQUEST_DECODE_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP delete request protocol op because the target DN could not \
+ be properly decoded: %s
+MILD_ERR_LDAP_EXTENDED_REQUEST_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP extended request protocol op because the element \
+ could not be decoded as a sequence: %s
+MILD_ERR_LDAP_EXTENDED_REQUEST_DECODE_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP extended request protocol op because \
+ the request sequence had an invalid number of elements (expected 1 or 2, got \
+ %d)
+MILD_ERR_LDAP_EXTENDED_REQUEST_DECODE_OID=Cannot decode the provided ASN.1 \
+ element as an LDAP extended request protocol op because the OID could not be \
+ properly decoded: %s
+MILD_ERR_LDAP_EXTENDED_REQUEST_DECODE_VALUE=Cannot decode the provided \
+ ASN.1 element as an LDAP extended request protocol op because the value could \
+ not be properly decoded: %s
+MILD_ERR_LDAP_MODIFY_DN_REQUEST_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP modify DN request protocol op because the element \
+ could not be decoded as a sequence: %s
+MILD_ERR_LDAP_MODIFY_DN_REQUEST_DECODE_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP modify DN request protocol op because \
+ the request sequence had an invalid number of elements (expected 3 or 4, got \
+ %d)
+MILD_ERR_LDAP_MODIFY_DN_REQUEST_DECODE_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP modify DN request protocol op because the entry DN could \
+ not be properly decoded: %s
+MILD_ERR_LDAP_MODIFY_DN_REQUEST_DECODE_NEW_RDN=Cannot decode the provided \
+ ASN.1 element as an LDAP modify DN request protocol op because the new RDN \
+ could not be properly decoded: %s
+MILD_ERR_LDAP_MODIFY_DN_REQUEST_DECODE_DELETE_OLD_RDN=Cannot decode the \
+ provided ASN.1 element as an LDAP modify DN request protocol op because the \
+ deleteOldRDN flag could not be properly decoded: %s
+MILD_ERR_LDAP_MODIFY_DN_REQUEST_DECODE_NEW_SUPERIOR=Cannot decode the \
+ provided ASN.1 element as an LDAP modify DN request protocol op because the \
+ new superior DN could not be properly decoded: %s
+MILD_ERR_LDAP_ATTRIBUTE_DECODE_SEQUENCE=Cannot decode the provided ASN.1 \
+ element as an LDAP attribute because the element could not be decoded as a \
+ sequence: %s
+MILD_ERR_LDAP_ATTRIBUTE_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP attribute because the request sequence had \
+ an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_ATTRIBUTE_DECODE_TYPE=Cannot decode the provided ASN.1 \
+ element as an LDAP attribute because the attribute type could not be decoded: \
+ %s
+MILD_ERR_LDAP_ATTRIBUTE_DECODE_VALUES=Cannot decode the provided ASN.1 \
+ element as an LDAP attribute because the set of values could not be decoded: \
+ %s
+MILD_ERR_LDAP_ADD_REQUEST_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP add request protocol op because the element could \
+ not be decoded as a sequence: %s
+MILD_ERR_LDAP_ADD_REQUEST_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP add request protocol op because the request \
+ sequence had an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_ADD_REQUEST_DECODE_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP add request protocol op because the entry DN could not be \
+ decoded: %s
+MILD_ERR_LDAP_ADD_REQUEST_DECODE_ATTRS=Cannot decode the provided ASN.1 \
+ element as an LDAP add request protocol op because the set of attributes \
+ could not be decoded: %s
+MILD_ERR_LDAP_MODIFICATION_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP modification because the element could not be \
+ decoded as a sequence: %s
+MILD_ERR_LDAP_MODIFICATION_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP modification because the request sequence \
+ had an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_MODIFICATION_DECODE_INVALID_MOD_TYPE=Cannot decode the \
+ provided ASN.1 element as an LDAP modification because it contained an \
+ invalid modification type (%d)
+MILD_ERR_LDAP_MODIFICATION_DECODE_MOD_TYPE=Cannot decode the provided \
+ ASN.1 element as an LDAP modification because the modification type could not \
+ be decoded: %s
+MILD_ERR_LDAP_MODIFICATION_DECODE_ATTR=Cannot decode the provided ASN.1 \
+ element as an LDAP modification because the attribute could not be decoded: \
+ %s
+MILD_ERR_LDAP_MODIFY_REQUEST_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP modify request protocol op because the element could \
+ not be decoded as a sequence: %s
+MILD_ERR_LDAP_MODIFY_REQUEST_DECODE_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP modify request protocol op because the \
+ request sequence had an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_MODIFY_REQUEST_DECODE_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP modify request protocol op because the entry DN could not \
+ be decoded: %s
+MILD_ERR_LDAP_MODIFY_REQUEST_DECODE_MODS=Cannot decode the provided ASN.1 \
+ element as an LDAP modify request protocol op because the set of \
+ modifications could not be decoded: %s
+MILD_ERR_LDAP_SEARCH_ENTRY_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP search result entry protocol op because the element \
+ could not be decoded as a sequence: %s
+MILD_ERR_LDAP_SEARCH_ENTRY_DECODE_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP search result entry protocol op because the \
+ request sequence had an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_SEARCH_ENTRY_DECODE_DN=Cannot decode the provided ASN.1 \
+ element as an LDAP search result entry protocol op because the entry DN could \
+ not be decoded: %s
+MILD_ERR_LDAP_SEARCH_ENTRY_DECODE_ATTRS=Cannot decode the provided ASN.1 \
+ element as an LDAP search result entry protocol op because the set of \
+ attributes could not be decoded: %s
+MILD_ERR_LDAP_SEARCH_REFERENCE_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP search result reference protocol op because the \
+ element could not be decoded as a sequence: %s
+MILD_ERR_LDAP_SEARCH_REFERENCE_DECODE_URLS=Cannot decode the provided \
+ ASN.1 element as an LDAP search result reference protocol op because a \
+ problem occurred while trying to decode the sequence elements as referral \
+ URLs: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the element could \
+ not be decoded as a sequence: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP search request protocol op because the \
+ request sequence had an invalid number of elements (expected 8, got %d)
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_BASE=Cannot decode the provided ASN.1 \
+ element as an LDAP search request protocol op because the base DN could not \
+ be decoded: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_INVALID_SCOPE=Cannot decode the \
+ provided ASN.1 element as an LDAP search request protocol op because the \
+ provided scope value (%d) is invalid
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_SCOPE=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the scope could \
+ not be decoded: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_INVALID_DEREF=Cannot decode the \
+ provided ASN.1 element as an LDAP search request protocol op because the \
+ provided alias dereferencing policy value (%d) is invalid
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_DEREF=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the alias \
+ dereferencing policy could not be decoded: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_SIZE_LIMIT=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the size limit \
+ could not be decoded: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_TIME_LIMIT=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the time limit \
+ could not be decoded: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_TYPES_ONLY=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the typesOnly \
+ flag could not be decoded: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_FILTER=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the filter could \
+ not be decoded: %s
+MILD_ERR_LDAP_SEARCH_REQUEST_DECODE_ATTRIBUTES=Cannot decode the provided \
+ ASN.1 element as an LDAP search request protocol op because the requested \
+ attribute set could not be decoded: %s
+MILD_ERR_LDAP_PROTOCOL_OP_DECODE_NULL=Cannot decode the provided ASN.1 \
+ element as an LDAP protocol op because the element was null
+MILD_ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE=Cannot decode the provided \
+ ASN.1 element as an LDAP protocol op because the element had an invalid BER \
+ type (%x) for an LDAP protocol op
+MILD_ERR_LDAP_FILTER_DECODE_NULL=Cannot decode the provided ASN.1 element \
+ as an LDAP search filter because the element was null
+MILD_ERR_LDAP_FILTER_DECODE_INVALID_TYPE=Cannot decode the provided ASN.1 \
+ element as an LDAP search filter because the element had an invalid BER type \
+ (%x) for a search filter
+MILD_ERR_LDAP_FILTER_DECODE_COMPOUND_SET=Cannot decode the provided ASN.1 \
+ element as an LDAP search filter because the compound filter set could not be \
+ decoded: %s
+MILD_ERR_LDAP_FILTER_DECODE_COMPOUND_COMPONENTS=Cannot decode the \
+ provided ASN.1 element as an LDAP search filter because an unexpected error \
+ occurred while trying to decode one of the compound filter components: %s
+MILD_ERR_LDAP_FILTER_DECODE_NOT_ELEMENT=Cannot decode the provided ASN.1 \
+ element as an LDAP search filter because the value of the element cannot \
+ itself be decoded as an ASN.1 element for a NOT filter component: %s
+MILD_ERR_LDAP_FILTER_DECODE_NOT_COMPONENT=Cannot decode the provided \
+ ASN.1 element as an LDAP search filter because the NOT component element \
+ could not be decoded as an LDAP filter: %s
+MILD_ERR_LDAP_FILTER_DECODE_TV_SEQUENCE=Cannot decode the provided ASN.1 \
+ element as an LDAP search filter because the element could not be decoded as \
+ a type-and-value sequence: %s
+MILD_ERR_LDAP_FILTER_DECODE_TV_INVALID_ELEMENT_COUNT=Cannot decode the \
+ provided ASN.1 element as an LDAP search filter because the type-and-value \
+ sequence had an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_FILTER_DECODE_TV_TYPE=Cannot decode the provided ASN.1 \
+ element as an LDAP search filter because the attribute type could not be \
+ decoded from the type-and-value sequence: %s
+MILD_ERR_LDAP_FILTER_DECODE_TV_VALUE=Cannot decode the provided ASN.1 \
+ element as an LDAP search filter because the assertion value could not be \
+ decoded from the type-and-value sequence: %s
+MILD_ERR_LDAP_FILTER_DECODE_SUBSTRING_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP search filter because the element could not be \
+ decoded as a substring sequence: %s
+MILD_ERR_LDAP_FILTER_DECODE_SUBSTRING_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP search filter because the substring \
+ sequence had an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_FILTER_DECODE_SUBSTRING_TYPE=Cannot decode the provided \
+ ASN.1 element as an LDAP search filter because the attribute type could not \
+ be decoded from the substring sequence: %s
+MILD_ERR_LDAP_FILTER_DECODE_SUBSTRING_ELEMENTS=Cannot decode the provided \
+ ASN.1 element as an LDAP search filter because the substring value sequence \
+ could not be decoded: %s
+MILD_ERR_LDAP_FILTER_DECODE_SUBSTRING_NO_SUBELEMENTS=Cannot decode the \
+ provided ASN.1 element as an LDAP search filter because the substring value \
+ sequence did not contain any elements
+MILD_ERR_LDAP_FILTER_DECODE_SUBSTRING_INVALID_SUBTYPE=Cannot decode the \
+ provided ASN.1 element as an LDAP search filter because the substring value \
+ sequence had an element with an invalid BER type (%x)
+MILD_ERR_LDAP_FILTER_DECODE_SUBSTRING_VALUES=Cannot decode the provided \
+ ASN.1 element as an LDAP search filter because a problem occurred while \
+ trying to parse the substring value elements: %s
+MILD_ERR_LDAP_FILTER_DECODE_PRESENCE_TYPE=Cannot decode the provided \
+ ASN.1 element as an LDAP search filter because the element could not be \
+ decoded as the presence attribute type: %s
+MILD_ERR_LDAP_FILTER_DECODE_EXTENSIBLE_SEQUENCE=Cannot decode the \
+ provided ASN.1 element as an LDAP search filter because the element could not \
+ be decoded as an extensible matching sequence: %s
+MILD_ERR_LDAP_FILTER_DECODE_EXTENSIBLE_INVALID_TYPE=Cannot decode the \
+ provided ASN.1 element as an LDAP search filter because the extensible \
+ matching sequence had an element with an invalid BER type (%x)
+MILD_ERR_LDAP_FILTER_DECODE_EXTENSIBLE_ELEMENTS=Cannot decode the \
+ provided ASN.1 element as an LDAP search filter because a problem occurred \
+ while trying to parse the extensible match sequence elements: %s
+MILD_ERR_LDAP_CLIENT_SEND_RESPONSE_NO_RESULT_CODE=The server attempted to \
+ send a response to the %s operation (conn=%d, op=%d), but the operation did \
+ not have a result code. This could indicate that the operation did not \
+ complete properly or that it is one that is not allowed to have a response. \
+ Using a generic 'Operations Error' response
+MILD_ERR_LDAP_CLIENT_SEND_RESPONSE_INVALID_OP=The server attempted to \
+ send a response to the %s operation (conn=%d, op=%d), but this type of \
+ operation is not allowed to have responses. Backtrace: %s
+MILD_ERR_LDAP_CLIENT_SEND_MESSAGE_ENCODE_ASN1=The server was unable to \
+ encode the provided LDAP message %s (conn=%d, op=%d) into an ASN.1 element: \
+ %s
+MILD_ERR_LDAP_CLIENT_SEND_MESSAGE_ENCODE_BYTES=The server was unable to \
+ encode the ASN.1 element generated from LDAP message %s (conn=%d, op=%d) into \
+ a byte array: %s
+MILD_ERR_LDAP_CLIENT_SEND_MESSAGE_IO_PROBLEM=The server was unable to \
+ send the LDAP message %s (conn=%d, op=%d) to the client because an I/O \
+ problem was encountered: %s
+MILD_ERR_LDAP_CLIENT_SEND_MESSAGE_UNEXPECTED_PROBLEM=The server was \
+ unable to send the LDAP message %s (conn=%d, op=%d) to the client because an \
+ unexpected problem was encountered: %s
+INFO_LDAP_CLIENT_GENERIC_NOTICE_OF_DISCONNECTION=The Directory Server is \
+ closing the connection to this client
+MILD_WARN_LDAP_CLIENT_DISCONNECT_IN_PROGRESS=The Directory Server is \
+ currently in the process of closing this client connection
+MILD_ERR_LDAP_CLIENT_DECODE_ZERO_BYTE_VALUE=The client sent a request to \
+ the Directory Server that was an ASN.1 element with a zero-byte value. This \
+ cannot possibly be a valid LDAP message
+MILD_ERR_LDAP_CLIENT_DECODE_MAX_REQUEST_SIZE_EXCEEDED=The client sent a \
+ request to the Directory Server with an ASN.1 element value length of %d \
+ bytes. This exceeds the maximum allowed request size of %d bytes, so \
+ processing cannot continue on this connection
+MILD_ERR_LDAP_CLIENT_DECODE_INVALID_MULTIBYTE_LENGTH=The client sent a \
+ request to the Directory Server with an ASN.1 element using multiple bytes to \
+ express the value length. The request indicated that %d bytes were needed to \
+ express the length, but this exceeds the maximum allowed limit of four bytes
+MILD_ERR_LDAP_CLIENT_DECODE_ASN1_FAILED=The client sent a request to the \
+ Directory Server that could not be properly decoded as an ASN.1 element: %s
+MILD_ERR_LDAP_CLIENT_DECODE_LDAP_MESSAGE_FAILED=The client sent a request \
+ to the Directory Server that could not be properly decoded as an LDAP \
+ message: %s
+SEVERE_ERR_LDAP_CLIENT_INVALID_DECODE_STATE=An internal error has \
+ occurred within the Directory Server to cause it to lose track of where it is \
+ in decoding requests on this client connection. It had an invalid decode \
+ state of %d, and this connection must be terminated
+MILD_ERR_LDAP_CLIENT_DECODE_INVALID_REQUEST_TYPE=The client sent an LDAP \
+ message to the Directory Server that was not a valid message for a client \
+ request: %s
+MILD_ERR_LDAP_CLIENT_CANNOT_CONVERT_MESSAGE_TO_OPERATION=The Directory \
+ Server was unable to convert the LDAP message read from the client (%s) to an \
+ internal operation for processing: %s
+MILD_ERR_LDAP_ABANDON_INVALID_MESSAGE_TYPE=Cannot convert the provided \
+ LDAP message (%s) to an abandon operation: %s
+MILD_ERR_LDAP_UNBIND_INVALID_MESSAGE_TYPE=Cannot convert the provided \
+ LDAP message (%s) to an unbind operation: %s
+FATAL_ERR_LDAP_CONNHANDLER_OPEN_SELECTOR_FAILED=The LDAP connection \
+ handler defined in configuration entry %s was unable to open a selector to \
+ allow it to multiplex the associated accept sockets: %s. This connection \
+ handler will be disabled
+SEVERE_ERR_LDAP_CONNHANDLER_CREATE_CHANNEL_FAILED=The LDAP connection \
+ handler defined in configuration entry %s was unable to create a server \
+ socket channel to accept connections on %s:%d: %s. The Directory Server \
+ will not listen for new connections on that address
+FATAL_ERR_LDAP_CONNHANDLER_NO_ACCEPTORS=The LDAP connection handler \
+ defined in configuration entry %s was unable to create any of the socket \
+ channels on any of the configured addresses. This connection handler will be \
+ disabled
+MILD_ERR_LDAP_CONNHANDLER_DENIED_CLIENT=The connection attempt from \
+ client %s to %s has been rejected because the client was included in one of \
+ the denied address ranges
+MILD_ERR_LDAP_CONNHANDLER_DISALLOWED_CLIENT=The connection attempt from \
+ client %s to %s has been rejected because the client was not included in one \
+ of the allowed address ranges
+INFO_LDAP_CONNHANDLER_UNABLE_TO_REGISTER_CLIENT=An internal error \
+ prevented the Directory Server from properly registering the client \
+ connection from %s to %s with an appropriate request handler: %s
+MILD_ERR_LDAP_CONNHANDLER_CANNOT_ACCEPT_CONNECTION=The LDAP connection \
+ handler defined in configuration entry %s was unable to accept a new client \
+ connection: %s
+FATAL_ERR_LDAP_CONNHANDLER_CONSECUTIVE_ACCEPT_FAILURES=The LDAP \
+ connection handler defined in configuration entry %s has experienced \
+ consecutive failures while trying to accept client connections: %s. This \
+ connection handler will be disabled
+FATAL_ERR_LDAP_CONNHANDLER_UNCAUGHT_ERROR=The LDAP connection handler \
+ defined in configuration entry %s caught an unexpected error while trying to \
+ listen for new connections: %s. This connection handler will be disabled
+FATAL_ERR_LDAP_REQHANDLER_OPEN_SELECTOR_FAILED=%s was unable to open a \
+ selector to multiplex reads from clients: %s. This request handler cannot \
+ continue processing
+FATAL_ERR_LDAP_REQHANDLER_CANNOT_REGISTER=%s was unable to register this \
+ client connection with the selector: %s
+FATAL_ERR_LDAP_REQHANDLER_REJECT_DUE_TO_SHUTDOWN=This connection could \
+ not be registered with a request handler because the Directory Server is \
+ shutting down
+FATAL_ERR_LDAP_REQHANDLER_REJECT_DUE_TO_QUEUE_FULL=This connection could \
+ not be registered with a request handler because the pending queue associated \
+ with %s is too full
+FATAL_ERR_LDAP_REQHANDLER_DEREGISTER_DUE_TO_SHUTDOWN=This client \
+ connection is being deregistered from the associated request handler because \
+ the Directory Server is shutting down
+MILD_ERR_ASN1_READER_MAX_SIZE_EXCEEDED=Cannot decode the data read as an \
+ ASN.1 element because the decoded element length of %d bytes was larger than \
+ the maximum allowed element length of %d bytes. The underlying input stream \
+ has been closed and this reader can no longer be used
+MILD_ERR_LDAP_FILTER_STRING_NULL=Cannot decode the provided string as an \
+ LDAP search filter because the string was null
+MILD_ERR_LDAP_FILTER_UNCAUGHT_EXCEPTION=Cannot decode the provided string \
+ %s as an LDAP search filter because an unexpected exception was thrown during \
+ processing: %s
+MILD_ERR_LDAP_FILTER_MISMATCHED_PARENTHESES=The provided search filter \
+ "%s" had mismatched parentheses around the portion between positions %d and \
+ %d
+MILD_ERR_LDAP_FILTER_NO_EQUAL_SIGN=The provided search filter "%s" was \
+ missing an equal sign in the suspected simple filter component between \
+ positions %d and %d
+MILD_ERR_LDAP_FILTER_INVALID_ESCAPED_BYTE=The provided search filter "%s" \
+ had an invalid escaped byte value at position %d. A backslash in a value \
+ must be followed by two hexadecimal characters that define the byte that has \
+ been encoded
+MILD_ERR_LDAP_FILTER_COMPOUND_MISSING_PARENTHESES=The provided search \
+ filter "%s" could not be decoded because the compound filter between \
+ positions %d and %d did not start with an open parenthesis and end with a \
+ close parenthesis (they might be parentheses for different filter components)
+MILD_ERR_LDAP_FILTER_NO_CORRESPONDING_OPEN_PARENTHESIS=The provided \
+ search filter "%s" could not be decoded because the closing parenthesis at \
+ position %d did not have a corresponding open parenthesis
+MILD_ERR_LDAP_FILTER_NO_CORRESPONDING_CLOSE_PARENTHESIS=The provided \
+ search filter "%s" could not be decoded because the opening parenthesis at \
+ position %d did not have a corresponding close parenthesis
+MILD_ERR_LDAP_FILTER_SUBSTRING_NO_ASTERISKS=The provided search filter \
+ "%s" could not be decoded because the assumed substring filter value between \
+ positions %d and %d did not have any asterisk wildcard characters
+MILD_ERR_LDAP_FILTER_EXTENSIBLE_MATCH_NO_COLON=The provided search filter \
+ "%s" could not be decoded because the extensible match component starting at \
+ position %d did not have a colon to denote the end of the attribute type name
+MILD_ERR_LDAP_DISCONNECT_DUE_TO_INVALID_REQUEST_TYPE=Terminating this \
+ connection because the client sent an invalid message of type %s (LDAP \
+ message ID %d) that is not allowed for request messages
+SEVERE_ERR_LDAP_DISCONNECT_DUE_TO_PROCESSING_FAILURE=An unexpected \
+ failure occurred while trying to process a request of type %s (LDAP message \
+ ID %d): %s. The client connection will be terminated
+MILD_ERR_LDAP_INVALID_BIND_AUTH_TYPE=The bind request message (LDAP \
+ message ID %d) included an invalid authentication type of %s. This is a \
+ protocol error, and this connection will be terminated as per RFC 2251 \
+ section 4.2.3
+MILD_ERR_LDAP_DISCONNECT_DUE_TO_BIND_PROTOCOL_ERROR=This client \
+ connection is being terminated because a protocol error occurred while trying \
+ to process a bind request. The LDAP message ID was %d and the error message \
+ for the bind response was %s
+MILD_ERR_LDAPV2_SKIPPING_EXTENDED_RESPONSE=An extended response message \
+ would have been sent to an LDAPv2 client (connection ID=%d, operation ID=%d): \
+ %s. LDAPv2 does not allow extended operations, so this response will not be \
+ sent
+MILD_ERR_LDAPV2_SKIPPING_SEARCH_REFERENCE=A search performed by an LDAPv2 \
+ client (connection ID=%d, operation ID=%d) would have included a search \
+ result reference %s. Referrals are not allowed for LDAPv2 clients, so this \
+ search reference will not be sent
+MILD_ERR_LDAPV2_REFERRAL_RESULT_CHANGED=The original result code for this \
+ message was 10 but this result is not allowed for LDAPv2 clients
+MILD_ERR_LDAPV2_REFERRALS_OMITTED=The response included one or more \
+ referrals, which are not allowed for LDAPv2 clients. The referrals included \
+ were: %s
+MILD_ERR_LDAPV2_CLIENTS_NOT_ALLOWED=The Directory Server has been \
+ configured to deny access to LDAPv2 clients. This connection will be closed
+MILD_ERR_LDAPV2_EXTENDED_REQUEST_NOT_ALLOWED=The client with connection \
+ ID %d authenticated to the Directory Server using LDAPv2, but attempted to \
+ send an extended operation request (LDAP message ID %d), which is not allowed \
+ for LDAPv2 clients. The connection will be terminated
+MILD_ERR_LDAP_STATS_INVALID_MONITOR_INITIALIZATION=An attempt was made to \
+ initialize the LDAP statistics monitor provider as defined in configuration \
+ entry %s. This monitor provider should only be dynamically created within \
+ the Directory Server itself and not from within the configuration
+SEVERE_ERR_LDAP_REQHANDLER_UNEXPECTED_SELECT_EXCEPTION=The LDAP request \
+ handler thread "%s" encountered an unexpected error that would have caused \
+ the thread to die: %s. The error has been caught and the request handler \
+ should continue operating as normal
+MILD_ERR_LDAP_CONNHANDLER_REJECTED_BY_SERVER=The attempt to register this \
+ connection with the Directory Server was rejected. This might indicate that \
+ the server already has the maximum allowed number of concurrent connections \
+ established, or that it is in a restricted access mode
+INFO_LDAP_CONNHANDLER_DESCRIPTION_LISTEN_ADDRESS=Address or \
+ set of addresses on which this connection handler can accept client \
+ connections. If no value is specified, then the server will accept \
+ connections on all active addresses. Changes to this configuration attribute \
+ will not take effect until the connection handler is disabled and re-enabled, \
+ or until the Directory Server is restarted
+INFO_LDAP_CONNHANDLER_DESCRIPTION_LISTEN_PORT=TCP port on \
+ which this connection handler can accept client connections. Changes to this \
+ configuration attribute will not take effect until the connection handler is \
+ disabled and re-enabled, or until the Directory Server is restarted
+INFO_LDAP_CONNHANDLER_DESCRIPTION_ALLOWED_CLIENTS=Specifies a set of \
+ address masks that can be used to determine the addresses of the clients that \
+ are allowed to establish connections to this connection handler. If no \
+ values are specified, then all clients with addresses that do not match an \
+ address on the deny list will be allowed. Changes to this configuration \
+ attribute will take effect immediately but will not interfere with \
+ connections that might already be established
+INFO_LDAP_CONNHANDLER_DESCRIPTION_DENIED_CLIENTS=Specifies a set of \
+ address masks that can be used to determine the set of addresses of the \
+ clients that are not allowed to establish connections to this connection \
+ handler. If both allowed and denied client masks are defined and a client \
+ connection matches one or more masks in both lists, then the connection will \
+ be denied. If only a denied list is specified, then any client not matching \
+ a mask in that list will be allowed. Changes to this configuration attribute \
+ will take effect immediately but will not interfere with connections that might \
+ already be established
+INFO_LDAP_CONNHANDLER_DESCRIPTION_ALLOW_LDAPV2=Indicates whether to allow \
+ communication with LDAPv2 clients. LDAPv2 is considered an obsolete \
+ protocol, and clients using it will not be allowed to take advantage of all \
+ features offered by the server. Changes to this configuration attribute will \
+ take effect immediately, but will not interfere with connections that might \
+ already be established
+INFO_LDAP_CONNHANDLER_DESCRIPTION_NUM_REQUEST_HANDLERS=Number of threads \
+ that should be used to read requests from clients and place \
+ them in the work queue for processing. On large systems accepting many \
+ concurrent requests, it might be more efficient to have multiple threads \
+ reading requests from clients. Changes to this configuration attribute will \
+ not take effect until the connection handler is disabled and re-enabled, or \
+ until the Directory Server is restarted
+INFO_LDAP_CONNHANDLER_DESCRIPTION_SEND_REJECTION_NOTICE=Indicates whether \
+ to send an LDAPv3 notice of disconnection message to client connections that \
+ are rejected before closing the connection. Changes to this configuration \
+ attribute will take effect immediately
+INFO_LDAP_CONNHANDLER_DESCRIPTION_USE_TCP_KEEPALIVE=Indicates whether to \
+ use the TCP KeepAlive feature for client connections established through this \
+ connection handler. This is recommended because it might help the server \
+ detect client connections that are no longer valid, and might help prevent \
+ intermediate network devices from closing connections due to a lack of \
+ communication. Changes to this configuration attribute will take effect \
+ immediately but will only be applied to connections established after the \
+ change
+INFO_LDAP_CONNHANDLER_DESCRIPTION_USE_TCP_NODELAY=Indicates whether to \
+ use the TCP NoDelay feature for client connections established through this \
+ connection handler. This is recommended because it will generally allow \
+ faster responses to clients, although directories that frequently process \
+ searches that match multiple entries might be able to achieve higher throughput \
+ if it is disabled. Changes to this configuration attribute will take effect \
+ immediately but will only be applied to connections established after the \
+ change
+INFO_LDAP_CONNHANDLER_DESCRIPTION_ALLOW_REUSE_ADDRESS=Indicates whether \
+ to use the SO_REUSEADDR socket option for the socket accepting connections \
+ for this connection handler. It should generally be enabled unless you have \
+ been instructed to disable it by support engineers. Changes to this \
+ configuration attribute will not take effect until the connection handler is \
+ disabled and re-enabled, or until the Directory Server is restarted
+INFO_LDAP_CONNHANDLER_DESCRIPTION_MAX_REQUEST_SIZE=Maximum \
+ size in bytes that will be allowed when reading requests from clients. This \
+ can be used to prevent denial of service attacks from clients that send \
+ extremely large requests. A value of zero indicates that no limit should be \
+ imposed. Changes to this configuration attribute will take effect \
+ immediately
+INFO_LDAP_CONNHANDLER_DESCRIPTION_USE_SSL=Indicates whether this \
+ connection handler should use SSL when accepting connections from clients. \
+ Changes to this configuration attribute will not take effect until the \
+ connection handler is disabled and re-enabled, or until the Directory Server \
+ is restarted
+INFO_LDAP_CONNHANDLER_DESCRIPTION_ALLOW_STARTTLS=Indicates whether this \
+ connection handler should allow clients to use the StartTLS extended \
+ operation to initiate secure communication over a non-SSL LDAP connection. \
+ This can not be used if SSL is enabled for the connection handler. Changes \
+ to this configuration attribute will take effect immediately for LDAP clients
+INFO_LDAP_CONNHANDLER_DESCRIPTION_SSL_CLIENT_AUTH_POLICY=Policy that \
+ should be used regarding requesting or requiring the client to \
+ present its own certificate when establishing an SSL-based connection or \
+ using StartTLS to initiate a secure channel in an established connection. \
+ Changes to this configuration attribute will not take effect until the \
+ connection handler is disabled and re-enabled, or until the Directory Server \
+ is restarted
+INFO_LDAP_CONNHANDLER_DESCRIPTION_SSL_CERT_NICKNAME=Nickname of the \
+ certificate that the connection handler should use when \
+ accepting SSL-based connections or performing StartTLS negotiation. Changes \
+ to this configuration attribute will not take effect until the connection \
+ handler is disabled and re-enabled, or until the Directory Server is \
+ restarted
+SEVERE_ERR_LDAP_CONNHANDLER_UNKNOWN_LISTEN_ADDRESS=The specified listen \
+ address "%s" in configuration entry "%s" could not be resolved: %s. Please \
+ make sure that name resolution is properly configured on this system
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_LISTEN_ADDRESS=An unexpected \
+ error occurred while processing the ds-cfg-listen-address attribute in \
+ configuration entry %s, which is used to specify the address or set of \
+ addresses on which to listen for client connections: %s
+SEVERE_ERR_LDAP_CONNHANDLER_NO_LISTEN_PORT=No listen port was defined \
+ using configuration ds-cfg-listen-port in configuration entry %s. This is a \
+ required attribute
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_LISTEN_PORT=An unexpected \
+ error occurred while processing the ds-cfg-listen-port attribute in \
+ configuration entry %s, which is used to specify the port on which to listen \
+ for client connections: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_ALLOWED_CLIENTS=An \
+ unexpected error occurred while processing the ds-cfg-allowed-client \
+ attribute in configuration entry %s, which is used to specify the address \
+ mask(s) of the clients that are allowed to establish connections to this \
+ connection handler: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_DENIED_CLIENTS=An unexpected \
+ error occurred while processing the ds-cfg-denied-client attribute in \
+ configuration entry %s, which is used to specify the address mask(s) of the \
+ clients that are not allowed to establish connections to this connection \
+ handler: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_ALLOW_LDAPV2=An unexpected \
+ error occurred while processing the ds-cfg-allow-ldap-v2 attribute in \
+ configuration entry %s, which is used to indicate whether LDAPv2 clients will \
+ be allowed to access this connection handler: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_NUM_REQUEST_HANDLERS=An \
+ unexpected error occurred while processing the ds-cfg-num-request-handlers \
+ attribute in configuration entry %s, which is used to specify the number of \
+ request handlers to use to read requests from clients: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_SEND_REJECTION_NOTICE=An \
+ unexpected error occurred while processing the ds-cfg-send-rejection-notice \
+ attribute in configuration entry %s, which is used to indicate whether to \
+ send a notice of disconnection message to rejected client connections: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_USE_TCP_KEEPALIVE=An \
+ unexpected error occurred while processing the ds-cfg-use-tcp-keep-alive \
+ attribute in configuration entry %s, which is used to periodically send TCP \
+ Keep-Alive messages over idle connections: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_USE_TCP_NODELAY=An \
+ unexpected error occurred while processing the ds-cfg-use-tcp-no-delay \
+ attribute in configuration entry %s, which is used to determine whether to \
+ immediately flush responses to clients: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_ALLOW_REUSE_ADDRESS=An \
+ unexpected error occurred while processing the ds-cfg-allow-tcp-reuse-address \
+ attribute in configuration entry %s, which is used to determine whether to \
+ set the SO_REUSEADDR option on the listen socket: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_MAX_REQUEST_SIZE=An \
+ unexpected error occurred while processing the ds-cfg-max-request-size \
+ attribute in configuration entry %s, which is used to determine the maximum \
+ size in bytes that can be used for a client request: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_USE_SSL=An unexpected error \
+ occurred while processing the ds-cfg-use-ssl attribute in configuration entry \
+ %s, which is used to indicate whether to use SSL when accepting client \
+ connections: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_HAVE_SSL_AND_STARTTLS=The LDAP \
+ connection handler defined in configuration entry %s is configured to \
+ communicate over SSL and also to allow clients to use the StartTLS extended \
+ operation. These options can not be used at the same time, so clients will \
+ not be allowed to use the StartTLS operation
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_ALLOW_STARTTLS=An unexpected \
+ error occurred while processing the ds-cfg-allow-start-tls attribute in \
+ configuration entry %s, which is used to indicate whether clients can use the \
+ StartTLS extended operation: %s
+SEVERE_ERR_LDAP_CONNHANDLER_INVALID_SSL_CLIENT_AUTH_POLICY=The SSL client \
+ authentication policy "%s" specified in attribute \
+ ds-cfg-ssl-client-auth-policy of configuration entry %s is invalid. The \
+ value must be one of "disabled", "optional", or "required"
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_SSL_CLIENT_AUTH_POLICY=An \
+ unexpected error occurred while processing the ds-cfg-ssl-client-auth-policy \
+ attribute in configuration entry %s, which is used to specify the policy that \
+ should be used for requesting/requiring SSL client authentication: %s
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_SSL_CERT_NICKNAME=An \
+ unexpected error occurred while processing the ds-cfg-ssl-cert-nickname \
+ attribute in configuration entry %s, which is used to specify the nickname of \
+ the certificate to use for accepting SSL/TLS connections: %s
+SEVERE_ERR_LDAP_CONNHANDLER_INVALID_ADDRESS_MASK=The string %s defined in \
+ attribute %s of configuration entry %s could not be decoded as a valid \
+ address mask: %s
+INFO_LDAP_CONNHANDLER_NEW_ALLOWED_CLIENTS=A new set of allowed client \
+ address masks has been applied for configuration entry %s
+INFO_LDAP_CONNHANDLER_NEW_DENIED_CLIENTS=A new set of denied client \
+ address masks has been applied for configuration entry %s
+INFO_LDAP_CONNHANDLER_NEW_ALLOW_LDAPV2=The value of the \
+ ds-cfg-allow-ldap-v2 attribute has been updated to %s in configuration entry \
+ %s
+INFO_LDAP_CONNHANDLER_NEW_SEND_REJECTION_NOTICE=The value of the \
+ ds-cfg-send-rejection-notice attribute has been updated to %s in \
+ configuration entry %s
+INFO_LDAP_CONNHANDLER_NEW_USE_KEEPALIVE=The value of the \
+ ds-cfg-use-tcp-keep-alive attribute has been updated to %s in configuration \
+ entry %s
+INFO_LDAP_CONNHANDLER_NEW_USE_TCP_NODELAY=The value of the \
+ ds-cfg-use-tcp-no-delay attribute has been updated to %s in configuration \
+ entry %s
+INFO_LDAP_CONNHANDLER_NEW_MAX_REQUEST_SIZE=The value of the \
+ ds-cfg-max-request-size attribute has been updated to %s in configuration \
+ entry %s
+INFO_LDAP_CONNHANDLER_NEW_ALLOW_STARTTLS=The value of the \
+ ds-cfg-allow-start-tls attribute has been updated to %s in configuration \
+ entry %s
+INFO_LDAP_CONNHANDLER_DESCRIPTION_KEEP_STATS=Indicates whether the \
+ connection handler should keep statistics regarding LDAP client \
+ communication. Maintaining this information can cause a slight decrease in \
+ performance, but can be useful for understanding client usage patterns. \
+ Changes to this configuration attribute will take effect immediately, but \
+ will only apply for new connections and will have the side effect of clearing \
+ any existing statistical data that might have been collected
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_KEEP_STATS=An unexpected \
+ error occurred while processing the ds-cfg-keep-stats attribute in \
+ configuration entry %s, which is used to indicate whether LDAP usage \
+ statistics should be enabled for this connection handler: %s
+INFO_LDAP_CONNHANDLER_NEW_KEEP_STATS=The value of the ds-cfg-keep-stats \
+ attribute has been updated to %s in configuration entry %s
+MILD_ERR_ASN1_LONG_SET_VALUE_INVALID_LENGTH=Cannot decode the provided \
+ byte array as the value of an ASN.1 long element because the array did not \
+ have a length between 1 and 8 bytes (provided length was %d)
+MILD_ERR_ASN1_LONG_DECODE_ELEMENT_INVALID_LENGTH=Cannot decode the \
+ provided ASN.1 element as a long element because the length of the element \
+ value was not between one and eight bytes (actual length was %d)
+MILD_ERR_ASN1_LONG_DECODE_ARRAY_INVALID_LENGTH=Cannot decode the provided \
+ byte array as an ASN.1 long element because the decoded value length was not \
+ between 1 and 8 bytes (decoded length was %d)
+SEVERE_ERR_INTERNAL_CANNOT_DECODE_DN=An unexpected error occurred while \
+ trying to decode the DN %s used for internal operations as a root user: %s
+INFO_LDAP_CONNHANDLER_DESCRIPTION_SSL_ENABLED_PROTOCOLS=Names of the \
+ SSL protocols that will be allowed for use in SSL or StartTLS \
+ communication. Changes to this configuration attribute will take effect \
+ immediately but will only impact new SSL/TLS-based sessions created after \
+ the change
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_SSL_PROTOCOLS=An unexpected \
+ error occurred while processing the ds-cfg-ssl-protocol attribute in \
+ configuration entry %s, which is used to specify the names of the SSL \
+ protocols to allow for SSL/TLS sessions: %s
+INFO_LDAP_CONNHANDLER_DESCRIPTION_SSL_ENABLED_CIPHERS=Names \
+ of the SSL cipher suites that will be allowed for use in SSL or StartTLS \
+ communication. Changes to this configuration attribute will take immediately \
+ but will only impact new SSL/TLS-based sessions created after the change
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_SSL_CIPHERS=An unexpected \
+ error occurred while processing the ds-cfg-ssl-protocol attribute in \
+ configuration entry %s, which is used to specify the names of the SSL cipher \
+ suites to allow for SSL/TLS sessions: %s
+INFO_LDAP_CONNHANDLER_NEW_SSL_PROTOCOLS=The value of the \
+ ds-cfg-ssl-protocol attribute has been updated to %s in configuration entry \
+ %s
+INFO_LDAP_CONNHANDLER_NEW_SSL_CIPHERS=The value of the \
+ ds-cfg-ssl-cipher-suite attribute has been updated to %s in configuration \
+ entry %s
+MILD_ERR_LDAP_TLS_EXISTING_SECURITY_PROVIDER=The TLS connection security \
+ provider cannot be enabled on this client connection because it is already \
+ using the %s provider. StartTLS can only be used on clear-text connections
+MILD_ERR_LDAP_TLS_STARTTLS_NOT_ALLOWED=StartTLS cannot be enabled on this \
+ LDAP client connection because the corresponding LDAP connection handler is \
+ configured to reject StartTLS requests. The use of StartTLS can be enabled \
+ using the ds-cfg-allow-start-tls configuration attribute
+MILD_ERR_LDAP_TLS_CANNOT_CREATE_TLS_PROVIDER=An error occurred while \
+ attempting to create a TLS connection security provider for this client \
+ connection for use with StartTLS: %s
+MILD_ERR_LDAP_TLS_NO_PROVIDER=StartTLS is not available on this client \
+ connection because the connection does not have access to a TLS connection \
+ security provider
+MILD_ERR_LDAP_TLS_CLOSURE_NOT_ALLOWED=The LDAP connection handler does \
+ not allow clients to close a StartTLS session on a client connection while \
+ leaving the underlying TCP connection active. The TCP connection will be \
+ closed
+NOTICE_LDAP_CONNHANDLER_STARTED_LISTENING=Started listening for new \
+ connections on %s
+NOTICE_LDAP_CONNHANDLER_STOPPED_LISTENING=Stopped listening for new \
+ connections on %s
+MILD_ERR_LDAP_PAGED_RESULTS_DECODE_NULL=Cannot decode the provided ASN.1 \
+ element as an LDAP paged results control value because the element is null
+MILD_ERR_LDAP_PAGED_RESULTS_DECODE_SEQUENCE=Cannot decode the provided \
+ ASN.1 element as an LDAP paged results control value because the element \
+ could not be decoded as a sequence: %s
+MILD_ERR_LDAP_PAGED_RESULTS_DECODE_INVALID_ELEMENT_COUNT=Cannot decode \
+ the provided ASN.1 element as an LDAP paged results control value because the \
+ request sequence has an invalid number of elements (expected 2, got %d)
+MILD_ERR_LDAP_PAGED_RESULTS_DECODE_SIZE=Cannot decode the provided ASN.1 \
+ element as an LDAP paged results control value because the size element could \
+ not be properly decoded: %s
+MILD_ERR_LDAP_PAGED_RESULTS_DECODE_COOKIE=Cannot decode the provided \
+ ASN.1 element as an LDAP paged results control value because the cookie could \
+ not be properly decoded: %s
+MILD_ERR_LDAPASSERT_NO_CONTROL_VALUE=Cannot decode the provided LDAP \
+ assertion control because the control does not have a value
+MILD_ERR_LDAPASSERT_INVALID_CONTROL_VALUE=Cannot decode the provided LDAP \
+ assertion control because the control value cannot be decoded as an ASN.1 \
+ element: %s
+MILD_ERR_PREREADREQ_NO_CONTROL_VALUE=Cannot decode the provided LDAP \
+ pre-read request control because the control does not have a value
+MILD_ERR_PREREADREQ_CANNOT_DECODE_VALUE=Cannot decode the provided LDAP \
+ pre-read request control because an error occurred while trying to decode the \
+ control value: %s
+MILD_ERR_POSTREADREQ_NO_CONTROL_VALUE=Cannot decode the provided LDAP \
+ post-read request control because the control does not have a value
+MILD_ERR_POSTREADREQ_CANNOT_DECODE_VALUE=Cannot decode the provided LDAP \
+ post-read request control because an error occurred while trying to decode \
+ the control value: %s
+MILD_ERR_PREREADRESP_NO_CONTROL_VALUE=Cannot decode the provided LDAP \
+ pre-read response control because the control does not have a value
+MILD_ERR_PREREADRESP_CANNOT_DECODE_VALUE=Cannot decode the provided LDAP \
+ pre-read response control because an error occurred while trying to decode \
+ the control value: %s
+MILD_ERR_POSTREADRESP_NO_CONTROL_VALUE=Cannot decode the provided LDAP \
+ post-read response control because the control does not have a value
+MILD_ERR_POSTREADRESP_CANNOT_DECODE_VALUE=Cannot decode the provided LDAP \
+ post-read response control because an error occurred while trying to decode \
+ the control value: %s
+MILD_ERR_PROXYAUTH1_NO_CONTROL_VALUE=Cannot decode the provided proxied \
+ authorization V1 control because it does not have a value
+MILD_ERR_PROXYAUTH1_INVALID_ELEMENT_COUNT=Cannot decode the provided \
+ proxied authorization V1 control because the ASN.1 sequence in the control \
+ value has an invalid number of elements (expected 1, got %d)
+MILD_ERR_PROXYAUTH1_CANNOT_DECODE_VALUE=Cannot decode the provided \
+ proxied authorization V1 control because an error occurred while attempting \
+ to decode the control value: %s
+MILD_ERR_PROXYAUTH1_NO_SUCH_USER=User %s specified in the proxied \
+ authorization V1 control does not exist in the Directory Server
+MILD_ERR_PROXYAUTH2_NO_CONTROL_VALUE=Cannot decode the provided proxied \
+ authorization V2 control because it does not have a value
+MILD_ERR_PROXYAUTH2_CANNOT_DECODE_VALUE=Cannot decode the provided \
+ proxied authorization V2 control because an error occurred while attempting \
+ to decode the control value: %s
+MILD_ERR_PROXYAUTH2_NO_IDENTITY_MAPPER=Unable to process proxied \
+ authorization V2 control because it contains an authorization ID based on a \
+ username and no proxied authorization identity mapper is configured in the \
+ Directory Server
+MILD_ERR_PROXYAUTH2_INVALID_AUTHZID=The authorization ID "%s" contained \
+ in the proxied authorization V2 control is invalid because it does not start \
+ with "dn:" to indicate a user DN or "u:" to indicate a username
+MILD_ERR_PROXYAUTH2_NO_SUCH_USER=User %s specified in the proxied \
+ authorization V2 control does not exist in the Directory Server
+MILD_ERR_PSEARCH_CHANGETYPES_INVALID_TYPE=The provided integer value %d \
+ does not correspond to any persistent search change type
+MILD_ERR_PSEARCH_CHANGETYPES_NO_TYPES=The provided integer value \
+ indicated that there were no persistent search change types, which is not \
+ allowed
+MILD_ERR_PSEARCH_CHANGETYPES_INVALID_TYPES=The provided integer value %d \
+ was outside the range of acceptable values for an encoded change type set
+MILD_ERR_PSEARCH_NO_CONTROL_VALUE=Cannot decode the provided persistent \
+ search control because it does not have a value
+MILD_ERR_PSEARCH_INVALID_ELEMENT_COUNT=Cannot decode the provided \
+ persistent search control because the value sequence has an invalid number of \
+ elements (expected 3, got %d)
+MILD_ERR_PSEARCH_CANNOT_DECODE_VALUE=Cannot decode the provided \
+ persistent search control because an error occurred while attempting to \
+ decode the control value: %s
+MILD_ERR_ECN_NO_CONTROL_VALUE=Cannot decode the provided entry change \
+ notification control because it does not have a value
+MILD_ERR_ECN_INVALID_ELEMENT_COUNT=Cannot decode the provided entry \
+ change notification control because the value sequence has an invalid number \
+ of elements (expected between 1 and 3, got %d)
+MILD_ERR_ECN_ILLEGAL_PREVIOUS_DN=Cannot decode the provided entry change \
+ notification control because it contains a previous DN element but had a \
+ change type of %s. The previous DN element can only be provided with the \
+ modify DN change type
+MILD_ERR_ECN_INVALID_ELEMENT_TYPE=Cannot decode the provided entry change \
+ notification control because the second element in the value sequence has an \
+ invalid type of %s that is not appropriate for either a previous DN or a \
+ change number
+MILD_ERR_ECN_CANNOT_DECODE_VALUE=Cannot decode the provided entry change \
+ notification control because an error occurred while attempting to decode the \
+ control value: %s
+MILD_ERR_AUTHZIDRESP_NO_CONTROL_VALUE=Cannot decode the provided \
+ authorization identity response control because it does not have a value
+MILD_ERR_LDAP_INTERMEDIATE_RESPONSE_DECODE_SEQUENCE=Cannot decode the \
+ provided ASN.1 element as an LDAP intermediate response protocol op because \
+ the element could not be decoded as a sequence: %s
+MILD_ERR_LDAP_INTERMEDIATE_RESPONSE_DECODE_INVALID_ELEMENT_COUNT=Cannot \
+ decode the provided ASN.1 element as an LDAP intermediate response protocol \
+ op because the request sequence had an invalid number of elements (expected \
+ 0, 1, or 2, got %d)
+MILD_ERR_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_OID=An error occurred \
+ while attempting to decode the intermediate response OID: %s
+MILD_ERR_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_VALUE=An error occurred \
+ while attempting to decode the intermediate response value: %s
+MILD_ERR_LDAP_INTERMEDIATE_RESPONSE_INVALID_ELEMENT_TYPE=The intermediate \
+ response sequence element contained an invalid BER type %s that was not \
+ appropriate for either the OID or the value
+INFO_LDAP_CONNHANDLER_DESCRIPTION_BACKLOG=Accept queue \
+ size, which controls the number of new connection attempts that may be \
+ allowed to queue up in the backlog before being rejected. This should only \
+ need to be changed if it is expected that the Directory Server will receive \
+ large numbers of new connection attempts at the same time. Changes to this \
+ configuration attribute will not take effect until the connection handler is \
+ disabled and re-enabled, or until the Directory Server is restarted
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_BACKLOG=An unexpected error \
+ occurred while processing the ds-cfg-accept-backlog attribute in \
+ configuration entry %s, which is used to specify the accept backlog size: %s
+SEVERE_ERR_MVFILTER_INVALID_LDAP_FILTER_TYPE=The provided LDAP filter \
+ "%s" cannot be used as a matched values filter because filters of type %s are \
+ not allowed for use in matched values filters
+SEVERE_ERR_MVFILTER_INVALID_DN_ATTRIBUTES_FLAG=The provided LDAP filter \
+ "%s" cannot be used as a matched values filter because it is an extensible \
+ match filter that contains the dnAttributes flag, which is not allowed for \
+ matched values filters
+SEVERE_ERR_MVFILTER_INVALID_AVA_SEQUENCE_SIZE=The provided matched values \
+ filter could not be decoded because there were an invalid number of elements \
+ in the attribute value assertion (expected 2, got %d)
+SEVERE_ERR_MVFILTER_CANNOT_DECODE_AVA=An error occurred while attempting \
+ to decode the attribute value assertion in the provided matched values \
+ filter: %s
+SEVERE_ERR_MVFILTER_INVALID_SUBSTRING_SEQUENCE_SIZE=The provided matched \
+ values filter could not be decoded because there were an invalid number of \
+ elements in the substring sequence (expected 2, got %d)
+SEVERE_ERR_MVFILTER_NO_SUBSTRING_ELEMENTS=The provided matched values \
+ filter could not be decoded because there were no subInitial, subAny, or \
+ subFinal components in the substring filter
+SEVERE_ERR_MVFILTER_MULTIPLE_SUBINITIALS=The provided matched values \
+ filter could not be decoded because there were multiple subInitial components \
+ in the substring filter
+SEVERE_ERR_MVFILTER_MULTIPLE_SUBFINALS=The provided matched values filter \
+ could not be decoded because there were multiple subFinal components in the \
+ substring filter
+SEVERE_ERR_MVFILTER_INVALID_SUBSTRING_ELEMENT_TYPE=The provided matched \
+ values filter could not be decoded because there was an invalid element of \
+ type %s in the substring filter
+SEVERE_ERR_MVFILTER_CANNOT_DECODE_SUBSTRINGS=The provided matched values \
+ filter could not be decoded because an error occurred while decoding the \
+ substring filter component: %s
+SEVERE_ERR_MVFILTER_CANNOT_DECODE_PRESENT_TYPE=The provided matched \
+ values filter could not be decoded because an error occurred while decoding \
+ the presence filter component: %s
+SEVERE_ERR_MVFILTER_INVALID_EXTENSIBLE_SEQUENCE_SIZE=The provided matched \
+ values filter could not be decoded because there were an invalid number of \
+ elements in the extensible match sequence (expected 2 or 3, found %d)
+SEVERE_ERR_MVFILTER_MULTIPLE_MATCHING_RULE_IDS=The provided matched \
+ values filter could not be decoded because there were multiple matching rule \
+ ID elements found in the extensible match filter sequence
+SEVERE_ERR_MVFILTER_MULTIPLE_ATTRIBUTE_TYPES=The provided matched values \
+ filter could not be decoded because there were multiple attribute type \
+ elements found in the extensible match filter sequence
+SEVERE_ERR_MVFILTER_MULTIPLE_ASSERTION_VALUES=The provided matched values \
+ filter could not be decoded because there were multiple assertion value \
+ elements found in the extensible match filter sequence
+SEVERE_ERR_MVFILTER_INVALID_EXTENSIBLE_ELEMENT_TYPE=The provided matched \
+ values filter could not be decoded because there was an invalid element of \
+ type %s in the extensible match filter
+SEVERE_ERR_MVFILTER_CANNOT_DECODE_EXTENSIBLE_MATCH=The provided matched \
+ values filter could not be decoded because an error occurred while decoding \
+ the extensible match filter component: %s
+SEVERE_ERR_MVFILTER_INVALID_ELEMENT_TYPE=The provided matched values \
+ filter could not be decoded because it had an invalid BER type of %s
+SEVERE_ERR_MATCHEDVALUES_NO_CONTROL_VALUE=Cannot decode the provided \
+ matched values control because it does not have a value
+SEVERE_ERR_MATCHEDVALUES_CANNOT_DECODE_VALUE_AS_SEQUENCE=Cannot decode \
+ the provided matched values control because an error occurred while \
+ attempting to decode the value as an ASN.1 sequence: %s
+SEVERE_ERR_MATCHEDVALUES_NO_FILTERS=Cannot decode the provided matched \
+ values control because the control value does not specify any filters for use \
+ in matching attribute values
+SEVERE_ERR_PWEXPIRED_CONTROL_INVALID_VALUE=Cannot decode the provided \
+ control as a password expired control because the provided control had a \
+ value that could not be parsed as an integer
+SEVERE_ERR_PWEXPIRING_NO_CONTROL_VALUE=Cannot decode the provided \
+ password expiring control because it does not have a value
+SEVERE_ERR_PWEXPIRING_CANNOT_DECODE_SECONDS_UNTIL_EXPIRATION=Cannot \
+ decode the provided control as a password expiring control because an error \
+ occurred while attempting to decode the number of seconds until expiration: \
+ %s
+MILD_WARN_LDAP_CLIENT_DUPLICATE_MESSAGE_ID=The Directory Server is \
+ already processing another request on the same client connection with the \
+ same message ID of %d
+MILD_WARN_LDAP_CLIENT_CANNOT_ENQUEUE=The Directory Server encountered an \
+ unexpected error while attempting to add the client request to the work \
+ queue: %s
+INFO_JMX_CONNHANDLER_DESCRIPTION_LISTEN_PORT=TCP port on \
+ which this connection handler may accept administrative connections. Changes \
+ to this configuration attribute will not take effect until the connection \
+ handler is disabled and re-enabled, or until the Directory Server is \
+ restarted
+SEVERE_ERR_JMX_CONNHANDLER_NO_LISTEN_PORT=No listen port was defined \
+ using configuration ds-cfg-listen-port in configuration entry %s. This is a \
+ required attribute
+SEVERE_ERR_JMX_CONNHANDLER_CANNOT_DETERMINE_LISTEN_PORT=An unexpected \
+ error occurred while processing the ds-cfg-listen-port attribute in \
+ configuration entry %s, which is used to specify the port on which to listen \
+ for client connections: %s
+INFO_JMX_CONNHANDLER_DESCRIPTION_USE_SSL=Indicates whether this \
+ connection handler should use SSL when accepting connections from clients. \
+ Changes to this configuration attribute will not take effect until the \
+ connection handler is disabled and re-enabled, or until the Directory Server \
+ is restarted
+SEVERE_ERR_JMX_CONNHANDLER_CANNOT_DETERMINE_USE_SSL=An unexpected error \
+ occurred while processing the ds-cfg-use-ssl attribute in configuration entry \
+ %s, which is used to indicate whether to use SSL when accepting client \
+ connections: %s
+INFO_JMX_CONNHANDLER_DESCRIPTION_SSL_CERT_NICKNAME=Nickname \
+ of the certificate that the connection handler should use when accepting \
+ SSL-based connections or performing StartTLS negotiation. Changes to this \
+ configuration attribute will not take effect until the connection handler is \
+ disabled and re-enabled, or until the Directory Server is restarted
+SEVERE_ERR_JMX_CONNHANDLER_CANNOT_DETERMINE_SSL_CERT_NICKNAME=An \
+ unexpected error occurred while processing the ds-cfg-ssl-cert-nickname \
+ attribute in configuration entry %s, which is used to specify the nickname of \
+ the certificate to use for accepting SSL/TLS connections: %s
+SEVERE_ERR_PWPOLICYREQ_CONTROL_HAS_VALUE=Cannot decode the provided \
+ control as a password policy request control because the provided control had \
+ a value but the password policy request control should not have a value
+SEVERE_ERR_PWPOLICYRES_NO_CONTROL_VALUE=Cannot decode the provided \
+ password policy response control because it does not have a value
+SEVERE_ERR_PWPOLICYRES_INVALID_WARNING_TYPE=Cannot decode the provided \
+ password policy response control because the warning element has an invalid \
+ type of %s
+SEVERE_ERR_PWPOLICYRES_INVALID_ERROR_TYPE=Cannot decode the provided \
+ password policy response control because the error element has an invalid \
+ type of %d
+SEVERE_ERR_PWPOLICYRES_INVALID_ELEMENT_TYPE=Cannot decode the provided \
+ password policy response control because the value sequence has an element \
+ with an invalid type of %s
+SEVERE_ERR_PWPOLICYRES_DECODE_ERROR=Cannot decode the provided password \
+ policy response control: %s
+INFO_PWPERRTYPE_DESCRIPTION_PASSWORD_EXPIRED=passwordExpired
+INFO_PWPERRTYPE_DESCRIPTION_ACCOUNT_LOCKED=accountLocked
+INFO_PWPERRTYPE_DESCRIPTION_CHANGE_AFTER_RESET=changeAfterReset
+INFO_PWPERRTYPE_DESCRIPTION_PASSWORD_MOD_NOT_ALLOWED=passwordModNotAllowed
+INFO_PWPERRTYPE_DESCRIPTION_MUST_SUPPLY_OLD_PASSWORD=mustSupplyOldPassword
+INFO_PWPERRTYPE_DESCRIPTION_INSUFFICIENT_PASSWORD_QUALITY=insufficientPasswordQuality
+INFO_PWPERRTYPE_DESCRIPTION_PASSWORD_TOO_SHORT=passwordTooShort
+INFO_PWPERRTYPE_DESCRIPTION_PASSWORD_TOO_YOUNG=passwordTooYoung
+INFO_PWPERRTYPE_DESCRIPTION_PASSWORD_IN_HISTORY=passwordInHistory
+INFO_PWPWARNTYPE_DESCRIPTION_TIME_BEFORE_EXPIRATION=timeBeforeExpiration
+INFO_PWPWARNTYPE_DESCRIPTION_GRACE_LOGINS_REMAINING=graceAuthNsRemaining
+MILD_ERR_PROXYAUTH1_CANNOT_LOCK_USER=Unable to obtain a lock on user \
+ entry %s for the proxied authorization V1 control validation
+MILD_ERR_PROXYAUTH1_UNUSABLE_ACCOUNT=Use of the proxied authorization V1 \
+ control for user %s is not allowed by the password policy configuration
+MILD_ERR_PROXYAUTH2_CANNOT_LOCK_USER=Unable to obtain a lock on user \
+ entry %s for the proxied authorization V2 control validation
+MILD_ERR_PROXYAUTH2_UNUSABLE_ACCOUNT=Use of the proxied authorization V2 \
+ control for user %s is not allowed by the password policy configuration
+SEVERE_ERR_ACCTUSABLEREQ_CONTROL_HAS_VALUE=Cannot decode the provided \
+ control as an account availability request control because the provided \
+ control had a value but the account availability request control should not \
+ have a value
+SEVERE_ERR_ACCTUSABLERES_NO_CONTROL_VALUE=Cannot decode the provided \
+ account availability response control because it does not have a value
+SEVERE_ERR_ACCTUSABLERES_UNKNOWN_UNAVAILABLE_TYPE=The account \
+ availability response control indicated that the account was unavailable but \
+ had an unknown unavailable element type of %s
+SEVERE_ERR_ACCTUSABLERES_UNKNOWN_VALUE_ELEMENT_TYPE=The account \
+ availability response control had an unknown ACCOUNT_USABLE_RESPONSE element \
+ type of %s
+SEVERE_ERR_ACCTUSABLERES_DECODE_ERROR=Cannot decode the provided account \
+ availability response control: %s
+SEVERE_ERR_ADDRESSMASK_PREFIX_DECODE_ERROR=Cannot decode the provided \
+ address mask prefix because an invalid value was specified. The permitted \
+ values for IPv4are 0 to32 and for IPv6 0 to128
+SEVERE_ERR_ADDRESSMASK_WILDCARD_DECODE_ERROR=Cannot decode the provided \
+ address mask because an prefix mask was specified with an wild card "*" match \
+ character
+SEVERE_ERR_ADDRESSMASK_FORMAT_DECODE_ERROR=Cannot decode the provided \
+ address mask because the it has an invalid format
+MILD_ERR_LDAP_NO_CLEAR_SECURITY_PROVIDER=LDAP connection handler %s could \
+ not send a clear-text response to the client because it does not have a \
+ reference to a clear connection security provider
+MILD_ERR_LDAP_ATTRIBUTE_DUPLICATE_VALUES=The provided LDAP attribute %s \
+ contains duplicate values
+MILD_ERR_LDAP_FILTER_UNKNOWN_MATCHING_RULE=The provided LDAP search \
+ filter references unknown matching rule %s
+MILD_ERR_LDAP_FILTER_VALUE_WITH_NO_ATTR_OR_MR=The provided LDAP search \
+ filter has an assertion value but does not include either an attribute type \
+ or a matching rule ID
+FATAL_ERR_LDAP_REQHANDLER_DETECTED_JVM_ISSUE_CR6322825=Unable to call \
+ select() in the LDAP connection handler: %s. It appears that your JVM may \
+ be susceptible to the issue described at \
+ http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6322825, and it is unable \
+ to handle LDAP requests in its current configuration. Please upgrade to a \
+ newer JVM that does not exhibit this behavior (Java 5.0 Update 8 or higher) \
+ or set the number of available file descriptors to a value greater than or \
+ equal to 8193 (e.g., by issuing the command 'ulimit -n 8193') before starting \
+ the Directory Server
+MILD_ERR_PROXYAUTH1_CONTROL_NOT_CRITICAL=Unwilling to process the request \
+ because it contains a proxied authorization V1 control which is not marked \
+ critical. The proxied authorization control must always have a criticality \
+ of "true"
+MILD_ERR_PROXYAUTH2_CONTROL_NOT_CRITICAL=Unwilling to process the request \
+ because it contains a proxied authorization V2 control which is not marked \
+ critical. The proxied authorization control must always have a criticality \
+ of "true"
+INFO_LDAP_CONNHANDLER_DESCRIPTION_KEYMANAGER_DN=DN of the \
+ configuration entry for the key manager provider that should be used with \
+ this LDAP connection handler. Changes to this attribute will take effect \
+ immediately, but only for subsequent attempts to access the key manager \
+ provider for associated client connections
+SEVERE_ERR_LDAP_CONNHANDLER_INVALID_KEYMANAGER_DN=Configuration attribute \
+ ds-cfg-key-manager-provider of configuration entry %s has an invalid value \
+ %s which does not reference an enabled key manager provider
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_KEYMANAGER_DN=An error \
+ occurred while processing the ds-cfg-key-manager-provider attribute in \
+ configuration entry %s, which is used to specify the key manager provider for \
+ use with the LDAP connection handler: %s
+INFO_LDAP_CONNHANDLER_DESCRIPTION_TRUSTMANAGER_DN=DN of the \
+ configuration entry for the trust manager provider that should be used with \
+ this LDAP connection handler. Changes to this attribute will take effect \
+ immediately, but only for subsequent attempts to access the trust manager \
+ provider for associated client connections
+SEVERE_ERR_LDAP_CONNHANDLER_INVALID_TRUSTMANAGER_DN=Configuration \
+ attribute ds-cfg-trust-manager-provider of configuration entry %s has an \
+ invalid value %s which does not reference an enabled trust manager provider
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_DETERMINE_TRUSTMANAGER_DN=An error \
+ occurred while processing the ds-cfg-trust-manager-provider attribute in \
+ configuration entry %s, which is used to specify the trust manager provider \
+ for use with the LDAP connection handler: %s
+INFO_LDAP_CONNHANDLER_NEW_KEYMANAGER_DN=The value of the \
+ ds-cfg-key-manager-provider attribute has been updated to %s in \
+ configuration entry %s
+INFO_LDAP_CONNHANDLER_NEW_TRUSTMANAGER_DN=The value of the \
+ ds-cfg-trust-manager-provider attribute has been updated to %s in \
+ configuration entry %s
+INFO_JMX_CONNHANDLER_DESCRIPTION_KEYMANAGER_DN=DN of the \
+ key manager provider that the connection handler should use when accepting \
+ SSL-based connections or performing StartTLS negotiation. Changes to this \
+ configuration attribute will take effect immediately
+SEVERE_ERR_JMX_CONNHANDLER_INVALID_KEYMANAGER_DN=An error occurred while \
+ processing the ds-cfg-key-manager-provider attribute in configuration \
+ entry %s, because the provided key manager DN %s does not refer to an enabled \
+ key manager provider
+SEVERE_ERR_JMX_CONNHANDLER_CANNOT_DETERMINE_KEYMANAGER_DN=An unexpected \
+ error occurred while processing the ds-cfg-key-manager-provider attribute \
+ in configuration entry %s, which is used to specify the DN of the key manager \
+ provider to use for accepting SSL/TLS connections: %s
+MILD_ERR_LDAP_CONNHANDLER_CANNOT_SET_SECURITY_PROVIDER=An error occurred \
+ while attempting to configure the connection security provider for the client \
+ connection: %s
+SEVERE_ERR_LDAP_CONNHANDLER_NO_KEYMANAGER_DN=The LDAP connection handler \
+ defined in configuration entry %s is configured to use either SSL or \
+ StartTLS, but does not specify which key manager provider should be used
+SEVERE_ERR_LDAP_CONNHANDLER_NO_TRUSTMANAGER_DN=The LDAP connection \
+ handler defined in configuration entry %s is configured to use either SSL or \
+ StartTLS, but does not specify which trust manager provider should be used
+INFO_LDAPS_CONNHANDLER_DESCRIPTION_ENABLE=Specifies whether to enable the \
+ LDAPS connection handler
+MILD_ERR_LDAP_FILTER_NOT_EXACTLY_ONE=The provided search filter "%s" \
+ could not be decoded because the NOT filter between positions %d and %d did \
+ not contain exactly one filter component
+INFO_SORTREQ_CONTROL_NO_VALUE=Unable to decode the provided control as a \
+ server-side sort request control because it does not include a control value
+INFO_SORTREQ_CONTROL_UNDEFINED_ATTR=Unable to process the provided \
+ server-side sort request control because it references attribute type %s \
+ which is not defined in the server schema
+INFO_SORTREQ_CONTROL_UNDEFINED_ORDERING_RULE=Unable to process the \
+ provided server-side sort request control because it references undefined \
+ ordering matching rule %s
+INFO_SORTREQ_CONTROL_INVALID_SEQ_ELEMENT_TYPE=Unable to process the \
+ provided server-side sort request control because the value sequence contains \
+ an element with an unsupported type of %s
+INFO_SORTREQ_CONTROL_CANNOT_DECODE_VALUE=Unable to process the provided \
+ server-side sort request control because an error occurred while attempting \
+ to decode the control value: %s
+INFO_SORTRES_CONTROL_NO_VALUE=Unable to decode the provided control as a \
+ server-side sort response control because it does not include a control value
+INFO_SORTRES_CONTROL_CANNOT_DECODE_VALUE=Unable to process the provided \
+ server-side sort response control because an error occurred while attempting \
+ to decode the control value: %s
+INFO_SORTREQ_CONTROL_NO_ATTR_NAME=Unable to process the provided \
+ server-side sort request control because the sort order string "%s" included \
+ a sort key with no attribute name
+INFO_SORTREQ_CONTROL_NO_MATCHING_RULE=Unable to process the provided \
+ server-side sort request control because the sort order string "%s" included \
+ a sort key with a colon but no matching rule name
+INFO_SORTREQ_CONTROL_NO_SORT_KEYS=Unable to process the provided \
+ server-side sort request control because it did not contain any sort keys
+INFO_SORTREQ_CONTROL_NO_ORDERING_RULE_FOR_ATTR=Unable to process the \
+ provided server-side sort request control because it included attribute %s \
+ which does not have a default ordering matching rule and no ordering rule was \
+ specified in the sort key
+INFO_VLVREQ_CONTROL_NO_VALUE=Unable to decode the provided control as a \
+ VLV request control because it does not include a control value
+INFO_VLVREQ_CONTROL_INVALID_ELEMENT_COUNT=Unable to decode the provided \
+ control as a VLV request control because it contains an invalid number of \
+ elements: %d
+INFO_VLVREQ_CONTROL_INVALID_TARGET_TYPE=Unable to decode the provided \
+ control as a VLV request control because the target element type %s is \
+ invalid
+INFO_VLVREQ_CONTROL_CANNOT_DECODE_VALUE=Unable to process the provided \
+ VLV request control because an error occurred while attempting to decode the \
+ control value: %s
+INFO_VLVRES_CONTROL_NO_VALUE=Unable to decode the provided control as a \
+ VLV response control because it does not include a control value
+INFO_VLVRES_CONTROL_INVALID_ELEMENT_COUNT=Unable to decode the provided \
+ control as a VLV response control because it contains an invalid number of \
+ elements: %d
+INFO_VLVRES_CONTROL_CANNOT_DECODE_VALUE=Unable to process the provided \
+ VLV response control because an error occurred while attempting to decode the \
+ control value: %s
+INFO_GETEFFECTIVERIGHTS_INVALID_AUTHZID=The authorization ID "%s" \
+ contained in the geteffectiverights control is invalid because it does not \
+ start with "dn:" to indicate a user DN
+INFO_GETEFFECTIVERIGHTS_DECODE_ERROR=Cannot decode the provided \
+ geteffectiverights request control: %s
+INFO_CANNOT_DECODE_GETEFFECTIVERIGHTS_AUTHZID_DN=Unable to decode authzid \
+ DN string "%s" as a valid distinguished name: %s
+MILD_ERR_LDAP_FILTER_ENCLOSED_IN_APOSTROPHES=An LDAP filter enclosed in \
+ apostrophes is invalid: %s
+INFO_JMX_CONNHANDLER_DESCRIPTION_ENABLE=Specifies whether to enable the \
+ JMX connection handler
+MILD_ERR_LDAP_FILTER_INVALID_CHAR_IN_ATTR_TYPE=The provided search filter \
+ contains an invalid attribute type '%s' with invalid character '%s' at \
+ position %d
+MILD_ERR_LDAP_FILTER_EXTENSIBLE_MATCH_NO_AD_OR_MR=The provided search \
+ filter "%s" could not be decoded because the extensible match component \
+ starting at position %d did not include either an attribute description or a \
+ matching rule ID. At least one of them must be provided
+MILD_ERR_LDAPV2_CONTROLS_NOT_ALLOWED=LDAPv2 clients are not allowed to \
+ use request controls
+SEVERE_ERR_LDAP_CONNHANDLER_CANNOT_BIND=The LDAP connection handler \
+ defined in configuration entry %s was unable to bind to %s:%d: %s
+SEVERE_ERR_JMX_CONNHANDLER_CANNOT_BIND=The JMX connection handler defined \
+ in configuration entry %s was unable to bind to port %d: %s
+MILD_ERR_JMX_ADD_INSUFFICIENT_PRIVILEGES=You do not have sufficient \
+ privileges to perform add operations through JMX
+MILD_ERR_JMX_DELETE_INSUFFICIENT_PRIVILEGES=You do not have sufficient \
+ privileges to perform delete operations through JMX
+MILD_ERR_JMX_MODIFY_INSUFFICIENT_PRIVILEGES=You do not have sufficient \
+ privileges to perform modify operations through JMX
+MILD_ERR_JMX_MODDN_INSUFFICIENT_PRIVILEGES=You do not have sufficient \
+ privileges to perform modify DN operations through JMX
+MILD_ERR_JMX_SEARCH_INSUFFICIENT_PRIVILEGES=You do not have sufficient \
+ privileges to perform search operations through JMX
+MILD_ERR_JMX_INSUFFICIENT_PRIVILEGES=You do not have sufficient \
+ privileges to establish the connection through JMX. At least JMX_READ \
+ privilege is required
+MILD_ERR_INTERNALCONN_NO_SUCH_USER=User %s does not exist in the directory
+MILD_ERR_INTERNALOS_CLOSED=This output stream has been closed
+MILD_ERR_INTERNALOS_INVALID_REQUEST=The provided LDAP message had an \
+ invalid operation type (%s) for a request
+MILD_ERR_INTERNALOS_SASL_BIND_NOT_SUPPORTED=SASL bind operations are not \
+ supported over internal LDAP sockets
+MILD_ERR_INTERNALOS_STARTTLS_NOT_SUPPORTED=StartTLS operations are not \
+ supported over internal LDAP sockets
+SEVERE_WARN_LDIF_CONNHANDLER_LDIF_DIRECTORY_NOT_DIRECTORY=The value %s \
+ specified as the LDIF directory path for the LDIF connection handler defined \
+ in configuration entry %s exists but is not a directory. The specified path \
+ must be a directory. The LDIF connection handler will start, but will not \
+ be able to proces any changes until this path is changed to a directory
+MILD_WARN_LDIF_CONNHANDLER_LDIF_DIRECTORY_MISSING=The directory %s \
+ referenced by the LDIF connection handler defined in configuration entry %s \
+ does not exist. The LDIF connection handler will start, but will not be \
+ able to process any changes until this directory is created
+MILD_ERR_LDIF_CONNHANDLER_CANNOT_READ_CHANGE_RECORD_NONFATAL=An error \
+ occurred while trying to read a change record from the LDIF file: %s. This \
+ change will be skipped but processing on the LDIF file will continue
+MILD_ERR_LDIF_CONNHANDLER_CANNOT_READ_CHANGE_RECORD_FATAL=An error \
+ occurred while trying to read a change record from the LDIF file: %s. No \
+ further processing on this LDIF file can be performed
+INFO_LDIF_CONNHANDLER_UNKNOWN_CHANGETYPE=Unsupported change type %s
+INFO_LDIF_CONNHANDLER_RESULT_CODE=Result Code: %d (%s)
+INFO_LDIF_CONNHANDLER_ERROR_MESSAGE=Additional Info: %s
+INFO_LDIF_CONNHANDLER_MATCHED_DN=Matched DN: %s
+INFO_LDIF_CONNHANDLER_REFERRAL_URL=Referral URL: %s
+SEVERE_ERR_LDIF_CONNHANDLER_IO_ERROR=An I/O error occurred while the LDIF \
+ connection handler was processing LDIF file %s: %s
+SEVERE_ERR_LDIF_CONNHANDLER_CANNOT_RENAME=An error occurred while the \
+ LDIF connection handler was attempting to rename partially-processed file \
+ from %s to %s: %s
+SEVERE_ERR_LDIF_CONNHANDLER_CANNOT_DELETE=An error occurred while the \
+ LDIF connection handler was attempting to delete processed file %s: %s
+SEVERE_ERR_CONNHANDLER_ADDRESS_INUSE=Address already in use
+INFO_SNMP_CONNHANDLER_DESCRIPTION_LISTEN_PORT=SNMP port on \
+ which this connection handler accepts SNMP requests. Changes \
+ to this configuration attribute will not take effect until the connection \
+ handler is disabled and re-enabled, or until the Directory Server is \
+ restarted
+SEVERE_ERR_SNMP_CONNHANDLER_NO_LISTEN_PORT=No listen port was defined \
+ using configuration ds-cfg-listen-port in configuration entry %s. This is a \
+ required attribute
+SEVERE_ERR_SNMP_CONNHANDLER_CANNOT_DETERMINE_LISTEN_PORT=An unexpected \
+ error occurred while processing the ds-cfg-listen-port attribute in \
+ configuration entry %s, which is used to specify the port on which to listen \
+ for client connections: %s
+SEVERE_ERR_SNMP_CONNHANDLER_CANNOT_BE_STARTED=An unexpected \
+ error occurred when this connection handler started
+SEVERE_ERR_SNMP_CONNHANDLER_NO_CONFIGURATION=No Configuration was defined \
+ for this connection handler. The configuration parameters ds-cfg-listen-port \
+ and ds-cfg-trap-port are required by the connection handler to start
+SEVERE_ERR_SNMP_CONNHANDLER_TRAPS_DESTINATION=Traps Destination %s is \
+ an unknown host. Traps will not be sent to this destination
+SEVERE_ERR_SNMP_CONNHANDLER_NO_OPENDMK_JARFILES=You do not have the \
+ appropriate OpenDMK jar files to enable the SNMP Connection Handler. \
+ Please go under http://opendmk.dev.java.net and set the \
+ opendmk-jarfile configuration parameter to set the full path \
+ of the required jdmkrt.jar file. The SNMP connection Handler didn't started
+SEVERE_ERR_SNMP_CONNHANDLER_BAD_CONFIGURATION=Cannot initialize the \
+ SNMP Connection Handler. Please check the configuration attributes
+SEVERE_ERR_SNMP_CONNHANDLER_NO_VALID_TRAP_DESTINATIONS=No valid trap \
+ destinations has been found. No trap will be sent
+SEVERE_ERR_ASN1_READ_ERROR=An error occured while accessing the \
+ underlying data source: %s
+SEVERE_ERR_ASN1_EOF_ERROR=An unexpected end of file reached while trying \
+ to read %d bytes from the underlying data source
+SEVERE_ERR_ASN1_INVALID_STATE=Invalid reader state: %d
+SEVERE_ERR_SUBTREE_DELETE_INVALID_CONTROL_VALUE=Cannot decode the provided \
+ subtree delete control because it contains a value
+ SEVERE_ERR_CONNHANDLER_SSL_CANNOT_INITIALIZE=An error occurred \
+ while attempting to initialize the SSL context for use in the LDAP \
+ Connection Handler: %s
+MILD_ERR_LDAP_UNSUPPORTED_PROTOCOL_VERSION=The Directory Server does not \
+ support LDAP protocol version %d. This connection will be closed
+SEVERE_ERR_SNMP_CONNHANDLER_OPENDMK_JARFILES_DOES_NOT_EXIST=The specified \
+ OpenDMK jar file '%s' could not be found. Verify that the value set in the \
+ opendmk-jarfile configuration parameter of the SNMP connection handler is the \
+ valid path to the jdmkrt.jar file and that the file is accessible
+SEVERE_ERR_SNMP_CONNHANDLER_OPENDMK_JARFILES_NOT_OPERATIONAL=The required \
+ classes could not be loaded using jar file '%s'. Verify that the jar file \
+ is not corrupted
+MILD_ERR_ASN1_UNEXPECTED_TAG=Encountered unexpected tag while reading \
+ ASN.1 element (expected=%d, got=%d)
+SEVERE_ERR_AUTHZIDREQ_CONTROL_HAS_VALUE=Cannot decode the provided \
+ control as an authorization identity request control because the provided \
+ control had a value but the authorization identity request control should not \
+ have a value
+MILD_ERR_LDAP_FILTER_BAD_SUBSTRING=The search filter "%s" cannot be \
+ parsed because it contains a malformed substring filter component "%s"
+MILD_ERR_MVFILTER_BAD_FILTER_AND=The provided filter \
+ "%s" cannot be used as a matched values filter because "and" filters are \
+ not allowed
+MILD_ERR_MVFILTER_BAD_FILTER_OR=The provided filter \
+ "%s" cannot be used as a matched values filter because "or" filters are \
+ not allowed
+MILD_ERR_MVFILTER_BAD_FILTER_NOT=The provided filter \
+ "%s" cannot be used as a matched values filter because "not" filters are \
+ not allowed
+MILD_ERR_MVFILTER_BAD_FILTER_EXT=The provided filter \
+ "%s" cannot be used as a matched values filter because extensible match \
+ filters requesting DN attributes are not allowed
+MILD_ERR_MVFILTER_BAD_FILTER_UNRECOGNIZED=The provided filter \
+ "%s" cannot be used as a matched values filter because filters of type %d are \
+ not allowed
+MILD_ERR_CANNOT_DECODE_CONTROL_VALUE=Cannot decode the provided \
+ control %s because an error occurred while attempting to \
+ decode the control value: %s
+MILD_ERR_ASN1_SEQUENCE_WRITE_NOT_STARTED=Cannot encode the end of the ASN.1 \
+ sequence or set because the start of the sequence was not written
+MILD_ERR_UNEXPECTED_SEARCH_RESULT_ENTRIES=The search request succeeded \
+ but returned %d search result entry when only one was expected
+MILD_ERR_UNEXPECTED_SEARCH_RESULT_REFERENCES=The search request succeeded \
+ but returned a search result reference containing the following URI: %s
+#
+# Utility messages
+#
+MILD_ERR_BASE64_DECODE_INVALID_LENGTH=The value %s cannot be base64-decoded \
+ because it does not have a length that is a multiple of four bytes
+MILD_ERR_BASE64_DECODE_INVALID_CHARACTER=The value %s cannot be \
+ base64-decoded because it contains an illegal character %c that is not \
+ allowed in base64-encoded values
+MILD_ERR_HEX_DECODE_INVALID_LENGTH=The value %s cannot be decoded as a \
+ hexadecimal string because it does not have a length that is a multiple of \
+ two bytes
+MILD_ERR_HEX_DECODE_INVALID_CHARACTER=The value %s cannot be decoded as a \
+ hexadecimal string because it contains an illegal character %c that is not a \
+ valid hexadecimal digit
+MILD_ERR_LDIF_INVALID_LEADING_SPACE=Unable to parse line %d ("%s") from the \
+ LDIF source because the line started with a space but there were no previous \
+ lines in the entry to which this line could be appended
+MILD_ERR_LDIF_NO_ATTR_NAME=Unable to parse LDIF entry starting at line %d \
+ because the line "%s" does not include an attribute name
+MILD_ERR_LDIF_NO_DN=Unable to parse LDIF entry starting at line %d because \
+ the first line does not contain a DN (the first line was "%s"
+MILD_ERR_LDIF_INVALID_DN_SEPARATOR=Unable to parse LDIF entry starting at \
+ line %d because line "%s" contained an invalid separator between the "dn" \
+ prefix and the actual distinguished name
+MILD_ERR_LDIF_INVALID_DN=Unable to parse LDIF entry starting at line %d \
+ because an error occurred while trying to parse the value of line "%s" as a \
+ distinguished name: %s
+MILD_ERR_LDIF_INVALID_ATTR_SEPARATOR=Unable to parse LDIF entry %s \
+ starting at line %d because line "%s" contained an invalid separator between \
+ the attribute name and value
+MILD_ERR_LDIF_COULD_NOT_BASE64_DECODE_DN=Unable to parse LDIF entry \
+ starting at line %d because it was not possible to base64-decode the DN on \
+ line "%s": %s
+MILD_ERR_LDIF_COULD_NOT_BASE64_DECODE_ATTR=Unable to parse LDIF entry %s \
+ starting at line %d because it was not possible to base64-decode the \
+ attribute on line "%s": %s
+MILD_WARN_LDIF_DUPLICATE_OBJECTCLASS=Entry %s read from LDIF starting at \
+ line %d includes a duplicate objectclass value %s. The second occurrence of \
+ that objectclass has been skipped
+MILD_WARN_LDIF_DUPLICATE_ATTR=Entry %s read from LDIF starting at line %d \
+ includes a duplicate attribute %s with value %s. The second occurrence of \
+ that attribute value has been skipped
+MILD_ERR_LDIF_MULTIPLE_VALUES_FOR_SINGLE_VALUED_ATTR=Entry %s starting at \
+ line %d includes multiple values for single-valued attribute %s
+MILD_ERR_LDIF_INVALID_ATTR_SYNTAX=Unable to parse LDIF entry %s starting \
+ at line %d because it has an invalid value "%s" for attribute %s: %s
+MILD_ERR_LDIF_SCHEMA_VIOLATION=Entry %s read from LDIF starting at line %d \
+ is not valid because it violates the server's schema configuration: %s
+SEVERE_ERR_LDIF_FILE_EXISTS=The specified LDIF file %s already exists and \
+ the export configuration indicates that no attempt should be made to append \
+ to or replace the file
+MILD_ERR_LDIF_INVALID_URL=Unable to parse LDIF entry %s starting at line \
+ %d because the value of attribute %s was to be read from a URL but the URL \
+ was invalid: %s
+MILD_ERR_LDIF_URL_IO_ERROR=Unable to parse LDIF entry %s starting at line \
+ %d because the value of attribute %s was to be read from URL %s but an error \
+ occurred while trying to read that content: %s
+SEVERE_ERR_REJECT_FILE_EXISTS=The specified reject file %s already exists \
+ and the import configuration indicates that no attempt should be made to \
+ append to or replace the file
+SEVERE_ERR_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_IMPORT=An error occurred \
+ while attempting to determine whether LDIF entry "%s" starting at line %d \
+ should be imported as a result of the include and exclude filter \
+ configuration: %s
+SEVERE_ERR_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_EXPORT=An error occurred \
+ while attempting to determine whether LDIF entry "%s" should be exported as a \
+ result of the include and exclude filter configuration: %s
+SEVERE_ERR_LDIF_INVALID_DELETE_ATTRIBUTES=Error in the LDIF change record \
+ entry. Invalid attributes specified for the delete operation
+SEVERE_ERR_LDIF_NO_MOD_DN_ATTRIBUTES=Error in the LDIF change record \
+ entry. No attributes specified for the mod DN operation
+SEVERE_ERR_LDIF_NO_DELETE_OLDRDN_ATTRIBUTE=Error in the LDIF change record \
+ entry. No delete old RDN attribute specified for the mod DN operation
+SEVERE_ERR_LDIF_INVALID_DELETE_OLDRDN_ATTRIBUTE=Error in the LDIF change \
+ record entry. Invalid value "%s" for the delete old RDN attribute specified \
+ for the mod DN operation
+SEVERE_ERR_LDIF_INVALID_CHANGERECORD_ATTRIBUTE=Error in the LDIF change \
+ record entry. Invalid attribute "%s" specified. Expecting attribute "%s"
+SEVERE_ERR_LDIF_INVALID_MODIFY_ATTRIBUTE=Error in the LDIF change record \
+ entry. Invalid attribute "%s" specified. Expecting one of the following \
+ attributes "%s"
+SEVERE_ERR_LDIF_INVALID_CHANGETYPE_ATTRIBUTE=Error in the LDIF change \
+ record entry. Invalid value "%s" for the changetype specified. Expecting one \
+ of the following values "%s"
+SEVERE_ERR_LDIF_INVALID_MODIFY_ATTRIBUTE_VAL=Error in the LDIF change \
+ record entry. Invalid value for the "%s" attribute specified
+SEVERE_ERR_SCHEMANAME_EMPTY_VALUE=The provided value could not be parsed \
+ to determine whether it contained a valid schema element name or OID because \
+ it was null or empty
+SEVERE_ERR_SCHEMANAME_ILLEGAL_CHAR=The provided value "%s" does not \
+ contain a valid schema element name or OID because it contains an illegal \
+ character %c at position %d
+SEVERE_ERR_SCHEMANAME_CONSECUTIVE_PERIODS=The provided value "%s" does not \
+ contain a valid schema element name or OID because the numeric OID contains \
+ two consecutive periods at position %d
+SEVERE_ERR_ARG_NO_IDENTIFIER=The %s argument does not have either a \
+ single-character or a long identifier that may be used to specify it. At \
+ least one of these must be specified for each argument
+SEVERE_ERR_ARG_NO_VALUE_PLACEHOLDER=The %s argument is configured to take \
+ a value but no value placeholder has been defined for it
+SEVERE_ERR_ARG_NO_INT_VALUE=The %s argument does not have any value that \
+ may be retrieved as an integer
+SEVERE_ERR_ARG_CANNOT_DECODE_AS_INT=The provided value "%s" for the %s \
+ argument cannot be decoded as an integer
+SEVERE_ERR_ARG_INT_MULTIPLE_VALUES=The %s argument has multiple values and \
+ therefore cannot be decoded as a single integer value
+SEVERE_ERR_ARG_NO_BOOLEAN_VALUE=The %s argument does not have any value \
+ that may be retrieved as a Boolean
+SEVERE_ERR_ARG_CANNOT_DECODE_AS_BOOLEAN=The provided value "%s" for the %s \
+ argument cannot be decoded as a Boolean
+SEVERE_ERR_ARG_BOOLEAN_MULTIPLE_VALUES=The %s argument has multiple values \
+ and therefore cannot be decoded as a single Boolean value
+SEVERE_ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND=The %s argument \
+ configuration is invalid because the lower bound of %d is greater than the \
+ upper bound of %d
+SEVERE_ERR_INTARG_VALUE_BELOW_LOWER_BOUND=The provided %s value %d is \
+ unacceptable because it is below the lower bound of %d
+SEVERE_ERR_INTARG_VALUE_ABOVE_UPPER_BOUND=The provided %s value %d is \
+ unacceptable because it is above the upper bound of %d
+SEVERE_ERR_BOOLEANARG_NO_VALUE_ALLOWED=The provided %s value is \
+ unacceptable because Boolean arguments are never allowed to have values
+SEVERE_ERR_MCARG_VALUE_NOT_ALLOWED=The provided %s value %s is \
+ unacceptable because it is not included in the set of allowed values for that \
+ argument
+SEVERE_ERR_FILEARG_NO_SUCH_FILE=The file %s specified for argument %s does \
+ not exist
+SEVERE_ERR_FILEARG_CANNOT_VERIFY_FILE_EXISTENCE=An error occurred while \
+ trying to verify the existence of file %s specified for argument %s: %s
+SEVERE_ERR_FILEARG_CANNOT_OPEN_FILE=An error occurred while trying to open \
+ file %s specified for argument %s for reading: %s
+SEVERE_ERR_FILEARG_CANNOT_READ_FILE=An error occurred while trying to read \
+ from file %s specified for argument %s: %s
+SEVERE_ERR_FILEARG_EMPTY_FILE=The file %s specified for argument %s exists \
+ but is empty
+SEVERE_ERR_ARGPARSER_DUPLICATE_SHORT_ID=Cannot add argument %s to the \
+ argument list because its short identifier -%s conflicts with the %s argument \
+ that has already been defined
+SEVERE_ERR_ARGPARSER_DUPLICATE_LONG_ID=Cannot add argument %s to the \
+ argument list because its long identifier --%s conflicts with the %s argument \
+ that has already been defined
+SEVERE_ERR_ARGPARSER_CANNOT_READ_PROPERTIES_FILE=An error occurred while \
+ attempting to read the contents of the argument properties file %s: %s
+SEVERE_ERR_ARGPARSER_TOO_MANY_TRAILING_ARGS=The provided set of \
+ command-line arguments contained too many unnamed trailing arguments. The \
+ maximum number of allowed trailing arguments is %d
+SEVERE_ERR_ARGPARSER_LONG_ARG_WITHOUT_NAME=The provided argument "%s" is \
+ invalid because it does not include the argument name
+SEVERE_ERR_ARGPARSER_NO_ARGUMENT_WITH_LONG_ID=Argument --%s is not allowed \
+ for use with this program
+SEVERE_ERR_ARGPARSER_NO_VALUE_FOR_ARGUMENT_WITH_LONG_ID=Argument --%s \
+ requires a value but none was provided
+SEVERE_ERR_ARGPARSER_VALUE_UNACCEPTABLE_FOR_LONG_ID=The provided value \
+ "%s" for argument --%s is not acceptable: %s
+SEVERE_ERR_ARGPARSER_NOT_MULTIVALUED_FOR_LONG_ID=The argument --%s was \
+ included multiple times in the provided set of arguments but it does not \
+ allow multiple values
+SEVERE_ERR_ARGPARSER_ARG_FOR_LONG_ID_DOESNT_TAKE_VALUE=A value was \
+ provided for argument --%s but that argument does not take a value
+SEVERE_ERR_ARGPARSER_INVALID_DASH_AS_ARGUMENT=The dash character by itself \
+ is invalid for use as an argument name
+SEVERE_ERR_ARGPARSER_NO_ARGUMENT_WITH_SHORT_ID=Argument -%s is not allowed \
+ for use with this program
+SEVERE_ERR_ARGPARSER_NO_VALUE_FOR_ARGUMENT_WITH_SHORT_ID=Argument -%s \
+ requires a value but none was provided
+SEVERE_ERR_ARGPARSER_VALUE_UNACCEPTABLE_FOR_SHORT_ID=The provided value \
+ "%s" for argument -%s is not acceptable: %s
+SEVERE_ERR_ARGPARSER_NOT_MULTIVALUED_FOR_SHORT_ID=The argument -%s was \
+ included multiple times in the provided set of arguments but it does not \
+ allow multiple values
+SEVERE_ERR_ARGPARSER_CANT_MIX_ARGS_WITH_VALUES=The provided argument block \
+ '-%s%s' is illegal because the '%s' argument requires a value but is in the \
+ same block as at least one other argument that doesn't require a value
+SEVERE_ERR_ARGPARSER_DISALLOWED_TRAILING_ARGUMENT=Argument "%s" does not \
+ start with one or two dashes and unnamed trailing arguments are not allowed
+SEVERE_ERR_ARGPARSER_TOO_FEW_TRAILING_ARGUMENTS=At least %d unnamed \
+ trailing arguments are required in the argument list, but too few were \
+ provided
+SEVERE_ERR_ARGPARSER_NO_VALUE_FOR_REQUIRED_ARG=The argument %s is required \
+ to have a value but none was provided in the argument list and no default \
+ value is available
+SEVERE_ERR_MOVEFILE_NO_SUCH_FILE=The file to move %s does not exist
+SEVERE_ERR_MOVEFILE_NOT_FILE=The file to move %s exists but is not a file
+SEVERE_ERR_MOVEFILE_NO_SUCH_DIRECTORY=The target directory %s does not \
+ exist
+SEVERE_ERR_MOVEFILE_NOT_DIRECTORY=The target directory %s exists but is \
+ not a directory
+SEVERE_ERR_EMAILMSG_INVALID_SENDER_ADDRESS=The provided sender address %s \
+ is invalid: %s
+SEVERE_ERR_EMAILMSG_INVALID_RECIPIENT_ADDRESS=The provided recipient \
+ address %s is invalid: %s
+SEVERE_ERR_EMAILMSG_CANNOT_SEND=The specified e-mail message could not be \
+ sent using any of the configured mail servers
+SEVERE_ERR_ARG_SUBCOMMAND_DUPLICATE_SUBCOMMAND=The argument parser already \
+ has a %s subcommand
+SEVERE_ERR_ARG_SUBCOMMAND_DUPLICATE_ARGUMENT_NAME=There are multiple \
+ arguments for subcommand %s with name %s
+SEVERE_ERR_ARG_SUBCOMMAND_ARGUMENT_GLOBAL_CONFLICT=Argument %s for \
+ subcommand %s conflicts with a global argument with the same name
+SEVERE_ERR_ARG_SUBCOMMAND_DUPLICATE_SHORT_ID=Argument %s for subcommand %s \
+ has a short identifier -%s that conflicts with that of argument %s
+SEVERE_ERR_ARG_SUBCOMMAND_ARGUMENT_SHORT_ID_GLOBAL_CONFLICT=Argument %s \
+ for subcommand %s has a short ID -%s that conflicts with that of global \
+ argument %s
+SEVERE_ERR_ARG_SUBCOMMAND_DUPLICATE_LONG_ID=Argument %s for subcommand %s \
+ has a long identifier --%s that conflicts with that of argument %s
+SEVERE_ERR_ARG_SUBCOMMAND_ARGUMENT_LONG_ID_GLOBAL_CONFLICT=Argument %s for \
+ subcommand %s has a long ID --%s that conflicts with that of global argument \
+ %s
+SEVERE_ERR_SUBCMDPARSER_DUPLICATE_GLOBAL_ARG_NAME=There is already another \
+ global argument named "%s"
+SEVERE_ERR_SUBCMDPARSER_GLOBAL_ARG_NAME_SUBCMD_CONFLICT=The argument name \
+ %s conflicts with the name of another argument associated with the %s \
+ subcommand
+SEVERE_ERR_SUBCMDPARSER_DUPLICATE_GLOBAL_ARG_SHORT_ID=Short ID -%s for \
+ global argument %s conflicts with the short ID of another global argument %s
+SEVERE_ERR_SUBCMDPARSER_GLOBAL_ARG_SHORT_ID_CONFLICT=Short ID -%s for \
+ global argument %s conflicts with the short ID for the %s argument associated \
+ with subcommand %s
+SEVERE_ERR_SUBCMDPARSER_DUPLICATE_GLOBAL_ARG_LONG_ID=Long ID --%s for \
+ global argument %s conflicts with the long ID of another global argument %s
+SEVERE_ERR_SUBCMDPARSER_GLOBAL_ARG_LONG_ID_CONFLICT=Long ID --%s for \
+ global argument %s conflicts with the long ID for the %s argument associated \
+ with subcommand %s
+SEVERE_ERR_SUBCMDPARSER_CANNOT_READ_PROPERTIES_FILE=An error occurred \
+ while attempting to read the contents of the argument properties file %s: %s
+SEVERE_ERR_SUBCMDPARSER_LONG_ARG_WITHOUT_NAME=The provided command-line \
+ argument %s does not contain an argument name
+SEVERE_ERR_SUBCMDPARSER_NO_GLOBAL_ARGUMENT_FOR_LONG_ID=The provided \
+ argument --%s is not a valid global argument identifier
+SEVERE_ERR_SUBCMDPARSER_NO_ARGUMENT_FOR_LONG_ID=The provided argument --%s \
+ is not a valid global or subcommand argument identifier
+SEVERE_ERR_SUBCMDPARSER_NO_VALUE_FOR_ARGUMENT_WITH_LONG_ID=Command-line \
+ argument --%s requires a value but none was given
+SEVERE_ERR_SUBCMDPARSER_VALUE_UNACCEPTABLE_FOR_LONG_ID=The provided value \
+ "%s" for argument --%s is not acceptable: %s
+SEVERE_ERR_SUBCMDPARSER_NOT_MULTIVALUED_FOR_LONG_ID=The argument --%s was \
+ included multiple times in the provided set of arguments but it does not \
+ allow multiple values
+SEVERE_ERR_SUBCMDPARSER_ARG_FOR_LONG_ID_DOESNT_TAKE_VALUE=A value was \
+ provided for argument --%s but that argument does not take a value
+SEVERE_ERR_SUBCMDPARSER_INVALID_DASH_AS_ARGUMENT=The dash character by \
+ itself is invalid for use as an argument name
+SEVERE_ERR_SUBCMDPARSER_NO_GLOBAL_ARGUMENT_FOR_SHORT_ID=The provided \
+ argument -%s is not a valid global argument identifier
+SEVERE_ERR_SUBCMDPARSER_NO_ARGUMENT_FOR_SHORT_ID=The provided argument \
+ -%s is not a valid global or subcommand argument identifier
+SEVERE_ERR_SUBCMDPARSER_NO_VALUE_FOR_ARGUMENT_WITH_SHORT_ID=Argument -%s \
+ requires a value but none was provided
+SEVERE_ERR_SUBCMDPARSER_VALUE_UNACCEPTABLE_FOR_SHORT_ID=The provided \
+ value "%s" for argument -%s is not acceptable: %s
+SEVERE_ERR_SUBCMDPARSER_NOT_MULTIVALUED_FOR_SHORT_ID=The argument -%s was \
+ included multiple times in the provided set of arguments but it does not \
+ allow multiple values
+SEVERE_ERR_SUBCMDPARSER_CANT_MIX_ARGS_WITH_VALUES=The provided argument \
+ block '-%s%s' is illegal because the '%s' argument requires a value but is in \
+ the same block as at least one other argument that doesn't require a value
+SEVERE_ERR_SUBCMDPARSER_INVALID_ARGUMENT=The provided argument "%s" is \
+ not recognized
+SEVERE_ERR_SUBCMDPARSER_MULTIPLE_SUBCOMMANDS=The provided argument %s \
+ specifies a valid subcommand, but another subcommand %s was also given. Only \
+ a single subcommand may be provided
+SEVERE_ERR_SUBCMDPARSER_NO_VALUE_FOR_REQUIRED_ARG=The argument %s is \
+ required to have a value but none was provided in the argument list and no \
+ default value is available
+SEVERE_ERR_LDAPURL_NO_COLON_SLASH_SLASH=The provided string "%s" cannot \
+ be decoded as an LDAP URL because it does not contain the necessary :// \
+ component to separate the scheme from the rest of the URL
+SEVERE_ERR_LDAPURL_NO_SCHEME=The provided string "%s" cannot be decoded \
+ as an LDAP URL because it does not contain a protocol scheme
+SEVERE_ERR_LDAPURL_NO_HOST=The provided string "%s" cannot be decoded as \
+ an LDAP URL because it does not contain a host before the colon to specify \
+ the port number
+SEVERE_ERR_LDAPURL_NO_PORT=The provided string "%s" cannot be decoded as \
+ an LDAP URL because it does not contain a port number after the colon \
+ following the host
+SEVERE_ERR_LDAPURL_CANNOT_DECODE_PORT=The provided string "%s" cannot be \
+ decoded as an LDAP URL because the port number portion %s cannot be decoded \
+ as an integer
+SEVERE_ERR_LDAPURL_INVALID_PORT=The provided string "%s" cannot be \
+ decoded as an LDAP URL because the provided port number %d is not within the \
+ valid range between 1 and 65535
+SEVERE_ERR_LDAPURL_INVALID_SCOPE_STRING=The provided string "%s" cannot \
+ be decoded as an LDAP URL because the scope string %s was not one of the \
+ allowed values of base, one, sub, or subordinate
+SEVERE_ERR_LDAPURL_PERCENT_TOO_CLOSE_TO_END=The provided URL component \
+ "%s" could not be decoded because the percent character at byte %d was not \
+ followed by two hexadecimal digits
+SEVERE_ERR_LDAPURL_INVALID_HEX_BYTE=The provided URL component "%s" could \
+ not be decoded because the character at byte %d was not a valid hexadecimal \
+ digit
+SEVERE_ERR_LDAPURL_CANNOT_CREATE_UTF8_STRING=An error occurred while \
+ attempting to represent a byte array as a UTF-8 string during the course of \
+ decoding a portion of an LDAP URL: %s
+MILD_ERR_CHARSET_NO_COLON=Cannot decode value "%s" as a named character \
+ set because it does not contain a colon to separate the name from the set of \
+ characters
+MILD_ERR_CHARSET_CONSTRUCTOR_NO_NAME=The named character set is invalid \
+ because it does not contain a name
+MILD_ERR_CHARSET_CONSTRUCTOR_INVALID_NAME_CHAR=The named character set is \
+ invalid because the provide name "%s" has an invalid character at position \
+ %d. Only ASCII alphabetic characters are allowed in the name
+MILD_ERR_CHARSET_NO_NAME=Cannot decode value "%s" as a named character \
+ set because it does not contain a name to use for the character set
+MILD_ERR_CHARSET_NO_CHARS=Cannot decode value "%s" as a named character \
+ set because there are no characters to include in the set
+INFO_TIME_IN_SECONDS=%d seconds
+INFO_TIME_IN_MINUTES_SECONDS=%d minutes, %d seconds
+INFO_TIME_IN_HOURS_MINUTES_SECONDS=%d hours, %d minutes, %d seconds
+INFO_TIME_IN_DAYS_HOURS_MINUTES_SECONDS=%d days, %d hours, %d minutes, %d \
+ seconds
+INFO_ACCTNOTTYPE_ACCOUNT_TEMPORARILY_LOCKED=account-temporarily-locked
+INFO_ACCTNOTTYPE_ACCOUNT_PERMANENTLY_LOCKED=account-permanently-locked
+INFO_ACCTNOTTYPE_ACCOUNT_UNLOCKED=account-unlocked
+INFO_ACCTNOTTYPE_ACCOUNT_IDLE_LOCKED=account-idle-locked
+INFO_ACCTNOTTYPE_ACCOUNT_RESET_LOCKED=account-reset-locked
+INFO_ACCTNOTTYPE_ACCOUNT_DISABLED=account-disabled
+INFO_ACCTNOTTYPE_ACCOUNT_ENABLED=account-enabled
+INFO_ACCTNOTTYPE_ACCOUNT_EXPIRED=account-expired
+INFO_ACCTNOTTYPE_PASSWORD_EXPIRED=password-expired
+INFO_ACCTNOTTYPE_PASSWORD_EXPIRING=password-expiring
+INFO_ACCTNOTTYPE_PASSWORD_RESET=password-reset
+INFO_ACCTNOTTYPE_PASSWORD_CHANGED=password-changed
+MILD_ERR_FILEPERM_SET_NO_SUCH_FILE=Unable to set permissions for file %s \
+ because it does not exist
+MILD_ERR_FILEPERM_CANNOT_EXEC_CHMOD=Unable to execute the chmod command \
+ to set file permissions on %s: %s
+SEVERE_ERR_FILEPERM_SET_JAVA_EXCEPTION=One or more exceptions were thrown \
+ in the process of updating the file permissions for %s. Some of the \
+ permissions for the file may have been altered
+SEVERE_ERR_FILEPERM_SET_JAVA_FAILED_ALTERED=One or more updates to the \
+ file permissions for %s failed, but at least one update was successful. Some \
+ of the permissions for the file may have been altered
+SEVERE_ERR_FILEPERM_SET_JAVA_FAILED_UNALTERED=All of the attempts to \
+ update the file permissions for %s failed. The file should be left with its \
+ original permissions
+MILD_ERR_FILEPERM_INVALID_UNIX_MODE_STRING=The provided string %s does \
+ not represent a valid UNIX file mode. UNIX file modes must be a \
+ three-character string in which each character is a numeric digit between \
+ zero and seven
+MILD_ERR_EXEC_DISABLED=The %s command will not be allowed because the \
+ Directory Server has been configured to refuse the use of the exec method
+SEVERE_ERR_VALIDATOR_PRECONDITION_NOT_MET=A precondition of the invoked \
+ method was not met. This This usually means there is a defect somewhere in \
+ the call stack. Details: %s
+INFO_GLOBAL_OPTIONS=Global Options:
+INFO_GLOBAL_OPTIONS_REFERENCE=See "%s --help"
+INFO_SUBCMD_OPTIONS=SubCommand Options:
+INFO_ARGPARSER_USAGE=Usage:
+INFO_SUBCMDPARSER_SUBCMD_HEADING=Available subcommands:
+INFO_SUBCMDPARSER_SUBCMD_REFERENCE=See "%s --help-{category}"
+INFO_SUBCMDPARSER_GLOBAL_HEADING=The global options are:
+INFO_GLOBAL_HELP_REFERENCE=See "%s --help" to get more usage help
+SEVERE_ERR_RENAMEFILE_CANNOT_RENAME=Failed to rename file %s to %s
+SEVERE_ERR_RENAMEFILE_CANNOT_DELETE_TARGET=Failed to delete target file \
+ %s. Make sure the file is not currently in use by this or another \
+ application
+SEVERE_ERR_EXPCHECK_TRUSTMGR_CLIENT_CERT_EXPIRED=Refusing to trust client \
+ or issuer certificate '%s' because it expired on %s
+SEVERE_ERR_EXPCHECK_TRUSTMGR_CLIENT_CERT_NOT_YET_VALID=Refusing to trust \
+ client or issuer certificate '%s' because it is not valid until %s
+SEVERE_ERR_EXPCHECK_TRUSTMGR_SERVER_CERT_EXPIRED=Refusing to trust server \
+ or issuer certificate '%s' because it expired on %s
+SEVERE_ERR_EXPCHECK_TRUSTMGR_SERVER_CERT_NOT_YET_VALID=Refusing to trust \
+ server or issuer certificate '%s' because it is not valid until %s
+MILD_WARN_LDIF_VALUE_VIOLATES_SYNTAX=Entry %s read from LDIF starting at \
+ line %d includes value "%s" for attribute %s that is invalid according to the \
+ associated syntax: %s
+SEVERE_ERR_SKIP_FILE_EXISTS=The specified skip file %s already exists and \
+ the import configuration indicates that no attempt should be made to append \
+ to or replace the file
+MILD_ERR_LDIF_SKIP=Skipping entry %s because the DN is not one that \
+ should be included based on the include and exclude branches
+INFO_SUBCMDPARSER_SUBCMD_HELP_HEADING=To get the list of subcommands use:
+SEVERE_ERR_EMBEDUTILS_SERVER_ALREADY_RUNNING=The Directory Server cannot \
+ be started because it is already running
+INFO_SUBCMDPARSER_OPTIONS={options}
+INFO_SUBCMDPARSER_SUBCMD_AND_OPTIONS={subcommand} {options}
+INFO_SUBCMDPARSER_WHERE_OPTIONS_INCLUDE=\ where {options} include:
+INFO_EMAIL_TOOL_DESCRIPTION=Send an e-mail message via SMTP
+INFO_EMAIL_HOST_DESCRIPTION=The address of the SMTP server to use to send \
+ the message
+INFO_EMAIL_FROM_DESCRIPTION=The address to use for the message sender
+INFO_EMAIL_TO_DESCRIPTION=The address to use for the message recipient
+INFO_EMAIL_SUBJECT_DESCRIPTION=The subject to use for the e-mail message
+INFO_EMAIL_BODY_DESCRIPTION=The path to the file containing the text for \
+ the message body
+INFO_EMAIL_ATTACH_DESCRIPTION=The path to a file to attach to the e-mail \
+ message
+INFO_EMAIL_HELP_DESCRIPTION=Display this usage information
+SEVERE_ERR_EMAIL_NO_SUCH_BODY_FILE=The file %s specified as the body file \
+ for the e-mail message does not exist
+SEVERE_ERR_EMAIL_CANNOT_PROCESS_BODY_FILE=An error occurred while \
+ attempting to process message body file %s: %s
+SEVERE_ERR_EMAIL_NO_SUCH_ATTACHMENT_FILE=The attachment file %s does not \
+ exist
+SEVERE_ERR_EMAIL_CANNOT_ATTACH_FILE=An error occurred while trying to \
+ attach file %s: %s
+SEVERE_ERR_EMAIL_CANNOT_SEND_MESSAGE=An error occurred while trying to \
+ send the e-mail message: %s
+INFO_BASE64_TOOL_DESCRIPTION=This utility can be used to encode and \
+ decode information using base64
+INFO_BASE64_HELP_DESCRIPTION=Display this usage information
+INFO_BASE64_DECODE_DESCRIPTION=Decode base64-encoded information into \
+ raw data
+INFO_BASE64_ENCODE_DESCRIPTION=Encode raw data using base64
+INFO_BASE64_ENCODED_DATA_DESCRIPTION=The base64-encoded data to be decoded
+INFO_BASE64_ENCODED_FILE_DESCRIPTION=The path to a file containing the \
+ base64-encoded data to be decoded
+INFO_BASE64_RAW_DATA_DESCRIPTION=The raw data to be base64 encoded
+INFO_BASE64_RAW_FILE_DESCRIPTION=The path to a file containing the raw \
+ data to be base64 encoded
+INFO_BASE64_TO_ENCODED_FILE_DESCRIPTION=The path to a file to which the \
+ base64-encoded data should be written
+INFO_BASE64_TO_RAW_FILE_DESCRIPTION=The path to a file to which the raw \
+ base64-decoded data should be written
+SEVERE_ERR_BASE64_CANNOT_READ_RAW_DATA=An error occurred while attempting \
+ to read the raw data to encode: %s
+SEVERE_ERR_BASE64_CANNOT_WRITE_ENCODED_DATA=An error occurred while \
+ attempting to write the encoded data: %s
+SEVERE_ERR_BASE64_CANNOT_READ_ENCODED_DATA=An error occurred while \
+ attempting to read the base64-encoded data: %s
+SEVERE_ERR_BASE64_CANNOT_WRITE_RAW_DATA=An error occurred while \
+ attempting to write the decoded data: %s
+SEVERE_ERR_BASE64_UNKNOWN_SUBCOMMAND=Unknown subcommand %s
+INFO_GENERAL_NO=no
+INFO_GENERAL_YES=yes
+SEVERE_ERR_CONSOLE_APP_CONFIRM=Invalid response. Please enter \
+ "%s" or "%s"
+INFO_MENU_OPTION_HELP=help
+INFO_MENU_OPTION_HELP_KEY=?
+INFO_MENU_OPTION_CANCEL=cancel
+INFO_MENU_OPTION_CANCEL_KEY=c
+INFO_MENU_OPTION_QUIT=quit
+INFO_MENU_OPTION_QUIT_KEY=q
+INFO_MENU_NUMERIC_OPTION=%d)
+INFO_MENU_CHAR_OPTION=%c)
+SEVERE_ERR_MENU_BAD_CHOICE_MULTI=Invalid response. Please enter one or \
+more valid menu options
+SEVERE_ERR_MENU_BAD_CHOICE_SINGLE=Invalid response. Please enter a valid \
+menu option
+SEVERE_ERR_MENU_BAD_CHOICE_MULTI_DUPE=The option "%s" was specified \
+more than once. Please enter one or more valid menu options
+INFO_MENU_PROMPT_SINGLE=Enter choice:
+INFO_MENU_PROMPT_SINGLE_DEFAULT=Enter choice [%s]:
+INFO_MENU_PROMPT_MULTI=Enter one or more choices separated by commas:
+INFO_MENU_PROMPT_MULTI_DEFAULT=Enter one or more choices separated by commas [%s]:
+INFO_MENU_PROMPT_RETURN_TO_CONTINUE=Press RETURN to continue
+INFO_MENU_PROMPT_CONFIRM=%s (%s / %s) [%s]:
+SEVERE_ERR_CONSOLE_INPUT_ERROR=The response could not be read from the console due to the following error: %s
+INFO_MENU_OPTION_BACK=back
+INFO_MENU_OPTION_BACK_KEY=b
+SEVERE_ERR_LDIF_REJECTED_BY_PLUGIN_NOMESSAGE=Rejecting entry %s because \
+ it was rejected by a plugin
+SEVERE_ERR_LDIF_REJECTED_BY_PLUGIN=Rejecting entry %s because it was \
+ rejected by a plugin: %s
+INFO_LDAP_CONN_PROMPT_SECURITY_LDAP=LDAP
+INFO_LDAP_CONN_PROMPT_SECURITY_USE_SSL=LDAP with SSL
+INFO_LDAP_CONN_PROMPT_SECURITY_USE_START_TLS=LDAP with StartTLS
+INFO_LDAP_CONN_PROMPT_SECURITY_USE_TRUST_ALL=Automatically \
+ trust
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUSTSTORE_PATH=Truststore path:
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUSTSTORE_PASSWORD=Password for \
+ truststore '%s':
+INFO_LDAP_CONN_PROMPT_SECURITY_KEYSTORE_NEEDED=Do you want to perform \
+ secure authentication (client side authentication)?
+INFO_LDAP_CONN_PROMPT_SECURITY_KEYSTORE_PATH=Keystore path:
+INFO_LDAP_CONN_PROMPT_SECURITY_KEYSTORE_PASSWORD=Password for keystore \
+ '%s':
+INFO_LDAP_CONN_PROMPT_SECURITY_CERTIFICATE_NAME=Certificate nickname:
+INFO_LDAP_CONN_HEADING_CONNECTION_PARAMETERS=>>>> Specify OpenDS LDAP \
+ connection parameters
+SEVERE_ERR_LDAP_CONN_BAD_HOST_NAME=The hostname "%s" could not be \
+ resolved. Please check you have provided the correct address
+SEVERE_ERR_LDAP_CONN_BAD_PORT_NUMBER=Invalid port number "%s". Please \
+ enter a valid port number between 1 and 65535
+INFO_LDAP_CONN_PROMPT_HOST_NAME=Directory server hostname or IP address \
+ [%s]:
+INFO_LDAP_CONN_PROMPT_PORT_NUMBER=Directory server port number [%d]:
+INFO_LDAP_CONN_PROMPT_BIND_DN=Administrator user bind DN [%s]:
+INFO_LDAP_CONN_PROMPT_SECURITY_USE_SECURE_CTX=How do you want to connect?
+INFO_LDAP_CONN_PROMPT_SECURITY_PROTOCOL_DEFAULT_CHOICE=%d
+SEVERE_ERR_LDAP_CONN_PROMPT_SECURITY_INVALID_FILE_PATH=The provided path \
+ is not valid
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_METHOD=How do you want to trust the server certificate?
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUSTSTORE=Use a truststore
+INFO_LDAP_CONN_PROMPT_SECURITY_MANUAL_CHECK=Manually validate
+INFO_LDAP_CONN_PROMPT_SECURITY_SERVER_CERTIFICATE=Server Certificate:
+INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE=%s
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION=Do you trust this server certificate?
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_NO=No
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_SESSION=Yes, for this session only
+INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_ALWAYS=Yes, also add it to a truststore
+INFO_LDAP_CONN_PROMPT_SECURITY_CERTIFICATE_DETAILS=View certificate details
+INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_USER_DN=User DN : %s
+INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_VALIDITY=Validity : From '%s'%n To '%s'
+INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_ISSUER=Issuer : %s
+INFO_LDAP_CONN_PROMPT_SECURITY_CERTIFICATE_ALIASES=Which certificate do you want to use?
+INFO_LDAP_CONN_PROMPT_SECURITY_CERTIFICATE_ALIAS=%s (%s)
+INFO_SUBCMDPARSER_GLOBAL_HEADING_PREFIX=Global %s
+INFO_PROMPT_SINGLE_DEFAULT=%s [%s]:
+INFO_LDAP_CONN_PROMPT_ADMINISTRATOR_UID=Global Administrator User ID [%s]:
+INFO_LDAP_CONN_GLOBAL_ADMINISTRATOR_OR_BINDDN_PROMPT=Global Administrator \
+ User ID, or bind DN if no Global Administrator is defined [%s]:
+INFO_ARGPARSER_USAGE_JAVA_CLASSNAME=Usage: java %s {options}
+INFO_ARGPARSER_USAGE_JAVA_SCRIPTNAME=Usage: %s {options}
+INFO_ARGPARSER_USAGE_TRAILINGARGS={trailing-arguments}
+MILD_ERR_CONFIRMATION_TRIES_LIMIT_REACHED=Confirmation tries limit reached \
+ (%d)
+SEVERE_ERR_UNEXPECTED=Unexpected error. Details: %s
+MILD_ERR_TRIES_LIMIT_REACHED=Input tries limit reached (%d)
+INFO_ADMIN_CONN_PROMPT_PORT_NUMBER=Directory server administration port number [%d]:
+MILD_ERR_LDIF_INVALID_ATTR_OPTION=Unable to parse LDIF entry %s starting \
+ at line %d because it has an invalid binary option for attribute %s
+SEVERE_ERR_CERTMGR_INVALID_PKCS11_PATH=Invalid key store path for PKCS11 \
+keystore, it must be %s
+SEVERE_ERR_CERTMGR_INVALID_KEYSTORE_PATH=Key store path %s exists but is \
+not a file
+SEVERE_ERR_CERTMGR_INVALID_PARENT=Parent directory for key store path \
+ %s does not exist or is not a directory
+SEVERE_ERR_CERTMGR_INVALID_STORETYPE=Invalid key store type, it must \
+be one of the following: %s, %s, %s or %s
+SEVERE_ERR_CERTMGR_KEYSTORE_NONEXISTANT=Keystore does not exist, \
+it must exist to retrieve an alias, delete an alias or generate a \
+certificate request
+SEVERE_ERR_CERTMGR_VALIDITY=Validity value %d is invalid, it must \
+be a positive integer
+SEVERE_ERR_CERTMGR_ALIAS_ALREADY_EXISTS= A certificate with the alias \
+%s already exists in the key store
+SEVERE_ERR_CERTMGR_ADD_CERT=The following error occured when \
+adding a certificate with alias %s to the keystore: %s
+SEVERE_ERR_CERTMGR_ALIAS_INVALID=The alias %s is cannot be added to the \
+keystore for one of the following reasons: it already exists in the \
+keystore, or, it is not an instance of a trusted certificate class
+SEVERE_ERR_CERTMGR_CERT_REPLIES_INVALID=The alias %s is an instance of \
+a private key entry, which is not supported being added to the keystore \
+at this time
+SEVERE_ERR_CERTMGR_DELETE_ALIAS=The following error occured when \
+deleting a certificate with alias %s from the keystore: %s
+SEVERE_ERR_CERTMGR_CERT_REQUEST=The following error occured when \
+generating a certificate request with alias %s: %s
+SEVERE_ERR_CERTMGR_GEN_SELF_SIGNED_CERT=The following error occured when \
+generating a self-signed certificate using the alias %s: %s
+SEVERE_ERR_CERTMGR_INVALID_CERT_FILE=The certificate file %s is \
+invalid because it does not exists, or exists, but is not a file
+SEVERE_ERR_CERTMGR_ALIAS_CAN_NOT_DELETE=The alias %s cannot be \
+deleted from the keystore because it does not exist
+SEVERE_ERR_CERTMGR_ALIAS_DOES_NOT_EXIST=The alias %s does not exist \
+in the keystore so its key information cannot be retrieved
+SEVERE_ERR_CERTMGR_ALIAS_INVALID_ENTRY_TYPE=The alias %s is not a \
+valid keystore entry type, so its key information cannot be retrieved
+SEVERE_ERR_CERTMGR_GET_KEY=The key information for alias %s \
+cannot be retrieved because of the following reason: %s
+SEVERE_ERR_CERTMGR_PRIVATE_KEY=The private key for alias %s \
+could not be retrieved because it was not a key related entry
+SEVERE_ERR_CERTMGR_ALIAS_NO_CERTIFICATE=The alias %s does not \
+does not have a certificate associated with it
+SEVERE_ERR_CERTMGR_TRUSTED_CERT=The trusted certificate associated \
+with alias %s could not be added to keystore because of the following \
+reason: %s
+SEVERE_ERR_CERTMGR_FILE_NAME_INVALID=The %s is invalid because it is \
+null
+SEVERE_ERR_CERTMGR_VALUE_INVALID=The argument %s is invalid because it \
+is either null, or has zero length
+SEVERE_ERR_CERTMGR_CLASS_NOT_FOUND=A security class cannot be found \
+in this JVM because of the following reason: %s
+SEVERE_ERR_CERTMGR_SECURITY=The security classes could not be \
+initialized because of the following reason: %s
+SEVERE_ERR_CERTMGR_NO_METHOD=A method needed in the security classes \
+could not be located because of the following reason: %s
+SEVERE_ERR_CERTMGR_CERT_SIGN_REQ_NOT_SUPPORTED=Certificate signing \
+request generation is not supported on JVM supplied by this vendor: %s
+INFO_ARGPARSER_USAGE_DEFAULT_VALUE=Default value: %s
+SEVERE_WARN_EXPORT_LDIF_SET_PERMISSION_FAILED=An error occurred while \
+ setting file permissions for the LDIF file %s: %s
+MILD_ERR_INVALID_ESCAPE_CHAR=The value %s cannot be decoded because %c \
+ is not a valid escape character
+SEVERE_WARN_READ_LDIF_RECORD_NO_CHANGE_RECORD_FOUND=The provided LDIF \
+ content did not contain any LDIF change records
+SEVERE_WARN_READ_LDIF_RECORD_MULTIPLE_CHANGE_RECORDS_FOUND=The provided LDIF \
+ content contained multiple LDIF change records, when only one was expected
+SEVERE_WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE=The provided LDIF \
+ content did not contain an "%s" change record
+SEVERE_WARN_READ_LDIF_RECORD_UNEXPECTED_IO_ERROR=An unexpected IO error \
+ occurred while reading the provided LDIF content: %s
+#
+# Extension messages
+#
+SEVERE_ERR_PWPSTATE_EXTOP_UNKNOWN_OP_TYPE=The password policy state \
+ extended request included an operation with an invalid or unsupported \
+ operation type of %s
+SEVERE_ERR_PWPSTATE_EXTOP_NO_REQUEST_VALUE=The provided password policy \
+ state extended request did not include a request value
+SEVERE_ERR_PWPSTATE_EXTOP_DECODE_FAILURE=An unexpected error occurred \
+ while attempting to decode password policy state extended request value: %s
+MILD_ERR_EXTOP_CANCEL_NO_REQUEST_VALUE=Unable to process the cancel \
+ request because the extended operation did not include a request value
+MILD_ERR_EXTOP_CANCEL_CANNOT_DECODE_REQUEST_VALUE=An error occurred while \
+ attempting to decode the value of the cancel extended request: %s
+MILD_ERR_EXTOP_PASSMOD_CANNOT_DECODE_REQUEST=An unexpected error occurred \
+ while attempting to decode the password modify extended request sequence: %s
+MILD_ERR_GET_SYMMETRIC_KEY_ASN1_DECODE_EXCEPTION=Cannot decode the \
+ provided symmetric key extended request: %s
+MILD_ERR_GET_SYMMETRIC_KEY_NO_VALUE=Cannot decode the provided \
+ symmetric key extended operation because it does not have a value
+INFO_SASL_UNSUPPORTED_CALLBACK=An unsupported or unexpected callback was \
+ provided to the SASL server for use during %s authentication: %s
+SEVERE_ERR_SASL_CONTEXT_CREATE_ERROR=An unexpected error occurred while \
+ trying to create an %s context: %s
+SEVERE_ERR_SASL_PROTOCOL_ERROR=SASL %s protocol error: %s
+#
+# Tools messages
+#
+SEVERE_ERR_TOOLS_CANNOT_CREATE_SSL_CONNECTION=Unable to create an SSL \
+ connection to the server: %s
+SEVERE_ERR_TOOLS_SSL_CONNECTION_NOT_INITIALIZED=Unable to create an SSL \
+ connection to the server because the connection factory has not been \
+ initialized
+SEVERE_ERR_TOOLS_CANNOT_LOAD_KEYSTORE_FILE=Cannot load the key store file: \
+ %s
+SEVERE_ERR_TOOLS_CANNOT_INIT_KEYMANAGER=Cannot initialize the key manager \
+ for the key store:%s
+SEVERE_ERR_TOOLS_CANNOT_LOAD_TRUSTSTORE_FILE=Cannot load the key store \
+ file: %s
+SEVERE_ERR_TOOLS_CANNOT_INIT_TRUSTMANAGER=Cannot initialize the key manager \
+ for the key store:%s
+INFO_ENCPW_DESCRIPTION_LISTSCHEMES=List available password storage schemes
+INFO_ENCPW_DESCRIPTION_CLEAR_PW=Clear-text password to encode or to compare \
+ against an encoded password
+INFO_ENCPW_DESCRIPTION_CLEAR_PW_FILE=Clear-text password file
+INFO_ENCPW_DESCRIPTION_ENCODED_PW=Encoded password to compare against the \
+ clear-text password
+INFO_ENCPW_DESCRIPTION_ENCODED_PW_FILE=Encoded password file
+INFO_DESCRIPTION_CONFIG_CLASS=The fully-qualified name of the Java class \
+ to use as the Directory Server configuration handler. If this is not \
+ provided, then a default of org.opends.server.extensions.ConfigFileHandler \
+ will be used
+INFO_DESCRIPTION_CONFIG_FILE=Path to the Directory Server \
+ configuration file
+INFO_ENCPW_DESCRIPTION_SCHEME=Scheme to use for the encoded password
+INFO_DESCRIPTION_USAGE=Displays this usage information
+SEVERE_ERR_CANNOT_INITIALIZE_ARGS=An unexpected error occurred while \
+ attempting to initialize the command-line arguments: %s
+SEVERE_ERR_ERROR_PARSING_ARGS=An error occurred while parsing the \
+ command-line arguments: %s
+SEVERE_ERR_ENCPW_NO_CLEAR_PW=No clear-text password was specified. Use \
+ --%s or --%s to specify the password to encode
+SEVERE_ERR_ENCPW_NO_SCHEME=No password storage scheme was specified. Use \
+ the --%s argument to specify the storage scheme
+SEVERE_ERR_SERVER_BOOTSTRAP_ERROR=An unexpected error occurred while \
+ attempting to bootstrap the Directory Server client-side code: %s
+SEVERE_ERR_CANNOT_LOAD_CONFIG=An error occurred while trying to load the \
+ Directory Server configuration: %s
+SEVERE_ERR_CANNOT_LOAD_SCHEMA=An error occurred while trying to load the \
+ Directory Server schema: %s
+SEVERE_ERR_CANNOT_INITIALIZE_CORE_CONFIG=An error occurred while trying to \
+ initialize the core Directory Server configuration: %s
+SEVERE_ERR_ENCPW_CANNOT_INITIALIZE_STORAGE_SCHEMES=An error occurred while \
+ trying to initialize the Directory Server password storage schemes: %s
+SEVERE_ERR_ENCPW_NO_STORAGE_SCHEMES=No password storage schemes have been \
+ configured for use in the Directory Server
+SEVERE_ERR_ENCPW_NO_SUCH_SCHEME=Password storage scheme "%s" is not \
+ configured for use in the Directory Server
+INFO_ENCPW_PASSWORDS_MATCH=The provided clear-text and encoded passwords \
+ match
+INFO_ENCPW_PASSWORDS_DO_NOT_MATCH=The provided clear-text and encoded \
+ passwords do not match
+SEVERE_ERR_ENCPW_ENCODED_PASSWORD=Encoded Password: "%s"
+SEVERE_ERR_ENCPW_CANNOT_ENCODE=An error occurred while attempting to \
+ encode the clear-text password: %s
+INFO_LDIFEXPORT_DESCRIPTION_LDIF_FILE=Path to the LDIF file to be written
+INFO_LDIFEXPORT_DESCRIPTION_APPEND_TO_LDIF=Append an existing LDIF file \
+ rather than overwriting it
+INFO_LDIFEXPORT_DESCRIPTION_BACKEND_ID=Backend ID for the backend to \
+ export
+INFO_LDIFEXPORT_DESCRIPTION_EXCLUDE_BRANCH=Base DN of a branch to exclude \
+ from the LDIF export
+INFO_LDIFEXPORT_DESCRIPTION_INCLUDE_ATTRIBUTE=Attribute to include in the \
+ LDIF export
+INFO_LDIFEXPORT_DESCRIPTION_EXCLUDE_ATTRIBUTE=Attribute to exclude from \
+ the LDIF export
+INFO_LDIFEXPORT_DESCRIPTION_INCLUDE_FILTER=Filter to identify entries to \
+ include in the LDIF export
+INFO_LDIFEXPORT_DESCRIPTION_EXCLUDE_FILTER=Filter to identify entries to \
+ exclude from the LDIF export
+INFO_LDIFEXPORT_DESCRIPTION_WRAP_COLUMN=Column at which to wrap long lines \
+ (0 for no wrapping)
+INFO_LDIFEXPORT_DESCRIPTION_COMPRESS_LDIF=Compress the LDIF data as it is \
+ exported
+INFO_LDIFEXPORT_DESCRIPTION_ENCRYPT_LDIF=Encrypt the LDIF data as it is \
+ exported
+INFO_LDIFEXPORT_DESCRIPTION_SIGN_HASH=Generate a signed hash of the export \
+ data
+SEVERE_ERR_LDIFEXPORT_CANNOT_PARSE_EXCLUDE_FILTER=Unable to decode exclude \
+ filter string "%s" as a valid search filter: %s
+SEVERE_ERR_LDIFEXPORT_CANNOT_PARSE_INCLUDE_FILTER=Unable to decode include \
+ filter string "%s" as a valid search filter: %s
+SEVERE_ERR_CANNOT_DECODE_BASE_DN=Unable to decode base DN string "%s" as a \
+ valid distinguished name: %s
+SEVERE_ERR_LDIFEXPORT_MULTIPLE_BACKENDS_FOR_ID=Multiple Directory Server \
+ backends are configured with the requested backend ID "%s"
+SEVERE_ERR_LDIFEXPORT_NO_BACKENDS_FOR_ID=None of the Directory Server \
+ backends are configured with the requested backend ID "%s"
+SEVERE_ERR_LDIFEXPORT_CANNOT_DECODE_EXCLUDE_BASE=Unable to decode exclude \
+ branch string "%s" as a valid distinguished name: %s
+SEVERE_ERR_LDIFEXPORT_CANNOT_DECODE_WRAP_COLUMN_AS_INTEGER=Unable to \
+ decode wrap column value "%s" as an integer
+SEVERE_ERR_LDIFEXPORT_ERROR_DURING_EXPORT=An error occurred while \
+ attempting to process the LDIF export: %s
+SEVERE_ERR_CANNOT_DECODE_BACKEND_BASE_DN=Unable to decode the backend \
+ configuration base DN string "%s" as a valid DN: %s
+SEVERE_ERR_CANNOT_RETRIEVE_BACKEND_BASE_ENTRY=Unable to retrieve the \
+ backend configuration base entry "%s" from the server configuration: %s
+SEVERE_ERR_CANNOT_DETERMINE_BACKEND_CLASS=Cannot determine the name of the \
+ Java class providing the logic for the backend defined in configuration entry \
+ %s: %s
+SEVERE_ERR_CANNOT_LOAD_BACKEND_CLASS=Unable to load class %s referenced in \
+ configuration entry %s for use as a Directory Server backend: %s
+SEVERE_ERR_CANNOT_INSTANTIATE_BACKEND_CLASS=Unable to create an instance \
+ of class %s referenced in configuration entry %s as a Directory Server \
+ backend: %s
+SEVERE_ERR_NO_BASES_FOR_BACKEND=No base DNs have been defined in backend \
+ configuration entry %s. This backend will not be evaluated
+SEVERE_ERR_CANNOT_DETERMINE_BASES_FOR_BACKEND=Unable to determine the set \
+ of base DNs defined in backend configuration entry %s: %s
+INFO_LDIFIMPORT_DESCRIPTION_LDIF_FILE=Path to the LDIF file to be imported
+INFO_LDIFIMPORT_DESCRIPTION_APPEND=Append to an existing database rather \
+ than overwriting it
+INFO_LDIFIMPORT_DESCRIPTION_REPLACE_EXISTING=Replace existing entries when \
+ appending to the database
+INFO_LDIFIMPORT_DESCRIPTION_BACKEND_ID=Backend ID for the backend to \
+ import
+INFO_LDIFIMPORT_DESCRIPTION_EXCLUDE_BRANCH=Base DN of a branch to exclude \
+ from the LDIF import
+INFO_LDIFIMPORT_DESCRIPTION_INCLUDE_ATTRIBUTE=Attribute to include in the \
+ LDIF import
+INFO_LDIFIMPORT_DESCRIPTION_EXCLUDE_ATTRIBUTE=Attribute to exclude from \
+ the LDIF import
+INFO_LDIFIMPORT_DESCRIPTION_INCLUDE_FILTER=Filter to identify entries to \
+ include in the LDIF import
+INFO_LDIFIMPORT_DESCRIPTION_EXCLUDE_FILTER=Filter to identify entries to \
+ exclude from the LDIF import
+INFO_LDIFIMPORT_DESCRIPTION_REJECT_FILE=Write rejected entries to the \
+ specified file
+INFO_LDIFIMPORT_DESCRIPTION_OVERWRITE=Overwrite an existing rejects and/or \
+ skip file rather than appending to it
+INFO_LDIFIMPORT_DESCRIPTION_IS_COMPRESSED=LDIF file is compressed
+INFO_LDIFIMPORT_DESCRIPTION_IS_ENCRYPTED=LDIF file is encrypted
+SEVERE_ERR_LDIFIMPORT_CANNOT_PARSE_EXCLUDE_FILTER=Unable to decode exclude \
+ filter string "%s" as a valid search filter: %s
+SEVERE_ERR_LDIFIMPORT_CANNOT_PARSE_INCLUDE_FILTER=Unable to decode include \
+ filter string "%s" as a valid search filter: %s
+SEVERE_ERR_LDIFIMPORT_MULTIPLE_BACKENDS_FOR_ID=Imported branches or \
+ backend IDs can not span across multiple Directory Server backends
+SEVERE_ERR_LDIFIMPORT_NO_BACKENDS_FOR_ID=None of the Directory Server \
+ backends are configured with the requested backend ID or base DNs that \
+ include the specified branches
+SEVERE_ERR_LDIFIMPORT_CANNOT_DECODE_EXCLUDE_BASE=Unable to decode exclude \
+ branch string "%s" as a valid distinguished name: %s
+SEVERE_ERR_LDIFIMPORT_CANNOT_OPEN_REJECTS_FILE=An error occurred while \
+ trying to open the rejects file %s for writing: %s
+SEVERE_ERR_LDIFIMPORT_ERROR_DURING_IMPORT=An error occurred while \
+ attempting to process the LDIF import: %s
+INFO_PROCESSING_OPERATION=Processing %s request for %s
+INFO_OPERATION_FAILED=%s operation failed
+INFO_OPERATION_SUCCESSFUL=%s operation successful for DN %s
+INFO_PROCESSING_COMPARE_OPERATION=Comparing type %s with value %s in \
+ entry %s
+INFO_COMPARE_OPERATION_RESULT_FALSE=Compare operation returned false for \
+ entry %s
+INFO_COMPARE_OPERATION_RESULT_TRUE=Compare operation returned true for \
+ entry %s
+INFO_SEARCH_OPERATION_INVALID_PROTOCOL=Invalid operation type returned in \
+ search result %s
+INFO_DESCRIPTION_TRUSTALL=Trust all server SSL certificates
+INFO_DESCRIPTION_BINDDN=DN to use to bind to the server
+INFO_DESCRIPTION_BINDPASSWORD=Password to use to bind to \
+ the server
+INFO_DESCRIPTION_BINDPASSWORDFILE=Bind password file
+INFO_DESCRIPTION_ENCODING=Use the specified character set for \
+ command-line input
+INFO_DESCRIPTION_VERBOSE=Use verbose mode
+INFO_DESCRIPTION_KEYSTOREPATH=Certificate key store path
+INFO_DESCRIPTION_TRUSTSTOREPATH=Certificate trust store path
+INFO_DESCRIPTION_KEYSTOREPASSWORD=Certificate key store PIN
+INFO_DESCRIPTION_HOST=Directory server hostname or IP address
+INFO_DESCRIPTION_PORT=Directory server port number
+INFO_DESCRIPTION_SHOWUSAGE=Display this usage information
+INFO_DESCRIPTION_CONTROLS=Use a request control with the provided \
+ information
+INFO_DESCRIPTION_CONTINUE_ON_ERROR=Continue processing even if there are \
+ errors
+INFO_DESCRIPTION_USE_SSL=Use SSL for secure communication with the server
+INFO_DESCRIPTION_START_TLS=Use StartTLS to secure communication with the \
+ server
+INFO_DESCRIPTION_USE_SASL_EXTERNAL=Use the SASL EXTERNAL authentication \
+ mechanism
+INFO_DELETE_DESCRIPTION_FILENAME=File containing the DNs of the entries \
+ to delete
+INFO_DELETE_DESCRIPTION_DELETE_SUBTREE=Delete the specified entry and all \
+ entries below it
+INFO_MODIFY_DESCRIPTION_DEFAULT_ADD=Treat records with no changetype as \
+ add operations
+INFO_SEARCH_DESCRIPTION_BASEDN=Search base DN
+INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=Maximum number of entries to return \
+ from the search
+INFO_SEARCH_DESCRIPTION_TIME_LIMIT=Maximum length of time in seconds to \
+ allow for the search
+INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=Search scope ('base', 'one', 'sub', \
+ or 'subordinate')
+INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=Alias dereference policy \
+ ('never', 'always', 'search', or 'find')
+SEVERE_ERR_LDAPAUTH_CANNOT_SEND_SIMPLE_BIND=Cannot send the simple bind \
+ request: %s
+SEVERE_ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE=Cannot read the bind \
+ response from the server. The port you are using may require a secured \
+communication (--useSSL). %s
+SEVERE_ERR_LDAPAUTH_SERVER_DISCONNECT=The Directory Server indicated that \
+ it was closing the connection to the client (result code %d, message "%s"
+SEVERE_ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE=The Directory Server \
+ sent an unexpected extended response message to the client: %s
+SEVERE_ERR_LDAPAUTH_UNEXPECTED_RESPONSE=The Directory Server sent an \
+ unexpected response message to the client: %s
+MILD_ERR_LDAPAUTH_SIMPLE_BIND_FAILED=The simple bind attempt failed
+SEVERE_ERR_LDAPAUTH_NO_SASL_MECHANISM=A SASL bind was requested but no \
+ SASL mechanism was specified
+MILD_ERR_LDAPAUTH_UNSUPPORTED_SASL_MECHANISM=The requested SASL mechanism \
+ "%s" is not supported by this client
+MILD_ERR_LDAPAUTH_TRACE_SINGLE_VALUED=The trace SASL property may only be \
+ given a single value
+MILD_ERR_LDAPAUTH_INVALID_SASL_PROPERTY=Property "%s" is not allowed for \
+ the %s SASL mechanism
+SEVERE_ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND=Cannot send the SASL %S bind \
+ request: %s
+MILD_ERR_LDAPAUTH_SASL_BIND_FAILED=The SASL %s bind attempt failed
+MILD_ERR_LDAPAUTH_NO_SASL_PROPERTIES=No SASL properties were provided for \
+ use with the %s mechanism
+MILD_ERR_LDAPAUTH_AUTHID_SINGLE_VALUED=The "authid" SASL property only \
+ accepts a single value
+MILD_ERR_LDAPAUTH_SASL_AUTHID_REQUIRED=The "authid" SASL property is \
+ required for use with the %s mechanism
+MILD_ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND=Cannot send the initial \
+ bind request in the multi-stage %s bind to the server: %s
+MILD_ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE=Cannot read the \
+ initial %s bind response from the server: %s
+MILD_ERR_LDAPAUTH_UNEXPECTED_INITIAL_BIND_RESPONSE=The client received an \
+ unexpected intermediate bind response. The "SASL bind in progress" result \
+ was expected for the first response in the multi-stage %s bind process, but \
+ the bind response had a result code of %d (%s) and an error message of "%s"
+MILD_ERR_LDAPAUTH_NO_CRAMMD5_SERVER_CREDENTIALS=The initial bind response \
+ from the server did not include any server SASL credentials containing the \
+ challenge information needed to complete the CRAM-MD5 authentication
+MILD_ERR_LDAPAUTH_CANNOT_INITIALIZE_MD5_DIGEST=An unexpected error \
+ occurred while trying to initialize the MD5 digest generator: %s
+MILD_ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND=Cannot send the second \
+ bind request in the multi-stage %s bind to the server: %s
+MILD_ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE=Cannot read the second \
+ %s bind response from the server: %s
+MILD_ERR_LDAPAUTH_NO_ALLOWED_SASL_PROPERTIES=One or more SASL properties \
+ were provided, but the %s mechanism does not take any SASL properties
+MILD_ERR_LDAPAUTH_AUTHZID_SINGLE_VALUED=The "authzid" SASL property only \
+ accepts a single value
+MILD_ERR_LDAPAUTH_REALM_SINGLE_VALUED=The "realm" SASL property only \
+ accepts a single value
+MILD_ERR_LDAPAUTH_QOP_SINGLE_VALUED=The "qop" SASL property only accepts \
+ a single value
+MILD_ERR_LDAPAUTH_DIGESTMD5_QOP_NOT_SUPPORTED=The "%s" QoP mode is not \
+ supported by this client. Only the "auth" mode is currently available for \
+ use
+MILD_ERR_LDAPAUTH_DIGESTMD5_INVALID_QOP=The specified DIGEST-MD5 quality \
+ of protection mode "%s" is not valid. The only QoP mode currently supported \
+ is "auth"
+MILD_ERR_LDAPAUTH_DIGEST_URI_SINGLE_VALUED=The "digest-uri" SASL property \
+ only accepts a single value
+MILD_ERR_LDAPAUTH_NO_DIGESTMD5_SERVER_CREDENTIALS=The initial bind \
+ response from the server did not include any server SASL credentials \
+ containing the challenge information needed to complete the DIGEST-MD5 \
+ authentication
+MILD_ERR_LDAPAUTH_DIGESTMD5_INVALID_TOKEN_IN_CREDENTIALS=The DIGEST-MD5 \
+ credentials provided by the server contained an invalid token of "%s" \
+ starting at position %d
+MILD_ERR_LDAPAUTH_DIGESTMD5_INVALID_CHARSET=The DIGEST-MD5 credentials \
+ provided by the server specified the use of the "%s" character set. The \
+ character set that may be specified in the DIGEST-MD5 credentials is "utf-8"
+MILD_ERR_LDAPAUTH_REQUESTED_QOP_NOT_SUPPORTED_BY_SERVER=The requested QoP \
+ mode of "%s" is not listed as supported by the Directory Server. The \
+ Directory Server's list of supported QoP modes is: "%s"
+MILD_ERR_LDAPAUTH_DIGESTMD5_NO_NONCE=The server SASL credentials provided \
+ in response to the initial DIGEST-MD5 bind request did not include the nonce \
+ to use to generate the authentication digests
+MILD_ERR_LDAPAUTH_DIGESTMD5_CANNOT_CREATE_RESPONSE_DIGEST=An error \
+ occurred while attempting to generate the response digest for the DIGEST-MD5 \
+ bind request: %s
+MILD_ERR_LDAPAUTH_DIGESTMD5_NO_RSPAUTH_CREDS=The DIGEST-MD5 bind response \
+ from the server did not include the "rspauth" element to provide a digest of \
+ the response authentication information
+MILD_ERR_LDAPAUTH_DIGESTMD5_COULD_NOT_DECODE_RSPAUTH=An error occurred \
+ while trying to decode the rspauth element of the DIGEST-MD5 bind response \
+ from the server as a hexadecimal string: %s
+MILD_ERR_LDAPAUTH_DIGESTMD5_COULD_NOT_CALCULATE_RSPAUTH=An error occurred \
+ while trying to calculate the expected rspauth element to compare against the \
+ value included in the DIGEST-MD5 response from the server: %s
+MILD_ERR_LDAPAUTH_DIGESTMD5_RSPAUTH_MISMATCH=The rpsauth element included \
+ in the DIGEST-MD5 bind response from the Directory Server was different from \
+ the expected value calculated by the client
+MILD_ERR_LDAPAUTH_DIGESTMD5_INVALID_CLOSING_QUOTE_POS=The DIGEST-MD5 \
+ response challenge could not be parsed because it had an invalid quotation \
+ mark at position %d
+INFO_LDAPAUTH_PROPERTY_DESCRIPTION_TRACE=Text string that may be written \
+ to the Directory Server error log as trace information for the bind
+INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHID=Authentication ID for the bind
+INFO_LDAPAUTH_PROPERTY_DESCRIPTION_REALM=Realm into which \
+ the authentication is to be performed
+INFO_LDAPAUTH_PROPERTY_DESCRIPTION_QOP=Quality of \
+ protection to use for the bind
+INFO_LDAPAUTH_PROPERTY_DESCRIPTION_DIGEST_URI=Digest URI to \
+ use for the bind
+INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHZID=Authorization ID \
+ to use for the bind
+INFO_DESCRIPTION_SASL_PROPERTIES=SASL bind options
+INFO_LDAPAUTH_PROPERTY_DESCRIPTION_KDC=KDC to use for the \
+ Kerberos authentication
+MILD_ERR_LDAPAUTH_KDC_SINGLE_VALUED=The "kdc" SASL property only accepts \
+ a single value
+MILD_ERR_LDAPAUTH_GSSAPI_INVALID_QOP=The specified GSSAPI quality of \
+ protection mode "%s" is not valid. The only QoP mode currently supported is \
+ "auth"
+SEVERE_ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_JAAS_CONFIG=An error occurred \
+ while trying to create the temporary JAAS configuration for GSSAPI \
+ authentication: %s
+MILD_ERR_LDAPAUTH_GSSAPI_LOCAL_AUTHENTICATION_FAILED=An error occurred \
+ while attempting to perform local authentication to the Kerberos realm: %s
+MILD_ERR_LDAPAUTH_GSSAPI_REMOTE_AUTHENTICATION_FAILED=An error occurred \
+ while attempting to perform GSSAPI authentication to the Directory Server: \
+ %s
+SEVERE_ERR_LDAPAUTH_NONSASL_RUN_INVOCATION=The \
+ LDAPAuthenticationHandler.run() method was called for a non-SASL bind. The \
+ backtrace for this call is %s
+SEVERE_ERR_LDAPAUTH_UNEXPECTED_RUN_INVOCATION=The \
+ LDAPAuthenticationHandler.run() method was called for a SASL bind with an \
+ unexpected mechanism of "%s". The backtrace for this call is %s
+SEVERE_ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_SASL_CLIENT=An error occurred \
+ while attempting to create a SASL client to process the GSSAPI \
+ authentication: %s
+SEVERE_ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_INITIAL_CHALLENGE=An error \
+ occurred while attempting to create the initial challenge for GSSAPI \
+ authentication: %s
+MILD_ERR_LDAPAUTH_GSSAPI_CANNOT_VALIDATE_SERVER_CREDS=An error occurred \
+ while trying to validate the SASL credentials provided by the Directory \
+ Server in the GSSAPI bind response: %s
+MILD_ERR_LDAPAUTH_GSSAPI_UNEXPECTED_SUCCESS_RESPONSE=The Directory Server \
+ unexpectedly returned a success response to the client even though the client \
+ does not believe that the GSSAPI negotiation is complete
+MILD_ERR_LDAPAUTH_GSSAPI_BIND_FAILED=The GSSAPI bind attempt failed
+SEVERE_ERR_LDAPAUTH_NONSASL_CALLBACK_INVOCATION=The \
+ LDAPAuthenticationHandler.handle() method was called for a non-SASL bind. \
+ The backtrace for this call is %s
+SEVERE_ERR_LDAPAUTH_UNEXPECTED_GSSAPI_CALLBACK=The \
+ LDAPAuthenticationHandler.handle() method was called during a GSSAPI bind \
+ attempt with an unexpected callback type of %s
+SEVERE_ERR_LDAPAUTH_UNEXPECTED_CALLBACK_INVOCATION=The \
+ LDAPAuthenticationHandler.handle() method was called for an unexpected SASL \
+ mechanism of %s. The backtrace for this call is %s
+INFO_LDAPAUTH_PASSWORD_PROMPT=Password for user '%s':
+INFO_DESCRIPTION_VERSION=LDAP protocol version number
+MILD_ERR_DESCRIPTION_INVALID_VERSION=Invalid LDAP version number '%s'. \
+ Allowed values are 2 and 3
+SEVERE_ERR_LDAPAUTH_CANNOT_SEND_WHOAMI_REQUEST=Cannot send the 'Who Am \
+ I?' request to the Directory Server: %s
+SEVERE_ERR_LDAPAUTH_CANNOT_READ_WHOAMI_RESPONSE=Cannot read the 'Who Am \
+ I?' response from the Directory Server: %s
+MILD_ERR_LDAPAUTH_WHOAMI_FAILED=The 'Who Am I?' request was rejected by \
+ the Directory Server
+SEVERE_ERR_SEARCH_INVALID_SEARCH_SCOPE=Invalid scope '%s' specified for \
+ the search request
+SEVERE_ERR_SEARCH_NO_FILTERS=No filters specified for the search request
+INFO_VERIFYINDEX_DESCRIPTION_BASE_DN=Base DN of a backend \
+ supporting indexing. Verification is performed on indexes within the scope of \
+ the given base DN
+INFO_VERIFYINDEX_DESCRIPTION_INDEX_NAME=Name of an index to \
+ be verified. For an attribute index this is simply an attribute name. \
+ Multiple indexes may be verified for completeness, or all indexes if no \
+ indexes are specified. An index is complete if each index value references \
+ all entries containing that value
+INFO_VERIFYINDEX_DESCRIPTION_VERIFY_CLEAN=Specifies that a single index \
+ should be verified to ensure it is clean. An index is clean if each index \
+ value references only entries containing that value. Only one index at a \
+ time may be verified in this way
+SEVERE_ERR_VERIFYINDEX_ERROR_DURING_VERIFY=An error occurred while \
+ attempting to perform index verification: %s
+SEVERE_ERR_VERIFYINDEX_VERIFY_CLEAN_REQUIRES_SINGLE_INDEX=Only one index \
+ at a time may be verified for cleanliness
+SEVERE_ERR_BACKEND_NO_INDEXING_SUPPORT=The backend does not support \
+ indexing
+SEVERE_ERR_LDIFEXPORT_CANNOT_EXPORT_BACKEND=The Directory Server backend \
+ with backend ID "%s" does not provide a mechanism for performing LDIF exports
+SEVERE_ERR_LDIFIMPORT_CANNOT_IMPORT=The Directory Server backend with \
+ backend ID %s does not provide a mechanism for performing LDIF imports
+INFO_DESCRIPTION_DONT_WRAP=Do not wrap long lines
+INFO_LDIFIMPORT_DESCRIPTION_INCLUDE_BRANCH=Base DN of a branch to include \
+ in the LDIF import
+SEVERE_ERR_CANNOT_DETERMINE_BACKEND_ID=Cannot determine the backend ID \
+ for the backend defined in configuration entry %s: %s
+SEVERE_ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE=Unable to decode include \
+ branch string "%s" as a valid distinguished name: %s
+SEVERE_ERR_LDIFIMPORT_INVALID_INCLUDE_BASE=Provided include base DN "%s" \
+ is not handled by the backend with backend ID %s
+SEVERE_ERR_MULTIPLE_BACKENDS_FOR_BASE=Multiple Directory Server backends \
+ are configured to support base DN "%s"
+SEVERE_ERR_NO_BACKENDS_FOR_BASE=None of the Directory Server backends are \
+ configured to support the requested base DN "%s"
+INFO_LDIFEXPORT_DESCRIPTION_INCLUDE_BRANCH=Base DN of a branch to include \
+ in the LDIF export
+SEVERE_ERR_LDIFEXPORT_CANNOT_DECODE_INCLUDE_BASE=Unable to decode include \
+ branch string "%s" as a valid distinguished name: %s
+SEVERE_ERR_LDIFEXPORT_INVALID_INCLUDE_BASE=Provided include base DN "%s" \
+ is not handled by the backend with backend ID %s
+INFO_BACKUPDB_DESCRIPTION_BACKEND_ID=Backend ID for the backend to \
+ archive
+INFO_BACKUPDB_DESCRIPTION_BACKUP_ID=Use the provided identifier for the \
+ backup
+INFO_BACKUPDB_DESCRIPTION_BACKUP_DIR=Path to the target directory for the \
+ backup file(s)
+INFO_BACKUPDB_DESCRIPTION_INCREMENTAL=Perform an incremental backup \
+ rather than a full backup
+INFO_BACKUPDB_DESCRIPTION_COMPRESS=Compress the backup contents
+INFO_BACKUPDB_DESCRIPTION_ENCRYPT=Encrypt the backup contents
+INFO_BACKUPDB_DESCRIPTION_HASH=Generate a hash of the backup contents
+INFO_BACKUPDB_DESCRIPTION_SIGN_HASH=Sign the hash of the backup contents
+SEVERE_ERR_BACKUPDB_MULTIPLE_BACKENDS_FOR_ID=Multiple Directory Server \
+ backends are configured with the requested backend ID "%s"
+SEVERE_ERR_BACKUPDB_NO_BACKENDS_FOR_ID=None of the Directory Server \
+ backends are configured with the requested backend ID "%s"
+SEVERE_ERR_BACKUPDB_CONFIG_ENTRY_MISMATCH=The configuration for the \
+ backend with backend ID %s is held in entry "%s", but other backups in the \
+ target backup directory %s were generated from a backend whose configuration \
+ was held in configuration entry "%s"
+SEVERE_ERR_BACKUPDB_INVALID_BACKUP_DIR=An error occurred while attempting \
+ to use the specified path "%s" as the target directory for the backup: %s
+SEVERE_ERR_BACKUPDB_CANNOT_BACKUP=The target backend %s cannot be backed \
+ up using the requested configuration: %s
+SEVERE_ERR_BACKUPDB_ERROR_DURING_BACKUP=An error occurred while \
+ attempting to back up backend %s with the requested configuration: %s
+INFO_BACKUPDB_DESCRIPTION_BACKUP_ALL=Back up all backends in the server
+SEVERE_ERR_BACKUPDB_CANNOT_MIX_BACKUP_ALL_AND_BACKEND_ID=The %s and %s \
+ arguments may not be used together. Exactly one of them must be provided
+SEVERE_ERR_BACKUPDB_NEED_BACKUP_ALL_OR_BACKEND_ID=Neither the %s argument \
+ nor the %s argument was provided. Exactly one of them is required
+SEVERE_ERR_BACKUPDB_CANNOT_CREATE_BACKUP_DIR=An error occurred while \
+ attempting to create the backup directory %s: %s
+SEVERE_WARN_BACKUPDB_BACKUP_NOT_SUPPORTED=Backend ID %s was included in \
+ the set of backends to archive, but this backend does not provide support for \
+ a backup mechanism. It will be skipped
+SEVERE_WARN_BACKUPDB_NO_BACKENDS_TO_ARCHIVE=None of the target backends \
+ provide a backup mechanism. The backup operation has been aborted
+NOTICE_BACKUPDB_STARTING_BACKUP=Starting backup for backend %s
+SEVERE_ERR_BACKUPDB_CANNOT_PARSE_BACKUP_DESCRIPTOR=An error occurred \
+ while attempting to parse the backup descriptor file %s: %s
+NOTICE_BACKUPDB_COMPLETED_WITH_ERRORS=The backup process completed with \
+ one or more errors
+NOTICE_BACKUPDB_COMPLETED_SUCCESSFULLY=The backup process completed \
+ successfully
+SEVERE_ERR_CANNOT_INITIALIZE_CRYPTO_MANAGER=An error occurred while \
+ attempting to initialize the crypto manager: %s
+INFO_BACKUPDB_DESCRIPTION_INCREMENTAL_BASE_ID=Backup ID of the source \
+ archive for an incremental backup
+SEVERE_ERR_BACKUPDB_INCREMENTAL_BASE_REQUIRES_INCREMENTAL=The use of the \
+ %s argument requires that the %s argument is also provided
+INFO_RESTOREDB_DESCRIPTION_BACKEND_ID=Backend ID for the backend to \
+ restore
+INFO_RESTOREDB_DESCRIPTION_BACKUP_ID=Backup ID of the backup to restore
+INFO_RESTOREDB_DESCRIPTION_BACKUP_DIR=Path to the directory containing \
+ the backup file(s)
+INFO_RESTOREDB_DESCRIPTION_LIST_BACKUPS=List available backups in the \
+ backup directory
+INFO_RESTOREDB_DESCRIPTION_VERIFY_ONLY=Verify the contents of the backup \
+ but do not restore it
+SEVERE_ERR_RESTOREDB_CANNOT_READ_BACKUP_DIRECTORY=An error occurred while \
+ attempting to examine the set of backups contained in backup directory %s: \
+ %s
+INFO_RESTOREDB_LIST_BACKUP_ID=Backup ID: %s
+INFO_RESTOREDB_LIST_BACKUP_DATE=Backup Date: %s
+INFO_RESTOREDB_LIST_INCREMENTAL=Is Incremental: %s
+INFO_RESTOREDB_LIST_COMPRESSED=Is Compressed: %s
+INFO_RESTOREDB_LIST_ENCRYPTED=Is Encrypted: %s
+INFO_RESTOREDB_LIST_HASHED=Has Unsigned Hash: %s
+INFO_RESTOREDB_LIST_SIGNED=Has Signed Hash: %s
+INFO_RESTOREDB_LIST_DEPENDENCIES=Dependent Upon: %s
+SEVERE_ERR_RESTOREDB_INVALID_BACKUP_ID=The requested backup ID %s does \
+ not exist in %s
+SEVERE_ERR_RESTOREDB_NO_BACKUPS_IN_DIRECTORY=There are no Directory \
+ Server backups contained in %s
+SEVERE_ERR_RESTOREDB_NO_BACKENDS_FOR_DN=The backups contained in \
+ directory %s were taken from a Directory Server backend defined in \
+ configuration entry %s but no such backend is available
+SEVERE_ERR_RESTOREDB_CANNOT_RESTORE=The Directory Server backend \
+ configured with backend ID %s does not provide a mechanism for restoring \
+ backups
+SEVERE_ERR_RESTOREDB_ERROR_DURING_BACKUP=An unexpected error occurred \
+ while attempting to restore backup %s from %s: %s
+SEVERE_ERR_RESTOREDB_ENCRYPT_OR_SIGN_REQUIRES_ONLINE=Restoring an \
+ encrypted or signed backup requires a connection to an online server
+SEVERE_ERR_BACKUPDB_ENCRYPT_OR_SIGN_REQUIRES_ONLINE=The use of the \
+ %s argument or the %s argument requires a connection to an online server \
+ instance
+SEVERE_ERR_BACKUPDB_SIGN_REQUIRES_HASH=The use of the %s argument \
+ requires that the %s argument is also provided
+INFO_DESCRIPTION_NOOP=Show what would be done but do not perform any \
+ operation
+SEVERE_ERR_BACKUPDB_CANNOT_LOCK_BACKEND=An error occurred while \
+ attempting to acquire a shared lock for backend %s: %s. This generally \
+ means that some other process has exclusive access to this backend (e.g., a \
+ restore or an LDIF import). This backend will not be archived
+SEVERE_WARN_BACKUPDB_CANNOT_UNLOCK_BACKEND=An error occurred while \
+ attempting to release the shared lock for backend %s: %s. This lock should \
+ automatically be cleared when the backup process exits, so no further action \
+ should be required
+SEVERE_ERR_RESTOREDB_CANNOT_LOCK_BACKEND=An error occurred while \
+ attempting to acquire an exclusive lock for backend %s: %s. This generally \
+ means some other process is still using this backend (e.g., it is in use by \
+ the Directory Server or a backup or LDIF export is in progress). The restore \
+ cannot continue
+SEVERE_WARN_RESTOREDB_CANNOT_UNLOCK_BACKEND=An error occurred while \
+ attempting to release the exclusive lock for backend %s: %s. This lock \
+ should automatically be cleared when the restore process exits, so no further \
+ action should be required
+SEVERE_ERR_LDIFIMPORT_CANNOT_LOCK_BACKEND=An error occurred while \
+ attempting to acquire an exclusive lock for backend %s: %s. This generally \
+ means some other process is still using this backend (e.g., it is in use by \
+ the Directory Server or a backup or LDIF export is in progress). The LDIF \
+ import cannot continue
+SEVERE_WARN_LDIFIMPORT_CANNOT_UNLOCK_BACKEND=An error occurred while \
+ attempting to release the exclusive lock for backend %s: %s. This lock \
+ should automatically be cleared when the import process exits, so no further \
+ action should be required
+SEVERE_ERR_LDIFEXPORT_CANNOT_LOCK_BACKEND=An error occurred while \
+ attempting to acquire a shared lock for backend %s: %s. This generally \
+ means that some other process has an exclusive lock on this backend (e.g., an \
+ LDIF import or a restore). The LDIF export cannot continue
+SEVERE_WARN_LDIFEXPORT_CANNOT_UNLOCK_BACKEND=An error occurred while \
+ attempting to release the shared lock for backend %s: %s. This lock should \
+ automatically be cleared when the export process exits, so no further action \
+ should be required
+SEVERE_ERR_VERIFYINDEX_CANNOT_LOCK_BACKEND=An error occurred while \
+ attempting to acquire a shared lock for backend %s: %s. This generally \
+ means that some other process has an exclusive lock on this backend (e.g., an \
+ LDIF import or a restore). The index verification cannot continue
+SEVERE_WARN_VERIFYINDEX_CANNOT_UNLOCK_BACKEND=An error occurred while \
+ attempting to release the shared lock for backend %s: %s. This lock should \
+ automatically be cleared when the verification process exits, so no further \
+ action should be required
+INFO_DESCRIPTION_TYPES_ONLY=Only retrieve attribute names but not their \
+ values
+INFO_LDIFIMPORT_DESCRIPTION_SKIP_SCHEMA_VALIDATION=Skip schema validation \
+ during the LDIF import
+SEVERE_ERR_LDIFEXPORT_CANNOT_INITIALIZE_PLUGINS=An error occurred while \
+ attempting to initialize the LDIF export plugins: %s
+SEVERE_ERR_LDIFIMPORT_CANNOT_INITIALIZE_PLUGINS=An error occurred while \
+ attempting to initialize the LDIF import plugins: %s
+INFO_DESCRIPTION_ASSERTION_FILTER=Use the LDAP assertion control with the \
+ provided filter
+MILD_ERR_LDAP_ASSERTION_INVALID_FILTER=The search filter provided for the \
+ LDAP assertion control was invalid: %s
+INFO_DESCRIPTION_PREREAD_ATTRS=Use the LDAP ReadEntry pre-read control
+INFO_DESCRIPTION_POSTREAD_ATTRS=Use the LDAP ReadEntry post-read control
+MILD_ERR_LDAPMODIFY_PREREAD_NO_VALUE=The pre-read response control did \
+ not include a value
+MILD_ERR_LDAPMODIFY_PREREAD_CANNOT_DECODE_VALUE=An error occurred while \
+ trying to decode the entry contained in the value of the pre-read response \
+ control: %s
+INFO_LDAPMODIFY_PREREAD_ENTRY=Target entry before the operation:
+MILD_ERR_LDAPMODIFY_POSTREAD_NO_VALUE=The post-read response control did \
+ not include a value
+MILD_ERR_LDAPMODIFY_POSTREAD_CANNOT_DECODE_VALUE=An error occurred while \
+ trying to decode the entry contained in the value of the post-read response \
+ control: %s
+INFO_LDAPMODIFY_POSTREAD_ENTRY=Target entry after the operation:
+INFO_DESCRIPTION_PROXY_AUTHZID=Use the proxied authorization control with \
+ the given authorization ID
+INFO_DESCRIPTION_PSEARCH_INFO=Use the persistent search control
+MILD_ERR_PSEARCH_MISSING_DESCRIPTOR=The request to use the persistent \
+ search control did not include a descriptor that indicates the options to use \
+ with that control
+MILD_ERR_PSEARCH_DOESNT_START_WITH_PS=The persistent search descriptor %s \
+ did not start with the required 'ps' string
+MILD_ERR_PSEARCH_INVALID_CHANGE_TYPE=The provided change type value %s is \
+ invalid. The recognized change types are add, delete, modify, modifydn, and \
+ any
+MILD_ERR_PSEARCH_INVALID_CHANGESONLY=The provided changesOnly value %s is \
+ invalid. Allowed values are 1 to only return matching entries that have \
+ changed since the beginning of the search, or 0 to also include existing \
+ entries that match the search criteria
+MILD_ERR_PSEARCH_INVALID_RETURN_ECS=The provided returnECs value %s is \
+ invalid. Allowed values are 1 to request that the entry change notification \
+ control be included in updated entries, or 0 to exclude the control from \
+ matching entries
+INFO_DESCRIPTION_REPORT_AUTHZID=Use the authorization identity control
+INFO_BIND_AUTHZID_RETURNED=# Bound with authorization ID %s
+INFO_SEARCH_DESCRIPTION_FILENAME=File containing a list of search filter \
+ strings
+INFO_DESCRIPTION_MATCHED_VALUES_FILTER=Use the LDAP matched values \
+ control with the provided filter
+MILD_ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=The provided matched values \
+ filter was invalid: %s
+FATAL_ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=An error occurred while \
+ attempting to open the LDIF file %s for reading: %s
+FATAL_ERR_LDIF_FILE_READ_ERROR=An error occurred while attempting to read \
+ the contents of LDIF file %s: %s
+SEVERE_ERR_LDIF_FILE_INVALID_LDIF_ENTRY=Error at or near line %d in LDIF \
+ file %s: %s
+INFO_ENCPW_DESCRIPTION_AUTHPW=Use the authentication password syntax \
+ rather than the user password syntax
+SEVERE_ERR_ENCPW_NO_AUTH_STORAGE_SCHEMES=No authentication password \
+ storage schemes have been configured for use in the Directory Server
+SEVERE_ERR_ENCPW_NO_SUCH_AUTH_SCHEME=Authentication password storage \
+ scheme "%s" is not configured for use in the Directory Server
+SEVERE_ERR_ENCPW_INVALID_ENCODED_AUTHPW=The provided password is not a \
+ valid encoded authentication password value: %s
+SEVERE_ERR_LDIFIMPORT_CANNOT_INITIALIZE_PWPOLICY=An error occurred while \
+ attempting to initialize the password policy components: %s
+INFO_STOPDS_DESCRIPTION_HOST=Directory server hostname or IP address
+INFO_STOPDS_DESCRIPTION_PORT=Directory server administration port number
+INFO_STOPDS_DESCRIPTION_USESSL=Use SSL for secure communication with the \
+ server
+INFO_STOPDS_DESCRIPTION_USESTARTTLS=Use StartTLS for secure communication \
+ with the server
+INFO_STOPDS_DESCRIPTION_BINDDN=DN to use to bind to the server
+INFO_STOPDS_DESCRIPTION_BINDPW=Password to use to bind to the server
+INFO_STOPDS_DESCRIPTION_BINDPWFILE=Bind password file
+INFO_STOPDS_DESCRIPTION_SASLOPTIONS=SASL bind options
+INFO_STOPDS_DESCRIPTION_PROXYAUTHZID=Use the proxied authorization \
+ control with the given authorization ID
+INFO_STOPDS_DESCRIPTION_STOP_REASON=Reason the server is being stopped or \
+ restarted
+INFO_STOPDS_DESCRIPTION_STOP_TIME=Indicates the date/time at which the \
+ shutdown operation will begin as a server task expressed in format \
+ 'YYYYMMDDhhmmss'. A value of '0' will cause the shutdown to be scheduled for \
+ immediate execution. When this option is specified the operation will be \
+ scheduled to start at the specified time after which this utility will exit \
+ immediately
+INFO_STOPDS_DESCRIPTION_TRUST_ALL=Trust all server SSL certificates
+INFO_STOPDS_DESCRIPTION_KSFILE=Certificate key store path
+INFO_STOPDS_DESCRIPTION_KSPW=Certificate key store PIN
+INFO_STOPDS_DESCRIPTION_KSPWFILE=Certificate key store PIN file
+INFO_STOPDS_DESCRIPTION_TSFILE=Certificate trust store path
+INFO_STOPDS_DESCRIPTION_TSPW=Certificate trust store PIN
+INFO_STOPDS_DESCRIPTION_TSPWFILE=Certificate trust store PIN file
+INFO_STOPDS_DESCRIPTION_SHOWUSAGE=Display this usage information
+SEVERE_ERR_STOPDS_MUTUALLY_EXCLUSIVE_ARGUMENTS=ERROR: You may not \
+ provide both the %s and the %s arguments
+SEVERE_ERR_STOPDS_CANNOT_DECODE_STOP_TIME=ERROR: Unable to decode the \
+ provided stop time. It should be in the form YYYYMMDDhhmmssZ for UTC time or \
+ YYYYMMDDhhmmss for local time
+SEVERE_ERR_STOPDS_CANNOT_INITIALIZE_SSL=ERROR: Unable to perform SSL \
+ initialization: %s
+SEVERE_ERR_STOPDS_CANNOT_PARSE_SASL_OPTION=ERROR: The provided SASL \
+ option string "%s" could not be parsed in the form "name=value"
+SEVERE_ERR_STOPDS_NO_SASL_MECHANISM=ERROR: One or more SASL options were \
+ provided, but none of them were the "mech" option to specify which SASL \
+ mechanism should be used
+SEVERE_ERR_STOPDS_CANNOT_DETERMINE_PORT=ERROR: Cannot parse the value of \
+ the %s argument as an integer value between 1 and 65535: %s
+SEVERE_ERR_STOPDS_CANNOT_CONNECT=ERROR: Cannot establish a connection to \
+ the Directory Server %s. Verify that the server is running and that \
+ the provided credentials are valid. Details: %s
+SEVERE_ERR_STOPDS_UNEXPECTED_CONNECTION_CLOSURE=NOTICE: The connection \
+ to the Directory Server was closed while waiting for a response to the \
+ shutdown request. This likely means that the server has started the shutdown \
+ process
+SEVERE_ERR_STOPDS_IO_ERROR=ERROR: An I/O error occurred while attempting \
+ to communicate with the Directory Server: %s
+SEVERE_ERR_STOPDS_DECODE_ERROR=ERROR: An error occurred while trying to \
+ decode the response from the server: %s
+SEVERE_ERR_STOPDS_INVALID_RESPONSE_TYPE=ERROR: Expected an add response \
+ message but got a %s message instead
+INFO_BIND_PASSWORD_EXPIRED=# Your password has expired
+INFO_BIND_PASSWORD_EXPIRING=# Your password will expire in %s
+INFO_BIND_ACCOUNT_LOCKED=# Your account has been locked
+INFO_BIND_MUST_CHANGE_PASSWORD=# You must change your password before any \
+ other operations will be allowed
+INFO_BIND_GRACE_LOGINS_REMAINING=# You have %d grace logins remaining
+INFO_DESCRIPTION_USE_PWP_CONTROL=Use the password policy request control
+INFO_STOPDS_DESCRIPTION_RESTART=Attempt to automatically restart the \
+ server once it has stopped
+INFO_COMPARE_DESCRIPTION_FILENAME=File containing the DNs of the entries \
+ to compare
+INFO_LDIFSEARCH_DESCRIPTION_LDIF_FILE=LDIF file containing \
+ the data to search. Multiple files may be specified by providing the option \
+ multiple times. If no files are provided, the data will be read from \
+ standard input
+INFO_LDIFSEARCH_DESCRIPTION_BASEDN=The base DN for the search. Multiple \
+ base DNs may be specified by providing the option multiple times. If no base \
+ DN is provided, then the root DSE will be used
+INFO_LDIFSEARCH_DESCRIPTION_SCOPE=The scope for the search. It must be \
+ one of 'base', 'one', 'sub', or 'subordinate'. If it is not provided, then \
+ 'sub' will be used
+INFO_LDIFSEARCH_DESCRIPTION_FILTER_FILE=The path to the file containing \
+ the search filter(s) to use. If this is not provided, then the filter must \
+ be provided on the command line after all configuration options
+INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILE=The path to the output file to \
+ which the matching entries should be written. If this is not provided, then \
+ the data will be written to standard output
+INFO_LDIFSEARCH_DESCRIPTION_OVERWRITE_EXISTING=Any existing output \
+ file should be overwritten rather than appending to it
+INFO_LDIFSEARCH_DESCRIPTION_DONT_WRAP=Long lines should \
+ not be wrapped
+INFO_LDIFSEARCH_DESCRIPTION_SIZE_LIMIT=Maximum number of \
+ matching entries to return
+INFO_LDIFSEARCH_DESCRIPTION_TIME_LIMIT=Maximum length of \
+ time (in seconds) to spend processing
+SEVERE_ERR_LDIFSEARCH_NO_FILTER=No search filter was specified. Either a \
+ filter file or an individual search filter must be provided
+SEVERE_ERR_LDIFSEARCH_CANNOT_INITIALIZE_CONFIG=An error occurred while \
+ attempting to process the Directory Server configuration file %s: %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_INITIALIZE_SCHEMA=An error occurred while \
+ attempting to initialize the Directory Server schema based on the information \
+ in configuration file %s: %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_PARSE_FILTER=An error occurred while \
+ attempting to parse search filter '%s': %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_PARSE_BASE_DN=An error occurred while \
+ attempting to parse base DN '%s': %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_PARSE_TIME_LIMIT=An error occurred while \
+ attempting to parse the time limit as an integer: %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_PARSE_SIZE_LIMIT=An error occurred while \
+ attempting to parse the size limit as an integer: %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_CREATE_READER=An error occurred while \
+ attempting to create the LDIF reader: %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_CREATE_WRITER=An error occurred while \
+ attempting to create the LDIF writer used to return matching entries: %s
+MILD_WARN_LDIFSEARCH_TIME_LIMIT_EXCEEDED=The specified time limit has \
+ been exceeded during search processing
+MILD_WARN_LDIFSEARCH_SIZE_LIMIT_EXCEEDED=The specified size limit has \
+ been exceeded during search processing
+SEVERE_ERR_LDIFSEARCH_CANNOT_READ_ENTRY_RECOVERABLE=An error occurred \
+ while attempting to read an entry from the LDIF content: %s. Skipping this \
+ entry and continuing processing
+SEVERE_ERR_LDIFSEARCH_CANNOT_READ_ENTRY_FATAL=An error occurred while \
+ attempting to read an entry from the LDIF content: %s. Unable to continue \
+ processing
+SEVERE_ERR_LDIFSEARCH_ERROR_DURING_PROCESSING=An unexpected error \
+ occurred during search processing: %s
+SEVERE_ERR_LDIFSEARCH_CANNOT_INITIALIZE_JMX=An error occurred while \
+ attempting to initialize the Directory Server JMX subsystem based on the \
+ information in configuration file %s: %s
+INFO_LDIFDIFF_DESCRIPTION_SOURCE_LDIF=LDIF file to use as \
+ the source data
+INFO_LDIFDIFF_DESCRIPTION_TARGET_LDIF=LDIF file to use as \
+ the target data
+INFO_LDIFDIFF_DESCRIPTION_OUTPUT_LDIF=File to which the \
+ output should be written
+INFO_LDIFDIFF_DESCRIPTION_OVERWRITE_EXISTING=Any existing \
+ output file should be overwritten rather than appending to it
+SEVERE_ERR_LDIFDIFF_CANNOT_INITIALIZE_JMX=An error occurred while \
+ attempting to initialize the Directory Server JMX subsystem based on the \
+ information in configuration file %s: %s
+SEVERE_ERR_LDIFDIFF_CANNOT_INITIALIZE_CONFIG=An error occurred while \
+ attempting to process the Directory Server configuration file %s: %s
+SEVERE_ERR_LDIFDIFF_CANNOT_INITIALIZE_SCHEMA=An error occurred while \
+ attempting to initialize the Directory Server schema based on the information \
+ in configuration file %s: %s
+SEVERE_ERR_LDIFDIFF_CANNOT_OPEN_SOURCE_LDIF=An error occurred while \
+ attempting to open source LDIF %s: %s
+SEVERE_ERR_LDIFDIFF_ERROR_READING_SOURCE_LDIF=An error occurred while \
+ reading the contents of source LDIF %s: %s
+SEVERE_ERR_LDIFDIFF_CANNOT_OPEN_TARGET_LDIF=An error occurred while \
+ attempting to open target LDIF %s: %s
+SEVERE_ERR_LDIFDIFF_ERROR_READING_TARGET_LDIF=An error occurred while \
+ reading the contents of target LDIF %s: %s
+SEVERE_ERR_LDIFDIFF_CANNOT_OPEN_OUTPUT=An error occurred while attempting \
+ to open the LDIF writer for the diff output: %s
+INFO_LDIFDIFF_NO_DIFFERENCES=No differences were detected between the \
+ source and target LDIF files
+SEVERE_ERR_LDIFDIFF_ERROR_WRITING_OUTPUT=An error occurred while \
+ attempting to write the diff output: %s
+INFO_CONFIGDS_DESCRIPTION_LDAP_PORT=Port on which the \
+ Directory Server should listen for LDAP communication
+INFO_CONFIGDS_DESCRIPTION_BASE_DN=Base DN for user \
+ information in the Directory Server. Multiple base DNs may be provided by \
+ using this option multiple times
+INFO_CONFIGDS_DESCRIPTION_ROOT_DN=DN for the initial root \
+ user for the Directory Server
+INFO_CONFIGDS_DESCRIPTION_ROOT_PW=Password for the initial \
+ root user for the Directory Server
+INFO_CONFIGDS_DESCRIPTION_ROOT_PW_FILE=Path to a file \
+ containing the password for the initial root user for the Directory Server
+SEVERE_ERR_CONFIGDS_CANNOT_ACQUIRE_SERVER_LOCK=An error occurred while \
+ attempting to acquire the server-wide lock file %s: %s. This generally \
+ means that the Directory Server is running, or another tool that requires \
+ exclusive access to the server is in use
+SEVERE_ERR_CONFIGDS_CANNOT_INITIALIZE_JMX=An error occurred while \
+ attempting to initialize the Directory Server JMX subsystem based on the \
+ information in configuration file %s: %s
+SEVERE_ERR_CONFIGDS_CANNOT_INITIALIZE_CONFIG=An error occurred while \
+ attempting to process the Directory Server configuration file %s: %s
+SEVERE_ERR_CONFIGDS_CANNOT_INITIALIZE_SCHEMA=An error occurred while \
+ attempting to initialize the Directory Server schema based on the information \
+ in configuration file %s: %s
+SEVERE_ERR_CONFIGDS_CANNOT_PARSE_BASE_DN=An error occurred while \
+ attempting to parse base DN value "%s" as a DN: %s
+SEVERE_ERR_CONFIGDS_CANNOT_PARSE_ROOT_DN=An error occurred while \
+ attempting to parse root DN value "%s" as a DN: %s
+SEVERE_ERR_CONFIGDS_NO_ROOT_PW=The DN for the initial root user was \
+ provided, but no corresponding password was given. If the root DN is \
+ specified then the password must also be provided
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_BASE_DN=An error occurred while \
+ attempting to update the base DN(s) for user data in the Directory Server: \
+ %s
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_LDAP_PORT=An error occurred while \
+ attempting to update the port on which to listen for LDAP communication: %s
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_ROOT_USER=An error occurred while \
+ attempting to update the entry for the initial Directory Server root user: \
+ %s
+SEVERE_ERR_CONFIGDS_CANNOT_WRITE_UPDATED_CONFIG=An error occurred while \
+ writing the updated Directory Server configuration: %s
+SEVERE_ERR_CONFIGDS_NO_CONFIG_CHANGES=ERROR: No configuration changes \
+ were specified
+INFO_CONFIGDS_WROTE_UPDATED_CONFIG=Successfully wrote the updated \
+ Directory Server configuration
+INFO_INSTALLDS_DESCRIPTION_TESTONLY=Just verify that the JVM can be \
+ started properly
+INFO_INSTALLDS_DESCRIPTION_PROGNAME=The setup command used to invoke this \
+ program
+INFO_INSTALLDS_DESCRIPTION_SILENT=Run setup in quiet mode. Quiet mode \
+ will not output progress information to standard output
+INFO_INSTALLDS_DESCRIPTION_BASEDN=Base DN for user \
+ information in the Directory Server. Multiple base DNs may be provided by \
+ using this option multiple times
+INFO_INSTALLDS_DESCRIPTION_ADDBASE=Indicates whether to create the base \
+ entry in the Directory Server database
+INFO_INSTALLDS_DESCRIPTION_IMPORTLDIF=Path to an LDIF file \
+ containing data that should be added to the Directory Server database. \
+ Multiple LDIF files may be provided by using this option multiple times
+INFO_INSTALLDS_DESCRIPTION_LDAPPORT=Port on which the \
+ Directory Server should listen for LDAP communication
+INFO_INSTALLDS_DESCRIPTION_SKIPPORT=Skip the check to determine whether \
+ the specified ports are usable
+INFO_INSTALLDS_DESCRIPTION_ROOTDN=DN for the initial root \
+ user for the Directory Server
+INFO_INSTALLDS_DESCRIPTION_ROOTPW=Password for the initial \
+ root user for the Directory Server
+INFO_INSTALLDS_DESCRIPTION_ROOTPWFILE=Path to a file \
+ containing the password for the initial root user for the Directory Server
+INFO_INSTALLDS_DESCRIPTION_HELP=Display this usage information
+SEVERE_ERR_INSTALLDS_NO_CONFIG_FILE=ERROR: No configuration file path \
+ was provided (use the %s argument)
+SEVERE_ERR_INSTALLDS_CANNOT_INITIALIZE_JMX=An error occurred while \
+ attempting to initialize the Directory Server JMX subsystem based on the \
+ information in configuration file %s: %s
+SEVERE_ERR_INSTALLDS_CANNOT_INITIALIZE_CONFIG=An error occurred while \
+ attempting to process the Directory Server configuration file %s: %s
+SEVERE_ERR_INSTALLDS_CANNOT_INITIALIZE_SCHEMA=An error occurred while \
+ attempting to initialize the Directory Server schema based on the information \
+ in configuration file %s: %s
+SEVERE_ERR_INSTALLDS_CANNOT_PARSE_DN=An error occurred while attempting \
+ to parse the string "%s" as a valid DN: %s
+INFO_INSTALLDS_PROMPT_BASEDN=What do you wish to use as the base DN for \
+ the directory data?
+INFO_INSTALLDS_PROMPT_IMPORT=Do you wish to populate the directory \
+ database with information from an existing LDIF file?
+INFO_INSTALLDS_PROMPT_IMPORT_FILE=Please specify the path to the LDIF \
+ file containing the data to import:
+SEVERE_ERR_INSTALLDS_TWO_CONFLICTING_ARGUMENTS=ERROR: You may not \
+ provide both the %s and the %s arguments at the same time
+INFO_INSTALLDS_PROMPT_ADDBASE=Would you like to have the base %s entry \
+ automatically created in the directory database?
+INFO_INSTALLDS_PROMPT_LDAPPORT=On which port would you like the Directory \
+ Server to accept connections from LDAP clients?
+SEVERE_ERR_INSTALLDS_CANNOT_BIND_TO_PRIVILEGED_PORT=ERROR: Unable to \
+ bind to port %d. This port may already be in use, or you may not have \
+ permission to bind to it. On UNIX-based operating systems, non-root users \
+ may not be allowed to bind to ports 1 through 1024
+SEVERE_ERR_INSTALLDS_CANNOT_BIND_TO_PORT=ERROR: Unable to bind to port \
+ %d. This port may already be in use, or you may not have permission to bind \
+ to it
+INFO_INSTALLDS_PROMPT_ROOT_DN=What would you like to use as the initial \
+ root user DN for the Directory Server?
+SEVERE_ERR_INSTALLDS_NO_ROOT_PASSWORD=ERROR: No password was provided \
+ for the initial root user. When performing a non-interactive installation, \
+ this must be provided using either the %s or the %s argument
+INFO_INSTALLDS_PROMPT_ROOT_PASSWORD=Please provide the password to use \
+ for the initial root user:
+INFO_INSTALLDS_PROMPT_CONFIRM_ROOT_PASSWORD=Please re-enter the password \
+ for confirmation:
+INFO_INSTALLDS_STATUS_CONFIGURING_DS=Applying the requested configuration \
+ to the Directory Server...
+INFO_INSTALLDS_STATUS_CREATING_BASE_LDIF=Creating a temporary LDIF file \
+ with the initial base entry contents...
+SEVERE_ERR_INSTALLDS_CANNOT_CREATE_BASE_ENTRY_LDIF=An error occurred \
+ while attempting to create the base LDIF file: %s
+INFO_INSTALLDS_STATUS_IMPORTING_LDIF=Importing the LDIF data into the \
+ Directory Server database...
+INFO_INSTALLDS_STATUS_SUCCESS=The server setup process has completed \
+ successfully
+INFO_INSTALLDS_PROMPT_VALUE_YES=yes
+INFO_INSTALLDS_PROMPT_VALUE_NO=no
+MILD_ERR_INSTALLDS_INVALID_YESNO_RESPONSE=ERROR: The provided value \
+ could not be interpreted as a yes or no response. Please enter a response of \
+ either "yes" or "no"
+MILD_ERR_INSTALLDS_INVALID_INTEGER_RESPONSE=ERROR: The provided response \
+ could not be interpreted as an integer. Please provide the response as an \
+ integer value
+MILD_ERR_INSTALLDS_INTEGER_BELOW_LOWER_BOUND=ERROR: The provided value \
+ is less than the lowest allowed value of %d
+MILD_ERR_INSTALLDS_INTEGER_ABOVE_UPPER_BOUND=ERROR: The provided value \
+ is greater than the largest allowed value of %d
+MILD_ERR_INSTALLDS_INVALID_DN_RESPONSE=ERROR: The provided response \
+ could not be interpreted as an LDAP DN
+MILD_ERR_INSTALLDS_INVALID_STRING_RESPONSE=ERROR: The response value may \
+ not be an empty string
+MILD_ERR_INSTALLDS_INVALID_PASSWORD_RESPONSE=ERROR: The password value \
+ may not be an empty string
+MILD_ERR_INSTALLDS_PASSWORDS_DONT_MATCH=ERROR: The provided password \
+ values do not match
+MILD_ERR_INSTALLDS_ERROR_READING_FROM_STDIN=ERROR: Unexpected failure \
+ while reading from standard input: %s
+INFO_LDIFIMPORT_DESCRIPTION_QUIET=Use quiet mode (no output)
+INFO_INSTALLDS_IMPORT_SUCCESSFUL=Import complete
+INFO_INSTALLDS_INITIALIZING=Please wait while the setup program \
+ initializes...
+MILD_ERR_MAKELDIF_TAG_INVALID_ARGUMENT_COUNT=Invalid number of arguments \
+ provided for tag %s on line number %d of the template file: expected %d, got \
+ %d
+MILD_ERR_MAKELDIF_TAG_INVALID_ARGUMENT_RANGE_COUNT=Invalid number of \
+ arguments provided for tag %s on line number %d of the template file: \
+ expected between %d and %d, got %d
+MILD_ERR_MAKELDIF_TAG_UNDEFINED_ATTRIBUTE=Undefined attribute %s \
+ referenced on line %d of the template file
+MILD_ERR_MAKELDIF_TAG_INTEGER_BELOW_LOWER_BOUND=Value %d is below the \
+ lowest allowed value of %d for tag %s on line %d of the template file
+MILD_ERR_MAKELDIF_TAG_CANNOT_PARSE_AS_INTEGER=Cannot parse value "%s" as \
+ an integer for tag %s on line %d of the template file
+MILD_ERR_MAKELDIF_TAG_INTEGER_ABOVE_UPPER_BOUND=Value %d is above the \
+ largest allowed value of %d for tag %s on line %d of the template file
+MILD_ERR_MAKELDIF_TAG_INVALID_EMPTY_STRING_ARGUMENT=Argument %d for tag \
+ %s on line number %d may not be an empty string
+MILD_ERR_MAKELDIF_TAG_CANNOT_PARSE_AS_BOOLEAN=Cannot parse value "%s" as \
+ a Boolean value for tag %s on line %d of the template file. The value must \
+ be either 'true' or 'false'
+MILD_ERR_MAKELDIF_UNDEFINED_BRANCH_SUBORDINATE=The branch with entry DN \
+ '%s' references a subordinate template named '%s' which is not defined in the \
+ template file
+MILD_ERR_MAKELDIF_CANNOT_LOAD_TAG_CLASS=Unable to load class %s for use \
+ as a MakeLDIF tag
+MILD_ERR_MAKELDIF_CANNOT_INSTANTIATE_TAG=Cannot instantiate class %s as a \
+ MakeLDIF tag
+MILD_ERR_MAKELDIF_CONFLICTING_TAG_NAME=Cannot register the tag defined in \
+ class %s because the tag name %s conflicts with the name of another tag that \
+ has already been registered
+MILD_WARN_MAKELDIF_WARNING_UNDEFINED_CONSTANT=Possible reference to an \
+ undefined constant %s on line %d
+MILD_ERR_MAKELDIF_DEFINE_MISSING_EQUALS=The constant definition on line \
+ %d is missing an equal sign to delimit the constant name from the value
+MILD_ERR_MAKELDIF_DEFINE_NAME_EMPTY=The constant definition on line %d \
+ does not include a name for the constant
+MILD_ERR_MAKELDIF_CONFLICTING_CONSTANT_NAME=The definition for constant \
+ %s on line %d conflicts with an earlier constant definition included in the \
+ template
+MILD_ERR_MAKELDIF_WARNING_DEFINE_VALUE_EMPTY=Constant %s defined on line \
+ %d has not been assigned a value
+MILD_ERR_MAKELDIF_CONFLICTING_BRANCH_DN=The branch definition %s starting \
+ on line %d conflicts with an earlier branch definition contained in the \
+ template file
+MILD_ERR_MAKELDIF_CONFLICTING_TEMPLATE_NAME=The template definition %s \
+ starting on line %d conflicts with an earlier template definition contained \
+ in the template file
+MILD_ERR_MAKELDIF_UNEXPECTED_TEMPLATE_FILE_LINE=Unexpected template line \
+ "%s" encountered on line %d of the template file
+MILD_ERR_MAKELDIF_UNDEFINED_TEMPLATE_SUBORDINATE=The template named %s \
+ references a subordinate template named %s which is not defined in the \
+ template file
+MILD_ERR_MAKELDIF_CANNOT_DECODE_BRANCH_DN=Unable to decode branch DN "%s" \
+ on line %d of the template file
+MILD_ERR_MAKELDIF_BRANCH_SUBORDINATE_TEMPLATE_NO_COLON=Subordinate \
+ template definition on line %d for branch %s is missing a colon to separate \
+ the template name from the number of entries
+MILD_ERR_MAKELDIF_BRANCH_SUBORDINATE_INVALID_NUM_ENTRIES=Subordinate \
+ template definition on line %d for branch %s specified invalid number of \
+ entries %d for template %s
+MILD_WARN_MAKELDIF_BRANCH_SUBORDINATE_ZERO_ENTRIES=Subordinate template \
+ definition on line %d for branch %s specifies that zero entries of type %s \
+ should be generated
+MILD_ERR_MAKELDIF_BRANCH_SUBORDINATE_CANT_PARSE_NUMENTRIES=Unable to \
+ parse the number of entries for template %s as an integer for the subordinate \
+ template definition on line %d for branch %s
+MILD_ERR_MAKELDIF_TEMPLATE_SUBORDINATE_TEMPLATE_NO_COLON=Subordinate \
+ template definition on line %d for template %s is missing a colon to separate \
+ the template name from the number of entries
+MILD_ERR_MAKELDIF_TEMPLATE_SUBORDINATE_INVALID_NUM_ENTRIES=Subordinate \
+ template definition on line %d for template %s specified invalid number of \
+ entries %d for subordinate template %s
+MILD_WARN_MAKELDIF_TEMPLATE_SUBORDINATE_ZERO_ENTRIES=Subordinate template \
+ definition on line %d for template %s specifies that zero entries of type %s \
+ should be generated
+MILD_ERR_MAKELDIF_TEMPLATE_SUBORDINATE_CANT_PARSE_NUMENTRIES=Unable to \
+ parse the number of entries for template %s as an integer for the subordinate \
+ template definition on line %d for template %s
+MILD_ERR_MAKELDIF_TEMPLATE_MISSING_RDN_ATTR=The template named %s \
+ includes RDN attribute %s that is not assigned a value in that template
+MILD_ERR_MAKELDIF_NO_COLON_IN_BRANCH_EXTRA_LINE=There is no colon to \
+ separate the attribute name from the value pattern on line %d of the template \
+ file in the definition for branch %s
+MILD_ERR_MAKELDIF_NO_ATTR_IN_BRANCH_EXTRA_LINE=There is no attribute name \
+ before the colon on line %d of the template file in the definition for branch \
+ %s
+MILD_WARN_MAKELDIF_NO_VALUE_IN_BRANCH_EXTRA_LINE=The value pattern for \
+ line %d of the template file in the definition for branch %s is empty
+MILD_ERR_MAKELDIF_NO_COLON_IN_TEMPLATE_LINE=There is no colon to separate \
+ the attribute name from the value pattern on line %d of the template file in \
+ the definition for template %s
+MILD_ERR_MAKELDIF_NO_ATTR_IN_TEMPLATE_LINE=There is no attribute name \
+ before the colon on line %d of the template file in the definition for \
+ template %s
+MILD_WARN_MAKELDIF_NO_VALUE_IN_TEMPLATE_LINE=The value pattern for line \
+ %d of the template file in the definition for template %s is empty
+MILD_ERR_MAKELDIF_NO_SUCH_TAG=An undefined tag %s is referenced on line \
+ %d of the template file
+MILD_ERR_MAKELDIF_CANNOT_INSTANTIATE_NEW_TAG=An unexpected error occurred \
+ while trying to create a new instance of tag %s referenced on line %d of the \
+ template file: %s
+INFO_MAKELDIF_DESCRIPTION_TEMPLATE=The path to the template file with \
+ information about the LDIF data to generate
+INFO_MAKELDIF_DESCRIPTION_LDIF=The path to the LDIF file to be written
+INFO_MAKELDIF_DESCRIPTION_SEED=The seed to use to initialize the random \
+ number generator
+INFO_MAKELDIF_DESCRIPTION_HELP=Show this usage information
+SEVERE_ERR_MAKELDIF_CANNOT_INITIALIZE_JMX=An error occurred while \
+ attempting to initialize the Directory Server JMX subsystem based on the \
+ information in configuration file %s: %s
+SEVERE_ERR_MAKELDIF_CANNOT_INITIALIZE_CONFIG=An error occurred while \
+ attempting to process the Directory Server configuration file %s: %s
+SEVERE_ERR_MAKELDIF_CANNOT_INITIALIZE_SCHEMA=An error occurred while \
+ attempting to initialize the Directory Server schema based on the information \
+ in configuration file %s: %s
+SEVERE_ERR_MAKELDIF_IOEXCEPTION_DURING_PARSE=An error occurred while \
+ attempting to read the template file: %s
+SEVERE_ERR_MAKELDIF_EXCEPTION_DURING_PARSE=An error occurred while \
+ attempting to parse the template file: %s
+MILD_ERR_MAKELDIF_TAG_INVALID_FORMAT_STRING=Cannot parse value "%s" as an \
+ valid format string for tag %s on line %d of the template file
+MILD_ERR_MAKELDIF_TAG_NO_RANDOM_TYPE_ARGUMENT=The random tag on line %d \
+ of the template file does not include an argument to specify the type of \
+ random value that should be generated
+MILD_WARN_MAKELDIF_TAG_WARNING_EMPTY_VALUE=The value generated from the \
+ random tag on line %d of the template file will always be an empty string
+MILD_ERR_MAKELDIF_TAG_UNKNOWN_RANDOM_TYPE=The random tag on line %d of \
+ the template file references an unknown random type of %s
+INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=Path to look for \
+ MakeLDIF resources (e.g., data files) not found in the current working \
+ directory or template directory path
+MILD_ERR_MAKELDIF_COULD_NOT_FIND_TEMPLATE_FILE=Could not find template \
+ file %s
+MILD_ERR_MAKELDIF_NO_SUCH_RESOURCE_DIRECTORY=The specified resource \
+ directory %s could not be found
+MILD_ERR_MAKELDIF_RESOURCE_DIRECTORY_NOT_DIRECTORY=The specified resource \
+ directory %s exists but is not a directory
+MILD_ERR_MAKELDIF_TAG_CANNOT_FIND_FILE=Cannot find file %s referenced by \
+ tag %s on line %d of the template file
+MILD_ERR_MAKELDIF_TAG_INVALID_FILE_ACCESS_MODE=Invalid file access mode \
+ %s for tag %s on line %d of the template file. It must be either \
+ "sequential" or "random"
+MILD_ERR_MAKELDIF_TAG_CANNOT_READ_FILE=An error occurred while trying to \
+ read file %s referenced by tag %s on line %d of the template file: %s
+MILD_ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=An error occurred while \
+ attempting to open LDIF file %s for writing: %s
+MILD_ERR_MAKELDIF_ERROR_WRITING_LDIF=An error occurred while writing data \
+ to LDIF file %s: %s
+INFO_MAKELDIF_PROCESSED_N_ENTRIES=Processed %d entries
+MILD_ERR_MAKELDIF_CANNOT_WRITE_ENTRY=An error occurred while attempting \
+ to write entry %s to LDIF: %s
+INFO_MAKELDIF_PROCESSING_COMPLETE=LDIF processing complete. %d entries \
+ written
+INFO_LDIFIMPORT_DESCRIPTION_TEMPLATE_FILE=Path to a MakeLDIF template to \
+ use to generate the import data
+SEVERE_ERR_LDIFIMPORT_CONFLICTING_OPTIONS=The %s and %s arguments are \
+ incompatible and may not be used together
+SEVERE_ERR_LDIFIMPORT_MISSING_REQUIRED_ARGUMENT=Neither the %s or the %s \
+ argument was provided. One of these arguments must be given to specify the \
+ source for the LDIF data to be imported
+SEVERE_ERR_LDIFIMPORT_CANNOT_PARSE_TEMPLATE_FILE=Unable to parse the \
+ specified file %s as a MakeLDIF template file: %s
+MILD_ERR_MAKELDIF_INCOMPLETE_TAG=Line %d of the template file contains an \
+ incomplete tag that starts with either '<' or '{' but does get closed
+MILD_ERR_MAKELDIF_TAG_NOT_ALLOWED_IN_BRANCH=Tag %s referenced on line %d \
+ of the template file is not allowed for use in branch definitions
+INFO_LDIFIMPORT_DESCRIPTION_RANDOM_SEED=Seed for the MakeLDIF random \
+ number generator
+MILD_ERR_LDIFMODIFY_CANNOT_ADD_ENTRY_TWICE=Entry %s is added twice in the \
+ set of changes to apply, which is not supported by the LDIF modify tool
+MILD_ERR_LDIFMODIFY_CANNOT_DELETE_AFTER_ADD=Entry %s cannot be deleted \
+ because it was previously added in the set of changes. This is not supported \
+ by the LDIF modify tool
+MILD_ERR_LDIFMODIFY_CANNOT_MODIFY_ADDED_OR_DELETED=Cannot modify entry %s \
+ because it was previously added or deleted in the set of changes. This is \
+ not supported by the LDIF modify tool
+MILD_ERR_LDIFMODIFY_MODDN_NOT_SUPPORTED=The modify DN operation targeted \
+ at entry %s cannot be processed because modify DN operations are not \
+ supported by the LDIF modify tool
+MILD_ERR_LDIFMODIFY_UNKNOWN_CHANGETYPE=Entry %s has an unknown changetype \
+ of %s
+MILD_ERR_LDIFMODIFY_ADD_ALREADY_EXISTS=Unable to add entry %s because it \
+ already exists in the data set
+MILD_ERR_LDIFMODIFY_DELETE_NO_SUCH_ENTRY=Unable to delete entry %s \
+ because it does not exist in the data set
+MILD_ERR_LDIFMODIFY_MODIFY_NO_SUCH_ENTRY=Unable to modify entry %s \
+ because it does not exist in the data set
+INFO_LDIFMODIFY_DESCRIPTION_SOURCE=LDIF file containing the \
+ data to be updated
+INFO_LDIFMODIFY_DESCRIPTION_CHANGES=LDIF file containing \
+ the changes to apply
+INFO_LDIFMODIFY_DESCRIPTION_TARGET=File to which the \
+ updated data should be written
+INFO_LDIFMODIFY_DESCRIPTION_HELP=Displays this usage information
+SEVERE_ERR_LDIFMODIFY_CANNOT_INITIALIZE_JMX=An error occurred while \
+ attempting to initialize the Directory Server JMX subsystem based on the \
+ information in configuration file %s: %s
+SEVERE_ERR_LDIFMODIFY_CANNOT_INITIALIZE_CONFIG=An error occurred while \
+ attempting to process the Directory Server configuration file %s: %s
+SEVERE_ERR_LDIFMODIFY_CANNOT_INITIALIZE_SCHEMA=An error occurred while \
+ attempting to initialize the Directory Server schema based on the information \
+ in configuration file %s: %s
+SEVERE_ERR_LDIFMODIFY_SOURCE_DOES_NOT_EXIST=The source LDIF file %s does \
+ not exist
+SEVERE_ERR_LDIFMODIFY_CANNOT_OPEN_SOURCE=Unable to open the source LDIF \
+ file %s: %s
+SEVERE_ERR_LDIFMODIFY_CHANGES_DOES_NOT_EXIST=The changes LDIF file %s \
+ does not exist
+SEVERE_ERR_LDIFMODIFY_CANNOT_OPEN_CHANGES=Unable to open the changes LDIF \
+ file %s: %s
+SEVERE_ERR_LDIFMODIFY_CANNOT_OPEN_TARGET=Unable to open the target LDIF \
+ file %s for writing: %s
+SEVERE_ERR_LDIFMODIFY_ERROR_PROCESSING_LDIF=An error occurred while \
+ processing the requested changes: %s
+INFO_LDAPPWMOD_DESCRIPTION_HOST=Address of the Directory \
+ Server system
+INFO_LDAPPWMOD_DESCRIPTION_PORT=Port on which the Directory \
+ Server listens for LDAP client connections
+INFO_LDAPPWMOD_DESCRIPTION_BIND_DN=DN to use to bind to the server
+INFO_LDAPPWMOD_DESCRIPTION_BIND_PW=Password to use to bind to the server
+INFO_LDAPPWMOD_DESCRIPTION_BIND_PW_FILE=Path to a file \
+ containing the password to use to bind to the server
+INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=Authorization ID for the \
+ user entry whose password should be changed
+INFO_LDAPPWMOD_DESCRIPTION_PROVIDE_DN_FOR_AUTHZID=Use the bind \
+ DN as the authorization ID for the password modify operation
+INFO_LDAPPWMOD_DESCRIPTION_NEWPW=New password to provide \
+ for the target user
+INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=Path to a file \
+ containing the new password to provide for the target user
+INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=Current password for \
+ the target user
+INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=Path to a file \
+ containing the current password for the target user
+INFO_LDAPPWMOD_DESCRIPTION_USE_SSL=Use SSL to secure the communication \
+ with the Directory Server
+INFO_LDAPPWMOD_DESCRIPTION_USE_STARTTLS=Use StartTLS to secure the \
+ communication with the Directory Server
+INFO_LDAPPWMOD_DESCRIPTION_BLIND_TRUST=Blindly trust any SSL certificate \
+ presented by the server
+INFO_LDAPPWMOD_DESCRIPTION_KEYSTORE=Path to the key store to use when \
+ establishing SSL/TLS communication with the server
+INFO_LDAPPWMOD_DESCRIPTION_KEYSTORE_PINFILE=Path to a file containing \
+ the PIN needed to access the contents of the key store
+INFO_LDAPPWMOD_DESCRIPTION_TRUSTSTORE=Path to the trust store to use \
+ when establishing SSL/TLS communication with the server
+INFO_LDAPPWMOD_DESCRIPTION_TRUSTSTORE_PINFILE=Path to a file \
+ containing the PIN needed to access the contents of the trust store
+SEVERE_ERR_LDAPPWMOD_CONFLICTING_ARGS=The %s and %s arguments may not be \
+ provided together
+SEVERE_ERR_LDAPPWMOD_BIND_DN_AND_PW_MUST_BE_TOGETHER=If either a bind DN \
+ or bind password is provided, then the other must be given as well
+SEVERE_ERR_LDAPPWMOD_ANON_REQUIRES_AUTHZID_AND_CURRENTPW=If a bind DN and \
+ password are not provided, then an authorization ID and current password must \
+ be given
+SEVERE_ERR_LDAPPWMOD_DEPENDENT_ARGS=If the %s argument is provided, then \
+ the %s argument must also be given
+SEVERE_ERR_LDAPPWMOD_ERROR_INITIALIZING_SSL=Unable to initialize SSL/TLS \
+ support: %s
+SEVERE_ERR_LDAPPWMOD_CANNOT_CONNECT=An error occurred while attempting to \
+ connect to the Directory Server: %s
+SEVERE_ERR_LDAPPWMOD_CANNOT_SEND_PWMOD_REQUEST=Unable to send the LDAP \
+ password modify request: %s
+SEVERE_ERR_LDAPPWMOD_CANNOT_READ_PWMOD_RESPONSE=Unable to read the LDAP \
+ password modify response: %s
+SEVERE_ERR_LDAPPWMOD_FAILED=The LDAP password modify operation failed: \
+ %d (%s)
+SEVERE_ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=Error Message: %s
+SEVERE_ERR_LDAPPWMOD_FAILURE_MATCHED_DN=Matched DN: %s
+INFO_LDAPPWMOD_SUCCESSFUL=The LDAP password modify operation was \
+ successful
+INFO_LDAPPWMOD_ADDITIONAL_INFO=Additional Info: %s
+INFO_LDAPPWMOD_GENERATED_PASSWORD=Generated Password: %s
+SEVERE_ERR_LDAPPWMOD_UNRECOGNIZED_VALUE_TYPE=Unable to decode the \
+ password modify response value because it contained an invalid element type \
+ of %s
+SEVERE_ERR_LDAPPWMOD_COULD_NOT_DECODE_RESPONSE_VALUE=Unable to decode the \
+ password modify response value: %s
+SEVERE_ERR_INSTALLDS_IMPORT_UNSUCCESSFUL=Import failed
+INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=The assertion value was \
+ indicated to be base64-encoded, but an error occurred while trying to decode \
+ the value
+INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=Unable to read the \
+ assertion value from the specified file: %s
+INFO_WAIT4DEL_DESCRIPTION_TARGET_FILE=Path to the file to \
+ watch for deletion
+INFO_WAIT4DEL_DESCRIPTION_LOG_FILE=Path to a file \
+ containing log output to monitor
+INFO_WAIT4DEL_DESCRIPTION_TIMEOUT=Maximum length of time in seconds \
+ to wait for the target file to be deleted before exiting
+INFO_WAIT4DEL_DESCRIPTION_HELP=Displays this usage information
+SEVERE_WARN_WAIT4DEL_CANNOT_OPEN_LOG_FILE=WARNING: Unable to open log \
+ file %s for reading: %s
+SEVERE_ERR_LDAPCOMPARE_NO_DNS=No entry DNs provided for the compare \
+ operation
+INFO_BACKUPDB_TOOL_DESCRIPTION=This utility can be used to back up one or \
+ more Directory Server backends
+INFO_CONFIGDS_TOOL_DESCRIPTION=This utility can be used to define a base \
+ configuration for the Directory Server
+INFO_ENCPW_TOOL_DESCRIPTION=This utility can be used to encode user \
+ passwords with a specified storage scheme, or to determine whether a given \
+ clear-text value matches a provided encoded password
+INFO_LDIFEXPORT_TOOL_DESCRIPTION=This utility can be used to export data \
+ from a Directory Server backend in LDIF form
+INFO_LDIFIMPORT_TOOL_DESCRIPTION=This utility can be used to import LDIF \
+ data into a Directory Server backend
+INFO_INSTALLDS_TOOL_DESCRIPTION=This utility can be used to setup the \
+ Directory Server
+INFO_LDAPCOMPARE_TOOL_DESCRIPTION=This utility can be used to perform \
+ LDAP compare operations in the Directory Server
+INFO_LDAPDELETE_TOOL_DESCRIPTION=This utility can be used to perform LDAP \
+ delete operations in the Directory Server
+INFO_LDAPMODIFY_TOOL_DESCRIPTION=This utility can be used to perform LDAP \
+ modify, add, delete, and modify DN operations in the Directory Server
+INFO_LDAPPWMOD_TOOL_DESCRIPTION=This utility can be used to perform LDAP \
+ password modify operations in the Directory Server
+INFO_LDAPSEARCH_TOOL_DESCRIPTION=This utility can be used to perform LDAP \
+ search operations in the Directory Server
+INFO_LDIFDIFF_TOOL_DESCRIPTION=This utility can be used to compare two \
+ LDIF files and report the differences in LDIF format
+INFO_LDIFMODIFY_TOOL_DESCRIPTION=This utility can be used to apply a set \
+ of modify, add, and delete operations against data in an LDIF file
+INFO_LDIFSEARCH_TOOL_DESCRIPTION=This utility can be used to perform \
+ search operations against data in an LDIF file
+INFO_MAKELDIF_TOOL_DESCRIPTION=This utility can be used to generate LDIF \
+ data based on a definition in a template file
+INFO_RESTOREDB_TOOL_DESCRIPTION=This utility can be used to restore a \
+ backup of a Directory Server backend
+INFO_STOPDS_TOOL_DESCRIPTION=This utility can be used to request that the \
+ Directory Server stop running or perform a restart
+INFO_VERIFYINDEX_TOOL_DESCRIPTION=This utility can be used to ensure that \
+ index data is consistent within a backend based on the Berkeley DB Java \
+ Edition
+INFO_WAIT4DEL_TOOL_DESCRIPTION=This utility can be used to wait for a \
+ file to be removed from the filesystem
+SEVERE_ERR_TOOL_CONFLICTING_ARGS=You may not provide both the --%s and \
+ the --%s arguments
+SEVERE_ERR_LDAPCOMPARE_NO_ATTR=No attribute was specified to use as the \
+ target for the comparison
+SEVERE_ERR_LDAPCOMPARE_INVALID_ATTR_STRING=Invalid attribute string '%s'. \
+ The attribute string must be in one of the following forms: \
+ 'attribute:value', 'attribute::base64value', or 'attribute:<valueFilePath'
+SEVERE_ERR_TOOL_INVALID_CONTROL_STRING=Invalid control specification '%s'
+SEVERE_ERR_TOOL_SASLEXTERNAL_NEEDS_SSL_OR_TLS=SASL EXTERNAL \
+ authentication may only be requested if SSL or StartTLS is used
+SEVERE_ERR_TOOL_SASLEXTERNAL_NEEDS_KEYSTORE=SASL EXTERNAL authentication \
+ may only be used if a client certificate key store is specified
+INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# Persistent search change type: %s
+INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=# Persistent search previous entry \
+ DN: %s
+INFO_LDAPSEARCH_ACCTUSABLE_HEADER=# Account Usability Response Control
+INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=# The account is usable
+INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=# Time until password \
+ expiration: %s
+INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=# The account is not usable
+INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=# The account has been \
+ deactivated
+INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=# The password has been reset
+INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=# The password has expired
+INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=# Number of grace logins \
+ remaining: %d
+INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=# The account is locked
+INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=# Time until the account \
+ is unlocked: %s
+INFO_DESCRIPTION_KEYSTOREPASSWORD_FILE=Certificate key store PIN file
+INFO_DESCRIPTION_TRUSTSTOREPASSWORD=Certificate trust store PIN
+INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=Certificate trust store PIN file
+INFO_LISTBACKENDS_TOOL_DESCRIPTION=This utility can be used to list the \
+ backends and base DNs configured in the Directory Server
+INFO_LISTBACKENDS_DESCRIPTION_BACKEND_ID=Backend ID of the backend for \
+ which to list the base DNs
+INFO_LISTBACKENDS_DESCRIPTION_BASE_DN=Base DN for which to list the \
+ backend ID
+INFO_LISTBACKENDS_DESCRIPTION_HELP=Display this usage information
+SEVERE_ERR_LISTBACKENDS_CANNOT_GET_BACKENDS=An error occurred while \
+ trying to read backend information from the server configuration: %s
+SEVERE_ERR_LISTBACKENDS_INVALID_DN=The provided base DN value '%s' could \
+ not be parsed as a valid DN: %s
+INFO_LISTBACKENDS_NOT_BASE_DN=The provided DN '%s' is not a base DN for \
+ any backend configured in the Directory Server
+INFO_LISTBACKENDS_NO_BACKEND_FOR_DN=The provided DN '%s' is not below any \
+ base DN for any of the backends configured in the Directory Server
+INFO_LISTBACKENDS_DN_BELOW_BASE=The provided DN '%s' is below '%s' which \
+ is configured as a base DN for backend '%s'
+INFO_LISTBACKENDS_BASE_FOR_ID=The provided DN '%s' is a base DN for \
+ backend '%s'
+INFO_LISTBACKENDS_LABEL_BACKEND_ID=Backend ID
+INFO_LISTBACKENDS_LABEL_BASE_DN=Base DN
+SEVERE_ERR_LISTBACKENDS_NO_SUCH_BACKEND=There is no backend with ID '%s' \
+ in the server configuration
+SEVERE_ERR_LISTBACKENDS_NO_VALID_BACKENDS=None of the provided backend \
+ IDs exist in the server configuration
+SEVERE_ERR_ENCPW_INVALID_ENCODED_USERPW=The provided password is not a \
+ valid encoded user password value: %s
+INFO_ENCPW_DESCRIPTION_USE_COMPARE_RESULT=Use the LDAP compare result as \
+ an exit code for the password comparison
+INFO_DESCRIPTION_COUNT_ENTRIES=Count the number of entries returned by \
+ the server
+INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# Total number of matching entries: \
+ %d
+INFO_INSTALLDS_DESCRIPTION_CLI=Use the command line install. \
+ If not specified the graphical interface will be launched. The rest of the \
+ options (excluding help and version) will only be taken into account if this \
+ option is specified
+INFO_INSTALLDS_DESCRIPTION_SAMPLE_DATA=Specifies that the database should \
+ be populated with the specified number of sample entries
+INFO_INSTALLDS_HEADER_POPULATE_TYPE=Options for populating the database:
+INFO_INSTALLDS_POPULATE_OPTION_BASE_ONLY=Only create the base entry
+INFO_INSTALLDS_POPULATE_OPTION_LEAVE_EMPTY=Leave the database empty
+INFO_INSTALLDS_POPULATE_OPTION_IMPORT_LDIF=Import data from an LDIF file
+INFO_INSTALLDS_POPULATE_OPTION_GENERATE_SAMPLE=Load \
+ automatically-generated sample data
+INFO_INSTALLDS_PROMPT_POPULATE_CHOICE=Database population selection:
+SEVERE_ERR_INSTALLDS_NO_SUCH_LDIF_FILE=ERROR: The specified LDIF file %s \
+ does not exist
+INFO_INSTALLDS_PROMPT_NUM_ENTRIES=Please specify the number of user \
+ entries to generate:
+SEVERE_ERR_INSTALLDS_CANNOT_CREATE_TEMPLATE_FILE=ERROR: Cannot create \
+ the template file for generating sample data: %s
+INFO_LDAPPWMOD_DESCRIPTION_KEYSTORE_PIN=The PIN needed to access the \
+ contents of the key store
+INFO_LDAPPWMOD_DESCRIPTION_TRUSTSTORE_PIN=The PIN needed to access the \
+ contents of the trust store
+INFO_LDIFEXPORT_DESCRIPTION_EXCLUDE_OPERATIONAL=Exclude operational \
+ attributes from the LDIF export
+INFO_LDAPPWMOD_PWPOLICY_WARNING=Password Policy Warning: %s = %d
+INFO_LDAPPWMOD_PWPOLICY_ERROR=Password Policy Error: %s
+MILD_ERR_LDAPPWMOD_CANNOT_DECODE_PWPOLICY_CONTROL=Unable to decode the \
+ password policy response control: %s
+SEVERE_ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE=The \
+ connection to the Directory Server was closed before the bind response could \
+ be read
+INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=Use the simple paged results control \
+ with the given page size
+SEVERE_ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=The simple paged results \
+ control may only be used with a single search filter
+SEVERE_ERR_PAGED_RESULTS_CANNOT_DECODE=Unable to decode the simple paged \
+ results control from the search response: %s
+SEVERE_ERR_PAGED_RESULTS_RESPONSE_NOT_FOUND=The simple paged results \
+ response control was not found in the search result done message from the \
+ server
+INFO_LDIFDIFF_DESCRIPTION_SINGLE_VALUE_CHANGES=Each \
+ attribute-level change should be written as a separate modification per \
+ attribute value rather than one modification per entry
+SEVERE_ERR_PROMPTTM_REJECTING_CLIENT_CERT=Rejecting client certificate \
+ chain because the prompt trust manager may only be used to trust server \
+ certificates
+SEVERE_WARN_PROMPTTM_NO_SERVER_CERT_CHAIN=WARNING: The server did not \
+ present a certificate chain. Do you still wish to attempt connecting to the \
+ target server?
+SEVERE_WARN_PROMPTTM_CERT_EXPIRED=WARNING: The server certificate is \
+ expired (expiration time: %s)
+SEVERE_WARN_PROMPTTM_CERT_NOT_YET_VALID=WARNING: The server certificate \
+ will not be valid until %s
+INFO_PROMPTTM_SERVER_CERT=The server is using the following certificate: \
+ \n Subject DN: %s\n Issuer DN: %s\n Validity: %s through %s\nDo \
+ you wish to trust this certificate and continue connecting to the server?
+INFO_PROMPTTM_YESNO_PROMPT=Please enter "yes" or "no":
+SEVERE_ERR_PROMPTTM_USER_REJECTED=The server certificate has been \
+ rejected by the user
+INFO_STOPDS_SERVER_ALREADY_STOPPED=Server already stopped
+INFO_STOPDS_GOING_TO_STOP=Stopping Server...\n
+INFO_STOPDS_CHECK_STOPPABILITY=Used to determine whether the server can \
+ be stopped or not and the mode to be used to stop it
+INFO_DESCRIPTION_CERT_NICKNAME=Nickname of certificate for SSL client \
+ authentication
+INFO_CONFIGDS_DESCRIPTION_JMX_PORT=Port on which the \
+ Directory Server should listen for JMX communication
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_JMX_PORT=An error occurred while \
+ attempting to update the port on which to listen for JMX communication: %s
+INFO_INSTALLDS_DESCRIPTION_JMXPORT=Port on which the \
+ Directory Server should listen for JMX communication
+INFO_INSTALLDS_PROMPT_JMXPORT=On which port would you like the Directory \
+ Server to accept connections from JMX clients?
+SEVERE_ERR_TOOL_RESULT_CODE=Result Code: %d (%s)
+SEVERE_ERR_TOOL_ERROR_MESSAGE=Additional Information: %s
+SEVERE_ERR_TOOL_MATCHED_DN=Matched DN: %s
+SEVERE_ERR_WINDOWS_SERVICE_NOT_FOUND=Could not find the service name for \
+ the server
+SEVERE_ERR_WINDOWS_SERVICE_START_ERROR=An unexpected error occurred \
+ starting the server as a windows service
+SEVERE_ERR_WINDOWS_SERVICE_STOP_ERROR=An unexpected error occurred \
+ stopping the server windows service
+INFO_CONFIGURE_WINDOWS_SERVICE_TOOL_DESCRIPTION=This utility can be used \
+ to configure the server as a Windows service
+INFO_CONFIGURE_WINDOWS_SERVICE_DESCRIPTION_SHOWUSAGE=Display this usage \
+ information
+INFO_CONFIGURE_WINDOWS_SERVICE_DESCRIPTION_ENABLE=Enables the server as a \
+ Windows service
+INFO_CONFIGURE_WINDOWS_SERVICE_DESCRIPTION_DISABLE=Disables the server as \
+ a Windows service and stops the server
+INFO_CONFIGURE_WINDOWS_SERVICE_DESCRIPTION_STATE=Provides information \
+ about the state of the server as a Windows service
+SEVERE_ERR_CONFIGURE_WINDOWS_SERVICE_TOO_MANY_ARGS=You can only provide \
+ one of the following arguments:\nenableService, disableService, serviceState \
+ or cleanupService
+SEVERE_ERR_CONFIGURE_WINDOWS_SERVICE_TOO_FEW_ARGS=You must provide at \
+ least one of the following arguments:\nenableService, disableService or \
+ serviceState or cleanupService
+INFO_WINDOWS_SERVICE_NAME=OpenDS
+INFO_WINDOWS_SERVICE_DESCRIPTION=Open source Next Generation Directory \
+ Server. Installation path: %s
+INFO_WINDOWS_SERVICE_SUCCESSULLY_ENABLED=The server was successfully \
+ enabled to run as a Windows service
+INFO_WINDOWS_SERVICE_ALREADY_ENABLED=The server was already enabled to run \
+ as a Windows service
+SEVERE_ERR_WINDOWS_SERVICE_NAME_ALREADY_IN_USE=The server could not be \
+ enabled to run as a Windows service. The service name is already in use
+SEVERE_ERR_WINDOWS_SERVICE_ENABLE_ERROR=An unexpected error occurred \
+ trying to enable the server as a Windows service.%nCheck that you have \
+ administrator rights (only Administrators can enable the server to run as a \
+ Windows Service)
+INFO_WINDOWS_SERVICE_SUCCESSULLY_DISABLED=The server was successfully \
+ disabled as a Windows service
+INFO_WINDOWS_SERVICE_ALREADY_DISABLED=The server was already disabled as a \
+ Windows service
+SEVERE_WARN_WINDOWS_SERVICE_MARKED_FOR_DELETION=The server has been marked \
+ for deletion as a Windows Service
+SEVERE_ERR_WINDOWS_SERVICE_DISABLE_ERROR=An unexpected error occurred \
+ trying to disable the server as a Windows service%nCheck that you have \
+ administrator rights (only Administrators can disable the server as a Windows \
+ Service)
+INFO_WINDOWS_SERVICE_ENABLED=The server is enabled as a Windows service. \
+ The service name for the server is: %s
+INFO_WINDOWS_SERVICE_DISABLED=The server is disabled as a Windows service
+SEVERE_ERR_WINDOWS_SERVICE_STATE_ERROR=An unexpected error occurred \
+ trying to retrieve the state of the server as a Windows service
+INFO_STOPDS_DESCRIPTION_WINDOWS_NET_STOP=Used by the window service code \
+ to inform that stop-ds is being called from the window services after a call \
+ to net stop
+INFO_WAIT4DEL_DESCRIPTION_OUTPUT_FILE=Path to a file to \
+ which the command will write the output
+SEVERE_WARN_WAIT4DEL_CANNOT_OPEN_OUTPUT_FILE=WARNING: Unable to open \
+ output file %s for writing: %s
+INFO_INSTALLDS_ENABLING_WINDOWS_SERVICE=Enabling the server as a Windows \
+ service...
+INFO_INSTALLDS_PROMPT_ENABLE_SERVICE=Enable the server to run as a Windows \
+ Service?
+INFO_INSTALLDS_DESCRIPTION_ENABLE_WINDOWS_SERVICE=Enable the server to run \
+ as a Windows Service
+INFO_CONFIGURE_WINDOWS_SERVICE_DESCRIPTION_CLEANUP=Allows to disable the \
+ server service and to clean up the windows registry information associated \
+ with the provided service name
+INFO_WINDOWS_SERVICE_CLEANUP_SUCCESS=Clean up of service %s was \
+ successful
+SEVERE_ERR_WINDOWS_SERVICE_CLEANUP_NOT_FOUND=Could not find the service \
+ with name %s
+SEVERE_WARN_WINDOWS_SERVICE_CLEANUP_MARKED_FOR_DELETION=Service %s has \
+ been marked for deletion
+SEVERE_ERR_WINDOWS_SERVICE_CLEANUP_ERROR=An unexpected error occurred \
+ cleaning up the service %s
+INFO_REBUILDINDEX_TOOL_DESCRIPTION=This utility can be used to rebuild \
+ index data within a backend based on the Berkeley DB Java Edition
+INFO_REBUILDINDEX_DESCRIPTION_BASE_DN=Base DN of a backend \
+ supporting indexing. Rebuild is performed on indexes within the scope of the \
+ given base DN
+INFO_REBUILDINDEX_DESCRIPTION_INDEX_NAME=Names of index(es) \
+ to rebuild. For an attribute index this is simply an attribute name. At \
+ least one index must be specified for rebuild
+SEVERE_ERR_REBUILDINDEX_ERROR_DURING_REBUILD=An error occurred while \
+ attempting to perform index rebuild: %s
+SEVERE_ERR_REBUILDINDEX_WRONG_BACKEND_TYPE=The backend does not support \
+ rebuilding of indexes
+SEVERE_ERR_REBUILDINDEX_REQUIRES_AT_LEAST_ONE_INDEX=At least one index \
+ must be specified for the rebuild process
+SEVERE_ERR_REBUILDINDEX_CANNOT_EXCLUSIVE_LOCK_BACKEND=An error occurred \
+ while attempting to acquire a exclusive lock for backend %s: %s. This \
+ generally means that some other process has an lock on this backend or the \
+ server is running with this backend online. The rebuild process cannot \
+ continue
+SEVERE_WARN_REBUILDINDEX_CANNOT_UNLOCK_BACKEND=An error occurred while \
+ attempting to release the shared lock for backend %s: %s. This lock should \
+ automatically be cleared when the rebuild process exits, so no further action \
+ should be required
+SEVERE_ERR_REBUILDINDEX_CANNOT_SHARED_LOCK_BACKEND=An error occurred \
+ while attempting to acquire a shared lock for backend %s: %s. This \
+ generally means that some other process has an exclusive lock on this backend \
+ (e.g., an LDIF import or a restore). The rebuild process cannot continue
+INFO_CONFIGDS_DESCRIPTION_LDAPS_PORT=Port on which the \
+ Directory Server should listen for LDAPS communication
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_LDAPS_PORT=An error occurred while \
+ attempting to update the port on which to listen for LDAPS communication: %s
+INFO_CONFIGDS_DESCRIPTION_ENABLE_START_TLS=Specifies whether to enable or \
+ not StartTLS
+INFO_CONFIGDS_DESCRIPTION_KEYMANAGER_PROVIDER_DN=DN of the \
+ key manager provider to use for SSL and/or StartTLS
+INFO_CONFIGDS_DESCRIPTION_TRUSTMANAGER_PROVIDER_DN=DN of \
+ the trust manager provider to use for SSL and/or StartTLS
+SEVERE_ERR_CONFIGDS_CANNOT_PARSE_KEYMANAGER_PROVIDER_DN=An error occurred \
+ while attempting to parse key manager provider DN value "%s" as a DN: %s
+SEVERE_ERR_CONFIGDS_CANNOT_PARSE_TRUSTMANAGER_PROVIDER_DN=An error \
+ occurred while attempting to parse trust manager provider DN value "%s" as a \
+ DN: %s
+SEVERE_ERR_CONFIGDS_CANNOT_ENABLE_STARTTLS=An error occurred while \
+ attempting to enable StartTLS: %s
+SEVERE_ERR_CONFIGDS_CANNOT_ENABLE_KEYMANAGER=An error occurred while \
+ attempting to enable key manager provider entry: %s
+SEVERE_ERR_CONFIGDS_CANNOT_ENABLE_TRUSTMANAGER=An error occurred while \
+ attempting to enable trust manager provider entry: %s
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_KEYMANAGER_REFERENCE=An error occurred \
+ while attempting to update the key manager provider DN used for LDAPS \
+ communication: %s
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_TRUSTMANAGER_REFERENCE=An error \
+ occurred while attempting to update the trust manager provider DN used for \
+ LDAPS communication: %s
+INFO_CONFIGDS_DESCRIPTION_KEYMANAGER_PATH=Path of the \
+ key store to be used by the key manager provider
+INFO_CONFIGDS_DESCRIPTION_CERTNICKNAME=Nickname of the \
+ certificate that the connection handler should use when accepting SSL-based \
+ connections or performing StartTLS negotiation
+SEVERE_ERR_CONFIGDS_KEYMANAGER_PROVIDER_DN_REQUIRED=ERROR: You must \
+ provide the %s argument when providing the %s argument
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_CERT_NICKNAME=An error occurred while \
+ attempting to update the nickname of the certificate that the connection \
+ handler should use when accepting SSL-based connections or performing \
+ StartTLS negotiation: %s
+INFO_LDAPMODIFY_DESCRIPTION_FILENAME=LDIF file containing \
+ the changes to apply
+MILD_ERR_MAKELDIF_TEMPLATE_INVALID_PARENT_TEMPLATE=The parent template %s \
+ referenced on line %d for template %s is invalid because the referenced \
+ parent template is not defined before the template that extends it
+INFO_DESCRIPTION_SORT_ORDER=Sort the results using the provided sort \
+ order
+MILD_ERR_LDAP_SORTCONTROL_INVALID_ORDER=The provided sort order was \
+ invalid: %s
+INFO_DESCRIPTION_VLV=Use the virtual list view control to retrieve the \
+ specified results page
+MILD_ERR_LDAPSEARCH_VLV_REQUIRES_SORT=If the --%s argument is provided, \
+ then the --%s argument must also be given
+MILD_ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=The provided virtual list view \
+ descriptor was invalid. It must be a value in the form \
+ 'beforeCount:afterCount:offset:contentCount' (where offset specifies the \
+ index of the target entry and contentCount specifies the estimated total \
+ number of results or zero if it is not known), or \
+ 'beforeCount:afterCount:assertionValue' (where the entry should be the first \
+ entry whose primary sort value is greater than or equal to the provided \
+ assertionValue). In either case, beforeCount is the number of entries to \
+ return before the target value and afterCount is the number of entries to \
+ return after the target value
+SEVERE_WARN_LDAPSEARCH_SORT_ERROR=# Server-side sort failed: %s
+SEVERE_WARN_LDAPSEARCH_CANNOT_DECODE_SORT_RESPONSE=# Unable to decode the \
+ server-side sort response: %s
+INFO_LDAPSEARCH_VLV_TARGET_OFFSET=# VLV Target Offset: %d
+INFO_LDAPSEARCH_VLV_CONTENT_COUNT=# VLV Content Count: %d
+SEVERE_WARN_LDAPSEARCH_VLV_ERROR=# Virtual list view processing failed: \
+ %s
+SEVERE_WARN_LDAPSEARCH_CANNOT_DECODE_VLV_RESPONSE=# Unable to decode the \
+ virtual list view response: %s
+SEVERE_ERR_LDIFIMPORT_CANNOT_READ_FILE=The specified LDIF file %s cannot \
+ be read
+INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=Use geteffectiverights control with \
+ the provided authzid
+INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=Specifies geteffectiverights \
+ control specific attribute list
+MILD_ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=The authorization ID "%s" \
+ contained in the geteffectiverights control is invalid because it does not \
+ start with "dn:" to indicate a user DN
+INFO_DESCRIPTION_PRODUCT_VERSION=Display Directory Server version \
+ information
+INFO_DESCRIPTION_QUIET=Use quiet mode
+INFO_DESCRIPTION_SCRIPT_FRIENDLY=Use script-friendly mode
+INFO_DESCRIPTION_NO_PROMPT=Use non-interactive mode. If data in \
+the command is missing, the user is not prompted and the tool will fail
+INFO_PWPSTATE_TOOL_DESCRIPTION=This utility can be used to retrieve and \
+ manipulate the values of password policy state variables
+INFO_PWPSTATE_DESCRIPTION_HOST=Directory server hostname or IP address
+INFO_PWPSTATE_DESCRIPTION_PORT=Directory server administration port number
+INFO_PWPSTATE_DESCRIPTION_USESSL=Use SSL for secure communication with \
+ the server
+INFO_PWPSTATE_DESCRIPTION_USESTARTTLS=Use StartTLS to secure \
+ communication with the server
+INFO_PWPSTATE_DESCRIPTION_BINDDN=The DN to use to bind to the server
+INFO_PWPSTATE_DESCRIPTION_BINDPW=The password to use to bind to the \
+ server
+INFO_PWPSTATE_DESCRIPTION_BINDPWFILE=The path to the file containing the \
+ bind password
+INFO_PWPSTATE_DESCRIPTION_TARGETDN=The DN of the user entry for which to \
+ get and set password policy state information
+INFO_PWPSTATE_DESCRIPTION_SASLOPTIONS=SASL bind options
+INFO_PWPSTATE_DESCRIPTION_TRUST_ALL=Trust all server SSL certificates
+INFO_PWPSTATE_DESCRIPTION_KSFILE=Certificate key store path
+INFO_PWPSTATE_DESCRIPTION_KSPW=Certificate key store PIN
+INFO_PWPSTATE_DESCRIPTION_KSPWFILE=Certificate key store PIN file
+INFO_PWPSTATE_DESCRIPTION_TSFILE=Certificate trust store path
+INFO_PWPSTATE_DESCRIPTION_TSPW=Certificate trust store PIN
+INFO_PWPSTATE_DESCRIPTION_TSPWFILE=Certificate trust store PIN file
+INFO_PWPSTATE_DESCRIPTION_SHOWUSAGE=Display this usage information
+INFO_DESCRIPTION_PWPSTATE_GET_ALL=Display all password policy state \
+ information for the user
+INFO_DESCRIPTION_PWPSTATE_GET_PASSWORD_POLICY_DN=Display the DN of the \
+ password policy for the user
+INFO_DESCRIPTION_PWPSTATE_GET_ACCOUNT_DISABLED_STATE=Display information \
+ about whether the user account has been administratively disabled
+INFO_DESCRIPTION_PWPSTATE_SET_ACCOUNT_DISABLED_STATE=Specify whether the \
+ user account has been administratively disabled
+INFO_DESCRIPTION_OPERATION_BOOLEAN_VALUE='true' to indicate that the \
+ account is disabled, or 'false' to indicate that it is not disabled
+INFO_DESCRIPTION_PWPSTATE_CLEAR_ACCOUNT_DISABLED_STATE=Clear account \
+ disabled state information from the user account
+INFO_DESCRIPTION_PWPSTATE_GET_ACCOUNT_EXPIRATION_TIME=Display when the \
+ user account will expire
+INFO_DESCRIPTION_PWPSTATE_SET_ACCOUNT_EXPIRATION_TIME=Specify when the \
+ user account will expire
+INFO_DESCRIPTION_OPERATION_TIME_VALUE=A timestamp value using the \
+ generalized time syntax
+INFO_DESCRIPTION_PWPSTATE_CLEAR_ACCOUNT_EXPIRATION_TIME=Clear account \
+ expiration time information from the user account
+INFO_DESCRIPTION_PWPSTATE_GET_SECONDS_UNTIL_ACCOUNT_EXPIRATION=Display \
+ the length of time in seconds until the user account expires
+INFO_DESCRIPTION_PWPSTATE_GET_PASSWORD_CHANGED_TIME=Display the time \
+ that the user's password was last changed
+INFO_DESCRIPTION_PWPSTATE_SET_PASSWORD_CHANGED_TIME=Specify the time \
+ that the user's password was last changed. This should be used only for \
+ testing purposes
+INFO_DESCRIPTION_PWPSTATE_CLEAR_PASSWORD_CHANGED_TIME=Clear information \
+ about the time that the user's password was last changed. This should be \
+ used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_GET_PASSWORD_EXPIRATION_WARNED_TIME=Display \
+ the time that the user first received an expiration warning notice
+INFO_DESCRIPTION_PWPSTATE_SET_PASSWORD_EXPIRATION_WARNED_TIME=Specify \
+ the time that the user first received an expiration warning notice. This \
+ should be used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_CLEAR_PASSWORD_EXPIRATION_WARNED_TIME=Clear \
+ information about the time that the user first received an expiration warning \
+ notice. This should be used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_GET_SECONDS_UNTIL_PASSWORD_EXP=Display length \
+ of time in seconds until the user's password expires
+INFO_DESCRIPTION_PWPSTATE_GET_SECONDS_UNTIL_PASSWORD_EXP_WARNING=Display \
+ the length of time in seconds until the user should start receiving password \
+ expiration warning notices
+INFO_DESCRIPTION_PWPSTATE_GET_AUTH_FAILURE_TIMES=Display the \
+ authentication failure times for the user
+INFO_DESCRIPTION_PWPSTATE_ADD_AUTH_FAILURE_TIME=Add an authentication \
+ failure time to the user account. This should be used only for testing \
+ purposes
+INFO_DESCRIPTION_PWPSTATE_SET_AUTH_FAILURE_TIMES=Specify the \
+ authentication failure times for the user. This should be used only for \
+ testing purposes
+INFO_DESCRIPTION_OPERATION_TIME_VALUES=A timestamp value using the \
+ generalized time syntax. Multiple timestamp values may be given by providing \
+ this argument multiple times
+INFO_DESCRIPTION_PWPSTATE_CLEAR_AUTH_FAILURE_TIMES=Clear authentication \
+ failure time information from the user's account. This should be used only \
+ for testing purposes
+INFO_DESCRIPTION_PWPSTATE_GET_SECONDS_UNTIL_AUTH_FAILURE_UNLOCK=Display \
+ the length of time in seconds until the authentication failure lockout \
+ expires
+INFO_DESCRIPTION_PWPSTATE_GET_REMAINING_AUTH_FAILURE_COUNT=Display the \
+ number of remaining authentication failures until the user's account is \
+ locked
+INFO_DESCRIPTION_PWPSTATE_GET_LAST_LOGIN_TIME=Display the time that the \
+ user last authenticated to the server
+INFO_DESCRIPTION_PWPSTATE_SET_LAST_LOGIN_TIME=Specify the time that the \
+ user last authenticated to the server. This should be used only for testing \
+ purposes
+INFO_DESCRIPTION_PWPSTATE_CLEAR_LAST_LOGIN_TIME=Clear the time that the \
+ user last authenticated to the server. This should be used only for testing \
+ purposes
+INFO_DESCRIPTION_PWPSTATE_GET_SECONDS_UNTIL_IDLE_LOCKOUT=Display the \
+ length of time in seconds until user's account is locked because it has \
+ remained idle for too long
+INFO_DESCRIPTION_PWPSTATE_GET_PASSWORD_RESET_STATE=Display information \
+ about whether the user will be required to change his or her password on the \
+ next successful authentication
+INFO_DESCRIPTION_PWPSTATE_SET_PASSWORD_RESET_STATE=Specify whether the \
+ user will be required to change his or her password on the next successful \
+ authentication. This should be used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_CLEAR_PASSWORD_RESET_STATE=Clear information \
+ about whether the user will be required to change his or her password on the \
+ next successful authentication. This should be used only for testing \
+ purposes
+INFO_DESCRIPTION_PWPSTATE_GET_SECONDS_UNTIL_RESET_LOCKOUT=Display the \
+ length of time in seconds until user's account is locked because the user \
+ failed to change the password in a timely manner after an administrative \
+ reset
+INFO_DESCRIPTION_PWPSTATE_GET_GRACE_LOGIN_USE_TIMES=Display the grace \
+ login use times for the user
+INFO_DESCRIPTION_PWPSTATE_ADD_GRACE_LOGIN_USE_TIME=Add a grace login use \
+ time to the user account. This should be used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_SET_GRACE_LOGIN_USE_TIMES=Specify the grace \
+ login use times for the user. This should be used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_CLEAR_GRACE_LOGIN_USE_TIMES=Clear the set of \
+ grace login use times for the user. This should be used only for testing \
+ purposes
+INFO_DESCRIPTION_PWPSTATE_GET_REMAINING_GRACE_LOGIN_COUNT=Display the \
+ number of grace logins remaining for the user
+INFO_DESCRIPTION_PWPSTATE_GET_PW_CHANGED_BY_REQUIRED_TIME=Display the \
+ required password change time with which the user last complied
+INFO_DESCRIPTION_PWPSTATE_SET_PW_CHANGED_BY_REQUIRED_TIME=Specify the \
+ required password change time with which the user last complied. This should \
+ be used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_CLEAR_PW_CHANGED_BY_REQUIRED_TIME=Clear \
+ information about the required password change time with which the user last \
+ complied. This should be used only for testing purposes
+INFO_DESCRIPTION_PWPSTATE_GET_SECONDS_UNTIL_REQUIRED_CHANGE_TIME=Display \
+ the length of time in seconds that the user has remaining to change his or \
+ her password before the account becomes locked due to the required change \
+ time
+SEVERE_ERR_PWPSTATE_NO_SUBCOMMAND=No subcommand was provided to indicate \
+ which password policy state operation should be performed
+SEVERE_ERR_PWPSTATE_INVALID_BOOLEAN_VALUE=The provided value '%s' was \
+ invalid for the requested operation. A Boolean value of either 'true' or \
+ 'false' was expected
+SEVERE_ERR_PWPSTATE_NO_BOOLEAN_VALUE=No value was specified, but the \
+ requested operation requires a Boolean value of either 'true' or 'false'
+SEVERE_ERR_PWPSTATE_INVALID_SUBCOMMAND=Unrecognized subcommand '%s'
+SEVERE_ERR_PWPSTATE_CANNOT_SEND_REQUEST_EXTOP=An error occurred while \
+ attempting to send the request to the server: %s
+SEVERE_ERR_PWPSTATE_CONNECTION_CLOSED_READING_RESPONSE=The Directory \
+ Server closed the connection before the response could be read
+SEVERE_ERR_PWPSTATE_REQUEST_FAILED=The server was unable to process the \
+ request: result code %d (%s), error message '%s'
+SEVERE_ERR_PWPSTATE_CANNOT_DECODE_RESPONSE_MESSAGE=The server was unable \
+ to decode the response message from the server: %s
+SEVERE_ERR_PWPSTATE_CANNOT_DECODE_RESPONSE_OP=Unable to decode \
+ information about an operation contained in the response: %s
+INFO_PWPSTATE_LABEL_PASSWORD_POLICY_DN=Password Policy DN
+INFO_PWPSTATE_LABEL_ACCOUNT_DISABLED_STATE=Account Is Disabled
+INFO_PWPSTATE_LABEL_ACCOUNT_EXPIRATION_TIME=Account Expiration Time
+INFO_PWPSTATE_LABEL_SECONDS_UNTIL_ACCOUNT_EXPIRATION=Seconds Until \
+ Account Expiration
+INFO_PWPSTATE_LABEL_PASSWORD_CHANGED_TIME=Password Changed Time
+INFO_PWPSTATE_LABEL_PASSWORD_EXPIRATION_WARNED_TIME=Password Expiration \
+ Warned Time
+INFO_PWPSTATE_LABEL_SECONDS_UNTIL_PASSWORD_EXPIRATION=Seconds Until \
+ Password Expiration
+INFO_PWPSTATE_LABEL_SECONDS_UNTIL_PASSWORD_EXPIRATION_WARNING=Seconds \
+ Until Password Expiration Warning
+INFO_PWPSTATE_LABEL_AUTH_FAILURE_TIMES=Authentication Failure Times
+INFO_PWPSTATE_LABEL_SECONDS_UNTIL_AUTH_FAILURE_UNLOCK=Seconds Until \
+ Authentication Failure Unlock
+INFO_PWPSTATE_LABEL_REMAINING_AUTH_FAILURE_COUNT=Remaining \
+ Authentication Failure Count
+INFO_PWPSTATE_LABEL_LAST_LOGIN_TIME=Last Login Time
+INFO_PWPSTATE_LABEL_SECONDS_UNTIL_IDLE_LOCKOUT=Seconds Until Idle \
+ Account Lockout
+INFO_PWPSTATE_LABEL_PASSWORD_RESET_STATE=Password Is Reset
+INFO_PWPSTATE_LABEL_SECONDS_UNTIL_PASSWORD_RESET_LOCKOUT=Seconds Until \
+ Password Reset Lockout
+INFO_PWPSTATE_LABEL_GRACE_LOGIN_USE_TIMES=Grace Login Use Times
+INFO_PWPSTATE_LABEL_REMAINING_GRACE_LOGIN_COUNT=Remaining Grace Login \
+ Count
+INFO_PWPSTATE_LABEL_PASSWORD_CHANGED_BY_REQUIRED_TIME=Password Changed \
+ by Required Time
+INFO_PWPSTATE_LABEL_SECONDS_UNTIL_REQUIRED_CHANGE_TIME=Seconds Until \
+ Required Change Time
+SEVERE_ERR_PWPSTATE_INVALID_RESPONSE_OP_TYPE=Unrecognized or invalid \
+ operation type: %s
+SEVERE_ERR_PWPSTATE_MUTUALLY_EXCLUSIVE_ARGUMENTS=ERROR: You may not \
+ provide both the %s and the %s arguments
+SEVERE_ERR_PWPSTATE_CANNOT_INITIALIZE_SSL=ERROR: Unable to perform SSL \
+ initialization: %s
+SEVERE_ERR_PWPSTATE_CANNOT_PARSE_SASL_OPTION=ERROR: The provided SASL \
+ option string "%s" could not be parsed in the form "name=value"
+SEVERE_ERR_PWPSTATE_NO_SASL_MECHANISM=ERROR: One or more SASL options \
+ were provided, but none of them were the "mech" option to specify which SASL \
+ mechanism should be used
+SEVERE_ERR_PWPSTATE_CANNOT_DETERMINE_PORT=ERROR: Cannot parse the value \
+ of the %s argument as an integer value between 1 and 65535: %s
+SEVERE_ERR_PWPSTATE_CANNOT_CONNECT=ERROR: Cannot establish a connection to \
+ the Directory Server %s. Verify that the server is running and that \
+ the provided credentials are valid. Details: %s
+INFO_UPGRADE_DESCRIPTION_FILE=Specifies an existing server package \
+ (.zip) file to which the current build will be upgraded using the command \
+ line version of this tool
+INFO_UPGRADE_DESCRIPTION_NO_PROMPT=Use non-interactive mode. Prompt for \
+ any required information rather than fail
+INFO_UPGRADE_DESCRIPTION_SILENT=Perform a quiet upgrade or reversion
+INFO_LDIFIMPORT_DESCRIPTION_COUNT_REJECTS=Count the number of entries \
+ rejected by the server and return that value as the exit code (values > 255 \
+ will be reduced to 255 due to exit code restrictions)
+INFO_LDIFIMPORT_DESCRIPTION_SKIP_FILE=Write skipped entries to the \
+ specified file
+SEVERE_ERR_LDIFIMPORT_CANNOT_OPEN_SKIP_FILE=An error occurred while \
+ trying to open the skip file %s for writing: %s
+INFO_VERIFYINDEX_DESCRIPTION_COUNT_ERRORS=Count the number of errors \
+ found during the verification and return that value as the exit code (values \
+ > 255 will be reduced to 255 due to exit code restrictions)
+INFO_PWPSTATE_LABEL_PASSWORD_HISTORY=Password History
+INFO_DESCRIPTION_PWPSTATE_GET_PASSWORD_HISTORY=Display password history \
+ state values for the user
+INFO_DESCRIPTION_PWPSTATE_CLEAR_PASSWORD_HISTORY=Clear password history \
+ state values for the user. This should be used only for testing purposes
+SEVERE_ERR_CONFIGDS_PORT_ALREADY_SPECIFIED=ERROR: You have specified \
+ the value %s for different ports
+SEVERE_ERR_CLI_ERROR_PROPERTY_UNRECOGNIZED=The property "%s" is not a \
+ recognized property
+SEVERE_ERR_CLI_ERROR_MISSING_PROPERTY=The mandatory property "%s" is \
+ missing
+SEVERE_ERR_CLI_ERROR_INVALID_PROPERTY_VALUE=The value "%s" specified for \
+ the property "%s" is invalid
+INFO_CLI_HEADING_PROPERTY_DEFAULT_VALUE=Default value
+INFO_REVERT_DESCRIPTION_DIRECTORY=Directory where reversion files are \
+ stored. This should be one of the child directories of the 'history' \
+ directory that is created when the upgrade tool is run
+INFO_REVERT_DESCRIPTION_RECENT=The installation will be \
+ reverted to the state before the most recent upgrade
+INFO_REVERT_DESCRIPTION_INTERACTIVE=Prompt for any required information \
+ rather than fail
+INFO_REVERT_DESCRIPTION_SILENT=Perform a quiet reversion
+INFO_LDIFIMPORT_DESCRIPTION_CLEAR_BACKEND=Remove all entries for all \
+ base DNs in the backend before importing
+SEVERE_ERR_LDIFIMPORT_MISSING_BACKEND_ARGUMENT=Neither the %s or the %s \
+ argument was provided. One of these arguments must be given to specify the \
+ backend for the LDIF data to be imported to
+SEVERE_ERR_LDIFIMPORT_MISSING_CLEAR_BACKEND=Importing to a backend \
+ without the append argument will remove all entries for all base DNs (%s) in \
+ the backend. The %s argument must be given to continue with import
+MILD_ERR_MAKELDIF_TAG_LIST_NO_ARGUMENTS=The list tag on line %d of the \
+ template file does not contain any arguments to specify the list values. At \
+ least one list value must be provided
+MILD_WARN_MAKELDIF_TAG_LIST_INVALID_WEIGHT=The list tag on line %d of \
+ the template file contains item '%s' that includes a semicolon but that \
+ semicolon is not followed by an integer. The semicolon will be assumed to be \
+ part of the value and not a delimiter to separate the value from its relative \
+ weight
+FATAL_ERR_INITIALIZE_SERVER_ROOT=An unexpected error occurred \
+ attempting to set the server's root directory to %s: %s
+SEVERE_ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS=ERROR: You may not \
+ provide both the %s and the %s arguments
+SEVERE_ERR_LDAP_CONN_CANNOT_INITIALIZE_SSL=ERROR: Unable to perform SSL \
+ initialization: %s
+SEVERE_ERR_LDAP_CONN_CANNOT_PARSE_SASL_OPTION=ERROR: The provided SASL \
+ option string "%s" could not be parsed in the form "name=value"
+SEVERE_ERR_LDAP_CONN_NO_SASL_MECHANISM=ERROR: One or more SASL options \
+ were provided, but none of them were the "mech" option to specify which SASL \
+ mechanism should be used
+SEVERE_ERR_LDAP_CONN_CANNOT_DETERMINE_PORT=ERROR: Cannot parse the value \
+ of the %s argument as an integer value between 1 and 65535: %s
+SEVERE_ERR_LDAP_CONN_CANNOT_CONNECT=ERROR: Cannot establish a connection \
+ to the Directory Server %s. Verify that the server is running and that \
+ the provided credentials are valid. Details: %s
+INFO_LDAP_CONN_DESCRIPTION_HOST=Directory server hostname or IP address
+INFO_LDAP_CONN_DESCRIPTION_PORT=Directory server port number
+INFO_LDAP_CONN_DESCRIPTION_USESSL=Use SSL for secure communication with \
+ the server
+INFO_LDAP_CONN_DESCRIPTION_USESTARTTLS=Use StartTLS for secure \
+ communication with the server
+INFO_LDAP_CONN_DESCRIPTION_BINDDN=DN to use to bind to the server
+INFO_LDAP_CONN_DESCRIPTION_BINDPW=Password to use to bind to the server
+INFO_LDAP_CONN_DESCRIPTION_BINDPWFILE=Bind password file
+INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=SASL bind options
+INFO_LDAP_CONN_DESCRIPTION_TRUST_ALL=Trust all server SSL certificates
+INFO_LDAP_CONN_DESCRIPTION_KSFILE=Certificate key store path
+INFO_LDAP_CONN_DESCRIPTION_KSPW=Certificate key store PIN
+INFO_LDAP_CONN_DESCRIPTION_KSPWFILE=Certificate key store PIN file
+INFO_LDAP_CONN_DESCRIPTION_TSFILE=Certificate trust store path
+INFO_LDAP_CONN_DESCRIPTION_TSPW=Certificate trust store PIN
+INFO_LDAP_CONN_DESCRIPTION_TSPWFILE=Certificate trust store PIN file
+SEVERE_ERR_TASK_CLIENT_UNEXPECTED_CONNECTION_CLOSURE=NOTICE: The \
+ connection to the Directory Server was closed while waiting for a response to \
+ the shutdown request. This likely means that the server has started the \
+ shutdown process
+SEVERE_ERR_TASK_TOOL_IO_ERROR=ERROR: An I/O error occurred while \
+ attempting to communicate with the Directory Server: %s
+SEVERE_ERR_TASK_TOOL_DECODE_ERROR=ERROR: An error occurred while \
+ trying to decode the response from the server: %s
+SEVERE_ERR_TASK_CLIENT_INVALID_RESPONSE_TYPE=ERROR: Expected an add \
+ response message but got a %s message instead
+INFO_TASK_TOOL_TASK_SCHEDULED_NOW=%s task %s scheduled to start \
+ immediately
+SEVERE_ERR_LDAP_CONN_INCOMPATIBLE_ARGS=ERROR: argument %s is \
+ incompatible with use of this tool to interact with the directory as a client
+SEVERE_ERR_CREATERC_ONLY_RUNS_ON_UNIX=This tool may only be used on \
+ UNIX-based systems
+INFO_CREATERC_TOOL_DESCRIPTION=Create an RC script that may be used to \
+ start, stop, and restart the Directory Server on UNIX-based systems
+INFO_CREATERC_OUTFILE_DESCRIPTION=The path to the output file to create
+SEVERE_ERR_CREATERC_UNABLE_TO_DETERMINE_SERVER_ROOT=Unable to determine \
+ the path to the server root directory. Please ensure that the %s system \
+ property or the %s environment variable is set to the path of the server \
+ root directory
+SEVERE_ERR_CREATERC_CANNOT_WRITE=An error occurred while attempting to \
+ generate the RC script: %s
+SEVERE_ERR_DSCFG_ERROR_QUIET_AND_INTERACTIVE_INCOMPATIBLE=If you specify \
+ the {%s} argument you must also specify {%s}
+INFO_DESCRIPTION_DBTEST_TOOL=This utility can be used to debug the JE \
+ database
+INFO_DESCRIPTION_DBTEST_SUBCMD_LIST_ROOT_CONTAINERS=List the root \
+ containers used by all JE backends
+INFO_DESCRIPTION_DBTEST_SUBCMD_LIST_ENTRY_CONTAINERS=List the entry \
+ containers for a root container
+INFO_DESCRIPTION_DBTEST_SUBCMD_DUMP_DATABASE_CONTAINER=Dump records from \
+ a database container
+INFO_DESCRIPTION_DBTEST_BACKEND_ID=The backend ID of the JE backend to \
+ debug
+INFO_DESCRIPTION_DBTEST_BASE_DN=The base DN of the entry container to debug
+INFO_DESCRIPTION_DBTEST_DATABASE_NAME=The name of the database container \
+ to debug
+INFO_DESCRIPTION_DBTEST_SKIP_DECODE=Do not try to decode the JE data to \
+ their appropriate types
+MILD_ERR_DBTEST_DECODE_FAIL=An error occurred while decoding data: %s
+INFO_DESCRIPTION_DBTEST_SUBCMD_LIST_INDEX_STATUS=List the status of \
+ indexes in an entry container
+INFO_DESCRIPTION_DBTEST_MAX_KEY_VALUE=Only show records with keys that \
+ should be ordered before the provided value using the comparator for the \
+ database container
+INFO_DESCRIPTION_DBTEST_MIN_KEY_VALUE=Only show records with keys that \
+ should be ordered after the provided value using the comparator for the \
+ database container
+INFO_DESCRIPTION_DBTEST_MAX_DATA_SIZE=Only show records whose data is no \
+ larger than the provided value
+INFO_DESCRIPTION_DBTEST_MIN_DATA_SIZE=Only show records whose data is no \
+ smaller than the provided value
+INFO_DESCRIPTION_DBTEST_SUBCMD_LIST_DATABASE_CONTAINERS=List the database \
+ containers for an entry container
+INFO_LABEL_DBTEST_BACKEND_ID=Backend ID
+INFO_LABEL_DBTEST_DB_DIRECTORY=Database Directory
+INFO_LABEL_DBTEST_BASE_DN=Base DN
+INFO_LABEL_DBTEST_JE_DATABASE_PREFIX=JE Database Prefix
+INFO_LABEL_DBTEST_ENTRY_COUNT=Entry Count
+SEVERE_ERR_DBTEST_NO_BACKENDS_FOR_ID=None of the Directory Server \
+ backends are configured with the requested backend ID %s
+SEVERE_ERR_DBTEST_NO_ENTRY_CONTAINERS_FOR_BASE_DN=None of the entry \
+ containers are configured with the requested base DN %s in backend %s
+SEVERE_ERR_DBTEST_NO_DATABASE_CONTAINERS_FOR_NAME=No database container \
+ exists with the requested name %s in entry container %s and backend %s
+SEVERE_ERR_DBTEST_ERROR_INITIALIZING_BACKEND=An unexpected error occurred \
+ while attempting to initialize the JE backend %s: %s
+SEVERE_ERR_DBTEST_ERROR_READING_DATABASE=An unexpected error occurred \
+ while attempting to read and/or decode records from the database: %s
+SEVERE_ERR_DBTEST_DECODE_BASE_DN=Unable to decode base DN string "%s" as \
+ a valid distinguished name: %s
+INFO_LABEL_DBTEST_DATABASE_NAME=Database Name
+INFO_LABEL_DBTEST_DATABASE_TYPE=Database Type
+INFO_LABEL_DBTEST_JE_DATABASE_NAME=JE Database Name
+INFO_LABEL_DBTEST_JE_RECORD_COUNT=Record Count
+INFO_LABEL_DBTEST_INDEX_NAME=Index Name
+INFO_LABEL_DBTEST_INDEX_TYPE=Index Type
+INFO_LABEL_DBTEST_INDEX_STATUS=Index Status
+INFO_LABEL_DBTEST_KEY=Key
+INFO_LABEL_DBTEST_DATA=Data
+SEVERE_WARN_DBTEST_CANNOT_UNLOCK_BACKEND=An error occurred while \
+ attempting to release the shared lock for backend %s: %s. This lock should \
+ automatically be cleared when the process exits, so no further action \
+ should be required
+SEVERE_ERR_DBTEST_CANNOT_LOCK_BACKEND=An error occurred while \
+ attempting to acquire a shared lock for backend %s: %s. This generally \
+ means that some other process has exclusive access to this backend (e.g., a \
+ restore or an LDIF import)
+SEVERE_ERR_DBTEST_CANNOT_DECODE_KEY=An error occurred while decoding the \
+ min/max key value %s: %s. Values prefixed with "0x" will be decoded as raw \
+ bytes in hex. When dumping the DN2ID database, the value must be a valid \
+ distinguished name. When dumping the ID2Entry database, the value will be \
+ decoded as a entry ID. When dumping all other databases, the value will be \
+ decoded as a string
+INFO_LABEL_DBTEST_ENTRY=Entry
+INFO_LABEL_DBTEST_ENTRY_ID=Entry ID
+INFO_LABEL_DBTEST_ENTRY_DN=Entry DN
+INFO_LABEL_DBTEST_URI=URI
+INFO_LABEL_DBTEST_INDEX_VALUE=Indexed Value
+INFO_LABEL_DBTEST_INDEX_ENTRY_ID_LIST=Entry ID List
+INFO_LABEL_DBTEST_VLV_INDEX_LAST_SORT_KEYS=Last Sort Keys
+SEVERE_ERR_DBTEST_CANNOT_DECODE_SIZE=An error occurred while parsing the \
+ min/max data size %s as a integer: %s
+SEVERE_ERR_CONFIGDS_CANNOT_ENABLE_ADS_TRUST_STORE=An error occurred while \
+ attempting to enable the ADS trust store: %s
+SEVERE_ERR_DBTEST_MISSING_SUBCOMMAND=A sub-command must be specified
+INFO_CREATERC_USER_DESCRIPTION=The name of the user account under which \
+ the server should run
+INFO_CREATERC_JAVA_HOME_DESCRIPTION=The path to the Java installation \
+ that should be used to run the server
+INFO_CREATERC_JAVA_ARGS_DESCRIPTION=A set of arguments that should be \
+ passed to the JVM when running the server
+SEVERE_ERR_CREATERC_JAVA_HOME_DOESNT_EXIST=The directory %s specified \
+ as the OPENDS_JAVA_HOME path does not exist or is not a directory
+INFO_INSTALLDS_STATUS_COMMAND_LINE=To see basic server configuration \
+status and configuration you can launch %s
+INFO_INSTALLDS_PROMPT_ENABLE_SSL=Do you want to enable SSL?
+INFO_INSTALLDS_PROMPT_LDAPSPORT=On which port would you like the \
+ Directory Server to accept connections from LDAPS clients?
+INFO_INSTALLDS_ENABLE_STARTTLS=Do you want to enable Start TLS?
+INFO_INSTALLDS_PROMPT_JKS_PATH=Java Key Store (JKS) path:
+INFO_INSTALLDS_PROMPT_PKCS12_PATH=PKCS#12 key Store path:
+INFO_INSTALLDS_PROMPT_KEYSTORE_PASSWORD=Key store PIN:
+INFO_INSTALLDS_PROMPT_CERTNICKNAME=Use nickname %s?
+INFO_INSTALLDS_HEADER_CERT_TYPE=Certificate server options:
+INFO_INSTALLDS_CERT_OPTION_SELF_SIGNED=Generate self-signed certificate \
+ (recommended for testing purposes only)
+INFO_INSTALLDS_CERT_OPTION_JKS=Use an existing certificate located on a \
+ Java Key Store (JKS)
+INFO_INSTALLDS_CERT_OPTION_PKCS12=Use an existing certificate located on \
+ a PKCS#12 key store
+INFO_INSTALLDS_CERT_OPTION_PKCS11=Use an existing certificate on a \
+ PKCS#11 token
+INFO_INSTALLDS_PROMPT_CERT_TYPE_CHOICE=Certificate type selection:
+INFO_INSTALLDS_PROMPT_START_SERVER=Do you want to start the server when \
+ the configuration is completed?
+SEVERE_ERR_INSTALLDS_CERTNICKNAME_NOT_FOUND=The provided certificate \
+ nickname could not be found. The key store contains the following \
+ certificate nicknames: %s
+SEVERE_ERR_INSTALLDS_MUST_PROVIDE_CERTNICKNAME=The key store contains the \
+ following certificate nicknames: %s.%nYou have to provide the nickname of the \
+ certificate you want to use
+INFO_INSTALLDS_DESCRIPTION_DO_NOT_START=Do not start the server when the \
+ configuration is completed
+INFO_INSTALLDS_DESCRIPTION_ENABLE_STARTTLS=Enable StartTLS to allow \
+ secure communication with the server using the LDAP port
+INFO_INSTALLDS_DESCRIPTION_LDAPSPORT=Port on which the \
+ Directory Server should listen for LDAPS communication. The LDAPS port will \
+ be configured and SSL will be enabled only if this argument is explicitly \
+ specified
+INFO_INSTALLDS_DESCRIPTION_USE_SELF_SIGNED=Generate a \
+ self-signed certificate that the server should use when accepting SSL-based \
+ connections or performing StartTLS negotiation
+INFO_INSTALLDS_DESCRIPTION_USE_PKCS11=Use a certificate in a \
+ PKCS#11 token that the server should use when accepting SSL-based \
+ connections or performing StartTLS negotiation
+INFO_INSTALLDS_DESCRIPTION_USE_JAVAKEYSTORE=Path of a Java \
+ Key Store (JKS) containing a certificate to be used as the server certificate
+INFO_INSTALLDS_DESCRIPTION_USE_PKCS12=Path of a PKCS#12 key \
+ store containing the certificate that the server should use when accepting \
+ SSL-based connections or performing StartTLS negotiation
+INFO_INSTALLDS_DESCRIPTION_KEYSTOREPASSWORD=Certificate key store PIN. \
+ A PIN is required when you specify to use an existing certificate (JKS, \
+ JCEKS, PKCS#12 or PKCS#11) as server certificate
+INFO_INSTALLDS_DESCRIPTION_KEYSTOREPASSWORD_FILE=Certificate key store \
+ PIN file. A PIN is required when you specify to use an existing certificate \
+ (JKS, JCEKS, PKCS#12 or PKCS#11) as server certificate
+INFO_INSTALLDS_DESCRIPTION_CERT_NICKNAME=Nickname of the \
+ certificate that the server should use when accepting SSL-based \
+ connections or performing StartTLS negotiation
+SEVERE_ERR_INSTALLDS_SEVERAL_CERTIFICATE_TYPE_SPECIFIED=You have \
+ specified several certificate types to be used. Only one certificate type \
+ (self-signed, JKS, JCEKS, PKCS#12 or PCKS#11) is allowed
+SEVERE_ERR_INSTALLDS_CERTIFICATE_REQUIRED_FOR_SSL_OR_STARTTLS=You have \
+ chosen to enable SSL or StartTLS. You must specify which type of certificate \
+ you want the server to use
+SEVERE_ERR_INSTALLDS_NO_KEYSTORE_PASSWORD=You must provide the PIN of the \
+ keystore to retrieve the certificate to be used by the server. You can use \
+ {%s} or {%s}
+INFO_INSTALLDS_DESCRIPTION_NO_PROMPT=Perform an installation in \
+ non-interactive mode. If some data in the command is missing the user will \
+ not be prompted and the tool will fail
+SEVERE_ERR_INSTALLDS_SSL_OR_STARTTLS_REQUIRED=You have specified to use a \
+ certificate as server certificate. You must enable SSL (using option {%s}) \
+ or Start TLS (using option %s)
+SEVERE_ERR_UPGRADE_INCOMPATIBLE_ARGS=The argument '%s' is incompatible \
+ with '%s'
+INFO_TASKINFO_TOOL_DESCRIPTION=This utility can be used to obtain a list \
+ of tasks scheduled to run within the Directory Server as well as information \
+ about individual tasks
+INFO_TASKINFO_SUMMARY_ARG_DESCRIPTION=Print a summary of tasks
+INFO_TASKINFO_TASK_ARG_DESCRIPTION=ID of a particular task \
+ about which this tool will display information
+INFO_TASKINFO_CMD_REFRESH=refresh
+INFO_TASKINFO_CMD_CANCEL=cancel task
+INFO_TASKINFO_CMD_VIEW_LOGS=view logs
+INFO_TASKINFO_MENU_PROMPT=Enter a menu item or task number
+INFO_TASKINFO_CMD_CANCEL_NUMBER_PROMPT=Enter the number of a task to \
+ cancel [%d]
+INFO_TASKINFO_MENU=Menu
+MILD_ERR_TASKINFO_INVALID_TASK_NUMBER=Task number must be between 1 and \
+ %d
+MILD_ERR_TASKINFO_INVALID_MENU_KEY=Invalid menu item or task number '%s'
+INFO_TASKINFO_FIELD_ID=ID
+INFO_TASKINFO_FIELD_TYPE=Type
+INFO_TASKINFO_FIELD_STATUS=Status
+INFO_TASKINFO_FIELD_SCHEDULED_START=Scheduled Start Time
+INFO_TASKINFO_FIELD_ACTUAL_START=Actual Start Time
+INFO_TASKINFO_FIELD_COMPLETION_TIME=Completion Time
+INFO_TASKINFO_FIELD_DEPENDENCY=Dependencies
+INFO_TASKINFO_FIELD_FAILED_DEPENDENCY_ACTION=Failed Dependency Action
+INFO_TASKINFO_FIELD_LOG=Log Message(s)
+INFO_TASKINFO_FIELD_LAST_LOG=Last Log Message
+INFO_TASKINFO_FIELD_NOTIFY_ON_COMPLETION=Email Upon Completion
+INFO_TASKINFO_FIELD_NOTIFY_ON_ERROR=Email Upon Error
+INFO_TASKINFO_CMD_CANCEL_SUCCESS=Task %s canceled
+SEVERE_ERR_TASKINFO_CMD_CANCEL_ERROR=Error canceling task %s: %s
+SEVERE_ERR_TASKINFO_RETRIEVING_TASK_ENTRY=Error retrieving task entry \
+ %s: %s
+MILD_ERR_TASKINFO_UNKNOWN_TASK_ENTRY=There are no tasks with ID %s
+INFO_TASKINFO_DETAILS=Task Details
+INFO_TASKINFO_OPTIONS=%s Options
+INFO_TASKINFO_NO_TASKS=No tasks exist
+INFO_TASKINFO_NONE=None
+INFO_TASKINFO_NONE_SPECIFIED=None Specified
+INFO_TASKINFO_IMMEDIATE_EXECUTION=Immediate execution
+INFO_TASKINFO_LDAP_EXCEPTION=Error connecting to the directory server: \
+ '%s'. Verify that the connection options are correct and that the server is \
+ running
+SEVERE_ERR_INCOMPATIBLE_ARGUMENTS=Options '%s' and '%s' are incompatible \
+ with each other and cannot be used together
+INFO_TASKINFO_TASK_ARG_CANCEL=ID of a particular task to cancel
+SEVERE_ERR_TASKINFO_CANCELING_TASK=Error canceling task '%s': %s
+SEVERE_ERR_TASKINFO_ACCESSING_LOGS=Error accessing logs for task '%s': %s
+SEVERE_ERR_TASKINFO_NOT_CANCELABLE_TASK_INDEX=Task at index %d is not \
+ cancelable
+SEVERE_ERR_TASKINFO_NOT_CANCELABLE_TASK=Task %s has finished and cannot \
+ be canceled
+INFO_TASKINFO_NO_CANCELABLE_TASKS=There are currently no cancelable tasks
+SEVERE_ERR_TASK_CLIENT_UNKNOWN_TASK=There are no tasks defined with ID '%s'
+SEVERE_ERR_TASK_CLIENT_UNCANCELABLE_TASK=Task '%s' has finished and \
+ cannot be canceled
+SEVERE_ERR_TASK_CLIENT_TASK_STATE_UNKNOWN=State for task '%s' cannot be \
+ determined
+INFO_DESCRIPTION_START_DATETIME=Indicates the date/time at which this \
+ operation will start when scheduled as a server task expressed in format \
+ 'YYYYMMDDhhmmss'. A value of '0' will cause the task to be scheduled for \
+ immediate execution. When this option is specified the operation will be \
+ scheduled to start at the specified time after which this utility will exit \
+ immediately
+SEVERE_ERR_START_DATETIME_FORMAT=The start date/time must in format \
+ 'YYYYMMDDhhmmss'
+INFO_TASK_TOOL_TASK_SCHEDULED_FUTURE=%s task %s scheduled to start %s
+SEVERE_ERR_TASK_TOOL_START_TIME_NO_LDAP=You have provided options for \
+ scheduling this operation as a task but options provided for connecting to \
+ the server's tasks backend resulted in the following error: '%s'
+INFO_DESCRIPTION_PROP_FILE_PATH=Path to the file containing default \
+ property values used for command line arguments
+INFO_DESCRIPTION_NO_PROP_FILE=No properties file will be \
+ used to get default command line argument values
+INFO_DESCRIPTION_TASK_TASK_ARGS=Task Scheduling Options
+INFO_DESCRIPTION_TASK_LDAP_ARGS=Task Backend Connection Options
+INFO_DESCRIPTION_GENERAL_ARGS=General Options
+INFO_DESCRIPTION_IO_ARGS=Utility Input/Output Options
+INFO_DESCRIPTION_LDAP_CONNECTION_ARGS=LDAP Connection Options
+INFO_DESCRIPTION_CONFIG_OPTIONS_ARGS=Configuration Options
+INFO_DESCRIPTION_TASK_COMPLETION_NOTIFICATION=Email address \
+ of a recipient to be notified when the task completes. This option may be \
+ specified more than once
+INFO_DESCRIPTION_TASK_ERROR_NOTIFICATION=Email address \
+ of a recipient to be notified if an error occurs when this task executes. \
+ This option may be specified more than once
+INFO_DESCRIPTION_TASK_DEPENDENCY_ID=ID of a task upon which \
+ this task depends. A task will not start execution until all its \
+ dependencies have completed execution
+INFO_DESCRIPTION_TASK_FAILED_DEPENDENCY_ACTION=Action this task will \
+ take should one if its dependent tasks fail. The value must be one of %s. \
+ If not specified defaults to %s
+SEVERE_ERR_TASKTOOL_OPTIONS_FOR_TASK_ONLY=The option %s is only \
+ applicable when scheduling this operation as a task
+SEVERE_ERR_TASKTOOL_INVALID_EMAIL_ADDRESS=The value %s for option %s is \
+ not a valid email address
+SEVERE_ERR_TASKTOOL_INVALID_FDA=The failed dependency action value %s is \
+ invalid. The value must be one of %s
+SEVERE_ERR_TASKTOOL_FDA_WITH_NO_DEPENDENCY=The failed dependency action \
+ option is to be used in conjunction with one or more dependencies
+SEVERE_ERR_TASKINFO_TASK_NOT_CANCELABLE_TASK=Error: task %s is not in a \
+ cancelable state
+NOTICE_BACKUPDB_CANCELLED=The backup process was cancelled
+INFO_INSTALLDS_DESCRIPTION_REJECTED_FILE=Write rejected entries to the \
+ specified file
+MILD_ERR_INSTALLDS_CANNOT_WRITE_REJECTED=Cannot write to rejected entries \
+ file %s. Verify that you have enough write rights on the file
+INFO_INSTALLDS_PROMPT_REJECTED_FILE=Write rejected entries to file:
+INFO_INSTALLDS_DESCRIPTION_SKIPPED_FILE=Write skipped entries to the \
+ specified file
+MILD_ERR_INSTALLDS_CANNOT_WRITE_SKIPPED=Cannot write to skipped entries \
+ file %s. Verify that you have enough write rights on the file
+INFO_INSTALLDS_PROMPT_SKIPPED_FILE=Write skipped entries to file:
+SEVERE_ERR_INSTALLDS_TOO_MANY_KEYSTORE_PASSWORD_TRIES=The maximum number \
+ of tries to provide the certificate key store PIN is %s. Install canceled
+INFO_JAVAPROPERTIES_TOOL_DESCRIPTION=This utility can be used to change \
+ the java arguments and java home that are used by the different server \
+ commands.%n%nBefore launching the command, edit the properties file located \
+ in %s to specify the java arguments and java home. When you have edited the \
+ properties file, run this command for the changes to be taken into account.\
+ %n%nNote that the changes will only apply to this server installation. No \
+ modifications will be made to your environment variables
+INFO_JAVAPROPERTIES_DESCRIPTION_SILENT=Run the tool in quiet mode. Quiet \
+ mode will not output progress information to standard output
+INFO_JAVAPROPERTIES_DESCRIPTION_PROPERTIES_FILE=The properties file to \
+ be used to generate the scripts. If this attribute is not specified %s will \
+ be used
+INFO_JAVAPROPERTIES_DESCRIPTION_DESTINATION_FILE=The script file that \
+ will be written. If not specified %s will be written
+INFO_JAVAPROPERTIES_DESCRIPTION_HELP=Display this usage information
+SEVERE_ERR_JAVAPROPERTIES_WITH_PROPERTIES_FILE=The file properties "%s" \
+ cannot be read. Check that it exists and that you have read rights to it
+SEVERE_ERR_JAVAPROPERTIES_WITH_DESTINATION_FILE=The destination file "%s" \
+ cannot be written. Check that you have right reads to it
+SEVERE_ERR_JAVAPROPERTIES_WRITING_DESTINATION_FILE=The destination file \
+ "%s" cannot be written. Check that you have right reads to it
+INFO_JAVAPROPERTIES_SUCCESSFUL_NON_DEFAULT=The script file %s was \
+ successfully created. For the command-lines to use the java properties \
+ specified on %s you must copy the created script file to %s
+INFO_JAVAPROPERTIES_SUCCESSFUL=The operation was successful. The server \
+ commands will use the java arguments and java home specified in the \
+ properties file located in %s
+INFO_DESCRIPTION_TEST_IF_OFFLINE=When this is set test if the command \
+ must be run in offline or online mode, returning the appropriate error code
+SEVERE_ERR_BACKUPDB_REPEATED_BACKEND_ID=The backend ID '%s' has been \
+ specified several times
+MILD_ERR_INSTALLDS_EMPTY_DN_RESPONSE=ERROR: The empty LDAP DN is not \
+ a valid value
+INFO_FILE_PLACEHOLDER={file}
+INFO_DIRECTORY_PLACEHOLDER={directory}
+INFO_CONFIGFILE_PLACEHOLDER={configFile}
+INFO_LDIFFILE_PLACEHOLDER={ldifFile}
+INFO_SEED_PLACEHOLDER={seed}
+INFO_KEYSTOREPATH_PLACEHOLDER={keyStorePath}
+INFO_TRUSTSTOREPATH_PLACEHOLDER={trustStorePath}
+INFO_BINDPWD_FILE_PLACEHOLDER={bindPasswordFile}
+INFO_CONFIGCLASS_PLACEHOLDER={configClass}
+INFO_HOST_PLACEHOLDER={host}
+INFO_PORT_PLACEHOLDER={port}
+INFO_BASEDN_PLACEHOLDER={baseDN}
+INFO_ROOT_USER_DN_PLACEHOLDER={rootUserDN}
+INFO_BINDDN_PLACEHOLDER={bindDN}
+INFO_BINDPWD_PLACEHOLDER={bindPassword}
+INFO_KEYSTORE_PWD_PLACEHOLDER={keyStorePassword}
+INFO_PATH_PLACEHOLDER={path}
+INFO_TRUSTSTORE_PWD_FILE_PLACEHOLDER={path}
+INFO_TRUSTSTORE_PWD_PLACEHOLDER={trustStorePassword}
+INFO_NICKNAME_PLACEHOLDER={nickname}
+INFO_ASSERTION_FILTER_PLACEHOLDER={filter}
+INFO_FILTER_PLACEHOLDER={filter}
+INFO_PROXYAUTHID_PLACEHOLDER={authzID}
+INFO_SASL_OPTION_PLACEHOLDER={name=value}
+INFO_PROTOCOL_VERSION_PLACEHOLDER={version}
+INFO_DESCRIPTION_PLACEHOLDER={description}
+INFO_GROUPNAME_PLACEHOLDER={groupName}
+INFO_MEMBERNAME_PLACEHOLDER={memberName}
+INFO_BACKENDNAME_PLACEHOLDER={backendName}
+INFO_SERVERID_PLACEHOLDER={serverID}
+INFO_USERID_PLACEHOLDER={userID}
+INFO_VALUE_SET_PLACEHOLDER={PROP:VALUE}
+INFO_START_DATETIME_PLACEHOLDER={startTime}
+INFO_PROP_FILE_PATH_PLACEHOLDER={propertiesFilePath}
+INFO_EMAIL_ADDRESS_PLACEHOLDER={emailAddress}
+INFO_TASK_ID_PLACEHOLDER={taskID}
+INFO_ACTION_PLACEHOLDER={action}
+INFO_TYPE_PLACEHOLDER={type}
+INFO_CATEGORY_PLACEHOLDER={category}
+INFO_PROPERTY_PLACEHOLDER={property}
+INFO_NAME_PLACEHOLDER={name}
+INFO_UNIT_PLACEHOLDER={unit}
+INFO_BACKUPID_PLACEHOLDER={backupID}
+INFO_BACKUPDIR_PLACEHOLDER={backupDir}
+INFO_LDAPPORT_PLACEHOLDER={ldapPort}
+INFO_JMXPORT_PLACEHOLDER={jmxPort}
+INFO_KEY_MANAGER_PROVIDER_DN_PLACEHOLDER={keyManagerProviderDN}
+INFO_TRUST_MANAGER_PROVIDER_DN_PLACEHOLDER={trustManagerProviderDN}
+INFO_KEY_MANAGER_PATH_PLACEHOLDER={keyManagerPath}
+INFO_ROOT_USER_PWD_PLACEHOLDER={rootUserPassword}
+INFO_SERVER_ROOT_DIR_PLACEHOLDER={serverRootDir}
+INFO_SERVICE_NAME_PLACEHOLDER={serviceName}
+INFO_USER_NAME_PLACEHOLDER={userName}
+INFO_ARGS_PLACEHOLDER={args}
+INFO_DATABASE_NAME_PLACEHOLDER={databaseName}
+INFO_MAX_KEY_VALUE_PLACEHOLDER={maxKeyValue}
+INFO_MIN_KEY_VALUE_PLACEHOLDER={minKeyValue}
+INFO_MAX_DATA_SIZE_PLACEHOLDER={maxDataSize}
+INFO_MIN_DATA_SIZE_PLACEHOLDER={minDataSize}
+INFO_CLEAR_PWD={clearPW}
+INFO_ENCODED_PWD_PLACEHOLDER={encodedPW}
+INFO_STORAGE_SCHEME_PLACEHOLDER={scheme}
+INFO_BRANCH_DN_PLACEHOLDER={branchDN}
+INFO_ATTRIBUTE_PLACEHOLDER={attribute}
+INFO_WRAP_COLUMN_PLACEHOLDER={wrapColumn}
+INFO_TEMPLATE_FILE_PLACEHOLDER={templateFile}
+INFO_REJECT_FILE_PLACEHOLDER={rejectFile}
+INFO_SKIP_FILE_PLACEHOLDER={skipFile}
+INFO_PROGRAM_NAME_PLACEHOLDER={programName}
+INFO_NUM_ENTRIES_PLACEHOLDER={numEntries}
+INFO_ROOT_USER_PWD_FILE_PLACEHOLDER={rootUserPasswordFile}
+INFO_LDAP_CONTROL_PLACEHOLDER={controloid[:criticality[:value|::b64value|:<filePath]]}
+INFO_ENCODING_PLACEHOLDER={encoding}
+INFO_ATTRIBUTE_LIST_PLACEHOLDER={attrList}
+INFO_NEW_PASSWORD_PLACEHOLDER={newPassword}
+INFO_CURRENT_PASSWORD_PLACEHOLDER={currentPassword}
+INFO_SEARCH_SCOPE_PLACEHOLDER={searchScope}
+INFO_SORT_ORDER_PLACEHOLDER={sortOrder}
+INFO_VLV_PLACEHOLDER={before:after:index:count | before:after:value}
+INFO_DEREFERENCE_POLICE_PLACEHOLDER={dereferencePolicy}
+INFO_SIZE_LIMIT_PLACEHOLDER={sizeLimit}
+INFO_TIME_LIMIT_PLACEHOLDER={timeLimit}
+INFO_SCOPE_PLACEHOLDER={scope}
+INFO_FILTER_FILE_PLACEHOLDER={filterFile}
+INFO_OUTPUT_FILE_PLACEHOLDER={outputFile}
+INFO_TARGETDN_PLACEHOLDER={targetDN}
+INFO_TIME_PLACEHOLDER={time}
+INFO_TRUE_FALSE_PLACEHOLDER={true|false}
+INFO_INDEX_PLACEHOLDER={index}
+INFO_STOP_REASON_PLACEHOLDER={stopReason}
+INFO_STOP_TIME_PLACEHOLDER={stopTime}
+INFO_SECONDS_PLACEHOLDER={seconds}
+INFO_DATA_PLACEHOLDER={data}
+INFO_ADDRESS_PLACEHOLDER={address}
+INFO_SUBJECT_PLACEHOLDER={subject}
+INFO_ADMINUID_PLACEHOLDER={adminUID}
+INFO_KEYSTORE_PWD_FILE_PLACEHOLDER={keyStorePasswordFile}
+INFO_PSEARCH_PLACEHOLDER=ps[:changetype[:changesonly[:entrychgcontrols]]]
+INFO_MULTICHOICE_TRUE_VALUE=true
+INFO_MULTICHOICE_FALSE_VALUE=false
+INFO_INSTALLDS_SERVER_JMXPORT_LABEL=JMX Listener Port:
+INFO_INSTALLDS_START_SERVER=Start Server when the configuration is completed
+INFO_INSTALLDS_DO_NOT_START_SERVER=Do not start Server when the configuration \
+ is completed
+INFO_INSTALLDS_SUMMARY=Setup Summary%n=============
+INFO_INSTALLDS_CONFIRM_INSTALL_PROMPT=What would you like to do?
+INFO_INSTALLDS_CONFIRM_INSTALL=Setup the server with the parameters above
+INFO_INSTALLDS_PROVIDE_DATA_AGAIN=Provide the setup parameters again
+INFO_INSTALLDS_CANCEL=Cancel the setup
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_CRYPTO_MANAGER=An error occurred while \
+ attempting to update the crypto manager in the Directory Server: %s
+INFO_TASK_TOOL_TASK_SUCESSFULL=%s task %s has been successfully completed
+INFO_TASK_TOOL_TASK_NOT_SUCESSFULL=%s task %s did not complete \
+ successfully
+SEVERE_ERR_CANNOT_READ_TRUSTSTORE=Cannot access trust store '%s'. Verify \
+ that the provided trust store exists and that you have read access rights to it
+SEVERE_ERR_CANNOT_READ_KEYSTORE=Cannot access key store '%s'. Verify \
+ that the provided key store exists and that you have read access rights to it
+INFO_LDIFDIFF_DESCRIPTION_IGNORE_ATTRS=File containing a list of attributes \
+ to ignore when computing the difference
+INFO_LDIFDIFF_DESCRIPTION_IGNORE_ENTRIES=File containing a list of entries (DN) \
+ to ignore when computing the difference
+SEVERE_ERR_LDIFDIFF_CANNOT_READ_FILE_IGNORE_ENTRIES=An error occurred while attempting \
+ to read the file '%s' containing the list of ignored entries: %s
+SEVERE_ERR_LDIFDIFF_CANNOT_READ_FILE_IGNORE_ATTRIBS=An error occurred while attempting \
+ to read the file '%s' containing the list of ignored attributes: %s
+INFO_LDIFDIFF_CANNOT_PARSE_STRING_AS_DN=The string '%s' from file '%s' could \
+ not be parsed as a dn
+INFO_CHANGE_NUMBER_CONTROL_RESULT=The %s operation change number is %s
+INFO_INSTALLDS_PROMPT_ADMINCONNECTORPORT=On which port would you like the \
+ Administration Connector to accept connections?
+INFO_INSTALLDS_DESCRIPTION_ADMINCONNECTORPORT=Port on which the \
+ Administration Connector should listen for communication
+SEVERE_ERR_CONFIGDS_CANNOT_UPDATE_ADMIN_CONNECTOR_PORT=An error occurred \
+ while attempting to update the administration connector port: %s
+SEVERE_ERR_TASKINFO_LDAP_EXCEPTION_SSL=Error connecting to the directory server at %s on %s. \
+Check this port is an administration port
+INFO_DESCRIPTION_ADMIN_PORT=Directory server administration port number
+INFO_INSTALLDS_DESCRIPTION_USE_JCEKS=Path of a JCEKS containing a \
+ certificate to be used as the server certificate
+INFO_INSTALLDS_CERT_OPTION_JCEKS=Use an existing certificate located on a \
+ JCEKS key store
+INFO_INSTALLDS_PROMPT_JCEKS_PATH=JCEKS Key Store path:
+SEVERE_ERR_CONFIG_KEYMANAGER_CANNOT_CREATE_JCEKS_PROVIDER=Error creating \
+ JCEKS Key Provider configuration: %s
+SEVERE_ERR_CONFIG_KEYMANAGER_CANNOT_CREATE_JCEKS_TRUST_MANAGER=Error \
+ creating JCEKS Trust Manager configuration: %s
+SEVERE_ERR_STOPDS_CANNOT_CONNECT_SSL=ERROR: Cannot establish a connection to \
+ the Directory Server at %s on port %s. Check this port is an administration port
+SEVERE_ERR_PWPSTATE_CANNOT_CONNECT_SSL=ERROR: Cannot establish a connection to \
+ the Directory Server at %s on port %s. Check this port is an administration port
+INFO_IPATH_PLACEHOLDER={instancePath}
+INFO_CURRENT_USER_PLACEHOLDER={currentUser}
+INFO_CONFIGURE_DESCRIPTION_IPATH=Path where the instance will be located
+INFO_CONFIGURE_DESCRIPTION_USERNAME=User name of the owner of the instance
+INFO_CONFIGURE_DESCRIPTION_GROUPNAME=Group name of the owner of the instance
+INFO_CONFIGURE_USAGE_DESCRIPTION=This utility sets the instance location
+SEVERE_ERR_CONFIGURE_NOT_DIRECTORY=[%s] is not a directory. Only directories can \
+be used as {instancePath}
+SEVERE_ERR_CONFIGURE_DIRECTORY_NOT_EMPTY=[%s] is not empty. Only empty directories can \
+be used as {instancePath}
+SEVERE_ERR_CONFIGURE_DIRECTORY_NOT_WRITABLE=[%s] is not writable. Cannot create \
+Directory Server instance
+SEVERE_ERR_CONFIGURE_BAD_USER_NAME=[%s] does not start with a letter. \
+Cannot be specified as {userName}
+SEVERE_ERR_CONFIGURE_GET_GROUP_ERROR=Unable to retrieve group for [%s]. \
+Check that [%s] exists
+SEVERE_ERR_CONFIGURE_CHMOD_ERROR=Unable to use [%s]/[%s] as {userName}/{groupName}. \
+Check that %s exists and belongs to %s
+SEVERE_ERR_CONFIGURE_CURRENT_USER_ERROR=Unauthorized user. \
+Only user that can write [%s] can use this command
+INFO_CHECK_DESCRIPTION=This utility checks version and owner of the instance
+INFO_CHECK_DESCRIPTION_CURRENT_USER=Current user
+INFO_CHECK_DESCRIPTION_CHECK_VERSION=Specifies that check on version should be done
+SEVERE_ERR_CHECK_USER_ERROR=Current user is not owner of the instance. Only [%s] can run this command
+SEVERE_ERR_CHECK_VERSION_NOT_MATCH=Data version does not match binaries. Run upgrade script to solve this
+SEVERE_ERR_CONFIGURE_USER_NOT_EXIST=User [%s] does not exist
+SEVERE_ERR_CONFIGURE_LDAPUSER_NOT_EXIST=User/role [%s] does not exist. \
+Create it or use --userName option to specify another user
+SEVERE_ERR_BACKUPDB_CANNOT_BACKUP_IN_DIRECTORY=The target backend %s \
+ cannot be backed up to the backup directory %s: this directory is \
+ already a backup location for backend %s
+INFO_RECURRING_TASK_PLACEHOLDER={schedulePattern}
+SEVERE_ERR_ENCPW_CANNOT_INITIALIZE_SERVER_COMPONENTS=An error occurred \
+ while attempting to initialize server components to run the encode \
+ password tool: %s
+SEVERE_ERR_LDIFIMPORT_COUNT_REJECTS_REQUIRES_OFFLINE=The %s \
+ argument is not supported for online imports
+INFO_DESCRIPTION_RECURRING_TASK=Indicates the task is recurring and will \
+ be scheduled according to the value argument expressed in crontab(5) \
+ compatible time/date pattern
+INFO_TASK_TOOL_RECURRING_TASK_SCHEDULED=Recurring %s task %s scheduled \
+ successfully
+INFO_UNCONFIGURE_USAGE_DESCRIPTION=This utility unsets the instance location
+INFO_DESCRIPTION_CHECK_OPTIONS=Checks options are valid
+FATAL_ERR_INTERNAL=Internal Error: %s
+FATAL_ERR_INSTALL_ROOT_NOT_SPECIFIED=INSTALL_ROOT property not specified
+FATAL_ERR_INSTANCE_ROOT_NOT_SPECIFIED=INSTANCE_ROOT property not specified
+FATAL_ERR_CONFIG_LDIF_NOT_FOUND=The "config.ldif" file is not present in \
+the instance directory %s.\nInstance directory is referenced by %s
+INFO_LDIFEXPORT_PATH_TO_LDIF_FILE=Exporting to %s
+INFO_PROMPT_YES_COMPLETE_ANSWER=yes
+INFO_PROMPT_YES_FIRST_LETTER_ANSWER=y
+INFO_PROMPT_NO_COMPLETE_ANSWER=no
+INFO_PROMPT_NO_FIRST_LETTER_ANSWER=n
+SEVERE_ERR_START_DATETIME_ALREADY_PASSED=The specified start time '%s' \
+ has already passed
+SEVERE_ERR_LDAPCOMPARE_ERROR_READING_FILE=An error occurred reading file \
+ '%s'. Check that the file exists and that you have read access rights to \
+ it. Details: %s
+SEVERE_ERR_STOPDS_DATETIME_ALREADY_PASSED=The specified stop time '%s' \
+ has already passed
+SEVERE_ERR_LDAPCOMPARE_FILENAME_AND_DNS=Both entry DNs and a file name \
+ were provided for the compare operation. These arguments are not compatible
+INFO_TASKINFO_CMD_REFRESH_CHAR=r
+INFO_TASKINFO_CMD_CANCEL_CHAR=c
+INFO_TASKINFO_CMD_VIEW_LOGS_CHAR=l
+INFO_LDIFDIFF_DESCRIPTION_CHECK_SCHEMA=Takes into account the syntax of \
+ the attributes as defined in the schema to make the value comparison. The \
+ provided LDIF files must be conform to the server schema
+SEVERE_WARN_LDIFDIFF_NO_CONFIG_FILE=WARNING: no configuration file was \
+ provided as argument. No schema check will be performed. If this is being \
+ called throught the '%s' command-line, verify that the script has not been \
+ modified
+INFO_LDAPAUTH_NON_EMPTY_PASSWORD=You must provide a non-empty password \
+to continue
+INFO_BATCH_FILE_PATH_PLACEHOLDER={batchFilePath}
+INFO_DESCRIPTION_BATCH_FILE_PATH=Path to a batch file containing \
+a set of dsconfig commands to be executed
+SEVERE_ERR_DSCFG_ERROR_BATCH_FILE_AND_INTERACTIVE_INCOMPATIBLE=If you specify \
+ the {%s} argument you must also specify {%s}
+SEVERE_ERR_TIMEOUT_DURING_STARTUP=The timeout of '%d' seconds to start \
+ the server has been reached. You can use the argument '--%s' to increase \
+ this timeout
+INFO_INSTALLDS_ENABLE_WINDOWS_SERVICE=Enable the server to run as a \
+ Windows Service
+INFO_INSTALLDS_DO_NOT_ENABLE_WINDOWS_SERVICE=Do not enable the server to \
+ run as a Windows Service
+INFO_ERROR_EMPTY_RESPONSE=ERROR: a response must be provided in order to continue
diff --git a/sdk/src/com/sun/opends/sdk/util/messages_de.properties b/sdk/src/com/sun/opends/sdk/util/messages_de.properties
new file mode 100755
index 0000000..11514dd
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages_de.properties
@@ -0,0 +1,531 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+#
+# Global directives
+#
+global.ordinal=-1
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE_1=Unable to retrieve \
+### approximate matching rule %s used as the default for the %s attribute syntax. \
+### Approximate matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE_2=Unable to retrieve \
+### equality matching rule %s used as the default for the %s attribute syntax. \
+### Equality matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE_3=Unable to retrieve \
+### ordering matching rule %s used as the default for the %s attribute syntax. \
+### Ordering matches will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE_4=Unable to retrieve \
+### substring matching rule %s used as the default for the %s attribute syntax. \
+### Substring matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN_5=The provided value "%s" is not \
+### allowed for attributes with a Boolean syntax. The only allowed values are \
+### 'TRUE' and 'FALSE'
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT_6=The provided value "%s" is too \
+### short to be a valid bit string. A bit string must be a series of binary \
+### digits surrounded by single quotes and followed by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED_7=The provided value "%s" is not \
+### a valid bit string because it is not surrounded by single quotes and followed \
+### by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT_8=The provided value "%s" is \
+### not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH_9=Der angegebene Wert "%s" ist keine g\u00fcltige L\u00e4nderzeichenkette, da die L\u00e4nge nicht exakt zwei Zeichen betr\u00e4gt
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE_10=Der angegebene Wert "%s" ist keine g\u00fcltige L\u00e4nderzeichenkette, da er ein oder mehrere nicht druckbare Zeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS_11=Der angegebene Wert "%s" ist keine g\u00fcltige Liefermethode, da er keine Elemente enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT_12=Der angegebene Wert "%s" ist keine g\u00fcltige Liefermethode, da "%s" keine g\u00fcltige Methode ist
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT_13=The provided value "%s" \
+### is too short to be a valid generalized time value
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR_14=The provided value \
+### "%s" is not a valid generalized time value because the '%s' character is not \
+### allowed in the century or year specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH_15=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid month \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY_16=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid day \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR_17=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid hour \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE_18=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid minute \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND_19=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid second \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND_20=The provided \
+### value "%s" is not a valid generalized time value because the sub-second \
+### component is not valid (between 1 and 3 numeric digits)
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND_21=The provided value \
+### "%s" is not a valid generalized time value because the sub-second value may \
+### not contain more than three digits
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET_22=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+### offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR_23=The provided value \
+### "%s" is not a valid generalized time value because it contains an invalid \
+### character '%s' at position %d
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE_24=The provided value \
+### "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_25=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA_26=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das letzte nicht-Leerzeichen ein Komma oder Semikolon ist
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT_27=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da die numerische Ziffer '%s' als erstes Zeichen in einem Attributnamen unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR_28=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das Zeichen '%c' an Position '%d' in einem Attributnamen unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR_29=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das Unterstrich-Zeichen in einem Attributnamen unzul\u00e4ssig ist, au\u00dfer wenn die Konfigurationsoption %s aktiviert ist
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH_30=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das Bindestrich-Zeichen als erstes Zeichen in einem Attributnamen unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE_31=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das Unterstrich-Zeichen als erstes Zeichen in einem Attributnamen unzul\u00e4ssig ist, selbst wenn die Konfigurationsoption %s aktiviert ist
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT_32=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da die Ziffer '%c' nicht als erstes Zeichen in einem Attributnamen zul\u00e4ssig ist, au\u00dfer wenn der Name als OID festgelegt oder die Konfigurationsoption %s aktiviert ist
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME_33=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da er einen RDN mit leerem Attributnamen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD_34=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da der geparste Attributname %s einen Punkt enth\u00e4lt, der Name aber anscheinend kein g\u00fcltiger OID ist
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME_35=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das letzte nicht-Leerzeichen Teil des Attributnamens '%s' ist
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL_36=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das n\u00e4chste nicht-Leerzeichen nach dem Attributnamen "%s" ein Gleichheitszeichen sein m\u00fcsste, stattdessen aber '%c' ist
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR_37=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da das Zeichen '%c' an Position %d unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT_38=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da ein Attributwert zwar mit einem Rautezeichen (#) beginnt, diesem aber kein positives Vielfaches von zwei hexadezimalen Ziffern folgt
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT_39=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da ein Attributwert zwar mit einem Rautezeichen (#) beginnt, aber auch das Zeichen %c enth\u00e4lt, welches keine g\u00fcltige hexadezimale Ziffer darstellt
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE_40=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da ein unerwarteter Fehler beim Versuch aufgetreten ist, einen Attributwert von einem der RDN-Komponenten zu parsen: "%s"
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE_41=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da einer der RDN-Komponenten einen Wert mit Anf\u00fchrungszeichen enth\u00e4lt, bei dem das schlie\u00dfende Anf\u00fchrungszeichen fehlt
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID_42=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name (DN) geparst werden, da einer der RDN-Komponenten einen Wert mit einer vereinzelten hexadezimalen Ziffer enth\u00e4lt, auf die keine zweite hexadezimale Ziffer folgt
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO_43=The provided value "%s" could \
+### not be parsed as a valid integer because the first digit may not be zero \
+### unless it is the only digit
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH_44=The provided value "%s" \
+### could not be parsed as a valid integer because the dash may only appear if it \
+### is the first character of the value followed by one or more digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER_45=The provided value "%s" \
+### could not be parsed as a valid integer because character '%c' at position %d \
+### is not allowed in an integer value
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE_46=The provided value "%s" could \
+### not be parsed as a valid integer because it did not contain any digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE_47=The provided value "%s" \
+### could not be parsed as a valid integer because it contained only a dash not \
+### followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE_48=Der angegebene Wert kann nicht als g\u00fcltiger OID geparst werden, da er keine Zeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER_49=Der angegebene Wert "%s"kann nicht als g\u00fcltiger OID geparst werden, da er ein unzul\u00e4ssiges Zeichen an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS_50=Der angegebene Wert "%s" kann nicht als g\u00fcltiger OID geparst werden, da er zwei aufeinanderfolgende Punkte an oder bei Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD_51=Der angegebene Wert "%s" kann nicht als g\u00fcltiger OID geparst werden, da er mit einem Punkt endet
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE_52=Der angegebene Wert kann nicht als g\u00fcltige Attributtypbeschreibung geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS_53=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE_54=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID_55=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID_56=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID_57=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_58=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da er das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS_59=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_60=Der angegebene Wert "%s" kann nicht als Attributtypbeschreibung geparst werden, da ein einfaches Anf\u00fchrungszeichen als erstes nicht-Leerzeichen nach Token %s erwartet, stattdessen aber das Zeichen %s gefunden wurde
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE_61=The definition for \
+### the attribute type with OID %s declared a superior type with an OID of %s. \
+### No attribute type with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR_62=The definition for \
+### the attribute type with OID %s declared that approximate matching should be \
+### performed using the matching rule "%s". No such approximate matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR_63=The definition for \
+### the attribute type with OID %s declared that equality matching should be \
+### performed using the matching rule "%s". No such equality matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR_64=The definition for \
+### the attribute type with OID %s declared that ordering matching should be \
+### performed using the matching rule "%s". No such ordering matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR_65=The definition for \
+### the attribute type with OID %s declared that substring matching should be \
+### performed using the matching rule "%s". No such substring matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX_66=The definition for the \
+### attribute type with OID %s declared that it should have a syntax with OID %s. \
+### No such syntax is configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE_67=The definition \
+### for the attribute type with OID %s declared that it should have an attribute \
+### usage of %s. This is an invalid usage
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS_68=The provided value \
+### "%s" could not be parsed as an attribute type description because a single \
+### quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE_69=Der angegebene Wert kann nicht als g\u00fcltige Objektklassenbeschreibung geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS_70=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE_71=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID_72=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID_73=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID_74=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_75=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da er das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS_76=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_77=Der angegebene Wert "%s" kann nicht als Objektklassenbeschreibung geparst werden, da ein einfaches Anf\u00fchrungszeichen als erstes nicht-Leerzeichen nach Token %s erwartet, stattdessen aber das Zeichen %s gefunden wurde
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS_78=The definition \
+### for the objectclass with OID %s declared a superior objectclass with an OID \
+### of %s. No objectclass with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS_79=The provided \
+### value "%s" could not be parsed as an objectclass description because a single \
+### quote was expected at position %d but the character %s was found instead
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR_80=The definition \
+### for the objectclass with OID %s declared that it should include required \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR_81=The definition \
+### for the objectclass with OID %s declared that it should include optional \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER_82=The provided value "%s" \
+### cannot be parsed as a valid IA5 string because it contains an illegal \
+### character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE_83=Gibt an, ob die Telefonnummer-Attributsyntax einen Strict-Modus verwenden soll, bei dem nur Werte im ITU-T E.123-Format zul\u00e4ssig sind. Wenn dieser aktiviert ist, werden alle anderen Werte, die nicht diesem Format entsprechen, zur\u00fcckgewiesen. Wenn dieser deaktiviert ist, werden allen anderen Werte akzeptiert, es werden aber nur die Ziffern bei der \u00dcbereinstimmung ber\u00fccksichtigt
+###SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE_84=An error \
+### occurred while trying to retrieve attribute \
+### ds-cfg-strict-format from configuration entry %s: %s. The \
+### Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+### for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY_85=Der angegebene Wert ist keine g\u00fcltige Telefonnummer, da er leer oder Null ist
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS_86=Der angegebene Wert "%s" ist keine g\u00fcltige Telefonnummer, da die strikte Telefonnummerpr\u00fcfung aktiviert ist und der Wert nicht in \u00dcbereinstimmung mit der ITU-T E.123-Spezifikation mit einem Pluszeichen beginnt
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR_87=Der angegebene Wert "%s" ist keine g\u00fcltige Telefonnummer, da die strikte Telefonnummerpr\u00fcfung aktiviert ist und das Zeichen %s an Position %d gem\u00e4\u00df der ITU-T E.123-Spezifikation unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS_88=Der angegebene Wert "%s" ist keine g\u00fcltige Telefonnummer, da er keine numerischen Ziffern enth\u00e4lt
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE_89=Der Wert des Konfigurationsattributs ds-cfg-strict-format, der angibt ob die strikte Telefonnummer-Syntaxpr\u00fcfung verwendet wird, wurde aktualisiert auf %s in Konfigurationseintrag %s
+###SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR_90=The provided value \
+### "%s" is not a valid numeric string because it contained character %s at \
+### position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE_91=Der angegebene Wert ist keine g\u00fcltige numerische Zeichenkette, da er keine Zeichen enth\u00e4lt. Ein numerischer Zeichenkettenwert muss mindestens eine numerische Ziffer oder ein Leerzeichen enthalten
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE_92=Der angegebene Wert kann nicht als g\u00fcltige Attributsyntaxbeschreibung geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS_93=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE_94=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID_95=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID_96=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID_97=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS_98=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN_99=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da ein unerwarteter Fehler aufgetreten ist beim Versuch, den Token "DESC" aus der Zeichenkette an oder bei Position %d zu lesen: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC_100=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da der Token "DESC" erwartet, stattdessen aber die Zeichenkette "%s" gefunden wurde
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE_101=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da ein unerwarteter Fehler aufgetreten ist beim Versuch, den Wert des Token "DESC" aus der Zeichenkette an oder bei Position %d zu lesen: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS_102=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da eine schlie\u00dfende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE_103=Der angegebene Wert "%s" kann nicht als Attributsyntaxbeschreibung geparst werden, da das unzul\u00e4ssige Zeichen %s an Position %d hinter der schlie\u00dfenden Klammer gefunden wurde
+###SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS_104=The provided \
+### value "%s" could not be parsed as an attribute syntax description because a \
+### single quote was expected at position %d but the character %s was found \
+### instead
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE_105=The provided value \
+### could not be parsed as a printable string because it was null or empty. A \
+### printable string must contain at least one character
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER_106=The provided \
+### value "%s" could not be parsed as a printable string because it contained an \
+### invalid character %s at position %d
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD_107=The provided value "*" \
+### could not be parsed as a substring assertion because it consists only of a \
+### wildcard character and zero-length substrings are not allowed
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS_108=The provided \
+### value "%s" could not be parsed as a substring assertion because it contains \
+### consecutive wildcard characters at position %d and zero-length substrings are \
+### not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT_109=Der angegebene Wert %s ist zu kurz, um ein g\u00fcltiger UTC-Zeitwert zu sein
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR_110=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da das Zeichen %s im Jahrhundert bzw. in der Jahresangabe unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH_111=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da %s keine g\u00fcltige Monatsangabe ist
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY_112=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da %s keine g\u00fcltige Tagesangabe ist
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR_113=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da %s keine g\u00fcltige Stundenangabe ist
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE_114=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da %s keine g\u00fcltige Minutenangabe ist
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR_115=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da er das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND_116=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da %s keine g\u00fcltige Sekundenangabe ist
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET_117=Der angegebene Wert %s ist kein g\u00fcltiger UTC-Zeitwert, da %s keine g\u00fcltiger GMT-Offset ist
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE_118=Der angegebene Wert %s kann nicht als g\u00fcltige UTC-Zeit geparst werden: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE_119=Der angegebene Wert kann nicht als g\u00fcltige DIT-Inhaltsregelbeschreibung geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS_120=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE_121=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID_122=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID_123=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID_124=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS_125=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_126=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da er das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS_127=Die DIT-Inhaltsregel "%s" ist mit der strukturellen Objektklasse %s verkn\u00fcpft, die nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL_128=Die DIT-Inhaltsregel "%s" ist mit der Objektklasse mit dem OID %s (%s) verkn\u00fcpft. Diese Objektklasse ist zwar im Serverschema vorhanden, ist aber nicht als strukturelle Klasse, sondern als %s definiert
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS_129=Die DIT-Inhaltsregel "%s" ist mit der Hilfobjektklasse %s verkn\u00fcpft, die nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY_130=Die DIT-Inhaltsregel "%s" ist mit der Hilfsobjektklasse %s verkn\u00fcpft. Diese Objektklasse ist zwar im Serverschema vorhanden, ist aber nicht als Hilfsklasse, sondern als %s definiert
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR_131=Die DIT-Inhaltsregel "%s" ist mit dem erforderlichen Attributtyp %s verkn\u00fcpft, der nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR_132=Die DIT-Inhaltsregel "%s" ist mit dem optionalen Attributtyp %s verkn\u00fcpft, der nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR_133=Die DIT-Inhaltsregel "%s" ist mit dem unzul\u00e4ssigen Attributtyp %s verkn\u00fcpft, der nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS_134=Der angegebene Wert "%s" kann nicht als DIT-Inhaltsregelbeschreibung geparst werden, da ein einfaches Anf\u00fchrungszeichen an Position %d erwartet wurde. Stattdessen wurde das Zeichen %s gefunden
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE_135=Der angegebene Wert kann nicht als g\u00fcltige Namensformbeschreibung geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS_136=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%c' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE_137=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID_138=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID_139=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %c an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID_140=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %c an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS_141=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_142=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da er das unzul\u00e4ssige Zeichen %c an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS_143=Die Namensformbeschreibung "%s" ist mit der strukturellen Objektklasse %s verkn\u00fcpft, die nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL_144=Die Namensformbeschreibung "%s" ist mit der Objektklasse mit dem OID %s (%s) verkn\u00fcpft. Diese Objektklasse ist zwar im Serverschema vorhanden, ist aber nicht als strukturelle Klasse, sondern als %s definiert
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR_145=Die Definition der Namensform mit dem OID %s gibt an, dass das erforderliche Attribut "%s" enthalten sein muss. Im Serverschema ist kein Attributtyp vorhanden, der mit diesem Namen oder OID \u00fcbereinstimmt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR_146=Die Definition der Namensform mit dem OID %s gibt an, dass das optionale Attribut "%s" enthalten sein muss. Im Serverschema ist kein Attributtyp vorhanden, der mit diesem Namen oder OID \u00fcbereinstimmt
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS_147=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da er nicht die strukturelle Objektklasse angibt, der er zugeordnet ist
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS_148=Der angegebene Wert "%s" kann nicht als Namensformbeschreibung geparst werden, da ein einfaches Anf\u00fchrungszeichen an Position %d erwartet, stattdessen aber das Zeichen %c gefunden wurde
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE_149=Der angegebene Wert kann nicht als g\u00fcltige \u00dcbereinstimmungsregelbeschreibung geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS_150=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE_151=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID_152=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID_153=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID_154=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS_155=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_156=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da er das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX_157=Die \u00dcbereinstimmungsregelbeschreibung "%s" ist der Attributsyntax %s zugeordnet, welche nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX_158=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da er nicht die Attributsyntax angibt, der er zugeordnet ist
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS_159=Der angegebene Wert "%s" kann nicht als \u00dcbereinstimmungsregelbeschreibung geparst werden, da ein einfaches Anf\u00fchrungszeichen an Position %d erwartet, stattdessen aber das Zeichen %s gefunden wurde
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE_160=Der angegebene Wert kann nicht als g\u00fcltige Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS_161=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE_162=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID_163=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID_164=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID_165=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE_166=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da die angegebene \u00dcbereinstimmungsregel %s unbekannt ist
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS_167=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_168=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da er das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR_169=Die Verwendungsbeschreibung der \u00dcbereinstimmungsregel "%s" ist dem Attributtyp %s zugeordnet, der nicht im Serverschema definiert ist
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR_170=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da er nicht den Satz von Attributtypen angibt, die mit dem zugeordneten OID verwendet werden k\u00f6nnen
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS_171=Der angegebene Wert "%s" kann nicht als Verwendungsbeschreibung der \u00dcbereinstimmungsregel geparst werden, da ein einfaches Anf\u00fchrungszeichen an Position %d erwartet, stattdessen aber das Zeichen %s gefunden wurde
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE_172=Der angegebene Wert kann nicht als g\u00fcltige DIT-Strukturregelbeschreibung geparst werden, da er leer ist oder nur Leerzeichen enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS_173=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE_174=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da das Ende des Werts erreicht wurde, obwohl der Directory-Server noch mehr Daten erwartet hat
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID_175=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da die Regel-ID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS_176=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da er eine unerwartete schlie\u00dfende Klammer an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_177=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da er das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM_178=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da er auf die unbekannte Namensform %s verweist
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID_179=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da er auf die unbekannte Regel-ID %d f\u00fcr eine \u00fcbergeordnete DIT-Strukturregel verweist
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM_180=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da er nicht die Namensform f\u00fcr die Regel angibt
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS_181=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da eine \u00f6ffnende Klammer an Position %d erwartet, stattdessen aber das Zeichen '%s' gefunden wurde
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID_182=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da der numerische OID zwei aufeinanderfolgende Punkte an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID_183=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da der numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID_184=Der angegebene Wert "%s" kann nicht als DIT-Strukturregelbeschreibung geparst werden, da der nicht-numerische OID das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT_185=Der angegebene Wert "%s" ist zu kurz, um ein g\u00fcltiger Telexnummerwert zu sein
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE_186=Der angegebene Wert "%s" enth\u00e4lt keine g\u00fcltige Telexnummer, da das Zeichen %s an Position %d kein g\u00fcltiges druckbares Zeichenkettenzeichen ist
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR_187=Der angegebene Wert "%s" enth\u00e4lt keine g\u00fcltige Telexnummer, da das Zeichen %s an Position %d weder ein g\u00fcltiges druckbares Zeichenkettenzeichen noch ein Dollarzeichen enh\u00e4lt, das die Telexnummerkomponenten trennt
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED_188=Der angegebene Wert "%s" enth\u00e4lt keine g\u00fcltige Telexnummer, da das Ende des Werts gefunden wurde, bevor eine durch drei Dollarzeichen getrennte druckbare Zeichenkette gelesen werden konnte
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY_189=Der angegebene Wert kann nicht als g\u00fcltige Faxnummer geparst werden, da er leer ist
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE_190=Der angegebene Wert "%s" kann nicht als g\u00fcltige Faxnummer geparst werden, da das Zeichen %s an Position %d kein g\u00fcltiges druckbares Zeichenkettenzeichen ist
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR_191=Der angegebene Wert "%s" kann nicht als g\u00fcltige Faxnummer geparst werden, da er auf ein Dollarzeichen endet, diesem aber ein Faxparameter folgen m\u00fcsste
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER_192=Der angegebene Wert "%s" kann nicht als g\u00fcltige Faxnummer geparst werden, da die Zeichenkette %s zwischen den Positionen %d und %d kein g\u00fcltiger Faxparameter ist
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN_193=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Namens- und optionaler UID-Wert geparst werden, da ein Fehler aufgetreten ist beim Versuch, den DN-Teil zu parsen: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT_194=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Namens- und optionaler UID-Wert geparst werden, da der UID-Teil die unzul\u00e4ssige bin\u00e4re Ziffer %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY_195=Der angegebene Wert kann nicht als g\u00fcltige Teletexendger\u00e4te-ID geparst werden, da er leer ist
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE_196=Der angegebene Wert "%s" kann nicht als g\u00fcltige Teletexendger\u00e4te-ID geparst werden, da das Zeichen %s an Position %d kein g\u00fcltiges druckbares Zeichenkettenzeichen ist
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR_197=Der angegebene Wert "%s" kann nicht als g\u00fcltige Teletexendger\u00e4te-ID geparst werden, da er auf ein Dollarzeichen endet, diesem aber ein TTX-Parameter folgen m\u00fcsste
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON_198=Der angegebene Wert "%s" kann nicht als g\u00fcltige Teletexendger\u00e4te-ID geparst werden, da die Parameterzeichenkette keinen Doppelpunkt enth\u00e4lt, der den Namen vom Wert trennt
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER_199=Der angegebene Wert "%s" kann nicht als g\u00fcltige Teletexendger\u00e4te-ID geparst werden, da die Zeichenkette "%s" kein g\u00fcltiger TTX-Parametername ist
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE_200=Der angegebene Wert kann nicht als sonstiger Mailboxwert geparst werden, da er leer ist
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE_201=Der angegebene Wert "%s" kann nicht als sonstiger Mailboxwert geparst werden, da kein Mailboxtyp vor dem Dollarzeichen angegeben ist
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR_202=Der angegebene Wert "%s" kann nicht als sonstiger Mailboxwert geparst werden, da der Mailboxtyp das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX_203=Der angegebene Wert "%s" kann nicht als sonstiger Mailboxwert geparst werden, da keine Mailbox hinter dem Dollarzeichen angegeben ist
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR_204=Der angegebene Wert "%s" kann nicht als sonstiger Mailboxwert geparst werden, da die Mailbox das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC_205=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da er keinen Objektklassennamen oder OID vor dem Rautezeichen (#) enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR_206=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da der Kriterienteil %s das unzul\u00e4ssige Zeichen %c an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN_207=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da beim Kriterienteil %s die zur \u00f6ffnenden Klammer geh\u00f6rende schlie\u00dfende Klammer fehlt
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK_208=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da der Kriterienteil %s mit einem Fragezeichen beginnt, diesem aber als Zeichenkette weder "true" noch "false" folgen
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR_209=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da der Kriterienteil %s kein Dollarzeichen enth\u00e4lt, das den Attributtyp vom \u00dcbereinstimmungstyp trennt
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR_210=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da im Kriterienteil %s kein Attributtyp vor dem Dollarzeichen festgelegt ist
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE_211=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da im Kriterienteil %s kein \u00dcbereinstimmungstyp nach dem Dollarzeichen festgelegt ist
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE_212=Der angegebene Wert "%s" kann nicht als Richtwert geparst werden, da im Kriterienteil %s ein ung\u00fcltiger \u00dcbereinstimmungstyp an Position %d festgelegt ist
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP_213=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da er kein Rautzeichen (#) enth\u00e4lt, das die Objektklasse vom Kriterium trennt
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC_214=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da er keinen Objektklassennamen oder OID vor dem Rautezeichen (#) enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID_215=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da der numerische OID %s, der die Objektklasse festlegt, zwei aufeinanderfolgende Punkt an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID_216=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da der numerische OID %s, der die Objektklasse festlegt, das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME_217=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da der Objektklassennamen %s das unzul\u00e4ssige Zeichen %s an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP_218=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da er kein Rautzeichen (#) enth\u00e4lt, das das Kriterium vom Umfang trennt
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE_219=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da kein Umfang nach dem Rautezeichen (#) angegeben ist
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE_220=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da der angegebene Umfang %s ung\u00fcltig ist
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA_221=Der angegebene Wert "%s" kann nicht als verbesserter Richtwert geparst werden, da keine Kriterien zwischen den Rautezeichen (#) festgelegt sind
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE_222=Der angegebene Wert %s kann nicht als g\u00fcltiger OID geparst werden: %s
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE_223=An unexpected \
+### error occurred while trying to normalize value %s as a generalized time \
+### value: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE_224=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseExactOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE_225=An error occurred while \
+### attempting to compare two objects using the caseExactOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE_226=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE_227=An error occurred while \
+### attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE_228=An error \
+### occurred while attempting to compare two AttributeValue objects using the \
+### generalizedTimeOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE_229=An error occurred \
+### while attempting to compare two objects using the \
+### generalizedTimeOrderingMatch matching rule because the objects were of an \
+### unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+### value objects may be compared
+###SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE_230=An error occurred while \
+### attempting to compare two AttributeValue objects using the \
+### integerOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE_231=An error occurred while \
+### attempting to compare two objects using the integerOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE_232=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### numericStringOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE_233=An error occurred \
+### while attempting to compare two objects using the numericStringOrderingMatch \
+### matching rule because the objects were of an unsupported type %s. Only byte \
+### arrays, ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE_234=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### octetStringOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE_235=An error occurred while \
+### attempting to compare two objects using the octetStringOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH_236=The provided value "%s" has \
+### an invalid length for a UUID. All UUID values must have a length of exactly \
+### 36 bytes, but the provided value had a length of %d bytes
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH_237=The provided value "%s" should \
+### have had a dash at position %d, but the character '%s' was found instead
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX_238=The provided value "%s" should \
+### have had a hexadecimal digit at position %d, but the character '%s' was found \
+### instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH_239=Gibt an, ob Attribute mit der Verzeichniszeichenkettensyntax Werte der L\u00e4nge Null haben d\u00fcrfen. Dies wird von den LDAP-Spezifikationen technisch nicht zugelassen, kann aber f\u00fcr die Abw\u00e4rtskompatibilit\u00e4t mit vorherigen Directory-Server-Versionen n\u00fctzlich sein
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH_240=An \
+### error occurred while trying to determine the value of the %s configuration \
+### attribute, which indicates whether directory string attributes should be \
+### allowed to have zero-length values: %s
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE_241=The \
+### operation attempted to assign a zero-length value to an attribute with the \
+### directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH_242=Das Attribut %s im Konfigurationseintrag %s wurde mit dem neuen Wert %s aktualisiert
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR_243=The provided \
+### authPassword value had an invalid scheme character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_244=The provided authPassword value \
+### had a zero-length scheme element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR_245=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the scheme and authInfo elements
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR_246=The provided \
+### authPassword value had an invalid authInfo character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_247=The provided authPassword \
+### value had a zero-length authInfo element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR_248=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the authInfo and authValue elements
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS_249=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### it did not start with a parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE_250=The provided value "%s" could not \
+### be parsed by the integer first component matching rule because it did not \
+### have any non-space characters after the opening parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT_251=The provided value "%s" \
+### could not be parsed by the integer first component matching rule because it \
+### did not have any space characters after the first component
+###SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT_252=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### the first component does not appear to be an integer value
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE_253=No value was given to decode by \
+### the user password attribute syntax
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE_254=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not start with the opening curly brace ("{") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE_255=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not contain a closing curly brace ("}") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME_256=Unable to decode the provided \
+### value according to the user password syntax because the value does not \
+### contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID_257=Der angegebene Wert "%s" kann nicht als g\u00fcltige RFC 3672-Unteransichtsspezifikation geparst werden
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID_258=Der angegebene Wert "%s" kann nicht als g\u00fcltige absolute Unteransichtsspezifikation geparst werden
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID_259=Der angegebene Wert "%s" kann nicht als g\u00fcltige relative Unteransichtsspezifikation geparst werden
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER_260=The provided value %s is not \
+### allowed for attributes with a Integer syntax
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR_261=The provided \
+### authPassword value had an invalid authValue character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE_262=The provided authPassword \
+### value had a zero-length authValue element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR_263=The provided \
+### authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER_264=Der angegebene Wert "%s" kann nicht als Attributsyntaxerweiterung geparst werden, da er ein unzul\u00e4ssige Zeichen an Position %d enth\u00e4lt
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION_265=Der Attributsyntax kann wegen einer ung\u00fcltigen Erweiterung nicht geparst werden.%s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE_266=The definition \
+### for objectclass %s is invalid because it has an objectclass type of %s but \
+### this is incompatible with the objectclass type %s for the superior class %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP_267=The \
+### definition for objectclass %s is invalid because it is defined as a \
+### structural class but its superior chain does not include the "top" \
+### objectclass
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE_268=The definition \
+### for attribute type %s is invalid because its attribute usage %s is not the \
+### same as the usage for its superior type %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE_269=The \
+### definition for attribute type %s is invalid because it is defined as a \
+### collective type but the superior type %s is not collective
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE_270=The \
+### definition for attribute type %s is invalid because it is not defined as a \
+### collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL_271=Die DIT-Inhaltsregel "%s" ist ung\u00fcltig, da sie die Verwendung des Attributtyps %s verbietet, der von der zugeordneten strukturellen Objektklasse %s erfordert wird
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY_272=Die DIT-Inhaltsregel "%s" ist ung\u00fcltig, da sie die Verwendung des Attributtyps %s verbietet, der von der zugeordneten Hilfsobjektklasse %s erfordert wird
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL_273=The definition \
+### for attribute type %s is invalid because it is declared COLLECTIVE but does \
+### not have a usage of userApplications
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL_274=The \
+### definition for attribute type %s is invalid because it is declared \
+### NO-USER-MODIFICATION but does not have an operational usage
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR_275=The \
+### provided value %s is not a valid generalized time value because it contains \
+### illegal character %s in the fraction component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION_276=The provided \
+### value %s is not a valid generalized time value because it does not contain at \
+### least one digit after the period to use as the fractional component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO_277=The provided \
+### value %s is not a valid generalized time value because it does not end with \
+### 'Z' or a time zone offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME_278=The provided value \
+### %s is not a valid generalized time value because it represents an invalid \
+### time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED_279=Ein Schemaelement konnte nicht importiert werden: %s, %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE_280=Die Sortierregel %s unter dem entsprechenden Regeleintrag %s ist ung\u00fcltig, da JVM das Gebietsschema %s nicht unterst\u00fctzt
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT_281=Die angegebene Sortierregel %s enth\u00e4lt kein g\u00fcltiges Format von OID:LOCALE
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR_282=Der angegebene Wert "%s" kann nicht als g\u00fcltiger Distinguished Name geparst werden, da ein Attributswert mit einem Zeichen an Position '%d' vermieden werden muss
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR_283=Der angegebene Wert "%s" kann nicht als g\u00fcltige Attributstypedefinition geparst werden, da das Zeichen '%c' an Position '%d' in einem Attributstypnamen unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_284=Der angegebene Wert "%s" kann nicht als g\u00fcltige Attributstypdefiinition geparst werden, da das Unterstrich-Zeichen in einem Attributtypenamen unzul\u00e4ssig ist, au\u00dfer wenn die Konfigurationsoption %s aktiviert ist
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_285=Der angegebene Wert "%s" kann nicht als g\u00fcltige Attributstypdefinition geparst werden, da das Bindestrich-Zeichen als erstes Zeichen in einem Attributstypnamen unzul\u00e4ssig ist
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_286=Der angegebene Wert "%s" kann nicht als g\u00fcltige Attributstypdefinition geparst werden, da das Unterstrich-Zeichen als erstes Zeichen in einem Attributstypnamen unzul\u00e4ssig ist, selbst wenn die Konfigurationsoption %s aktiviert ist
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_287=Der angegebene Wert "%s" kann nicht als g\u00fcltige Attributstypdefinition geparst werden, da die Ziffer '%c' nicht als erstes Zeichen in einem Attributstypnamen zul\u00e4ssig ist, au\u00dfer wenn der Name als OID festgelegt oder die Konfigurationsoption %s aktiviert ist
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR_288=Der angegebene Wert "%s" kann nicht als g\u00fcltige Objektklassendefinition geparst werden, da das Zeichen '%c' an Position '%d' in einem Objektklassenamen unzul\u00e4ssig ist
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_289=Der angegebene Wert "%s" kann nicht als g\u00fcltige Objektklassendefinition geparst werden, da das Unterstrich-Zeichen in einem Attributnamen unzul\u00e4ssig ist, au\u00dfer wenn die Konfigurationsoption %s aktiviert ist
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_290=Der angegebene Wert "%s" kann nicht als g\u00fcltige Objektklassendefinition geparst werden, da das Bindestrich-Zeichen als erstes Zeichen in einem Objektklassennamen unzul\u00e4ssig ist
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_291=Der angegebene Wert "%s" kann nicht als g\u00fcltige Objektklassendefinition geparst werden, da das Unterstrich-Zeichen als erstes Zeichen in einem Objektklassennamen unzul\u00e4ssig ist, selbst wenn die Konfigurationsoption %s aktiviert ist
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_292=Der angegebene Wert "%s" kann nicht als g\u00fcltige Objektklassendefinition geparst werden, da das erste Zeichen '%c' in einem Objektklassennamen unzul\u00e4ssig ist, selbst wenn die Konfigurationsoption %s aktiviert ist
diff --git a/sdk/src/com/sun/opends/sdk/util/messages_es.properties b/sdk/src/com/sun/opends/sdk/util/messages_es.properties
new file mode 100755
index 0000000..5dda414
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages_es.properties
@@ -0,0 +1,531 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+#
+# Global directives
+#
+global.ordinal=-1
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE_1=Unable to retrieve \
+### approximate matching rule %s used as the default for the %s attribute syntax. \
+### Approximate matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE_2=Unable to retrieve \
+### equality matching rule %s used as the default for the %s attribute syntax. \
+### Equality matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE_3=Unable to retrieve \
+### ordering matching rule %s used as the default for the %s attribute syntax. \
+### Ordering matches will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE_4=Unable to retrieve \
+### substring matching rule %s used as the default for the %s attribute syntax. \
+### Substring matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN_5=The provided value "%s" is not \
+### allowed for attributes with a Boolean syntax. The only allowed values are \
+### 'TRUE' and 'FALSE'
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT_6=The provided value "%s" is too \
+### short to be a valid bit string. A bit string must be a series of binary \
+### digits surrounded by single quotes and followed by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED_7=The provided value "%s" is not \
+### a valid bit string because it is not surrounded by single quotes and followed \
+### by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT_8=The provided value "%s" is \
+### not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH_9=El valor proporcionado "%s" no es una cadena de pa\u00edses v\u00e1lida porque no tiene una longitud de dos caracteres.
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE_10=El valor proporcionado "%s" no es una cadena de pa\u00edses v\u00e1lida porque contiene uno o m\u00e1s caracteres no imprimibles.
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS_11=El valor proporcionado "%s" no es un valor de m\u00e9todo de entrega v\u00e1lido porque no contiene elementos
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT_12=El valor proporcionado "%s" no es un valor de m\u00e9todo de entrega v\u00e1lido porque "%s" no es un m\u00e9todo v\u00e1lido
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT_13=The provided value "%s" \
+### is too short to be a valid generalized time value
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR_14=The provided value \
+### "%s" is not a valid generalized time value because the '%s' character is not \
+### allowed in the century or year specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH_15=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid month \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY_16=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid day \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR_17=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid hour \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE_18=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid minute \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND_19=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid second \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND_20=The provided \
+### value "%s" is not a valid generalized time value because the sub-second \
+### component is not valid (between 1 and 3 numeric digits)
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND_21=The provided value \
+### "%s" is not a valid generalized time value because the sub-second value may \
+### not contain more than three digits
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET_22=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+### offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR_23=The provided value \
+### "%s" is not a valid generalized time value because it contains an invalid \
+### character '%s' at position %d
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE_24=The provided value \
+### "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_25=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA_26=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque el \u00faltimo car\u00e1cter distinto a un espacio era una coma o punto y coma
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT_27=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque no se permite el d\u00edgito num\u00e9rico '%s' como primer car\u00e1cter en un nombre de atributo
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR_28=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque no se permite el car\u00e1cter '%c' en la posici\u00f3n %d en un nombre de atributo
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR_29=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque no se permite el car\u00e1cter de subrayado en un nombre de atributo a menos que est\u00e9 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH_30=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque no se permite el car\u00e1cter de gui\u00f3n como primer car\u00e1cter de un nombre de atributo
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE_31=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque no se permite el car\u00e1cter de subrayado como primer car\u00e1cter de un nombre de atributo incluso si est\u00e1 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT_32=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque no se permite el d\u00edgito '%c' como primer car\u00e1cter de un nombre de atributo a menos que est\u00e9 especificado el nombre como un OID o que est\u00e9 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME_33=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque conten\u00eda un RDN que a su vez conten\u00eda un nombre de atributo vac\u00edo
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD_34=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque el nombre de atributo analizado %s inclu\u00eda un punto, sin embargo no parec\u00eda ser un OID v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME_35=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque el \u00faltimo car\u00e1cter distinto a un espacio formaba parte del nombre de atributo '%s'
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL_36=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque el siguiente car\u00e1cter distinto a un espacio detr\u00e1s del nombre de atributo "%s" deber\u00eda haber sido un signo igual en lugar de '%c'
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR_37=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque el car\u00e1cter '%c' en la posici\u00f3n %d no es v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT_38=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque un valor de atributo comenzaba con un signo de almohadilla (#), sin embargo, no estaba seguido por un m\u00faltiplo positivo de dos d\u00edgitos hexadecimales
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT_39=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque un valor de atributo comenzaba con un signo de almohadilla (#) sin embargo conten\u00eda un car\u00e1cter %c que no era un d\u00edgito hexadecimal v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE_40=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque se ha producido un fallo inesperado al intentar analizar un valor de atributo desde uno de los componentes de RDN: "%s"
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE_41=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque uno de los componentes de RDN inclu\u00eda un valor citado que no ten\u00eda la comilla de cierre correspondiente
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID_42=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque uno de los componentes de RDN inclu\u00eda un valor con un d\u00edgito hexadecimal escapado que no estaba seguido por un segundo d\u00edgito hexadecimal
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO_43=The provided value "%s" could \
+### not be parsed as a valid integer because the first digit may not be zero \
+### unless it is the only digit
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH_44=The provided value "%s" \
+### could not be parsed as a valid integer because the dash may only appear if it \
+### is the first character of the value followed by one or more digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER_45=The provided value "%s" \
+### could not be parsed as a valid integer because character '%c' at position %d \
+### is not allowed in an integer value
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE_46=The provided value "%s" could \
+### not be parsed as a valid integer because it did not contain any digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE_47=The provided value "%s" \
+### could not be parsed as a valid integer because it contained only a dash not \
+### followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE_48=No se pudo analizar el valor proporcionado como un OID v\u00e1lido porque no conten\u00eda caracteres
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER_49=No se pudo analizar el valor proporcionado "%s" como un OID v\u00e1lido porque ten\u00eda un car\u00e1cter no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS_50=No se pudo analizar el valor proporcionado "%s" como un OID v\u00e1lido porque ten\u00eda dos puntos consecutivos en o cerca de la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD_51=No se pudo analizar el valor proporcionado "%s" como un OID v\u00e1lido porque finaliza con un punto
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE_52=No se pudo analizar el valor proporcionado como descripci\u00f3n de tipo de atributo v\u00e1lido porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS_53=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de tipo de atributo porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar del par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE_54=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de tipo de atributo porque se encontr\u00f3 el final del valor si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID_55=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de tipo de atributo porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID_56=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de tipo de atributo porque el OID num\u00e9rico conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID_57=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de tipo de atributo porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_58=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de tipo de atributo porque conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS_59=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de tipo de atributo porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_60=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de tipo de atributo porque se esperaba una comilla como el primer car\u00e1cter no blanco a continuaci\u00f3n del token %s. Sin embargo, se encontr\u00f3 el car\u00e1cter %s en su lugar
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE_61=The definition for \
+### the attribute type with OID %s declared a superior type with an OID of %s. \
+### No attribute type with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR_62=The definition for \
+### the attribute type with OID %s declared that approximate matching should be \
+### performed using the matching rule "%s". No such approximate matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR_63=The definition for \
+### the attribute type with OID %s declared that equality matching should be \
+### performed using the matching rule "%s". No such equality matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR_64=The definition for \
+### the attribute type with OID %s declared that ordering matching should be \
+### performed using the matching rule "%s". No such ordering matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR_65=The definition for \
+### the attribute type with OID %s declared that substring matching should be \
+### performed using the matching rule "%s". No such substring matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX_66=The definition for the \
+### attribute type with OID %s declared that it should have a syntax with OID %s. \
+### No such syntax is configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE_67=The definition \
+### for the attribute type with OID %s declared that it should have an attribute \
+### usage of %s. This is an invalid usage
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS_68=The provided value \
+### "%s" could not be parsed as an attribute type description because a single \
+### quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE_69=No se pudo analizar el valor proporcionado como descripci\u00f3n de clase de objeto v\u00e1lido porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS_70=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de clase de objeto porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar de un par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE_71=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de clase de objeto porque se encontr\u00f3 el final del valor si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID_72=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de clase de objeto porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID_73=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de clase de objeto porque el OID num\u00e9rico conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID_74=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de clase de objeto porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_75=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de clase de objeto porque conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS_76=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de clase de objeto porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_77=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de clase de objeto porque se esperaba una comilla como el primer car\u00e1cter no blanco a continuaci\u00f3n del token %s. Sin embargo, se encontr\u00f3 el car\u00e1cter %s en su lugar
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS_78=The definition \
+### for the objectclass with OID %s declared a superior objectclass with an OID \
+### of %s. No objectclass with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS_79=The provided \
+### value "%s" could not be parsed as an objectclass description because a single \
+### quote was expected at position %d but the character %s was found instead
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR_80=The definition \
+### for the objectclass with OID %s declared that it should include required \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR_81=The definition \
+### for the objectclass with OID %s declared that it should include optional \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER_82=The provided value "%s" \
+### cannot be parsed as a valid IA5 string because it contains an illegal \
+### character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE_83=Indica si la sintaxis de atributo de n\u00famero de tel\u00e9fono deber\u00eda utilizar un modo estricto en el que s\u00f3lo se aceptar\u00e1n valores con el formato E.123 de ITU-T. Si est\u00e1 habilitado, se rechazar\u00e1 cualquier valor con este formato. En el caso de que est\u00e9 deshabilitado, se aceptar\u00e1 cualquier valor, pero s\u00f3lo se tendr\u00e1n en cuenta los d\u00edgitos a la hora de llevar a cabo la comparaci\u00f3n
+###SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE_84=An error \
+### occurred while trying to retrieve attribute \
+### ds-cfg-strict-format from configuration entry %s: %s. The \
+### Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+### for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY_85=El valor proporcionado no es un n\u00famero de tel\u00e9fono v\u00e1lido porque est\u00e1 vac\u00edo o es nulo
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS_86=El valor proporcionado "%s" no es un n\u00famero de tel\u00e9fono v\u00e1lido porque est\u00e1 habilitada la comprobaci\u00f3n estricta de n\u00famero de tel\u00e9fono y el valor no comienza con un signo m\u00e1s (+) en cumplimiento de la especificaci\u00f3n E.123 de ITU-T
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR_87=El valor proporcionado "%s" no es un n\u00famero de tel\u00e9fono v\u00e1lido porque est\u00e1 habilitada la comprobaci\u00f3n estricta de n\u00famero de tel\u00e9fono y la especificaci\u00f3n E.123 de ITU-T no permite el car\u00e1cter %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS_88=El valor proporcionado "%s" no es un n\u00famero de tel\u00e9fono v\u00e1lido porque no contiene d\u00edgitos num\u00e9ricos
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE_89=El valor de atributo de configuraci\u00f3n ds-cfg-strict-format, que indica si se utiliza la comprobaci\u00f3n estricta de sintaxis de n\u00famero de tel\u00e9fono, se ha actualizado a %s en la entrada de configuraci\u00f3n %s
+###SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR_90=The provided value \
+### "%s" is not a valid numeric string because it contained character %s at \
+### position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE_91=El valor proporcionado no era una cadena num\u00e9rica v\u00e1lida porque no conten\u00eda caracteres. Un valor de cadena num\u00e9rico debe contener un espacio o un d\u00edgito num\u00e9rico como m\u00ednimo
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE_92=No se pudo analizar el valor proporcionado como descripci\u00f3n de sintaxis de atributo v\u00e1lido porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS_93=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de sintaxis de atributo porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar del par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE_94=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque se encontr\u00f3 el final del valor, si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID_95=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID_96=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque el OID num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID_97=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS_98=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN_99=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque se produjo un error inesperado al intentar leer el token "DESC" desde la cadena en o cerca de la posici\u00f3n %d: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC_100=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque se encontr\u00f3 la cadena "%s" en lugar del token "DESC"
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE_101=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque se produjo un error inesperado al intentar leer el valor del token "DESC" desde la cadena en o cerca de la posici\u00f3n %d: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS_102=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de sintaxis de atributo porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar del par\u00e9ntesis de cierre en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE_103=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de sintaxis de atributo porque se encontr\u00f3 un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d detr\u00e1s del par\u00e9ntesis de cierre
+###SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS_104=The provided \
+### value "%s" could not be parsed as an attribute syntax description because a \
+### single quote was expected at position %d but the character %s was found \
+### instead
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE_105=The provided value \
+### could not be parsed as a printable string because it was null or empty. A \
+### printable string must contain at least one character
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER_106=The provided \
+### value "%s" could not be parsed as a printable string because it contained an \
+### invalid character %s at position %d
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD_107=The provided value "*" \
+### could not be parsed as a substring assertion because it consists only of a \
+### wildcard character and zero-length substrings are not allowed
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS_108=The provided \
+### value "%s" could not be parsed as a substring assertion because it contains \
+### consecutive wildcard characters at position %d and zero-length substrings are \
+### not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT_109=El valor proporcionado %s es demasiado corto para considerarse un valor de tiempo UTC v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR_110=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque no se permite el car\u00e1cter %s en la especificaci\u00f3n de a\u00f1o o siglo
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH_111=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque %s no es una especificaci\u00f3n de mes v\u00e1lida
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY_112=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque %s no es una especificaci\u00f3n de d\u00eda v\u00e1lida
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR_113=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque %s no es una especificaci\u00f3n de hora v\u00e1lida
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE_114=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque %s no es una especificaci\u00f3n de minuto v\u00e1lida
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR_115=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque contiene un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND_116=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque %s no es una especificaci\u00f3n de segundo v\u00e1lida
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET_117=El valor proporcionado %s no es un valor de tiempo UTC v\u00e1lido porque %s no es un ajuste GMT v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE_118=No se pudo analizar el valor proporcionado %s como tiempo UTC v\u00e1lido: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE_119=No se pudo analizar el valor proporcionado como descripci\u00f3n de regla de contenido del DIT v\u00e1lida porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS_120=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de regla de contenido del DIT porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar del par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE_121=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de contenido del DIT porque se encontr\u00f3 el final del valor si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID_122=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de contenido del DIT porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID_123=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de contenido del DIT porque el OID num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID_124=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de contenido del DIT porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS_125=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de contenido del DIT porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_126=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de contenido del DIT porque conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS_127=La regla de contenido del DIT "%s" est\u00e1 asociada a una clase de objeto estructural %s que no est\u00e1 definida en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL_128=La regla de contenido del DIT "%s" est\u00e1 asociada a la clase de objeto con OID %s (%s). Esta clase de objeto existe en el esquema del servidor pero no est\u00e1 definida como estructural sino como %s.
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS_129=La regla de contenido del DIT "%s" est\u00e1 asociada a una clase de objeto auxiliar %s que no est\u00e1 definida en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY_130=La regla de contenido del DIT "%s" est\u00e1 asociada a una clase de objeto auxiliar %s. Esta clase de objeto existe en el esquema del servidor pero no se define como auxiliar sino como %s
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR_131=La regla de contenido del DIT "%s" est\u00e1 asociada a un tipo de atributo necesario %s que no est\u00e1 definido en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR_132=La regla de contenido del DIT "%s" est\u00e1 asociada a un tipo de atributo opcional %s que no est\u00e1 definido en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR_133=La regla de contenido del DIT "%s" est\u00e1 asociada a un tipo de atributo prohibido %s que no est\u00e1 definido en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS_134=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de regla de contenido del DIT porque se encontr\u00f3 el car\u00e1cter %3$s en lugar de una comilla en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE_135=No se pudo analizar el valor proporcionado como descripci\u00f3n de formato de nombre v\u00e1lido porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS_136=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de formato de nombre porque se encontr\u00f3 un car\u00e1cter '%3$c' en lugar de un par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE_137=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de formato de nombre porque se encontr\u00f3 el final del valor si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID_138=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de formato de nombre porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID_139=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de formato de nombre porque el OID num\u00e9rico conten\u00eda un car\u00e1cter %c no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID_140=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de formato de nombre porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter %c no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS_141=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de formato de nombre porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_142=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de formato de nombre porque conten\u00eda un car\u00e1cter %c no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS_143=La descripci\u00f3n de formato de nombre "%s" est\u00e1 asociada a una clase de objeto estructural %s que no est\u00e1 definida en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL_144=La descripci\u00f3n de formato de nombre "%s" est\u00e1 asociada a la clase de objeto con OID %s (%s). Esta clase de objeto existe en el esquema del servidor pero no est\u00e1 definida como estructural sino como %s.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR_145=La definici\u00f3n del formato de nombre con OID %s declar\u00f3 que deber\u00eda incluir el atributo necesario "%s". No existe ning\u00fan tipo de atributo que coincida con este nombre u OID en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR_146=La definici\u00f3n del formato de nombre con OID %s declar\u00f3 que deber\u00eda incluir el atributo opcional "%s". No existe ning\u00fan tipo de atributo que coincida con este nombre u OID en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS_147=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de formato de nombre porque no especifica la clase de objeto estructural con la que est\u00e1 asociada
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS_148=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de formato de nombre porque se encontr\u00f3 el car\u00e1cter %3$c en lugar de una comilla en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE_149=No se pudo analizar el valor proporcionado como descripci\u00f3n de regla de coincidencia v\u00e1lida porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS_150=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de regla de coincidencia porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar de un par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE_151=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque se encontr\u00f3 el final del valor si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID_152=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID_153=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque el OID num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID_154=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS_155=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_156=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX_157=La descripci\u00f3n de regla de coincidencia "%s" est\u00e1 asociada a la sintaxis de atributo %s que no est\u00e1 definida en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX_158=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque no especifica la sintaxis de atributo con la que est\u00e1 asociada
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS_159=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de regla de coincidencia porque se encontr\u00f3 el car\u00e1cter %3$s en lugar de una comilla en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE_160=No se pudo analizar el valor proporcionado como descripci\u00f3n de uso de regla de coincidencia v\u00e1lida porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS_161=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de uso de regla de coincidencia porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar de un par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE_162=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de uso de regla de coincidencia porque se encontr\u00f3 el final del valor si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID_163=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de uso de regla de coincidencia porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID_164=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de uso de regla de coincidencia porque el OID num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID_165=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de uso de regla de coincidencia porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE_166=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de uso de regla de coincidencia porque la regla de coincidencia especificada %s es desconocida
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS_167=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de uso de regla de coincidencia porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_168=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de uso de regla de coincidencia porque conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR_169=La descripci\u00f3n de uso de regla de coincidencia "%s" est\u00e1 asociada al tipo de atributo %s que no est\u00e1 definido en el esquema del servidor
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR_170=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de coincidencia porque no especifica el conjunto de tipos de atributo que se pueden utilizar con el OID asociado
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS_171=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de uso de regla de coincidencia porque se encontr\u00f3 el car\u00e1cter %3$s en lugar de una comilla en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE_172=No se pudo analizar el valor proporcionado como descripci\u00f3n de regla de estructura del DIT v\u00e1lida porque estaba vac\u00edo o conten\u00eda s\u00f3lo espacios en blanco
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS_173=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de regla de estructura del DIT porque se encontr\u00f3 un car\u00e1cter '%3$s' en lugar del par\u00e9ntesis de apertura en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE_174=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque se encontr\u00f3 el final del valor si bien Directory Server esperaba que se proporcionaran m\u00e1s datos
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID_175=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque el ID de regla conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS_176=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque conten\u00eda un par\u00e9ntesis de cierre inesperado en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_177=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM_178=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque hac\u00eda referencia a un formato de nombre desconocido %s
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID_179=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque hac\u00eda referencia a un ID de regla desconocido %d para una regla de estructura del DIT superior
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM_180=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque no especific\u00f3 el formato de nombre para la regla
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS_181=No se pudo analizar el valor proporcionado "%1$s" como descripci\u00f3n de regla de estructura del DIT porque se encontr\u00f3 el car\u00e1cter %3$s en lugar de una comilla en la posici\u00f3n %2$d
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID_182=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque el OID num\u00e9rico conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID_183=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque el OID num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID_184=No se pudo analizar el valor proporcionado "%s" como descripci\u00f3n de regla de estructura del DIT porque el OID no num\u00e9rico conten\u00eda un car\u00e1cter %s no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT_185=El valor proporcionado "%s" es demasiado corto para considerarse un valor de n\u00famero de t\u00e9lex v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE_186=El valor proporcionado "%s" no tiene un n\u00famero de t\u00e9lex v\u00e1lido porque un car\u00e1cter %s en la posici\u00f3n %d no era un car\u00e1cter de cadena imprimible v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR_187=El valor proporcionado "%s" no tiene un n\u00famero de t\u00e9lex v\u00e1lido porque un car\u00e1cter %s en la posici\u00f3n %d no era ni un car\u00e1cter de cadena imprimible v\u00e1lido ni un signo de d\u00f3lar para separar los componentes de n\u00famero de t\u00e9lex
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED_188=El valor proporcionado "%s" no tiene un n\u00famero de t\u00e9lex v\u00e1lido porque se encontr\u00f3 el final del valor antes de que se pudieran leer tres cadenas imprimibles delimitadas por el s\u00edmbolo del d\u00f3lar
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY_189=No se pudo analizar el valor proporcionado como n\u00famero de tel\u00e9fono de facs\u00edmil v\u00e1lido porque estaba vac\u00edo
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE_190=No se pudo analizar el valor proporcionado "%s" como n\u00famero de tel\u00e9fono de facs\u00edmil v\u00e1lido porque un car\u00e1cter %s en la posici\u00f3n %d no era un car\u00e1cter de cadena imprimible v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR_191=No se pudo analizar el valor proporcionado "%s" como n\u00famero de tel\u00e9fono de facs\u00edmil v\u00e1lido porque finaliza con un signo de d\u00f3lar que deber\u00eda estar seguido por un par\u00e1metro de fax
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER_192=No se pudo analizar el valor proporcionado "%s" como n\u00famero de tel\u00e9fono de facs\u00edmil v\u00e1lido porque la cadena "%s" entre las posiciones %d y %d no era un par\u00e1metro de fax v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN_193=No se pudo analizar el valor proporcionado "%s" como nombre v\u00e1lido y valor UID opcional porque se produjo un error al intentar analizar la parte de ND: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT_194=No se pudo analizar el valor proporcionado "%s" como nombre v\u00e1lido y valor UID opcional porque la parte de UID conten\u00eda un d\u00edgito binario no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY_195=No se pudo analizar el valor proporcionado como identificador de terminal de teletexto v\u00e1lido porque estaba vac\u00edo
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE_196=No se pudo analizar el valor proporcionado "%s" como identificador de terminal de teletexto v\u00e1lido porque un car\u00e1cter %s en la posici\u00f3n %d no era un car\u00e1cter de cadena imprimible v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR_197=No se pudo analizar el valor proporcionado "%s" como identificador de terminal de teletexto v\u00e1lido porque finaliza con un signo de d\u00f3lar que deber\u00eda ser seguido por un par\u00e1metro de TTX
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON_198=No se pudo analizar el valor proporcionado "%s" como identificador de terminal de teletexto v\u00e1lido porque la cadena de par\u00e1metros no conten\u00eda un signo de dos puntos para separar el nombre del valor
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER_199=No se pudo analizar el valor proporcionado "%s" como identificador de terminal de teletexto v\u00e1lido porque la cadena "%s" no es un nombre de par\u00e1metro TTX v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE_200=No se pudo analizar el valor proporcionado como otro valor de buz\u00f3n porque estaba vac\u00edo
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE_201=No se pudo analizar el valor proporcionado "%s" como otro valor de buz\u00f3n porque no hab\u00eda ning\u00fan tipo de buz\u00f3n delante del signo de d\u00f3lar
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR_202=No se pudo analizar el valor proporcionado "%s" como otro valor de buz\u00f3n porque el tipo de buz\u00f3n conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d.
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX_203=No se pudo analizar el valor proporcionado "%s" como otro valor de buz\u00f3n porque no hab\u00eda ning\u00fan buz\u00f3n detr\u00e1s del signo de d\u00f3lar
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR_204=No se pudo analizar el valor proporcionado "%s" como otro valor de buz\u00f3n porque el buz\u00f3n conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d.
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC_205=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque no conten\u00eda un nombre de clase de objeto u OID delante del car\u00e1cter de almohadilla (#)
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR_206=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque la parte de criterios %s conten\u00eda un car\u00e1cter no v\u00e1lido %c en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN_207=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque la parte de criterios %s no conten\u00eda un par\u00e9ntesis de cierre que correspond\u00eda al par\u00e9ntesis de apertura inicial
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK_208=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque la parte de criterios %s comenzaba con un signo de interrogaci\u00f3n aunque no seguido por la cadena "true" (verdadero) o "false" (falso)
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR_209=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque la parte de criterios %s no conten\u00eda un signo de d\u00f3lar para separar el tipo de atributo del tipo de coincidencia
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR_210=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque la parte de criterios %s no especificaba un tipo de atributo delante del signo de d\u00f3lar
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE_211=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque la parte de criterios %s no especificaba un tipo de coincidencia detr\u00e1s del signo de d\u00f3lar
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE_212=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda porque la parte de criterios %s ten\u00eda un tipo de coincidencia no v\u00e1lido que comenzaba en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP_213=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque no conten\u00eda un car\u00e1cter de almohadilla (#) para separar la clase de objeto de los criterios
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC_214=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque no conten\u00eda un nombre de clase de objeto u OID delante del car\u00e1cter de almohadilla (#)
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID_215=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque el OID num\u00e9rico %s que especifica la clase de objeto conten\u00eda dos puntos consecutivos en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID_216=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque el OID num\u00e9rico %s que especifica la clase de objeto conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME_217=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque el nombre de clase de objeto %s conten\u00eda un car\u00e1cter no v\u00e1lido %s en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP_218=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque no ten\u00eda un car\u00e1cter de almohadilla (#) para separar los criterios del \u00e1mbito
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE_219=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque no se proporcion\u00f3 ning\u00fan \u00e1mbito detr\u00e1s del car\u00e1cter almohadilla (#) final
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE_220=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque el \u00e1mbito %s especificado no era v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA_221=No se pudo analizar el valor proporcionado "%s" como valor de gu\u00eda mejorado porque no se especific\u00f3 ning\u00fan criterio entre los caracteres de almohadilla (#).
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE_222=No se pudo analizar el valor proporcionado %s como OID v\u00e1lido: %s
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE_223=An unexpected \
+### error occurred while trying to normalize value %s as a generalized time \
+### value: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE_224=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseExactOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE_225=An error occurred while \
+### attempting to compare two objects using the caseExactOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE_226=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE_227=An error occurred while \
+### attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE_228=An error \
+### occurred while attempting to compare two AttributeValue objects using the \
+### generalizedTimeOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE_229=An error occurred \
+### while attempting to compare two objects using the \
+### generalizedTimeOrderingMatch matching rule because the objects were of an \
+### unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+### value objects may be compared
+###SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE_230=An error occurred while \
+### attempting to compare two AttributeValue objects using the \
+### integerOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE_231=An error occurred while \
+### attempting to compare two objects using the integerOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE_232=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### numericStringOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE_233=An error occurred \
+### while attempting to compare two objects using the numericStringOrderingMatch \
+### matching rule because the objects were of an unsupported type %s. Only byte \
+### arrays, ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE_234=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### octetStringOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE_235=An error occurred while \
+### attempting to compare two objects using the octetStringOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH_236=The provided value "%s" has \
+### an invalid length for a UUID. All UUID values must have a length of exactly \
+### 36 bytes, but the provided value had a length of %d bytes
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH_237=The provided value "%s" should \
+### have had a dash at position %d, but the character '%s' was found instead
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX_238=The provided value "%s" should \
+### have had a hexadecimal digit at position %d, but the character '%s' was found \
+### instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH_239=Indica si se permitir\u00e1 que los atributos con la sintaxis de cadena de directorios tengan valores de longitud cero. Las especificaciones LDAP no lo permiten t\u00e9cnicamente, pero puede resultar \u00fatil para la compatibilidad de retroceso con versiones anteriores de Directory Server
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH_240=An \
+### error occurred while trying to determine the value of the %s configuration \
+### attribute, which indicates whether directory string attributes should be \
+### allowed to have zero-length values: %s
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE_241=The \
+### operation attempted to assign a zero-length value to an attribute with the \
+### directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH_242=El %s atributo de la entrada de configuraci\u00f3n %s se ha actualizado con un nuevo valor de %s
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR_243=The provided \
+### authPassword value had an invalid scheme character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_244=The provided authPassword value \
+### had a zero-length scheme element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR_245=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the scheme and authInfo elements
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR_246=The provided \
+### authPassword value had an invalid authInfo character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_247=The provided authPassword \
+### value had a zero-length authInfo element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR_248=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the authInfo and authValue elements
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS_249=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### it did not start with a parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE_250=The provided value "%s" could not \
+### be parsed by the integer first component matching rule because it did not \
+### have any non-space characters after the opening parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT_251=The provided value "%s" \
+### could not be parsed by the integer first component matching rule because it \
+### did not have any space characters after the first component
+###SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT_252=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### the first component does not appear to be an integer value
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE_253=No value was given to decode by \
+### the user password attribute syntax
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE_254=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not start with the opening curly brace ("{") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE_255=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not contain a closing curly brace ("}") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME_256=Unable to decode the provided \
+### value according to the user password syntax because the value does not \
+### contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID_257=No se pudo analizar el valor proporcionado "%s" como especificaci\u00f3n de sub\u00e1rbol RFC 3672 v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID_258=No se pudo analizar el valor proporcionado "%s" como especificaci\u00f3n de sub\u00e1rbol absoluto v\u00e1lido
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID_259=No se pudo analizar el valor proporcionado "%s" como especificaci\u00f3n de sub\u00e1rbol relativo v\u00e1lido
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER_260=The provided value %s is not \
+### allowed for attributes with a Integer syntax
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR_261=The provided \
+### authPassword value had an invalid authValue character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE_262=The provided authPassword \
+### value had a zero-length authValue element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR_263=The provided \
+### authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER_264=No se pudo analizar el valor proporcionado "%s" como extensi\u00f3n de sintaxis de atributo porque se encontr\u00f3 un car\u00e1cter no v\u00e1lido en la posici\u00f3n %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION_265=No se pudo analizar la sintaxis de atributo debido a una extensi\u00f3n no v\u00e1lida.%s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE_266=The definition \
+### for objectclass %s is invalid because it has an objectclass type of %s but \
+### this is incompatible with the objectclass type %s for the superior class %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP_267=The \
+### definition for objectclass %s is invalid because it is defined as a \
+### structural class but its superior chain does not include the "top" \
+### objectclass
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE_268=The definition \
+### for attribute type %s is invalid because its attribute usage %s is not the \
+### same as the usage for its superior type %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE_269=The \
+### definition for attribute type %s is invalid because it is defined as a \
+### collective type but the superior type %s is not collective
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE_270=The \
+### definition for attribute type %s is invalid because it is not defined as a \
+### collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL_271=La regla de contenido del DIT "%s" no es v\u00e1lida porque proh\u00edbe el uso del tipo de atributo %s que necesita la clase de objeto estructural asociada %s
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY_272=La regla de contenido del DIT "%s" no es v\u00e1lida porque proh\u00edbe el uso del tipo de atributo %s que necesita la clase de objeto auxiliar asociada %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL_273=The definition \
+### for attribute type %s is invalid because it is declared COLLECTIVE but does \
+### not have a usage of userApplications
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL_274=The \
+### definition for attribute type %s is invalid because it is declared \
+### NO-USER-MODIFICATION but does not have an operational usage
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR_275=The \
+### provided value %s is not a valid generalized time value because it contains \
+### illegal character %s in the fraction component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION_276=The provided \
+### value %s is not a valid generalized time value because it does not contain at \
+### least one digit after the period to use as the fractional component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO_277=The provided \
+### value %s is not a valid generalized time value because it does not end with \
+### 'Z' or a time zone offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME_278=The provided value \
+### %s is not a valid generalized time value because it represents an invalid \
+### time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED_279=No se pudo importar un elemento de esquema: %s, %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE_280=La regla de intercalaci\u00f3n %s que se encuentra en la entrada de regla de coincidencia %s no es v\u00e1lida, ya que JVM no admite la configuraci\u00f3n regional %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT_281=La regla de intercalaci\u00f3n proporcionada %s no contiene un formato v\u00e1lido de OID:CONFIGURACI\u00d3N REGIONAL
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR_282=No se pudo analizar el valor proporcionado "%s" como nombre \u00fanico v\u00e1lido porque un valor de atributo empezaba con un car\u00e1cter en la posici\u00f3n %d al que hay que aplicarle caracteres de escape
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR_283=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de tipo de atributo v\u00e1lida porque no se permite el car\u00e1cter '%c' en la posici\u00f3n %d en un nombre de tipo de atributo
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_284=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de tipo de atributo v\u00e1lida porque no se permite el car\u00e1cter de subrayado en un nombre de tipo de atributo a menos que est\u00e9 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_285=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de tipo de atributo v\u00e1lida porque no se permite el car\u00e1cter de gui\u00f3n como primer car\u00e1cter de un nombre de tipo de atributo
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_286=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de tipo de atributo v\u00e1lida porque no se permite el car\u00e1cter de subrayado como primer car\u00e1cter de un nombre de tipo de atributo, incluso si est\u00e1 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_287=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de tipo de atributo v\u00e1lida porque no se permite el d\u00edgito '%c' como primer car\u00e1cter de un nombre de tipo de atributo a menos que est\u00e9 especificado el nombre como un OID o que est\u00e9 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR_288=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de clase de objeto v\u00e1lida porque no se permite el car\u00e1cter '%c' en la posici\u00f3n %d en un nombre de clase de objeto
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_289=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de clase de objeto v\u00e1lida porque no se permite el car\u00e1cter de subrayado en un nombre de clase de objeto a menos que est\u00e9 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_290=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de clase de objeto v\u00e1lida porque no se permite el car\u00e1cter de gui\u00f3n como primer car\u00e1cter de un nombre de clase de objeto
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_291=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de clase de objeto v\u00e1lida porque no se permite el car\u00e1cter de subrayado como primer car\u00e1cter de un nombre de clase de objeto, incluso si est\u00e1 habilitada la opci\u00f3n de configuraci\u00f3n %s
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_292=No se pudo analizar el valor proporcionado "%s" como definici\u00f3n de clase de objeto v\u00e1lida porque no se permite el d\u00edgito '%c' como primer car\u00e1cter de un nombre de clase de objeto a menos que est\u00e9 especificado el nombre como un OID o que est\u00e9 habilitada la opci\u00f3n de configuraci\u00f3n %s
diff --git a/sdk/src/com/sun/opends/sdk/util/messages_fr.properties b/sdk/src/com/sun/opends/sdk/util/messages_fr.properties
new file mode 100755
index 0000000..6959d0b
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages_fr.properties
@@ -0,0 +1,531 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+#
+# Global directives
+#
+global.ordinal=-1
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE_1=Unable to retrieve \
+### approximate matching rule %s used as the default for the %s attribute syntax. \
+### Approximate matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE_2=Unable to retrieve \
+### equality matching rule %s used as the default for the %s attribute syntax. \
+### Equality matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE_3=Unable to retrieve \
+### ordering matching rule %s used as the default for the %s attribute syntax. \
+### Ordering matches will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE_4=Unable to retrieve \
+### substring matching rule %s used as the default for the %s attribute syntax. \
+### Substring matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN_5=The provided value "%s" is not \
+### allowed for attributes with a Boolean syntax. The only allowed values are \
+### 'TRUE' and 'FALSE'
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT_6=The provided value "%s" is too \
+### short to be a valid bit string. A bit string must be a series of binary \
+### digits surrounded by single quotes and followed by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED_7=The provided value "%s" is not \
+### a valid bit string because it is not surrounded by single quotes and followed \
+### by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT_8=The provided value "%s" is \
+### not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH_9=La valeur indiqu\u00e9e "%s" n'est pas une cha\u00eene de pays valide car elle n'a pas une longueur de deux caract\u00e8res exactement
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE_10=La valeur indiqu\u00e9e "%s" n'est pas une cha\u00eene de pays valide car elle contient au moins un caract\u00e8re non imprimable
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS_11=La valeur indiqu\u00e9e "%s" n'est pas une m\u00e9thode de distribution valide car elle ne contient aucun \u00e9l\u00e9ment
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT_12=La valeur indiqu\u00e9e "%s" n'est pas une m\u00e9thode de distribution valide car "%s" n'est pas une m\u00e9thode valide
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT_13=The provided value "%s" \
+### is too short to be a valid generalized time value
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR_14=The provided value \
+### "%s" is not a valid generalized time value because the '%s' character is not \
+### allowed in the century or year specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH_15=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid month \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY_16=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid day \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR_17=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid hour \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE_18=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid minute \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND_19=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid second \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND_20=The provided \
+### value "%s" is not a valid generalized time value because the sub-second \
+### component is not valid (between 1 and 3 numeric digits)
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND_21=The provided value \
+### "%s" is not a valid generalized time value because the sub-second value may \
+### not contain more than three digits
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET_22=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+### offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR_23=The provided value \
+### "%s" is not a valid generalized time value because it contains an invalid \
+### character '%s' at position %d
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE_24=The provided value \
+### "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_25=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide\u00a0: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA_26=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le dernier caract\u00e8re autre qu'un espace est une virgule ou un point-virgule
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT_27=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le chiffre num\u00e9rique "%s" n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom d'attribut
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR_28=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le caract\u00e8re '%c' \u00e0 la position %d n'est pas autoris\u00e9 dans un nom d'attribut
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR_29=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le trait de soulignement n'est pas autoris\u00e9 dans un nom d'attribut, sauf si l'option de configuration %s est activ\u00e9e
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH_30=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le trait d'union n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom d'attribut
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE_31=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le tiret de soulignement n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom d'attribut, m\u00eame si l'option de configuration %s est activ\u00e9e
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT_32=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le chiffre '%c' n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom d'attribut, sauf si le nom est sp\u00e9cifi\u00e9 comme un OID ou que l'option de configuration %s est activ\u00e9e
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME_33=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car il contient un NRD contenant un nom d'attribut vide
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD_34=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le nom d'attribut analys\u00e9 %s inclut un point mais ne semble pas \u00eatre un OID valide
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME_35=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le dernier caract\u00e8re autre qu'un espace fait partie du nom d'attribut '%s'
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL_36=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le caract\u00e8re suivant autre qu'un espace apr\u00e8s le nom d'attribut "%s" devrait \u00eatre un signe \u00e9gal au lieu de '%c'
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR_37=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le caract\u00e8re '%c' \u00e0 la position %d n'est pas valide
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT_38=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car une valeur d'attribut commence par un di\u00e8se (#) sans \u00eatre suivie d'un multiple positif de deux chiffres hexad\u00e9cimaux
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT_39=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car une valeur d'attribut commence par un di\u00e8se (#) mais contient un caract\u00e8re %c qui n'est pas un chiffre hexad\u00e9cimal valide
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE_40=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car un \u00e9chec inattendu s'est produit lors d'une tentative d'analyse d'une valeur d'attribut de l'un des composants du NRD\u00a0: "%s"
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE_41=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car un des composants du NRD inclut une valeur cit\u00e9e sans le guillemet de fermeture correspondant
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID_42=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car un des composants du NRD inclut une valeur contenant un chiffre hexad\u00e9cimal neutralis\u00e9 qui n'est pas suivi d'un second chiffre hexad\u00e9cimal
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO_43=The provided value "%s" could \
+### not be parsed as a valid integer because the first digit may not be zero \
+### unless it is the only digit
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH_44=The provided value "%s" \
+### could not be parsed as a valid integer because the dash may only appear if it \
+### is the first character of the value followed by one or more digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER_45=The provided value "%s" \
+### could not be parsed as a valid integer because character '%c' at position %d \
+### is not allowed in an integer value
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE_46=The provided value "%s" could \
+### not be parsed as a valid integer because it did not contain any digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE_47=The provided value "%s" \
+### could not be parsed as a valid integer because it contained only a dash not \
+### followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE_48=Impossible d'analyser la valeur indiqu\u00e9e en tant qu'OID valide car il ne contient aucun caract\u00e8re
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER_49=Impossible d'analyser la valeur indiqu\u00e9e %s en tant qu'OID valide car il contient un caract\u00e8re ill\u00e9gal \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS_50=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'OID valide car il contient deux points cons\u00e9cutifs \u00e0 la position %d ou \u00e0 proximit\u00e9
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD_51=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'OID valide car il se termine par un point
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE_52=Impossible d'analyser la valeur indiqu\u00e9e en tant que description de type d'attribut valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS_53=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE_54=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID_55=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID_56=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID_57=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car l'OID non num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_58=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car elle contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS_59=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_60=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de type d'attribut car le premier caract\u00e8re non vide suivant un jeton %s devrait \u00eatre un guillemet simple et non le caract\u00e8re %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE_61=The definition for \
+### the attribute type with OID %s declared a superior type with an OID of %s. \
+### No attribute type with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR_62=The definition for \
+### the attribute type with OID %s declared that approximate matching should be \
+### performed using the matching rule "%s". No such approximate matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR_63=The definition for \
+### the attribute type with OID %s declared that equality matching should be \
+### performed using the matching rule "%s". No such equality matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR_64=The definition for \
+### the attribute type with OID %s declared that ordering matching should be \
+### performed using the matching rule "%s". No such ordering matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR_65=The definition for \
+### the attribute type with OID %s declared that substring matching should be \
+### performed using the matching rule "%s". No such substring matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX_66=The definition for the \
+### attribute type with OID %s declared that it should have a syntax with OID %s. \
+### No such syntax is configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE_67=The definition \
+### for the attribute type with OID %s declared that it should have an attribute \
+### usage of %s. This is an invalid usage
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS_68=The provided value \
+### "%s" could not be parsed as an attribute type description because a single \
+### quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE_69=Impossible d'analyser la valeur indiqu\u00e9e en tant que description de classe d'objet valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS_70=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE_71=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID_72=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID_73=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID_74=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car l'OID non num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_75=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car elle contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS_76=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_77=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de classe d'objet car le premier caract\u00e8re non vide suivant un jeton %s devrait \u00eatre un guillemet simple et non le caract\u00e8re %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS_78=The definition \
+### for the objectclass with OID %s declared a superior objectclass with an OID \
+### of %s. No objectclass with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS_79=The provided \
+### value "%s" could not be parsed as an objectclass description because a single \
+### quote was expected at position %d but the character %s was found instead
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR_80=The definition \
+### for the objectclass with OID %s declared that it should include required \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR_81=The definition \
+### for the objectclass with OID %s declared that it should include optional \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER_82=The provided value "%s" \
+### cannot be parsed as a valid IA5 string because it contains an illegal \
+### character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE_83=Ceci indique si la syntaxe d'attribut de num\u00e9ro de t\u00e9l\u00e9phone doit utiliser un mode strict dans lequel seules les valeurs au format ITU-T E.123 seront accept\u00e9es. Si cette option est activ\u00e9e, toutes les valeurs dans un autre format seront refus\u00e9es. Si elle est d\u00e9sactiv\u00e9e, toutes les valeurs seront accept\u00e9es mais seuls les chiffres sont pris en compte lors de la recherche de correspondance
+###SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE_84=An error \
+### occurred while trying to retrieve attribute \
+### ds-cfg-strict-format from configuration entry %s: %s. The \
+### Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+### for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY_85=La valeur indiqu\u00e9e n'est pas un num\u00e9ro de t\u00e9l\u00e9phone valide car elle est vide ou null
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS_86=La valeur indiqu\u00e9e "%s" n'est pas un num\u00e9ro de t\u00e9l\u00e9phone valide car la v\u00e9rification stricte des num\u00e9ros de t\u00e9l\u00e9phone est activ\u00e9e et la valeur ne commence pas par un signe plus respectant la sp\u00e9cification ITU-T E.123
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR_87=La valeur indiqu\u00e9e "%s" n'est pas un num\u00e9ro de t\u00e9l\u00e9phone valide car la v\u00e9rification stricte des num\u00e9ros de t\u00e9l\u00e9phone est activ\u00e9e et le caract\u00e8re %s \u00e0 la position %d n'est pas autoris\u00e9 par la sp\u00e9cification ITU-T E.123
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS_88=La valeur indiqu\u00e9e "%s" n'est pas un num\u00e9ro de t\u00e9l\u00e9phone valide car il ne contient aucun chiffre num\u00e9rique
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE_89=La valeur de l'attribut de configuration ds-cfg-strict-format, qui indique si la v\u00e9rification stricte des num\u00e9ros de t\u00e9l\u00e9phone doit \u00eatre utilis\u00e9e, a \u00e9t\u00e9 mise \u00e0 jour sur %s dans l'entr\u00e9e de configuration %s
+###SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR_90=The provided value \
+### "%s" is not a valid numeric string because it contained character %s at \
+### position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE_91=La valeur indiqu\u00e9e n'est pas une cha\u00eene num\u00e9rique valide car elle ne contient aucun caract\u00e8re. Une valeur de cha\u00eene num\u00e9rique doit contenir au moins un chiffre num\u00e9rique ou un espace
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE_92=Impossible d'analyser la valeur indiqu\u00e9e en tant que description de syntaxe d'attribut valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS_93=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE_94=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID_95=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID_96=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID_97=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car l'OID non num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS_98=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN_99=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car une erreur inattendue s'est produite lors de la tentative de lecture du jeton "DESC" \u00e0 partir de la cha\u00eene ou pr\u00e8s de la position %d\u00a0: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC_100=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car le jeton "DESC" devrait \u00eatre pr\u00e9sent au lieu de la cha\u00eene "%s"
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE_101=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car une erreur inattendue s'est produite lors de la tentative de lecture de la valeur du jeton "DESC" \u00e0 partir de la cha\u00eene ou pr\u00e8s de la position %d\u00a0: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS_102=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car une parenth\u00e8se ferm\u00e9e devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE_103=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de syntaxe d'attribut car un caract\u00e8re ill\u00e9gal %s se trouve \u00e0 la position %d apr\u00e8s la parenth\u00e8se ferm\u00e9e
+###SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS_104=The provided \
+### value "%s" could not be parsed as an attribute syntax description because a \
+### single quote was expected at position %d but the character %s was found \
+### instead
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE_105=The provided value \
+### could not be parsed as a printable string because it was null or empty. A \
+### printable string must contain at least one character
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER_106=The provided \
+### value "%s" could not be parsed as a printable string because it contained an \
+### invalid character %s at position %d
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD_107=The provided value "*" \
+### could not be parsed as a substring assertion because it consists only of a \
+### wildcard character and zero-length substrings are not allowed
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS_108=The provided \
+### value "%s" could not be parsed as a substring assertion because it contains \
+### consecutive wildcard characters at position %d and zero-length substrings are \
+### not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT_109=La valeur indiqu\u00e9e %s est trop courte pour \u00eatre une valeur de temps UTC valide
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR_110=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car le caract\u00e8re '%s' n'est pas autoris\u00e9 dans la sp\u00e9cification de si\u00e8cle ou d'ann\u00e9e
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH_111=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car %s n'est pas une sp\u00e9cification de mois valide
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY_112=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car %s n'est pas une sp\u00e9cification de jour valide
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR_113=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car %s n'est pas une sp\u00e9cification d'heure valide
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE_114=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car %s n'est pas une sp\u00e9cification de minute valide
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR_115=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car elle contient un caract\u00e8re invalide %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND_116=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car %s n'est pas une sp\u00e9cification de seconde valide
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET_117=La valeur indiqu\u00e9e %s n'est pas une valeur de temps UTC valide car %s n'est pas un d\u00e9calage GMT valide
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE_118=Impossible d'analyser la valeur indiqu\u00e9e %s en tant que temps UTC valide\u00a0: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE_119=Impossible d'analyser la valeur indiqu\u00e9e en tant que description de r\u00e8gle de contenu DIT valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS_120=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE_121=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID_122=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID_123=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID_124=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car l'OID non num\u00e9rique contenient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS_125=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_126=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car elle contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS_127=La r\u00e8gle de contenu DIT "%s" est associ\u00e9e \u00e0 une classe d'objet structurelle %s non d\u00e9finie dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL_128=La r\u00e8gle de contenu DIT "%s" est associ\u00e9e \u00e0 la classe d'objet avec OID %s (%s). Cette classe d'objet existe dans le sch\u00e9ma de serveur mais est plut\u00f4t d\u00e9finie comme %s que comme structurelle
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS_129=La r\u00e8gle de contenu DIT "%s" est associ\u00e9e \u00e0 une classe d'objet auxiliaire %s non d\u00e9finie dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY_130=La r\u00e8gle de contenu DIT "%s" est associ\u00e9e \u00e0 une classe d'objet auxiliaire %s. Cette classe d'objet existe dans le sch\u00e9ma de serveur mais est d\u00e9finie comme %s plut\u00f4t que comme auxiliaire
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR_131=La r\u00e8gle de contenu DIT "%s" est associ\u00e9e \u00e0 un type d'attribut requis %s non d\u00e9fini dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR_132=La r\u00e8gle de contenu DIT "%s" est associ\u00e9e \u00e0 un type d'attribut facultatif %s non d\u00e9fini dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR_133=La r\u00e8gle de contenu DIT "%s" est associ\u00e9e \u00e0 un type d'attribut interdit %s non d\u00e9fini dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS_134=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de contenu DIT car un guillemet simple aurait d\u00fb se trouver \u00e0 la position %d au lieu du caract\u00e8re %s
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE_135=Impossible d'analyser la valeur indiqu\u00e9e en tant que description de formulaire de nom valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS_136=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%c'
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE_137=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID_138=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID_139=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %c \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID_140=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car l'OID non num\u00e9rique contient un caract\u00e8re ill\u00e9gal %c \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS_141=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_142=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car elle contient un caract\u00e8re ill\u00e9gal %c \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS_143=La description de formulaire de nom "%s" est associ\u00e9e \u00e0 une classe d'objet structurelle %s non d\u00e9finie dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL_144=La description de formulaire de nom "%s" est associ\u00e9e \u00e0 la classe d'objet avec OID %s (%s). Cette classe d'objet existe dans le sch\u00e9ma de serveur mais est plut\u00f4t d\u00e9finie comme %s que comme structurelle
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR_145=La d\u00e9finition pour le formulaire de nom avec l'OID %s d\u00e9clare qu'il devrait inclure l'attribut requis "%s". Aucun type d'attribut correspondant \u00e0 ce nom ou cet OID n'existe dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR_146=La d\u00e9finition pour le formulaire de nom avec l'OID %s d\u00e9clare qu'elle devrait inclure l'attribut facultatif "%s". Aucun type d'attribut correspondant \u00e0 ce nom ou cet OID n'existe dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS_147=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car elle ne sp\u00e9cifie pas la classe d'objet structurelle avec laquelle elle est associ\u00e9e
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS_148=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de formulaire de nom car un guillemet simple devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re %c
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE_149=Impossible d'analyser la valeur indiqu\u00e9e en tant que description de r\u00e8gle de correspondance valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS_150=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE_151=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID_152=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID_153=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID_154=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car l'OID non num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS_155=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_156=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car elle contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX_157=La description de r\u00e8gle de correspondance "%s" est associ\u00e9e \u00e0 une syntaxe d'attribut %s non d\u00e9finie dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX_158=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car elle ne sp\u00e9cifie par la syntaxe d'attribut avec laquelle elle est associ\u00e9e
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS_159=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car un guillemet simple devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re %s
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE_160=Impossible d'analyser la valeur indiqu\u00e9e en tant que description d'utilisation d'une r\u00e8gle de correspondance valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS_161=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE_162=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID_163=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID_164=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID_165=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car l'OID non num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE_166=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car la r\u00e8gle de correspondance %s est inconnue
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS_167=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_168=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car elle contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR_169=La description d'utilisation d'une r\u00e8gle de correspondance "%s" est associ\u00e9e \u00e0 un type d'attribut %s non d\u00e9fini dans le sch\u00e9ma de serveur
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR_170=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de correspondance car elle ne sp\u00e9cifie pas l'ensemble de types d'attributs \u00e0 utiliser avec l'OID associ\u00e9
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS_171=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description d'utilisation d'une r\u00e8gle de correspondance car un guillemet simple devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re %s
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE_172=Impossible d'analyser la valeur indiqu\u00e9e en tant que description de r\u00e8gle de structure DIT valide car elle est vide ou ne contient que des blancs
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS_173=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car une parenth\u00e8se ouverte devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re '%s'
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE_174=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car la fin de la valeur est atteinte alors que Directory Server attend plus de donn\u00e9es
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID_175=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car la r\u00e8gle DIT contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS_176=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car elle contient une parenth\u00e8se de fermeture inattendue \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_177=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car elle contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM_178=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car elle fait r\u00e9f\u00e9rence \u00e0 une forme de nom inconnu %s
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID_179=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car elle fait r\u00e9f\u00e9rence \u00e0 un ID %d de r\u00e8gle inconnu pour une r\u00e8gle de structure DIT sup\u00e9rieure
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM_180=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car elle ne sp\u00e9cifie par le formulaire de nom pour la r\u00e8gle
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS_181=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car un guillemet simple devrait se trouver \u00e0 la position %d au lieu du caract\u00e8re %s
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID_182=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car l'OID num\u00e9rique contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID_183=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car l'OID num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID_184=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que description de r\u00e8gle de structure DIT car l'OID non num\u00e9rique contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT_185=La valeur indiqu\u00e9e "%s" est trop courte pour \u00eatre une valeur de num\u00e9ro de t\u00e9lex valide
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE_186=La valeur indiqu\u00e9e "%s" ne contient pas un num\u00e9ro de t\u00e9lex valide car un caract\u00e8re %s \u00e0 la position %d n'est pas une cha\u00eene de caract\u00e8res imprimable valide
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR_187=La valeur indiqu\u00e9e "%s" ne contient pas un num\u00e9ro de t\u00e9lex valide car un caract\u00e8re %s \u00e0 la position %d n'est ni une cha\u00eene de caract\u00e8res imprimable valide, ni le signe du dollar pour s\u00e9parer les composants du num\u00e9ro de t\u00e9lex
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED_188=La valeur indiqu\u00e9e "%s" ne contient pas un num\u00e9ro de t\u00e9lex valide car la fin de la valeur a \u00e9t\u00e9 atteinte avant que trois cha\u00eenes imprimables d\u00e9limit\u00e9s par des dollars puissent \u00eatre lues
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY_189=Impossible d'analyser la valeur indiqu\u00e9e en tant que num\u00e9ro de t\u00e9l\u00e9copie valide car elle est vide
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE_190=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que num\u00e9ro de t\u00e9l\u00e9copie valide car le caract\u00e8re %s \u00e0 la position %d n'est pas une cha\u00eene de caract\u00e8res imprimable valide
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR_191=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que num\u00e9ro de t\u00e9l\u00e9copie valide car elle termine par un signe dollar, mais ce signe devrait \u00eatre suivi d'un param\u00e8tre de fax
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER_192=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que num\u00e9ro de t\u00e9l\u00e9copie valide car la cha\u00eene "%s" entre les positions %d et %d n'est pas un param\u00e8tre de fax valide
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN_193=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom et valeur UID facultative valides car une erreur s'est produite lors de la tentative d'analyse de la partie DN\u00a0: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT_194=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom et valeur UID facultative valides car la partie UID contient un chiffre binaire ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY_195=Impossible d'analyser la valeur indiqu\u00e9e en tant qu'identifiant de r\u00e9cepteur de teletexte valide car elle est vide
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE_196=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'identifiant de r\u00e9cepteur de teletexte valide car le caract\u00e8re %s \u00e0 la position %d n'est pas une cha\u00eene de caract\u00e8res imprimable valide
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR_197=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'identifiant de r\u00e9cepteur de teletexte valide car elle se termine par le symbole dollar, mais ce symbole devrait \u00eatre suivi d'un param\u00e8tre TTX
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON_198=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'identifiant de r\u00e9cepteur de teletexte valide car la cha\u00eene de param\u00e8tres ne contient pas deux-points pour s\u00e9parer le nom de la valeur
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER_199=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'identifiant de r\u00e9cepteur de teletexte valide car "%s" n'est pas un nom de param\u00e8tre TTX valide
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE_200=Impossible d'analyser la valeur indiqu\u00e9e en tant qu'autre valeur de bo\u00eete aux lettres car elle est vide
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE_201=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'autre valeur de bo\u00eete aux lettres car il n'y a pas de type de bo\u00eete aux lettres avant le symbole dollar
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR_202=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'autre valeur de bo\u00eete aux lettres car le type de bo\u00eete aux lettres contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX_203=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'autre valeur de bo\u00eete aux lettres car il n'y a pas de bo\u00eete aux lettres apr\u00e8s le symbole dollar
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR_204=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'autre valeur de bo\u00eete aux lettres car la bo\u00eete aux lettres contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC_205=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car elle ne contient pas de nom de classe d'objet ni d'OID avant le caract\u00e8re di\u00e8se (#)
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR_206=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car la partie crit\u00e8res %s contient un caract\u00e8re ill\u00e9gal %c \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN_207=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car la partie crit\u00e8res %s ne contient pas de parenth\u00e8se ferm\u00e9e correspondant \u00e0 la parenth\u00e8se ouverte initiale
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK_208=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car la partie crit\u00e8res %s commence par une interrogation mais n'est pas suivie de la cha\u00eene "true" ou "false"
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR_209=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car la partie crit\u00e8res %s ne contient pas de signe dollar pour s\u00e9parer le type d'attribut du type de correspondance
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR_210=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car la partie crit\u00e8res %s ne sp\u00e9cifiait pas de type d'attribut avant le signe dollar
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE_211=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car la partie crit\u00e8res %s ne sp\u00e9cifie pas de type de correspondance apr\u00e8s le symbole dollar
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE_212=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide car la partie crit\u00e8res %s a un type de correspondance ill\u00e9gal commen\u00e7ant \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP_213=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car elle ne contient pas de caract\u00e8re di\u00e8se (#) pour s\u00e9parer la classe d'objet des crit\u00e8res
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC_214=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car elle ne contient pas de nom de classe d'objet ou d'OID avant le caract\u00e8re di\u00e8se (#)
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID_215=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car l'OID num\u00e9rique %s sp\u00e9cifiant la classe d'objet contient deux points cons\u00e9cutifs \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID_216=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car l'OID num\u00e9rique %s sp\u00e9cifiant la classe d'objet contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME_217=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car le nom de classe d'objet %s contient un caract\u00e8re ill\u00e9gal %s \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP_218=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car elle n'a pas de caract\u00e8re di\u00e8se (#) pour s\u00e9parer les crit\u00e8res du domaine
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE_219=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car aucun domaine n'est indiqu\u00e9 apr\u00e8s le caract\u00e8re di\u00e8se (#) final
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE_220=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car le domaine sp\u00e9cifi\u00e9 %s n'est pas valide
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA_221=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que valeur guide optimis\u00e9e car elle ne sp\u00e9cifie pas de crit\u00e8res entre les catact\u00e8res di\u00e8se (#)
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE_222=Impossible d'analyser la valeur indiqu\u00e9e %s en tant qu'OID valide\u00a0: %s
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE_223=An unexpected \
+### error occurred while trying to normalize value %s as a generalized time \
+### value: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE_224=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseExactOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE_225=An error occurred while \
+### attempting to compare two objects using the caseExactOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE_226=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE_227=An error occurred while \
+### attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE_228=An error \
+### occurred while attempting to compare two AttributeValue objects using the \
+### generalizedTimeOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE_229=An error occurred \
+### while attempting to compare two objects using the \
+### generalizedTimeOrderingMatch matching rule because the objects were of an \
+### unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+### value objects may be compared
+###SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE_230=An error occurred while \
+### attempting to compare two AttributeValue objects using the \
+### integerOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE_231=An error occurred while \
+### attempting to compare two objects using the integerOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE_232=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### numericStringOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE_233=An error occurred \
+### while attempting to compare two objects using the numericStringOrderingMatch \
+### matching rule because the objects were of an unsupported type %s. Only byte \
+### arrays, ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE_234=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### octetStringOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE_235=An error occurred while \
+### attempting to compare two objects using the octetStringOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH_236=The provided value "%s" has \
+### an invalid length for a UUID. All UUID values must have a length of exactly \
+### 36 bytes, but the provided value had a length of %d bytes
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH_237=The provided value "%s" should \
+### have had a dash at position %d, but the character '%s' was found instead
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX_238=The provided value "%s" should \
+### have had a hexadecimal digit at position %d, but the character '%s' was found \
+### instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH_239=Indique si les attributs avec la syntaxe de cha\u00eene d'annuaires sont autoris\u00e9s \u00e0 avoir des valeurs de longueur null. Cette option n'est pas techniquement autoris\u00e9e par les sp\u00e9cifications LDAP, mais elle pourrait \u00eatre utile pour la compatibilit\u00e9 ascendante avec les versions pr\u00e9c\u00e9dentes de Directory Server
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH_240=An \
+### error occurred while trying to determine the value of the %s configuration \
+### attribute, which indicates whether directory string attributes should be \
+### allowed to have zero-length values: %s
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE_241=The \
+### operation attempted to assign a zero-length value to an attribute with the \
+### directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH_242=L'attribut %s dans l'entr\u00e9e de configuration %s a \u00e9t\u00e9 mis \u00e0 jour avec une nouvelle valeur de %s
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR_243=The provided \
+### authPassword value had an invalid scheme character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_244=The provided authPassword value \
+### had a zero-length scheme element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR_245=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the scheme and authInfo elements
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR_246=The provided \
+### authPassword value had an invalid authInfo character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_247=The provided authPassword \
+### value had a zero-length authInfo element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR_248=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the authInfo and authValue elements
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS_249=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### it did not start with a parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE_250=The provided value "%s" could not \
+### be parsed by the integer first component matching rule because it did not \
+### have any non-space characters after the opening parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT_251=The provided value "%s" \
+### could not be parsed by the integer first component matching rule because it \
+### did not have any space characters after the first component
+###SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT_252=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### the first component does not appear to be an integer value
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE_253=No value was given to decode by \
+### the user password attribute syntax
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE_254=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not start with the opening curly brace ("{") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE_255=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not contain a closing curly brace ("}") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME_256=Unable to decode the provided \
+### value according to the user password syntax because the value does not \
+### contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID_257=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que sp\u00e9cification de sous-arborescence RFC 3672 valide
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID_258=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que sp\u00e9cification de sous-arborescence absolue valide
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID_259=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que sp\u00e9cification de sous-arborescence relative valide
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER_260=The provided value %s is not \
+### allowed for attributes with a Integer syntax
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR_261=The provided \
+### authPassword value had an invalid authValue character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE_262=The provided authPassword \
+### value had a zero-length authValue element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR_263=The provided \
+### authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER_264=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant qu'extension de syntaxe d'attribut car un caract\u00e8re invalide se trouve \u00e0 la position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION_265=Impossible d'analyser la syntaxe d'attribut \u00e0 cause d'une extension invalide.%s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE_266=The definition \
+### for objectclass %s is invalid because it has an objectclass type of %s but \
+### this is incompatible with the objectclass type %s for the superior class %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP_267=The \
+### definition for objectclass %s is invalid because it is defined as a \
+### structural class but its superior chain does not include the "top" \
+### objectclass
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE_268=The definition \
+### for attribute type %s is invalid because its attribute usage %s is not the \
+### same as the usage for its superior type %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE_269=The \
+### definition for attribute type %s is invalid because it is defined as a \
+### collective type but the superior type %s is not collective
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE_270=The \
+### definition for attribute type %s is invalid because it is not defined as a \
+### collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL_271=La r\u00e8gle de contenu DIT "%s" n'est pas valide car elle interdit l'utilisation du type d'attribut %s requis par la classe d'objet structurelle associ\u00e9e %s
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY_272=La r\u00e8gle de contenu DIT "%s" n'est pas valide car elle interdit l'utilisation du type d'attribut %s requis par la classe d'objet structurelle auxiliaire %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL_273=The definition \
+### for attribute type %s is invalid because it is declared COLLECTIVE but does \
+### not have a usage of userApplications
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL_274=The \
+### definition for attribute type %s is invalid because it is declared \
+### NO-USER-MODIFICATION but does not have an operational usage
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR_275=The \
+### provided value %s is not a valid generalized time value because it contains \
+### illegal character %s in the fraction component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION_276=The provided \
+### value %s is not a valid generalized time value because it does not contain at \
+### least one digit after the period to use as the fractional component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO_277=The provided \
+### value %s is not a valid generalized time value because it does not end with \
+### 'Z' or a time zone offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME_278=The provided value \
+### %s is not a valid generalized time value because it represents an invalid \
+### time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED_279=Un \u00e9l\u00e9ment de sch\u00e9ma ne peut \u00eatre import\u00e9\u00a0: %s, %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE_280=La r\u00e8gle de classement %s sous la r\u00e8gle de correspondance %s est invalide car la variable locale %s n'est pas prise en charge par la JVM
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT_281=La r\u00e8gle de classement fournie %s ne contient pas de format valide de OID LOCALE
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR_282=Impossible d'analyser la valeur fournie "%s" en tant que nom valide distinctif car la valeur de l'attribut commence avec un caract\u00e8re en position %d qui doit \u00eatre \u00e9vit\u00e9
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR_283=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le caract\u00e8re '%c' \u00e0 la position %d n'est pas autoris\u00e9 dans un nom de type d'attribut
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_284=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le trait de soulignement n'est pas autoris\u00e9 dans un nom de type d'attribut, sauf si l'option de configuration %s est activ\u00e9e
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_285=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que nom distinctif valide car le trait d'union n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom de type d'attribut
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_286=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que d\u00e9finition de type d'attribut car le tiret de soulignement n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom de type d'attribut, m\u00eame si l'option de configuration %s est activ\u00e9e
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_287=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que d\u00e9finition de type d'attribut car le chiffre '%c' n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom d'attribut, sauf si le nom est sp\u00e9cifi\u00e9 comme un OID ou que l'option de configuration %s est activ\u00e9e
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR_288=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que d\u00e9finition de classe d'objet car le caract\u00e8re '%c' \u00e0 la position %d n'est pas autoris\u00e9 dans un nom de classe d'objet
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_289=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que d\u00e9finition de classe d'objet car le trait de soulignement n'est pas autoris\u00e9 dans un nom de classe d'objet, sauf si l'option de configuration %s est activ\u00e9e
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_290=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que d\u00e9finition de classe d'objet car le trait d'union n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom de classe d'objet
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_291=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que d\u00e9finition de classe d'objet car le tiret de soulignement n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'un nom de classe d'objet, m\u00eame si l'option de configuration %s est activ\u00e9e
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_292=Impossible d'analyser la valeur indiqu\u00e9e "%s" en tant que d\u00e9finition de classe d'objet car le chiffre '%c' n'est pas autoris\u00e9 en tant que premier caract\u00e8re d'une classe d'objet, sauf si le nom est sp\u00e9cifi\u00e9 comme un OID ou que l'option de configuration %s est activ\u00e9e
diff --git a/sdk/src/com/sun/opends/sdk/util/messages_ja.properties b/sdk/src/com/sun/opends/sdk/util/messages_ja.properties
new file mode 100755
index 0000000..5ef2ca8
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages_ja.properties
@@ -0,0 +1,531 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+#
+# Global directives
+#
+global.ordinal=-1
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE_1=Unable to retrieve \
+### approximate matching rule %s used as the default for the %s attribute syntax. \
+### Approximate matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE_2=Unable to retrieve \
+### equality matching rule %s used as the default for the %s attribute syntax. \
+### Equality matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE_3=Unable to retrieve \
+### ordering matching rule %s used as the default for the %s attribute syntax. \
+### Ordering matches will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE_4=Unable to retrieve \
+### substring matching rule %s used as the default for the %s attribute syntax. \
+### Substring matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN_5=The provided value "%s" is not \
+### allowed for attributes with a Boolean syntax. The only allowed values are \
+### 'TRUE' and 'FALSE'
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT_6=The provided value "%s" is too \
+### short to be a valid bit string. A bit string must be a series of binary \
+### digits surrounded by single quotes and followed by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED_7=The provided value "%s" is not \
+### a valid bit string because it is not surrounded by single quotes and followed \
+### by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT_8=The provided value "%s" is \
+### not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH_9=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u3001\u9577\u3055\u304c\u6b63\u78ba\u306b 2 \u6587\u5b57\u3067\u306f\u306a\u3044\u305f\u3081\u3001\u6709\u52b9\u306a\u56fd\u6587\u5b57\u5217\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE_10=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u3001\u30d7\u30ea\u30f3\u30c8\u4e0d\u53ef\u80fd\u306a\u6587\u5b57\u304c 1 \u3064\u4ee5\u4e0a\u542b\u307e\u308c\u308b\u305f\u3081\u3001\u6709\u52b9\u306a\u56fd\u6587\u5b57\u5217\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS_11=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u3001\u8981\u7d20\u304c\u4e00\u5207\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u6709\u52b9\u306a\u5b9f\u65bd\u30e1\u30bd\u30c3\u30c9\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT_12="%2$s" \u306f\u6709\u52b9\u306a\u30e1\u30bd\u30c3\u30c9\u3067\u306f\u306a\u3044\u305f\u3081\u3001\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u306f\u6709\u52b9\u306a\u5b9f\u65bd\u30e1\u30bd\u30c3\u30c9\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT_13=The provided value "%s" \
+### is too short to be a valid generalized time value
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR_14=The provided value \
+### "%s" is not a valid generalized time value because the '%s' character is not \
+### allowed in the century or year specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH_15=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid month \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY_16=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid day \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR_17=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid hour \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE_18=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid minute \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND_19=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid second \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND_20=The provided \
+### value "%s" is not a valid generalized time value because the sub-second \
+### component is not valid (between 1 and 3 numeric digits)
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND_21=The provided value \
+### "%s" is not a valid generalized time value because the sub-second value may \
+### not contain more than three digits
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET_22=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+### offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR_23=The provided value \
+### "%s" is not a valid generalized time value because it contains an invalid \
+### character '%s' at position %d
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE_24=The provided value \
+### "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_25=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA_26=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6700\u5f8c\u306e\u7a7a\u767d\u3067\u306a\u3044\u6587\u5b57\u304c\u30b3\u30f3\u30de\u307e\u305f\u306f\u30bb\u30df\u30b3\u30ed\u30f3\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT_27=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5b57 '%s' \u3092\u5c5e\u6027\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR_28=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 '%2$c' \u3092\u5c5e\u6027\u540d\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR_29=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002%s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u3067\u306a\u3044\u304b\u304e\u308a\u3001\u5c5e\u6027\u540d\u306b\u4e0b\u7dda\u6587\u5b57\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH_30=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30cf\u30a4\u30d5\u30f3\u6587\u5b57\u3092\u5c5e\u6027\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE_31=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002%s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u306a\u5834\u5408\u3067\u3082\u3001\u4e0b\u7dda\u6587\u5b57\u3092\u5c5e\u6027\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT_32=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u540d\u524d\u304c OID \u3068\u3057\u3066\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u304b\u3001%3$s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u3067\u306a\u3044\u304b\u304e\u308a\u3001\u6570\u5b57 '%2$c' \u3092\u5c5e\u6027\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME_33=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306b\u306f\u7a7a\u306e\u5c5e\u6027\u540d\u3092\u542b\u3080 RDN \u304c\u5b58\u5728\u3057\u3066\u3044\u305f\u305f\u3081\u3001\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD_34=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u89e3\u6790\u3055\u308c\u305f\u5c5e\u6027\u540d %s \u306b\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u3053\u306e\u540d\u524d\u306f\u6709\u52b9\u306a OID \u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME_35=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6700\u5f8c\u306e\u7a7a\u767d\u4ee5\u5916\u306e\u6587\u5b57\u304c\u5c5e\u6027\u540d '%s' \u306e\u4e00\u90e8\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL_36=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5c5e\u6027\u540d "%s" \u306e\u6b21\u306e\u7a7a\u767d\u4ee5\u5916\u306e\u6587\u5b57\u306f\u7b49\u53f7\u3067\u3042\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%c' \u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR_37=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 '%2$c' \u304c\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT_38=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5c5e\u6027\u5024\u306f\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u3067\u59cb\u307e\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u7d9a\u304f\u6587\u5b57\u304c 2 \u6841\u306e 16 \u9032\u6570\u306e\u8907\u6570\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT_39=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5c5e\u6027\u5024\u306f\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u3067\u59cb\u307e\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u6709\u52b9\u306a 16 \u9032\u6570\u3067\u306a\u3044\u6587\u5b57 %c \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE_40=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3044\u305a\u308c\u304b\u306e RDN \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304b\u3089\u306e\u5c5e\u6027\u5024\u3092\u89e3\u6790\u4e2d\u306b\u4e88\u671f\u3057\u306a\u3044\u969c\u5bb3\u304c\u767a\u751f\u3057\u307e\u3057\u305f: "%s"
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE_41=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3044\u305a\u308c\u304b\u306e RDN \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3001\u5bfe\u5fdc\u3059\u308b\u9589\u3058\u5f15\u7528\u7b26\u3092\u6301\u305f\u306a\u3044\u5f15\u7528\u7b26\u4ed8\u304d\u306e\u5024\u304c\u3042\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID_42=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3044\u305a\u308c\u304b\u306e RDN \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u5024\u3067\u3001\u30a8\u30b9\u30b1\u30fc\u30d7\u3055\u308c\u305f 16 \u9032\u6570\u306e\u3042\u3068\u306b 2 \u756a\u76ee\u306e 16 \u9032\u6570\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO_43=The provided value "%s" could \
+### not be parsed as a valid integer because the first digit may not be zero \
+### unless it is the only digit
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH_44=The provided value "%s" \
+### could not be parsed as a valid integer because the dash may only appear if it \
+### is the first character of the value followed by one or more digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER_45=The provided value "%s" \
+### could not be parsed as a valid integer because character '%c' at position %d \
+### is not allowed in an integer value
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE_46=The provided value "%s" could \
+### not be parsed as a valid integer because it did not contain any digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE_47=The provided value "%s" \
+### could not be parsed as a valid integer because it contained only a dash not \
+### followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE_48=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306b\u306f\u6587\u5b57\u304c\u4e00\u5207\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u6709\u52b9\u306a OID \u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER_49=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u3001\u4f4d\u7f6e %d \u306b\u4e0d\u6b63\u306a\u6587\u5b57\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a OID \u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS_50=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u3001\u4f4d\u7f6e %d \u307e\u305f\u306f\u305d\u306e\u4ed8\u8fd1\u306b 2 \u3064\u306e\u9023\u7d9a\u3057\u305f\u30d4\u30ea\u30aa\u30c9\u304c\u5b58\u5728\u3059\u308b\u305f\u3081\u306b\u6709\u52b9\u306a OID \u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD_51=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u3001\u672b\u5c3e\u306b\u30d4\u30ea\u30aa\u30c9\u304c\u5b58\u5728\u3059\u308b\u305f\u3081\u306b\u6709\u52b9\u306a OID \u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE_52=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u306e\u307f\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS_53=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE_54=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID_55=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID_56=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID_57=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_58=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS_59=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_60=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u578b\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c8\u30fc\u30af\u30f3 %s \u306b\u7d9a\u304f\u6700\u521d\u306e\u975e\u7a7a\u767d\u6587\u5b57\u3068\u3057\u3066\u5358\u4e00\u5f15\u7528\u7b26\u304c\u8a18\u8ff0\u3055\u308c\u308b\u3079\u304d\u3067\u3059\u304c\u3001\u6587\u5b57 %s \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE_61=The definition for \
+### the attribute type with OID %s declared a superior type with an OID of %s. \
+### No attribute type with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR_62=The definition for \
+### the attribute type with OID %s declared that approximate matching should be \
+### performed using the matching rule "%s". No such approximate matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR_63=The definition for \
+### the attribute type with OID %s declared that equality matching should be \
+### performed using the matching rule "%s". No such equality matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR_64=The definition for \
+### the attribute type with OID %s declared that ordering matching should be \
+### performed using the matching rule "%s". No such ordering matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR_65=The definition for \
+### the attribute type with OID %s declared that substring matching should be \
+### performed using the matching rule "%s". No such substring matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX_66=The definition for the \
+### attribute type with OID %s declared that it should have a syntax with OID %s. \
+### No such syntax is configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE_67=The definition \
+### for the attribute type with OID %s declared that it should have an attribute \
+### usage of %s. This is an invalid usage
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS_68=The provided value \
+### "%s" could not be parsed as an attribute type description because a single \
+### quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE_69=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u3060\u3051\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS_70=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE_71=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID_72=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID_73=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID_74=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_75=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS_76=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_77=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c8\u30fc\u30af\u30f3 %s \u306b\u7d9a\u304f\u6700\u521d\u306e\u975e\u7a7a\u767d\u6587\u5b57\u3068\u3057\u3066\u5358\u4e00\u5f15\u7528\u7b26\u304c\u8a18\u8ff0\u3055\u308c\u308b\u3079\u304d\u3067\u3059\u304c\u3001\u6587\u5b57 %s \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS_78=The definition \
+### for the objectclass with OID %s declared a superior objectclass with an OID \
+### of %s. No objectclass with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS_79=The provided \
+### value "%s" could not be parsed as an objectclass description because a single \
+### quote was expected at position %d but the character %s was found instead
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR_80=The definition \
+### for the objectclass with OID %s declared that it should include required \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR_81=The definition \
+### for the objectclass with OID %s declared that it should include optional \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER_82=The provided value "%s" \
+### cannot be parsed as a valid IA5 string because it contains an illegal \
+### character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE_83=\u3053\u308c\u306f\u3001\u96fb\u8a71\u756a\u53f7\u306e\u5c5e\u6027\u306e\u69cb\u6587\u306b ITU-T E.123 \u5f62\u5f0f\u306e\u5024\u306e\u307f\u3092\u53d7\u3051\u5165\u308c\u308b\u53b3\u683c\u306a\u30e2\u30fc\u30c9\u3092\u4f7f\u7528\u3059\u3079\u304d\u304b\u3069\u3046\u304b\u3092\u793a\u3057\u307e\u3059\u3002 \u3053\u308c\u304c\u6709\u52b9\u306a\u5834\u5408\u3001\u3053\u306e\u5f62\u5f0f\u4ee5\u5916\u306e\u5024\u306f\u3059\u3079\u3066\u62d2\u5426\u3055\u308c\u307e\u3059\u3002 \u3053\u308c\u304c\u7121\u52b9\u306a\u5834\u5408\u3001\u3059\u3079\u3066\u306e\u5024\u304c\u53d7\u3051\u5165\u308c\u3089\u308c\u307e\u3059\u304c\u3001\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u5b9f\u884c\u6642\u306b\u6570\u5b57\u306e\u307f\u304c\u8003\u616e\u3055\u308c\u307e\u3059
+###SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE_84=An error \
+### occurred while trying to retrieve attribute \
+### ds-cfg-strict-format from configuration entry %s: %s. The \
+### Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+### for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY_85=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u7a7a\u307e\u305f\u306f NULL \u3067\u3042\u308b\u305f\u3081\u3001\u6709\u52b9\u306a\u96fb\u8a71\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS_86=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u6709\u52b9\u306a\u96fb\u8a71\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u53b3\u683c\u306a\u96fb\u8a71\u756a\u53f7\u30c1\u30a7\u30c3\u30af\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u5024\u306e\u5148\u982d\u304c ITU-T E.123 \u4ed5\u69d8\u306b\u6e96\u62e0\u3057\u305f\u30d7\u30e9\u30b9\u8a18\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR_87=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u306f\u6709\u52b9\u306a\u96fb\u8a71\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u53b3\u683c\u306a\u96fb\u8a71\u756a\u53f7\u30c1\u30a7\u30c3\u30af\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 %2$s \u306f ITU-T E.123 \u4ed5\u69d8\u3067\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS_88=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u3001\u6570\u5b57\u304c\u4e00\u5207\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u6709\u52b9\u306a\u96fb\u8a71\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE_89=\u53b3\u683c\u306a\u96fb\u8a71\u756a\u53f7\u306e\u69cb\u6587\u30c1\u30a7\u30c3\u30af\u3092\u4f7f\u7528\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u793a\u3059\u8a2d\u5b9a\u5c5e\u6027 ds-cfg-strict-format \u306e\u5024\u304c\u3001\u69cb\u6210\u30a8\u30f3\u30c8\u30ea %2$s \u5185\u3067 %1$s \u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f
+###SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR_90=The provided value \
+### "%s" is not a valid numeric string because it contained character %s at \
+### position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE_91=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u6587\u5b57\u304c\u4e00\u5207\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u306b\u6709\u52b9\u306a\u6570\u5024\u6587\u5b57\u5217\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 \u6570\u5b57\u6587\u5b57\u5217\u306e\u5024\u306b\u306f\u30011 \u3064\u4ee5\u4e0a\u306e\u6570\u5b57\u307e\u305f\u306f\u7a7a\u767d\u3092\u542b\u3081\u3066\u304f\u3060\u3055\u3044
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE_92=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u306e\u307f\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS_93=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE_94=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID_95=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID_96=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID_97=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS_98=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN_99=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u307e\u305f\u306f\u305d\u306e\u4ed8\u8fd1\u306e\u6587\u5b57\u5217\u304b\u3089 "DESC" \u30c8\u30fc\u30af\u30f3\u3092\u8aad\u307f\u53d6\u308a\u4e2d\u306b\u3001\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC_100=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002"DESC" \u30c8\u30fc\u30af\u30f3\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001\u6587\u5b57\u5217 "%s" \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE_101=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u307e\u305f\u306f\u305d\u306e\u4ed8\u8fd1\u306e\u6587\u5b57\u5217\u304b\u3089 "DESC" \u30c8\u30fc\u30af\u30f3\u306e\u5024\u3092\u8aad\u307f\u53d6\u308a\u4e2d\u306b\u3001\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS_102=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u9589\u3058\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE_103=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5c5e\u6027\u69cb\u6587\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u9589\u3058\u62ec\u5f27\u306e\u3042\u3068\u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+###SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS_104=The provided \
+### value "%s" could not be parsed as an attribute syntax description because a \
+### single quote was expected at position %d but the character %s was found \
+### instead
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE_105=The provided value \
+### could not be parsed as a printable string because it was null or empty. A \
+### printable string must contain at least one character
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER_106=The provided \
+### value "%s" could not be parsed as a printable string because it contained an \
+### invalid character %s at position %d
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD_107=The provided value "*" \
+### could not be parsed as a substring assertion because it consists only of a \
+### wildcard character and zero-length substrings are not allowed
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS_108=The provided \
+### value "%s" could not be parsed as a substring assertion because it contains \
+### consecutive wildcard characters at position %d and zero-length substrings are \
+### not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT_109=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u77ed\u3059\u304e\u308b\u305f\u3081\u3001\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR_110=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002%s \u6587\u5b57\u3092\u4e16\u7d00\u3084\u5e74\u306e\u6307\u5b9a\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH_111=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002%s \u3092\u6708\u306e\u6307\u5b9a\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY_112=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002%s \u3092\u65e5\u306e\u6307\u5b9a\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR_113=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002%s \u3092\u6642\u9593\u306e\u6307\u5b9a\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE_114=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002%s \u3092\u5206\u306e\u6307\u5b9a\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR_115=\u6307\u5b9a\u3055\u308c\u305f\u5024 %1$s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u4f4d\u7f6e %3$d \u306b\u7121\u52b9\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND_116=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002%s \u3092\u79d2\u306e\u6307\u5b9a\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET_117=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u306f\u6709\u52b9\u306a UTC \u6642\u9593\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002%s \u306f\u6709\u52b9\u306a GMT \u30aa\u30d5\u30bb\u30c3\u30c8\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE_118=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u3092\u6709\u52b9\u306a UTC \u6642\u9593\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE_119=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u306e\u307f\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS_120=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE_121=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID_122=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID_123=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092 DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID_124=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092 DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS_125=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_126=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092 DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS_127=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u69cb\u9020\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9 %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL_128=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%s" \u306f\u3001OID %s (%s) \u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059\u3002 \u3053\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306f\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u306b\u5b58\u5728\u3057\u307e\u3059\u304c\u3001\u69cb\u9020\u3068\u3057\u3066\u3067\u306f\u306a\u304f %s \u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS_129=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u88dc\u52a9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9 %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY_130=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%s" \u306f\u88dc\u52a9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9 %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306f\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u306b\u5b58\u5728\u3057\u307e\u3059\u304c\u3001\u88dc\u52a9\u3067\u306f\u306a\u304f %s \u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR_131=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u5fc5\u9808\u5c5e\u6027\u578b %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR_132=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u30aa\u30d7\u30b7\u30e7\u30f3\u5c5e\u6027\u578b %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR_133=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u7981\u6b62\u5c5e\u6027\u578b %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS_134=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u5358\u4e00\u5f15\u7528\u7b26\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001%s \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE_135=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u306e\u307f\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS_136=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%c' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE_137=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID_138=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID_139=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$c \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID_140=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$c \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS_141=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_142=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$c \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS_143=\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u69cb\u9020\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9 %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL_144=\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e "%s" \u306f\u3001OID %s (%s) \u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059\u3002 \u3053\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u306f\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u306b\u5b58\u5728\u3057\u307e\u3059\u304c\u3001\u69cb\u9020\u3068\u3057\u3066\u3067\u306f\u306a\u304f %s \u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR_145=OID %s \u306e\u540d\u524d\u66f8\u5f0f\u306e\u5b9a\u7fa9\u3067\u306f\u3001\u5fc5\u9808\u5c5e\u6027 "%s" \u3092\u542b\u3081\u308b\u3079\u304d\u3067\u3042\u308b\u3068\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002 \u3053\u306e\u540d\u524d\u307e\u305f\u306f OID \u306b\u4e00\u81f4\u3059\u308b\u5c5e\u6027\u578b\u304c\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u306b\u5b58\u5728\u3057\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR_146=OID %s \u306e\u540d\u524d\u66f8\u5f0f\u306e\u5b9a\u7fa9\u3067\u306f\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u5c5e\u6027 "%s" \u3092\u542b\u3081\u308b\u3079\u304d\u3067\u3042\u308b\u3068\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002 \u3053\u306e\u540d\u524d\u307e\u305f\u306f OID \u306b\u4e00\u81f4\u3059\u308b\u5c5e\u6027\u578b\u304c\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u306b\u5b58\u5728\u3057\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS_147=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u69cb\u9020\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS_148=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u540d\u524d\u66f8\u5f0f\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u5358\u4e00\u5f15\u7528\u7b26\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001%c \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE_149=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u306e\u307f\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS_150=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE_151=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID_152=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID_153=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID_154=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS_155=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_156=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX_157=\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u5c5e\u6027\u69cb\u6587 %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX_158=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u5c5e\u6027\u69cb\u6587\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS_159=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u5358\u4e00\u5f15\u7528\u7b26\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001%s \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE_160=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u306e\u307f\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS_161=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE_162=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID_163=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID_164=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID_165=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE_166=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6307\u5b9a\u3055\u308c\u305f\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb %s \u306f\u4e0d\u660e\u3067\u3059
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS_167=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_168=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR_169=\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e "%s" \u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30b9\u30ad\u30fc\u30de\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u5c5e\u6027\u578b %s \u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR_170=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f OID \u3067\u4f7f\u7528\u53ef\u80fd\u306a\u5c5e\u6027\u578b\u306e\u30bb\u30c3\u30c8\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS_171=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u306e\u4f7f\u7528\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u5358\u4e00\u5f15\u7528\u7b26\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001%s \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE_172=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u304b\u7a7a\u767d\u306e\u307f\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u306b\u6709\u52b9\u306a DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS_173=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u958b\u304d\u62ec\u5f27\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001'%s' \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE_174=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306f\u3088\u308a\u591a\u304f\u306e\u30c7\u30fc\u30bf\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u672b\u5c3e\u306b\u9054\u3057\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID_175=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u898f\u5247 ID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS_176=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u4e88\u671f\u3057\u306a\u3044\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_177=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM_178=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4e0d\u660e\u306a\u540d\u524d\u66f8\u5f0f %s \u304c\u53c2\u7167\u3055\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID_179=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4e0a\u4f4d\u306e DIT \u69cb\u9020\u898f\u5247\u3068\u3057\u3066\u4e0d\u660e\u306a\u898f\u5247 ID %d \u304c\u53c2\u7167\u3055\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM_180=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u898f\u5247\u306e\u540d\u524d\u66f8\u5f0f\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS_181=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u306f\u5358\u4e00\u5f15\u7528\u7b26\u304c\u5b58\u5728\u3059\u308b\u3079\u304d\u3067\u3059\u304c\u3001%s \u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID_182=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID_183=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID_184=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092 DIT \u69cb\u9020\u898f\u5247\u306e\u8aac\u660e\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u975e\u6570\u5024 OID \u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT_185=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306f\u77ed\u3059\u304e\u308b\u305f\u3081\u3001\u6709\u52b9\u306a\u30c6\u30ec\u30c3\u30af\u30b9\u756a\u53f7\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE_186=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u306b\u306f\u6709\u52b9\u306a\u30c6\u30ec\u30c3\u30af\u30b9\u756a\u53f7\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 %2$s \u306f\u6709\u52b9\u306a\u30d7\u30ea\u30f3\u30c8\u53ef\u80fd\u6587\u5b57\u5217\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR_187=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u306b\u306f\u6709\u52b9\u306a\u30c6\u30ec\u30c3\u30af\u30b9\u756a\u53f7\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 %2$s \u306f\u3001\u6709\u52b9\u306a\u30d7\u30ea\u30f3\u30c8\u53ef\u80fd\u6587\u5b57\u5217\u3067\u3082\u3001\u30c6\u30ec\u30c3\u30af\u30b9\u756a\u53f7\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u533a\u5207\u308b\u305f\u3081\u306e\u30c9\u30eb\u8a18\u53f7\u3067\u3082\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED_188=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u306b\u306f\u6709\u52b9\u306a\u30c6\u30ec\u30c3\u30af\u30b9\u756a\u53f7\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30c9\u30eb\u8a18\u53f7\u3067\u533a\u5207\u3089\u308c\u305f 3 \u3064\u306e\u30d7\u30ea\u30f3\u30c8\u53ef\u80fd\u6587\u5b57\u5217\u3092\u8aad\u307f\u53d6\u308b\u524d\u306b\u3001\u5024\u306e\u672b\u5c3e\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY_189=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u305f\u3081\u306b\u6709\u52b9\u306a FAX \u756a\u53f7\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE_190=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a FAX \u756a\u53f7\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 %2$s \u306f\u6709\u52b9\u306a\u30d7\u30ea\u30f3\u30c8\u53ef\u80fd\u6587\u5b57\u5217\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR_191=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a FAX \u756a\u53f7\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u672b\u5c3e\u304c\u30c9\u30eb\u8a18\u53f7\u3067\u3057\u305f\u304c\u3001\u30c9\u30eb\u8a18\u53f7\u306e\u3042\u3068\u306b FAX \u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u3079\u304d\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER_192=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a FAX \u756a\u53f7\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u3068 %4$d \u306e\u9593\u306e\u6587\u5b57\u5217 "%2$s" \u306f\u6709\u52b9\u306a FAX \u30d1\u30e9\u30e1\u30fc\u30bf\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN_193=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u540d\u524d\u304a\u3088\u3073\u30aa\u30d7\u30b7\u30e7\u30f3 UID \u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002DN \u90e8\u3092\u89e3\u6790\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT_194=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u540d\u524d\u304a\u3088\u3073\u30aa\u30d7\u30b7\u30e7\u30f3 UID \u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002UID \u90e8\u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a 2 \u9032\u6570 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY_195=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u305f\u3081\u306b\u6709\u52b9\u306a\u30c6\u30ec\u30c6\u30c3\u30af\u30b9\u7aef\u672b\u8b58\u5225\u5b50\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE_196=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u30c6\u30ec\u30c6\u30c3\u30af\u30b9\u7aef\u672b\u8b58\u5225\u5b50\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 %2$s \u306f\u6709\u52b9\u306a\u30d7\u30ea\u30f3\u30c8\u53ef\u80fd\u6587\u5b57\u5217\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR_197=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u30c6\u30ec\u30c6\u30c3\u30af\u30b9\u7aef\u672b\u8b58\u5225\u5b50\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u672b\u5c3e\u304c\u30c9\u30eb\u8a18\u53f7\u3067\u3057\u305f\u304c\u3001\u30c9\u30eb\u8a18\u53f7\u306e\u3042\u3068\u306b TTX \u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u3079\u304d\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON_198=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u30c6\u30ec\u30c6\u30c3\u30af\u30b9\u7aef\u672b\u8b58\u5225\u5b50\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30d1\u30e9\u30e1\u30fc\u30bf\u6587\u5b57\u5217\u306b\u540d\u524d\u3068\u5024\u3092\u533a\u5207\u308b\u30b3\u30ed\u30f3\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER_199=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u30c6\u30ec\u30c6\u30c3\u30af\u30b9\u7aef\u672b\u8b58\u5225\u5b50\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6587\u5b57\u5217 "%s" \u306f\u6709\u52b9\u306a TTX \u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u3067\u306f\u3042\u308a\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE_200=\u6307\u5b9a\u3055\u308c\u305f\u5024\u306f\u3001\u7a7a\u3067\u3042\u308b\u305f\u3081\u306b\u5225\u306e\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE_201=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5225\u306e\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c9\u30eb\u8a18\u53f7\u306e\u524d\u306b\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u578b\u304c\u8a18\u8ff0\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR_202=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5225\u306e\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u578b\u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX_203=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5225\u306e\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30c9\u30eb\u8a18\u53f7\u306e\u3042\u3068\u306b\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u8a18\u8ff0\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR_204=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u5225\u306e\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u306e\u4f4d\u7f6e %3$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %2$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC_205=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u306e\u524d\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d\u3082 OID \u3082\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR_206=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u90e8 %2$s \u306e\u4f4d\u7f6e %4$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %3$c \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN_207=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u90e8 %s \u306b\u3001\u6700\u521d\u306e\u958b\u304d\u62ec\u5f27\u306b\u5bfe\u5fdc\u3059\u308b\u9589\u3058\u62ec\u5f27\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK_208=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u90e8 %s \u306e\u5148\u982d\u306f\u7591\u554f\u7b26\u3067\u3057\u305f\u304c\u3001\u305d\u306e\u3042\u3068\u306b\u6587\u5b57\u5217 "true" \u307e\u305f\u306f "false" \u304c\u7d9a\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR_209=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u90e8 %s \u306b\u3001\u5c5e\u6027\u578b\u3068\u4e00\u81f4\u578b\u3092\u533a\u5207\u308b\u30c9\u30eb\u8a18\u53f7\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR_210=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u90e8 %s \u3067\u30c9\u30eb\u8a18\u53f7\u306e\u524d\u306b\u5c5e\u6027\u578b\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE_211=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u90e8 %s \u3067\u30c9\u30eb\u8a18\u53f7\u306e\u3042\u3068\u306b\u4e00\u81f4\u578b\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE_212=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u90e8 %s \u306b\u3001\u4f4d\u7f6e %d \u304b\u3089\u59cb\u307e\u308b\u7121\u52b9\u306a\u4e00\u81f4\u578b\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP_213=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3068\u6761\u4ef6\u3092\u533a\u5207\u308b\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC_214=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u306e\u524d\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d\u3082 OID \u3082\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID_215=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u6307\u5b9a\u3059\u308b\u6570\u5024 OID %s \u306e\u4f4d\u7f6e %d \u306b\u9023\u7d9a\u3059\u308b 2 \u3064\u306e\u30d4\u30ea\u30aa\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID_216=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u6307\u5b9a\u3059\u308b\u6570\u5024 OID %2$s \u306e\u4f4d\u7f6e %4$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %3$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME_217=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d %2$s \u306e\u4f4d\u7f6e %4$d \u306b\u4e0d\u6b63\u306a\u6587\u5b57 %3$s \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP_218=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6761\u4ef6\u3068\u6709\u52b9\u7bc4\u56f2\u3092\u533a\u5207\u308b\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE_219=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6700\u5f8c\u306e\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u306e\u3042\u3068\u306b\u6709\u52b9\u7bc4\u56f2\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE_220=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6307\u5b9a\u3055\u308c\u305f\u6709\u52b9\u7bc4\u56f2 %s \u304c\u7121\u52b9\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA_221=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u62e1\u5f35\u30ac\u30a4\u30c9\u5024\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7 (#) \u306e\u9593\u306b\u6761\u4ef6\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE_222=\u6307\u5b9a\u3055\u308c\u305f\u5024 %s \u3092\u6709\u52b9\u306a OID \u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f: %s
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE_223=An unexpected \
+### error occurred while trying to normalize value %s as a generalized time \
+### value: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE_224=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseExactOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE_225=An error occurred while \
+### attempting to compare two objects using the caseExactOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE_226=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE_227=An error occurred while \
+### attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE_228=An error \
+### occurred while attempting to compare two AttributeValue objects using the \
+### generalizedTimeOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE_229=An error occurred \
+### while attempting to compare two objects using the \
+### generalizedTimeOrderingMatch matching rule because the objects were of an \
+### unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+### value objects may be compared
+###SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE_230=An error occurred while \
+### attempting to compare two AttributeValue objects using the \
+### integerOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE_231=An error occurred while \
+### attempting to compare two objects using the integerOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE_232=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### numericStringOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE_233=An error occurred \
+### while attempting to compare two objects using the numericStringOrderingMatch \
+### matching rule because the objects were of an unsupported type %s. Only byte \
+### arrays, ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE_234=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### octetStringOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE_235=An error occurred while \
+### attempting to compare two objects using the octetStringOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH_236=The provided value "%s" has \
+### an invalid length for a UUID. All UUID values must have a length of exactly \
+### 36 bytes, but the provided value had a length of %d bytes
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH_237=The provided value "%s" should \
+### have had a dash at position %d, but the character '%s' was found instead
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX_238=The provided value "%s" should \
+### have had a hexadecimal digit at position %d, but the character '%s' was found \
+### instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH_239=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u6587\u5b57\u5217\u69cb\u6587\u3092\u542b\u3080\u5c5e\u6027\u306b\u9577\u3055\u304c 0 \u306e\u5024\u3092\u6307\u5b9a\u3067\u304d\u308b\u304b\u3069\u3046\u304b\u3092\u793a\u3057\u307e\u3059\u3002 \u3053\u308c\u306f\u3001\u53b3\u5bc6\u306b\u306f LDAP \u4ed5\u69d8\u3067\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u304c\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306e\u4ee5\u524d\u306e\u30ea\u30ea\u30fc\u30b9\u3068\u306e\u4e0b\u4f4d\u4e92\u63db\u6027\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306b\u6709\u7528\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH_240=An \
+### error occurred while trying to determine the value of the %s configuration \
+### attribute, which indicates whether directory string attributes should be \
+### allowed to have zero-length values: %s
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE_241=The \
+### operation attempted to assign a zero-length value to an attribute with the \
+### directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH_242=\u69cb\u6210\u30a8\u30f3\u30c8\u30ea %2$s \u5185\u306e %1$s \u5c5e\u6027\u304c\u65b0\u3057\u3044\u5024 %3$s \u3067\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR_243=The provided \
+### authPassword value had an invalid scheme character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_244=The provided authPassword value \
+### had a zero-length scheme element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR_245=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the scheme and authInfo elements
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR_246=The provided \
+### authPassword value had an invalid authInfo character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_247=The provided authPassword \
+### value had a zero-length authInfo element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR_248=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the authInfo and authValue elements
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS_249=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### it did not start with a parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE_250=The provided value "%s" could not \
+### be parsed by the integer first component matching rule because it did not \
+### have any non-space characters after the opening parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT_251=The provided value "%s" \
+### could not be parsed by the integer first component matching rule because it \
+### did not have any space characters after the first component
+###SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT_252=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### the first component does not appear to be an integer value
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE_253=No value was given to decode by \
+### the user password attribute syntax
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE_254=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not start with the opening curly brace ("{") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE_255=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not contain a closing curly brace ("}") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME_256=Unable to decode the provided \
+### value according to the user password syntax because the value does not \
+### contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID_257=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a RFC 3672 \u30b5\u30d6\u30c4\u30ea\u30fc\u4ed5\u69d8\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID_258=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u7d76\u5bfe\u30b5\u30d6\u30c4\u30ea\u30fc\u4ed5\u69d8\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID_259=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u76f8\u5bfe\u30b5\u30d6\u30c4\u30ea\u30fc\u4ed5\u69d8\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER_260=The provided value %s is not \
+### allowed for attributes with a Integer syntax
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR_261=The provided \
+### authPassword value had an invalid authValue character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE_262=The provided authPassword \
+### value had a zero-length authValue element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR_263=The provided \
+### authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER_264=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u5c5e\u6027\u69cb\u6587\u62e1\u5f35\u6a5f\u80fd\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %d \u306b\u7121\u52b9\u306a\u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION_265=\u62e1\u5f35\u6a5f\u80fd\u304c\u7121\u52b9\u3067\u3042\u308b\u305f\u3081\u3001\u5c5e\u6027\u69cb\u6587\u3092\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002%s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE_266=The definition \
+### for objectclass %s is invalid because it has an objectclass type of %s but \
+### this is incompatible with the objectclass type %s for the superior class %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP_267=The \
+### definition for objectclass %s is invalid because it is defined as a \
+### structural class but its superior chain does not include the "top" \
+### objectclass
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE_268=The definition \
+### for attribute type %s is invalid because its attribute usage %s is not the \
+### same as the usage for its superior type %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE_269=The \
+### definition for attribute type %s is invalid because it is defined as a \
+### collective type but the superior type %s is not collective
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE_270=The \
+### definition for attribute type %s is invalid because it is not defined as a \
+### collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL_271=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%1$s" \u306f\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u69cb\u9020\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9 %3$s \u3067\u5fc5\u8981\u3068\u3055\u308c\u308b\u5c5e\u6027\u578b %2$s \u306e\u4f7f\u7528\u304c\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY_272=DIT \u30b3\u30f3\u30c6\u30f3\u30c4\u898f\u5247 "%1$s" \u306f\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u88dc\u52a9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9 %3$s \u3067\u5fc5\u8981\u3068\u3055\u308c\u308b\u5c5e\u6027\u578b %2$s \u306e\u4f7f\u7528\u304c\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL_273=The definition \
+### for attribute type %s is invalid because it is declared COLLECTIVE but does \
+### not have a usage of userApplications
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL_274=The \
+### definition for attribute type %s is invalid because it is declared \
+### NO-USER-MODIFICATION but does not have an operational usage
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR_275=The \
+### provided value %s is not a valid generalized time value because it contains \
+### illegal character %s in the fraction component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION_276=The provided \
+### value %s is not a valid generalized time value because it does not contain at \
+### least one digit after the period to use as the fractional component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO_277=The provided \
+### value %s is not a valid generalized time value because it does not end with \
+### 'Z' or a time zone offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME_278=The provided value \
+### %s is not a valid generalized time value because it represents an invalid \
+### time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED_279=\u30b9\u30ad\u30fc\u30de\u8981\u7d20\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f: %s\u3001%s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE_280=\u30ed\u30b1\u30fc\u30eb %s \u306f JVM \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u30de\u30c3\u30c1\u30f3\u30b0\u30eb\u30fc\u30eb\u30a8\u30f3\u30c8\u30ea %s \u306e\u7167\u5408\u30eb\u30fc\u30eb %s \u306f\u7121\u52b9\u3067\u3059
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT_281=\u6307\u5b9a\u3055\u308c\u305f\u7167\u5408\u30eb\u30fc\u30eb %s \u306b\u3001\u6709\u52b9\u306a\u5f62\u5f0f\u306e OID:LOCALE \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR_282=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u8b58\u5225\u540d\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5c5e\u6027\u5024\u306e\u5148\u982d\u6587\u5b57 (\u4f4d\u7f6e %d) \u306f\u30a8\u30b9\u30b1\u30fc\u30d7\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3067\u3059
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR_283=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u5c5e\u6027\u578b\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 '%2$c' \u3092\u5c5e\u6027\u578b\u540d\u306b\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_284=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u5c5e\u6027\u578b\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002%s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u3067\u306a\u3044\u304b\u304e\u308a\u3001\u5c5e\u6027\u578b\u540d\u306b\u4e0b\u7dda\u6587\u5b57\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_285=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u5c5e\u6027\u578b\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30cf\u30a4\u30d5\u30f3\u6587\u5b57\u3092\u5c5e\u6027\u578b\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_286=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u5c5e\u6027\u578b\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002%s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u306a\u5834\u5408\u3067\u3082\u3001\u4e0b\u7dda\u6587\u5b57\u3092\u5c5e\u6027\u578b\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_287=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u5c5e\u6027\u578b\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u540d\u524d\u304c OID \u3068\u3057\u3066\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u304b\u3001%3$s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u3067\u306a\u3044\u304b\u304e\u308a\u3001\u6570\u5b57 '%2$c' \u3092\u5c5e\u6027\u578b\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR_288=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f4d\u7f6e %3$d \u306e\u6587\u5b57 '%2$c' \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d\u306b\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_289=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002%s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u3067\u306a\u3044\u304b\u304e\u308a\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d\u306b\u4e0b\u7dda\u6587\u5b57\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_290=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30cf\u30a4\u30d5\u30f3\u6587\u5b57\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_291=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%s" \u3092\u6709\u52b9\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002%s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u306a\u5834\u5408\u3067\u3082\u3001\u4e0b\u7dda\u6587\u5b57\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_292=\u6307\u5b9a\u3055\u308c\u305f\u5024 "%1$s" \u3092\u6709\u52b9\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u5b9a\u7fa9\u3068\u3057\u3066\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u540d\u524d\u304c OID \u3068\u3057\u3066\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u304b\u3001%3$s \u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u3067\u306a\u3044\u304b\u304e\u308a\u3001\u6570\u5b57 '%2$c' \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u540d\u306e\u6700\u521d\u306e\u6587\u5b57\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059
diff --git a/sdk/src/com/sun/opends/sdk/util/messages_ko.properties b/sdk/src/com/sun/opends/sdk/util/messages_ko.properties
new file mode 100755
index 0000000..a29b8bd
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages_ko.properties
@@ -0,0 +1,531 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+#
+# Global directives
+#
+global.ordinal=-1
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE_1=Unable to retrieve \
+### approximate matching rule %s used as the default for the %s attribute syntax. \
+### Approximate matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE_2=Unable to retrieve \
+### equality matching rule %s used as the default for the %s attribute syntax. \
+### Equality matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE_3=Unable to retrieve \
+### ordering matching rule %s used as the default for the %s attribute syntax. \
+### Ordering matches will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE_4=Unable to retrieve \
+### substring matching rule %s used as the default for the %s attribute syntax. \
+### Substring matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN_5=The provided value "%s" is not \
+### allowed for attributes with a Boolean syntax. The only allowed values are \
+### 'TRUE' and 'FALSE'
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT_6=The provided value "%s" is too \
+### short to be a valid bit string. A bit string must be a series of binary \
+### digits surrounded by single quotes and followed by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED_7=The provided value "%s" is not \
+### a valid bit string because it is not surrounded by single quotes and followed \
+### by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT_8=The provided value "%s" is \
+### not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH_9=\uae38\uc774\uac00 \uc815\ud655\ud788 \ub450 \ubb38\uc790\uac00 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \uad6d\uac00 \ubb38\uc790\uc5f4\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE_10=\ud558\ub098 \uc774\uc0c1\uc758 \uc778\uc1c4\ud560 \uc218 \uc5c6\ub294 \ubb38\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \uad6d\uac00 \ubb38\uc790\uc5f4\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS_11=\uc694\uc18c\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \uc804\ub2ec \ubc29\ubc95\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT_12=\"%2$s\"\uc774(\uac00) \uc720\ud6a8\ud55c \ubc29\ubc95\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc740(\ub294) \uc720\ud6a8\ud55c \uc804\ub2ec \ubc29\ubc95\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT_13=The provided value "%s" \
+### is too short to be a valid generalized time value
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR_14=The provided value \
+### "%s" is not a valid generalized time value because the '%s' character is not \
+### allowed in the century or year specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH_15=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid month \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY_16=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid day \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR_17=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid hour \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE_18=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid minute \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND_19=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid second \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND_20=The provided \
+### value "%s" is not a valid generalized time value because the sub-second \
+### component is not valid (between 1 and 3 numeric digits)
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND_21=The provided value \
+### "%s" is not a valid generalized time value because the sub-second value may \
+### not contain more than three digits
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET_22=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+### offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR_23=The provided value \
+### "%s" is not a valid generalized time value because it contains an invalid \
+### character '%s' at position %d
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE_24=The provided value \
+### "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_25=\uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA_26=\uacf5\ubc31\uc774 \uc544\ub2cc \ub9c8\uc9c0\ub9c9 \ubb38\uc790\uac00 \uc27c\ud45c\ub098 \uc138\ubbf8\ucf5c\ub860\uc774\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT_27=\uc22b\uc790 '%2$s'\uc774(\uac00) \uc18d\uc131 \uc774\ub984\uc758 \uccab \ubc88\uc9f8 \ubb38\uc790\ub85c \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR_28=\uc704\uce58 %3$d\uc5d0 \uc788\ub294 \ubb38\uc790 '%2$c'\uc774(\uac00) \uc18d\uc131 \uc774\ub984\uc5d0 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR_29=%2$s \uad6c\uc131 \uc635\uc158\uc774 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc73c\uba74 \ubc11\uc904\uc774 \uc18d\uc131 \uc774\ub984\uc5d0 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH_30=\ud558\uc774\ud508\uc774 \uc18d\uc131 \uc774\ub984\uc758 \uccab \ubc88\uc9f8 \ubb38\uc790\ub85c \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE_31=%2$s \uad6c\uc131 \uc635\uc158\uc774 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\ub354\ub77c\ub3c4 \ubc11\uc904\uc774 \uc18d\uc131 \uc774\ub984\uc758 \uccab \ubc88\uc9f8 \ubb38\uc790\ub85c \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT_32=The provided value "%s" could not be parsed as a valid distinguished name because the digit '%c' is not allowed as the first character of an attribute name unless the name is specified as an OID or the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME_33=\ube48 \uc18d\uc131 \uc774\ub984\uc744 \uac00\uc9c4 RDN\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD_34=\uad6c\ubb38 \ubd84\uc11d\ub41c \uc18d\uc131 \uc774\ub984 %2$s\uc5d0 \ub9c8\uce68\ud45c\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0\ub9cc \ud574\ub2f9 \uc774\ub984\uc774 \uc720\ud6a8\ud55c OID\uac00 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME_35=\uacf5\ubc31\uc774 \uc544\ub2cc \ub9c8\uc9c0\ub9c9 \ubb38\uc790\uac00 \uc18d\uc131 \uc774\ub984 '%2$s'\uc758 \uc77c\ubd80\uc774\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL_36=\uc18d\uc131 \uc774\ub984 \"%2$s\" \ub4a4\uc5d0 \uacf5\ubc31\uc774 \uc544\ub2cc \ub2e4\uc74c \ubb38\uc790\uac00 \ub4f1\ud638 \uae30\ud638\uc5ec\uc57c \ud558\ub294\ub370 '%3$c'\uc774\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR_37=\uc704\uce58 %3$d\uc5d0 \uc788\ub294 \ubb38\uc790 '%2$c'\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT_38=\uc18d\uc131 \uac12\uc774 # \uae30\ud638\ub85c \uc2dc\uc791\ud558\uc9c0\ub9cc \ub4a4\uc5d0 \ub450 16\uc9c4\uc218 \uc22b\uc790\uc758 \uc591\uc758 \ubc30\uc218\uac00 \uc624\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT_39=\uc18d\uc131 \uac12\uc774 # \uae30\ud638\ub85c \uc2dc\uc791\ud558\uc9c0\ub9cc \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 16\uc9c4\uc218 \uc22b\uc790\uc778 %2$c \ubb38\uc790\ub97c \ud3ec\ud568\ud558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\" \uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE_40=RDN \uad6c\uc131\uc694\uc18c \uc911 \ud558\ub098\uc5d0\uc11c \uc18d\uc131 \uac12\uc744 \uad6c\ubb38 \ubd84\uc11d\ud558\ub294 \ub3d9\uc548 \uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: "%s"
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE_41=RDN \uad6c\uc131\uc694\uc18c \uc911 \ud558\ub098\uac00 \ud574\ub2f9\ud558\ub294 \ub2eb\ub294 \uc778\uc6a9 \ubd80\ud638\uac00 \uc5c6\ub294 \uc778\uc6a9 \uac12\uc744 \ud3ec\ud568\ud558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID_42=RDN \uad6c\uc131\uc694\uc18c \uc911 \ud558\ub098\uac00 \uc774\uc2a4\ucf00\uc774\ud504 \ucc98\ub9ac\ub41c 16\uc9c4\uc218 \uc22b\uc790\uac00 \uc788\ub294 \uac12\uc744 \ud3ec\ud568\ud558\uc9c0\ub9cc \ub4a4\uc5d0 \ub450 \ubc88\uc9f8 16\uc9c4\uc218 \uc22b\uc790\uac00 \uc624\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uace0\uc720 \uc774\ub984\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO_43=The provided value "%s" could \
+### not be parsed as a valid integer because the first digit may not be zero \
+### unless it is the only digit
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH_44=The provided value "%s" \
+### could not be parsed as a valid integer because the dash may only appear if it \
+### is the first character of the value followed by one or more digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER_45=The provided value "%s" \
+### could not be parsed as a valid integer because character '%c' at position %d \
+### is not allowed in an integer value
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE_46=The provided value "%s" could \
+### not be parsed as a valid integer because it did not contain any digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE_47=The provided value "%s" \
+### could not be parsed as a valid integer because it contained only a dash not \
+### followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE_48=\ubb38\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c OID\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER_49=\uc704\uce58 %2$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c OID\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS_50=\uc704\uce58 %2$d \ub610\ub294 \uadf8 \uadfc\ucc98\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450 \uac1c \uc5f0\uc18d\ud574\uc11c \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c OID\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD_51=\ub9c8\uce68\ud45c\ub85c \ub05d\ub098\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c OID\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE_52=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS_53=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE_54=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID_55=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450 \uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID_56=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID_57=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_58=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS_59=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_60=\ud1a0\ud070 %2$s \ub4a4\uc758 \uacf5\ubc31\uc774 \uc544\ub2cc \uccab \ubc88\uc9f8 \ubb38\uc790\ub85c \uc791\uc740 \ub530\uc634\ud45c\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 %3$s \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uc720\ud615 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE_61=The definition for \
+### the attribute type with OID %s declared a superior type with an OID of %s. \
+### No attribute type with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR_62=The definition for \
+### the attribute type with OID %s declared that approximate matching should be \
+### performed using the matching rule "%s". No such approximate matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR_63=The definition for \
+### the attribute type with OID %s declared that equality matching should be \
+### performed using the matching rule "%s". No such equality matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR_64=The definition for \
+### the attribute type with OID %s declared that ordering matching should be \
+### performed using the matching rule "%s". No such ordering matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR_65=The definition for \
+### the attribute type with OID %s declared that substring matching should be \
+### performed using the matching rule "%s". No such substring matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX_66=The definition for the \
+### attribute type with OID %s declared that it should have a syntax with OID %s. \
+### No such syntax is configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE_67=The definition \
+### for the attribute type with OID %s declared that it should have an attribute \
+### usage of %s. This is an invalid usage
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS_68=The provided value \
+### "%s" could not be parsed as an attribute type description because a single \
+### quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE_69=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS_70=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE_71=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID_72=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450 \uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID_73=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID_74=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_75=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS_76=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_77=\ud1a0\ud070 %2$s \ub4a4\uc758 \uacf5\ubc31\uc774 \uc544\ub2cc \uccab \ubc88\uc9f8 \ubb38\uc790\ub85c \uc791\uc740 \ub530\uc634\ud45c\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 %3$s \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac1d\uccb4 \ud074\ub798\uc2a4 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS_78=The definition \
+### for the objectclass with OID %s declared a superior objectclass with an OID \
+### of %s. No objectclass with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS_79=The provided \
+### value "%s" could not be parsed as an objectclass description because a single \
+### quote was expected at position %d but the character %s was found instead
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR_80=The definition \
+### for the objectclass with OID %s declared that it should include required \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR_81=The definition \
+### for the objectclass with OID %s declared that it should include optional \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER_82=The provided value "%s" \
+### cannot be parsed as a valid IA5 string because it contains an illegal \
+### character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE_83=\uc774\ub294 \uc804\ud654 \ubc88\ud638 \uc18d\uc131 \uad6c\ubb38\uc5d0\uc11c ITU-T E.123 \ud615\uc2dd\uc758 \uac12\ub9cc \ud5c8\uc6a9\ud558\ub294 \uc5c4\uaca9\ud55c \ubaa8\ub4dc\ub97c \uc0ac\uc6a9\ud560\uc9c0 \uc5ec\ubd80\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uc774 \ubaa8\ub4dc\ub97c \ud65c\uc131\ud654\ud558\uba74 \uc774 \ud615\uc2dd\uc5d0 \uc5c6\ub294 \uac12\uc740 \ubaa8\ub450 \uac70\ubd80\ub429\ub2c8\ub2e4. \uc774 \ubaa8\ub4dc\ub97c \ube44\ud65c\uc131\ud654\ud558\uba74 \ubaa8\ub4e0 \uac12\uc774 \ud5c8\uc6a9\ub418\uc9c0\ub9cc \uc77c\uce58\ub97c \uc218\ud589\ud560 \ub54c \uc22b\uc790\ub9cc \uace0\ub824\ud569\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE_84=An error \
+### occurred while trying to retrieve attribute \
+### ds-cfg-strict-format from configuration entry %s: %s. The \
+### Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+### for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY_85=\ube44\uc5b4 \uc788\uac70\ub098 null\uc774\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc740 \uc720\ud6a8\ud55c \uc804\ud654 \ubc88\ud638\uac00 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS_86=\uc5c4\uaca9\ud55c \uc804\ud654 \ubc88\ud638 \ud655\uc778\uc774 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uace0 \uac12\uc774 ITU-T E.123 \uc0ac\uc591\uc5d0 \ub9de\uac8c \ub354\ud558\uae30 \uae30\ud638\ub85c \uc2dc\uc791\ud558\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \uc804\ud654 \ubc88\ud638\uac00 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR_87=\uc5c4\uaca9\ud55c \uc804\ud654 \ubc88\ud638 \ud655\uc778\uc774 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uace0 \uc704\uce58 %3$d\uc5d0 \uc788\ub294 \ubb38\uc790 %2$s\uc774(\uac00) ITU-T E.123 \uc0ac\uc591\uc5d0 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc740(\ub294) \uc720\ud6a8\ud55c \uc804\ud654 \ubc88\ud638\uac00 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS_88=\uc22b\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \uc804\ud654 \ubc88\ud638\uac00 \uc544\ub2d9\ub2c8\ub2e4.
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE_89=\uad6c\uc131 \ud56d\ubaa9 %2$s\uc5d0\uc11c \uc5c4\uaca9\ud55c \uc804\ud654 \ubc88\ud638 \uad6c\ubb38 \ud655\uc778\uc744 \uc0ac\uc6a9\ud560\uc9c0 \uc5ec\ubd80\ub97c \ub098\ud0c0\ub0b4\ub294 ds-cfg-strict-format \uad6c\uc131 \uc18d\uc131 \uac12\uc774 %1$s(\uc73c)\ub85c \uc5c5\ub370\uc774\ud2b8\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR_90=The provided value \
+### "%s" is not a valid numeric string because it contained character %s at \
+### position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE_91=\ubb38\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc740 \uc720\ud6a8\ud55c \uc22b\uc790 \ubb38\uc790\uc5f4\uc774 \uc544\ub2d9\ub2c8\ub2e4. \uc22b\uc790 \ubb38\uc790\uc5f4 \uac12\uc740 \ud558\ub098 \uc774\uc0c1\uc758 \uc22b\uc790\ub098 \uacf5\ubc31\uc744 \ud3ec\ud568\ud574\uc57c \ud569\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE_92=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS_93=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE_94=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID_95=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450 \uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID_96=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID_97=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS_98=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN_99=\uc704\uce58 %2$d \ub610\ub294 \uadf8 \uadfc\ucc98\uc5d0\uc11c "DESC" \ud1a0\ud070\uc744 \uc77d\ub294 \ub3d9\uc548 \uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: %3$s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC_100="DESC" \ud1a0\ud070\uc774 \uc788\uc5b4\uc57c \ud558\ub294\ub370 \"%2$s\" \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE_101=\uc704\uce58 %2$d \ub610\ub294 \uadf8 \uadfc\ucc98\uc5d0\uc11c "DESC" \ud1a0\ud070 \uac12\uc744 \uc77d\ub294 \ub3d9\uc548 \uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: %3$s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS_102=\uc704\uce58 %2$d\uc5d0 \ub2eb\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE_103=\uc704\uce58 %3$d\uc758 \ub2eb\ub294 \uad04\ud638 \ub4a4\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS_104=The provided \
+### value "%s" could not be parsed as an attribute syntax description because a \
+### single quote was expected at position %d but the character %s was found \
+### instead
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE_105=The provided value \
+### could not be parsed as a printable string because it was null or empty. A \
+### printable string must contain at least one character
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER_106=The provided \
+### value "%s" could not be parsed as a printable string because it contained an \
+### invalid character %s at position %d
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD_107=The provided value "*" \
+### could not be parsed as a substring assertion because it consists only of a \
+### wildcard character and zero-length substrings are not allowed
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS_108=The provided \
+### value "%s" could not be parsed as a substring assertion because it contains \
+### consecutive wildcard characters at position %d and zero-length substrings are \
+### not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT_109=\uc81c\uacf5\ub41c \uac12 %s\uc740(\ub294) \ub108\ubb34 \uc9e7\uc544 \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \ub420 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR_110=\uc138\uae30 \ub610\ub294 \uc5f0\ub3c4 \uc0ac\uc591\uc5d0 '%2$s' \ubb38\uc790\uac00 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH_111=%2$s\uc774(\uac00) \uc720\ud6a8\ud55c \uc6d4 \uc0ac\uc591\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY_112=%2$s\uc774(\uac00) \uc720\ud6a8\ud55c \uc77c \uc0ac\uc591\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR_113=%2$s\uc774(\uac00) \uc720\ud6a8\ud55c \uc2dc\uac04 \uc0ac\uc591\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE_114=%2$s\uc774(\uac00) \uc720\ud6a8\ud55c \ubd84 \uc0ac\uc591\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR_115=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND_116=%2$s\uc774(\uac00) \uc720\ud6a8\ud55c \ucd08\u00b7\uc0ac\uc591\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET_117=%2$s\uc774(\uac00) \uc720\ud6a8\ud55c GMT \uc624\ud504\uc14b\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 %1$s\uc740(\ub294) \uc720\ud6a8\ud55c UTC \uc2dc\uac04 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE_118=\uc81c\uacf5\ub41c \uac12 %s\uc744(\ub97c) \uc720\ud6a8\ud55c UTC \uc2dc\uac04\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE_119=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c DIT \ucee8\ud150\ud2b8 \uaddc\uce59\u00b7\uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS_120=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE_121=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID_122=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450 \uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID_123=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID_124=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS_125=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_126=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS_127=DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \uad6c\uc870\uc801 \uac1d\uccb4 \ud074\ub798\uc2a4 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL_128=DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) OID\uac00 %s(%s)\uc778 \uac1d\uccb4 \ud074\ub798\uc2a4\uc640 \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uac1d\uccb4 \ud074\ub798\uc2a4\ub294 \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc788\uc9c0\ub9cc \uad6c\uc870\uc801\uc774 \uc544\ub2cc %s(\uc73c)\ub85c \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS_129=DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \ubcf4\uc870 \uac1d\uccb4 \ud074\ub798\uc2a4 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY_130=DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \ubcf4\uc870 \uac1d\uccb4 \ud074\ub798\uc2a4 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uac1d\uccb4 \ud074\ub798\uc2a4\ub294 \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc788\uc9c0\ub9cc \ubcf4\uc870\uac00 \uc544\ub2cc %s(\uc73c)\ub85c \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR_131=DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \ud544\uc218 \uc18d\uc131 \uc720\ud615 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR_132=DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \uc120\ud0dd \uc18d\uc131 \uc720\ud615 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR_133=DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \uae08\uc9c0\ub41c \uc18d\uc131 \uc720\ud615 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS_134=\uc704\uce58 %2$d\uc5d0 \uc791\uc740 \ub530\uc634\ud45c\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 %3$s \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE_135=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS_136=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$c' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE_137=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID_138=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450 \uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID_139=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$c\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID_140=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$c\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS_141=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_142=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$c\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS_143=\uc774\ub984 \ud615\uc2dd \uc124\uba85 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \uad6c\uc870\uc801 \uac1d\uccb4 \ud074\ub798\uc2a4 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL_144=\uc774\ub984 \ud615\uc2dd \uc124\uba85 \"%s\"\uc774(\uac00) OID\uac00 %s(%s)\uc778 \uac1d\uccb4 \ud074\ub798\uc2a4\uc640 \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uac1d\uccb4 \ud074\ub798\uc2a4\ub294 \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc788\uc9c0\ub9cc \uad6c\uc870\uc801\uc774 \uc544\ub2cc %s(\uc73c)\ub85c \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR_145=OID\uac00 %s\uc778 \uc774\ub984 \ud615\uc2dd\uc5d0 \ub300\ud55c \uc815\uc758\uc5d0\uc11c \ud544\uc218 \uc18d\uc131 \"%s\"\uc744(\ub97c) \ud3ec\ud568\ud574\uc57c \ud55c\ub2e4\uace0 \uc120\uc5b8\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc774\ub984 \ub610\ub294 OID\uc640 \uc77c\uce58\ud558\ub294 \uc18d\uc131 \uc720\ud615\uc774 \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR_146=OID\uac00 %s\uc778 \uc774\ub984 \ud615\uc2dd\uc5d0 \ub300\ud55c \uc815\uc758\uc5d0\uc11c \uc120\ud0dd \uc18d\uc131 \"%s\"\uc744(\ub97c) \ud3ec\ud568\ud574\uc57c \ud55c\ub2e4\uace0 \uc120\uc5b8\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc774\ub984 \ub610\ub294 OID\uc640 \uc77c\uce58\ud558\ub294 \uc18d\uc131 \uc720\ud615\uc774 \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS_147=\uc5f0\uacb0\ub418\ub294 \uad6c\uc870\uc801 \uac1d\uccb4 \ud074\ub798\uc2a4\ub97c \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS_148=\uc704\uce58 %2$d\uc5d0 \uc791\uc740 \ub530\uc634\ud45c\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 %3$c \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc774\ub984 \ud615\uc2dd \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE_149=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS_150=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE_151=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID_152=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450\uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID_153=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID_154=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS_155=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_156=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX_157=\uc77c\uce58 \uaddc\uce59 \uc124\uba85 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \uc18d\uc131 \uad6c\ubb38 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX_158=\uc5f0\uacb0\ub418\ub294 \uc18d\uc131 \uad6c\ubb38\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS_159=\uc704\uce58 %2$d\uc5d0 \uc791\uc740 \ub530\uc634\ud45c\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 %3$s \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE_160=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS_161=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE_162=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID_163=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450\uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID_164=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID_165=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE_166=\uc9c0\uc815\ub41c \uc77c\uce58 \uaddc\uce59 %2$s\uc744(\ub97c) \uc54c \uc218 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS_167=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_168=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR_169=\uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85 \"%s\"\uc774(\uac00) \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uc5d0 \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \uc18d\uc131 \uc720\ud615 %s\uacfc(\uc640) \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR_170=\uc5f0\uacb0\ub41c OID\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc18d\uc131 \uc720\ud615 \uc9d1\ud569\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS_171=\uc704\uce58 %2$d\uc5d0 \uc791\uc740 \ub530\uc634\ud45c\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 %3$s \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc77c\uce58 \uaddc\uce59 \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE_172=\ube44\uc5b4 \uc788\uac70\ub098 \uacf5\ubc31\ub9cc \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c DIT \uad6c\uc870 \uaddc\uce59\u00b7\uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS_173=\uc704\uce58 %2$d\uc5d0 \uc5ec\ub294 \uad04\ud638\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 '%3$s' \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE_174=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud574\uc57c \ud558\ub294\ub370 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID_175=\uc704\uce58 %3$d\uc5d0\uc11c \uaddc\uce59 \uc544\uc774\ub514\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS_176=\uc704\uce58 %2$d\uc5d0 \uc608\uae30\uce58 \uc54a\uc740 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_177=\uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM_178=\uc54c \uc218 \uc5c6\ub294 \uc774\ub984 \ud615\uc2dd %2$s\uc744(\ub97c) \ucc38\uc870\ud558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID_179=\uc0c1\uc704 DIT \uad6c\uc870 \uaddc\uce59\uc5d0 \ub300\ud574 \uc54c \uc218 \uc5c6\ub294 \uaddc\uce59 \uc544\uc774\ub514 %2$d\uc744(\ub97c) \ucc38\uc870\ud558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM_180=\uaddc\uce59\uc758 \uc774\ub984 \ud615\uc2dd\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS_181=\uc704\uce58 %2$d\uc5d0 \uc791\uc740 \ub530\uc634\ud45c\uac00 \uc788\uc5b4\uc57c \ud558\ub294\ub370 %3$s \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID_182=\uc22b\uc790 OID\uc758 \uc704\uce58 %2$d\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450\uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID_183=\uc22b\uc790 OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID_184=\uc22b\uc790\uac00 \uc544\ub2cc OID\uc758 \uc704\uce58 %3$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) DIT \uad6c\uc870 \uaddc\uce59 \uc124\uba85\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT_185=\uc81c\uacf5\ub41c \uac12 "\%s\"\uc740(\ub294) \ub108\ubb34 \uc9e7\uc544 \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ubc88\ud638 \uac12\uc774 \ub420 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE_186=\uc704\uce58 %3$d\uc5d0 \uc788\ub294 \ubb38\uc790 %2$s\uc774(\uac00) \uc778\uc1c4\ud560 \uc218 \uc788\ub294 \uc720\ud6a8\ud55c \ubb38\uc790\uc5f4\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ubc88\ud638\ub97c \ud3ec\ud568\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR_187=\uc704\uce58 %3$d\uc5d0 \uc788\ub294 \ubb38\uc790 %2$s\uc774(\uac00) \uc778\uc1c4\ud560 \uc218 \uc788\ub294 \uc720\ud6a8\ud55c \ubb38\uc790\uc5f4\ub3c4 \uc544\ub2c8\uace0 \ud154\ub809\uc2a4 \ubc88\ud638 \uad6c\uc131\uc694\uc18c\ub97c \uad6c\ubd84\ud558\ub294 \ub2ec\ub7ec \uae30\ud638\ub3c4 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ubc88\ud638\ub97c \ud3ec\ud568\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED_188=\ub2ec\ub7ec\ub85c \uad6c\ubd84\ub41c \uc138 \uac1c\uc758 \uc778\uc1c4\ud560 \uc218 \uc788\ub294 \ubb38\uc790\uc5f4\uc744 \uc77d\uae30 \uc804\uc5d0 \uac12\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc740(\ub294) \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ubc88\ud638\ub97c \ud3ec\ud568\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY_189=\ube44\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \ud329\uc2a4 \ubc88\ud638\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE_190=\uc704\uce58 %3$d\uc5d0 \uc788\ub294 \ubb38\uc790 %2$s\uc774(\uac00) \uc778\uc1c4\ud560 \uc218 \uc788\ub294 \uc720\ud6a8\ud55c \ubb38\uc790\uc5f4\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \ud329\uc2a4 \ubc88\ud638\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR_191=\ub2ec\ub7ec \uae30\ud638\ub85c \ub05d\ub098\uc9c0\ub9cc \ub2ec\ub7ec \uae30\ud638 \ub4a4\uc5d0 \ud329\uc2a4 \ub9e4\uac1c \ubcc0\uc218\uac00 \uc640\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \ud329\uc2a4 \ubc88\ud638\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER_192=\uc704\uce58 %3$d \ubc0f %4$d \uc0ac\uc774\uc5d0 \uc788\ub294 \ubb38\uc790\uc5f4 \"%2$s\"\uc774(\uac00) \uc720\ud6a8\ud55c \ud329\uc2a4 \ub9e4\uac1c \ubcc0\uc218\uac00 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \ud329\uc2a4 \ubc88\ud638\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN_193=DN \ubd80\ubd84\uc744 \uad6c\ubb38 \ubd84\uc11d\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uc774\ub984 \ubc0f \uc120\ud0dd\uc801 UID \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT_194=\uc704\uce58 %3$d\uc5d0\uc11c UID \ubd80\ubd84\uc5d0 \uc798\ubabb\ub41c \uc774\uc9c4 \uc22b\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 "%s"\uc744(\ub97c) \uc720\ud6a8\ud55c \uc774\ub984 \ubc0f \uc120\ud0dd\uc801 UID \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY_195=\ube44\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ud130\ubbf8\ub110 \uc2dd\ubcc4\uc790\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE_196=\uc704\uce58 %3$d\uc5d0 \uc788\ub294 \ubb38\uc790 %2$s\uc774(\uac00) \uc778\uc1c4\ud560 \uc218 \uc788\ub294 \uc720\ud6a8\ud55c \ubb38\uc790\uc5f4\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ud130\ubbf8\ub110 \uc2dd\ubcc4\uc790\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR_197=\ub2ec\ub7ec \uae30\ud638\ub85c \ub05d\ub098\uc9c0\ub9cc \ud574\ub2f9 \ub2ec\ub7ec \uae30\ud638 \ub4a4\uc5d0 TTX \ub9e4\uac1c \ubcc0\uc218\uac00 \uc640\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ud130\ubbf8\ub110 \uc2dd\ubcc4\uc790\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON_198=\ub9e4\uac1c \ubcc0\uc218 \ubb38\uc790\uc5f4\uc5d0 \uc774\ub984\uacfc \uac12\uc744 \uad6c\ubd84\ud558\ub294 \ucf5c\ub860\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ud130\ubbf8\ub110 \uc2dd\ubcc4\uc790\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER_199=\ubb38\uc790\uc5f4 \"%2$s\"\uc774(\uac00) \uc720\ud6a8\ud55c TTX \ub9e4\uac1c \ubcc0\uc218 \uc774\ub984\uc774 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \ud154\ub809\uc2a4 \ud130\ubbf8\ub110 \uc2dd\ubcc4\uc790\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE_200=\ube44\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12\uc744 \ub2e4\ub978 \uba54\uc77c\ud568 \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE_201=\ub2ec\ub7ec \uae30\ud638 \uc55e\uc5d0 \uba54\uc77c\ud568 \uc720\ud615\uc774 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ub2e4\ub978 \uba54\uc77c\ud568 \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR_202=\uc704\uce58 %3$d\uc5d0\uc11c \uba54\uc77c\ud568 \uc720\ud615\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \ub2e4\ub978 \uba54\uc77c\ud568 \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX_203=\ub2ec\ub7ec \uae30\ud638 \ub4a4\uc5d0 \uba54\uc77c\ud568\uc774 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ub2e4\ub978 \uba54\uc77c\ud568 \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR_204=\uc704\uce58 %3$d\uc5d0\uc11c \uba54\uc77c\ud568\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \ub2e4\ub978 \uba54\uc77c\ud568 \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC_205=# \ubb38\uc790 \uc55e\uc5d0 \uac1d\uccb4 \ud074\ub798\uc2a4 \uc774\ub984 \ub610\ub294 OID\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR_206=\uc704\uce58 %4$d\uc5d0\uc11c \uae30\uc900 \ubd80\ubd84 %2$s\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %2$c\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN_207=\uae30\uc900 \ubd80\ubd84 %2$s\uc5d0 \uccab \ubc88\uc9f8 \uc5ec\ub294 \uad04\ud638\uc5d0 \ud574\ub2f9\ud558\ub294 \ub2eb\ub294 \uad04\ud638\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK_208=\uae30\uc900 \ubd80\ubd84 %2$s\uc774(\uac00) \ubb3c\uc74c\ud45c\ub85c \uc2dc\uc791\ub418\ub294\ub370 \ub4a4\uc5d0 \ubb38\uc790\uc5f4 "true" \ub610\ub294 "false"\uac00 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR_209=\uae30\uc900 \ubd80\ubd84 %2$s\uc774(\uac00) \uc18d\uc131 \uc720\ud615\uacfc \uc77c\uce58 \uc720\ud615\uc744 \uad6c\ubd84\ud558\ub294 \ub2ec\ub7ec \uae30\ud638\ub97c \ud3ec\ud568\ud558\uace0 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR_210=\uae30\uc900 \ubd80\ubd84 %2$s\uc774(\uac00) \ub2ec\ub7ec \uae30\ud638 \uc55e\uc5d0 \uc18d\uc131 \uc720\ud615\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE_211=\uae30\uc900 \ubd80\ubd84 %2$s\uc774(\uac00) \ub2ec\ub7ec \uae30\ud638 \ub4a4\uc5d0 \uc77c\uce58 \uc720\ud615\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE_212=\uae30\uc900 \ubd80\ubd84 %2$s\uc5d0 \uc704\uce58 %3$d\uc5d0\uc11c \uc2dc\uc791\ub418\ub294 \uc798\ubabb\ub41c \uc77c\uce58 \uc720\ud615\uc774 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP_213=\uac1d\uccb4 \ud074\ub798\uc2a4\uc640 \uae30\uc900\uc744 \uad6c\ubd84\ud558\ub294 # \ubb38\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC_214=# \ubb38\uc790 \uc55e\uc5d0 \uac1d\uccb4 \ud074\ub798\uc2a4 \uc774\ub984 \ub610\ub294 OID\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID_215=\uc704\uce58 %3$d\uc5d0\uc11c \uac1d\uccb4 \ud074\ub798\uc2a4\ub97c \uc9c0\uc815\ud558\ub294 \uc22b\uc790 OID %2$s\uc5d0 \ub9c8\uce68\ud45c\uac00 \ub450 \uac1c \uc5f0\uc18d\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID_216=\uc704\uce58 %4$d\uc5d0\uc11c \uac1d\uccb4 \ud074\ub798\uc2a4\ub97c \uc9c0\uc815\ud558\ub294 \uc22b\uc790 OID %2$s\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %3$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME_217=\uc704\uce58 %4$d\uc5d0\uc11c \uac1d\uccb4 \ud074\ub798\uc2a4 \uc774\ub984 %2$s\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790 %3$s\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP_218=\uae30\uc900\uacfc \ubc94\uc704\ub97c \uad6c\ubd84\ud558\ub294 # \ubb38\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE_219=\ub9c8\uc9c0\ub9c9 # \ubb38\uc790 \ub4a4\uc5d0 \ubc94\uc704\uac00 \uc81c\uacf5\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE_220=\uc9c0\uc815\ub41c \ubc94\uc704 %2$s\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA_221=# \ubb38\uc790 \uc0ac\uc774\uc5d0 \uae30\uc900\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \ud5a5\uc0c1\ub41c \uac00\uc774\ub4dc \uac12\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE_222=\uc81c\uacf5\ub41c \uac12 %s\uc744(\ub97c) \uc720\ud6a8\ud55c OID\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: %s
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE_223=An unexpected \
+### error occurred while trying to normalize value %s as a generalized time \
+### value: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE_224=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseExactOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE_225=An error occurred while \
+### attempting to compare two objects using the caseExactOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE_226=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE_227=An error occurred while \
+### attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE_228=An error \
+### occurred while attempting to compare two AttributeValue objects using the \
+### generalizedTimeOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE_229=An error occurred \
+### while attempting to compare two objects using the \
+### generalizedTimeOrderingMatch matching rule because the objects were of an \
+### unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+### value objects may be compared
+###SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE_230=An error occurred while \
+### attempting to compare two AttributeValue objects using the \
+### integerOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE_231=An error occurred while \
+### attempting to compare two objects using the integerOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE_232=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### numericStringOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE_233=An error occurred \
+### while attempting to compare two objects using the numericStringOrderingMatch \
+### matching rule because the objects were of an unsupported type %s. Only byte \
+### arrays, ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE_234=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### octetStringOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE_235=An error occurred while \
+### attempting to compare two objects using the octetStringOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH_236=The provided value "%s" has \
+### an invalid length for a UUID. All UUID values must have a length of exactly \
+### 36 bytes, but the provided value had a length of %d bytes
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH_237=The provided value "%s" should \
+### have had a dash at position %d, but the character '%s' was found instead
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX_238=The provided value "%s" should \
+### have had a hexadecimal digit at position %d, but the character '%s' was found \
+### instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH_239=\ub514\ub809\ud1a0\ub9ac \ubb38\uc790\uc5f4 \uad6c\ubb38\uc774 \uc788\ub294 \uc18d\uc131\uc5d0 \uae38\uc774\uac00 0\uc778 \uac12\uc744 \ud3ec\ud568\ud560 \uc218 \uc788\ub294\uc9c0 \uc5ec\ubd80\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc740 LDAP \uc0ac\uc591\uc5d0\uc11c \uae30\uc220\uc801\uc73c\ub85c \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc9c0\ub9cc \uc774\uc804 \ub514\ub809\ud1a0\ub9ac \uc11c\ubc84 \ub9b4\ub9ac\uc2a4\uc640\uc758 \uc5ed\ud638\ud658\uc131\uc5d0 \uc720\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH_240=An \
+### error occurred while trying to determine the value of the %s configuration \
+### attribute, which indicates whether directory string attributes should be \
+### allowed to have zero-length values: %s
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE_241=The \
+### operation attempted to assign a zero-length value to an attribute with the \
+### directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH_242=\uad6c\uc131 \ud56d\ubaa9 %2$s\uc758 %1$s \uc18d\uc131\uc774 \uc0c8 \uac12 %3$s(\uc73c)\ub85c \uc5c5\ub370\uc774\ud2b8\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR_243=The provided \
+### authPassword value had an invalid scheme character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_244=The provided authPassword value \
+### had a zero-length scheme element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR_245=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the scheme and authInfo elements
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR_246=The provided \
+### authPassword value had an invalid authInfo character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_247=The provided authPassword \
+### value had a zero-length authInfo element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR_248=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the authInfo and authValue elements
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS_249=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### it did not start with a parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE_250=The provided value "%s" could not \
+### be parsed by the integer first component matching rule because it did not \
+### have any non-space characters after the opening parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT_251=The provided value "%s" \
+### could not be parsed by the integer first component matching rule because it \
+### did not have any space characters after the first component
+###SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT_252=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### the first component does not appear to be an integer value
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE_253=No value was given to decode by \
+### the user password attribute syntax
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE_254=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not start with the opening curly brace ("{") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE_255=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not contain a closing curly brace ("}") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME_256=Unable to decode the provided \
+### value according to the user password syntax because the value does not \
+### contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID_257=\uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c RFC 3672 \ud558\uc704 \ud2b8\ub9ac \uc0ac\uc591\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID_258=\uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uc808\ub300 \ud558\uc704 \ud2b8\ub9ac \uc0ac\uc591\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID_259=\uc81c\uacf5\ub41c \uac12 \"%s\"\uc744(\ub97c) \uc720\ud6a8\ud55c \uc0c1\ub300 \ud558\uc704 \ud2b8\ub9ac \uc0ac\uc591\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER_260=The provided value %s is not \
+### allowed for attributes with a Integer syntax
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR_261=The provided \
+### authPassword value had an invalid authValue character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE_262=The provided authPassword \
+### value had a zero-length authValue element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR_263=The provided \
+### authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER_264=\uc704\uce58 %2$d\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc81c\uacf5\ub41c \uac12 \"%1$s\"\uc744(\ub97c) \uc18d\uc131 \uad6c\ubb38 \ud655\uc7a5\uc73c\ub85c \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION_265=\uc798\ubabb\ub41c \ud655\uc7a5 \ub54c\ubb38\uc5d0 \uc18d\uc131 \uad6c\ubb38\uc744 \uad6c\ubb38 \ubd84\uc11d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.%s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE_266=The definition \
+### for objectclass %s is invalid because it has an objectclass type of %s but \
+### this is incompatible with the objectclass type %s for the superior class %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP_267=The \
+### definition for objectclass %s is invalid because it is defined as a \
+### structural class but its superior chain does not include the "top" \
+### objectclass
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE_268=The definition \
+### for attribute type %s is invalid because its attribute usage %s is not the \
+### same as the usage for its superior type %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE_269=The \
+### definition for attribute type %s is invalid because it is defined as a \
+### collective type but the superior type %s is not collective
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE_270=The \
+### definition for attribute type %s is invalid because it is not defined as a \
+### collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL_271=\uc5f0\uacb0\ub41c \uad6c\uc870\uc801 \uac1d\uccb4 \ud074\ub798\uc2a4 %3$s\uc5d0 \ud544\uc694\ud55c \uc18d\uc131 \uc720\ud615 %2$s \uc0ac\uc6a9\uc744 \uae08\uc9c0\ud558\uae30 \ub54c\ubb38\uc5d0 DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY_272=\uc5f0\uacb0\ub41c \ubcf4\uc870 \uac1d\uccb4 \ud074\ub798\uc2a4 %3$s\uc5d0 \ud544\uc694\ud55c \uc18d\uc131 \uc720\ud615 %2$s \uc0ac\uc6a9\uc744 \uae08\uc9c0\ud558\uae30 \ub54c\ubb38\uc5d0 DIT \ucee8\ud150\ud2b8 \uaddc\uce59 \"%s\"\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL_273=The definition \
+### for attribute type %s is invalid because it is declared COLLECTIVE but does \
+### not have a usage of userApplications
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL_274=The \
+### definition for attribute type %s is invalid because it is declared \
+### NO-USER-MODIFICATION but does not have an operational usage
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR_275=The \
+### provided value %s is not a valid generalized time value because it contains \
+### illegal character %s in the fraction component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION_276=The provided \
+### value %s is not a valid generalized time value because it does not contain at \
+### least one digit after the period to use as the fractional component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO_277=The provided \
+### value %s is not a valid generalized time value because it does not end with \
+### 'Z' or a time zone offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME_278=The provided value \
+### %s is not a valid generalized time value because it represents an invalid \
+### time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED_279=\uc2a4\ud0a4\ub9c8 \uc694\uc18c\ub97c \uac00\uc838\uc624\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4: %s, %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE_280=The collation rule %s under matching rule entry %s is invalid as the locale %s is not supported by JVM
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT_281=The provided collation rule %s does not contain a valid format of OID:LOCALE
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR_282=The provided value "%s" could not be parsed as a valid distinguished name because an attribute value started with a character at position %d that needs to be escaped
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR_283=The provided value "%s" could not be parsed as a valid attribute type definition because character '%c' at position %d is not allowed in an attribute type name
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_284=The provided value "%s" could not be parsed as a valid attribute type definition because the underscore character is not allowed in an attribute type name unless the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_285=The provided value "%s" could not be parsed as a valid attribute type definition because the hyphen character is not allowed as the first character of an attribute type name
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_286=The provided value "%s" could not be parsed as a valid attribute type definition because the underscore character is not allowed as the first character of an attribute type name even if the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_287=The provided value "%s" could not be parsed as a valid attribute type definition because the digit '%c' is not allowed as the first character of an attribute type name unless the name is specified as an OID or the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR_288=The provided value "%s" could not be parsed as a valid object class definition because character '%c' at position %d is not allowed in an object class name
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_289=The provided value "%s" could not be parsed as a valid object class definition because the underscore character is not allowed in an object class name unless the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_290=The provided value "%s" could not be parsed as a valid object class definition because the hyphen character is not allowed as the first character of an object class name
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_291=The provided value "%s" could not be parsed as a valid object class definition because the underscore character is not allowed as the first character of an object class name even if the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_292=The provided value "%s" could not be parsed as a valid object class definition because the digit '%c' is not allowed as the first character of an object class name unless the name is specified as an OID or the %s configuration option is enabled
diff --git a/sdk/src/com/sun/opends/sdk/util/messages_zh_CN.properties b/sdk/src/com/sun/opends/sdk/util/messages_zh_CN.properties
new file mode 100755
index 0000000..05570f5
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages_zh_CN.properties
@@ -0,0 +1,531 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+#
+# Global directives
+#
+global.ordinal=-1
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE_1=Unable to retrieve \
+### approximate matching rule %s used as the default for the %s attribute syntax. \
+### Approximate matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE_2=Unable to retrieve \
+### equality matching rule %s used as the default for the %s attribute syntax. \
+### Equality matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE_3=Unable to retrieve \
+### ordering matching rule %s used as the default for the %s attribute syntax. \
+### Ordering matches will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE_4=Unable to retrieve \
+### substring matching rule %s used as the default for the %s attribute syntax. \
+### Substring matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN_5=The provided value "%s" is not \
+### allowed for attributes with a Boolean syntax. The only allowed values are \
+### 'TRUE' and 'FALSE'
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT_6=The provided value "%s" is too \
+### short to be a valid bit string. A bit string must be a series of binary \
+### digits surrounded by single quotes and followed by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED_7=The provided value "%s" is not \
+### a valid bit string because it is not surrounded by single quotes and followed \
+### by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT_8=The provided value "%s" is \
+### not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH_9=\u63d0\u4f9b\u7684\u503c "%s" \u4e0d\u662f\u6709\u6548\u7684\u56fd\u5bb6/\u5730\u533a\u5b57\u7b26\u4e32\uff0c\u56e0\u4e3a\u957f\u5ea6\u5e76\u975e\u6070\u597d\u4e3a\u4e24\u4e2a\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE_10=\u63d0\u4f9b\u7684\u503c "%s" \u4e0d\u662f\u6709\u6548\u7684\u56fd\u5bb6/\u5730\u533a\u5b57\u7b26\u4e32\uff0c\u56e0\u4e3a\u5b83\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u4e0d\u53ef\u6253\u5370\u7684\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS_11=\u63d0\u4f9b\u7684\u503c "%s" \u4e0d\u662f\u6709\u6548\u7684\u4f20\u9001\u65b9\u6cd5\u503c\uff0c\u56e0\u4e3a\u5b83\u4e0d\u5305\u542b\u4efb\u4f55\u5143\u7d20
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT_12=\u63d0\u4f9b\u7684\u503c "%s" \u4e0d\u662f\u6709\u6548\u7684\u4f20\u9001\u65b9\u6cd5\u503c\uff0c\u56e0\u4e3a "%s" \u4e0d\u662f\u6709\u6548\u7684\u65b9\u6cd5
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT_13=The provided value "%s" \
+### is too short to be a valid generalized time value
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR_14=The provided value \
+### "%s" is not a valid generalized time value because the '%s' character is not \
+### allowed in the century or year specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH_15=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid month \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY_16=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid day \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR_17=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid hour \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE_18=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid minute \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND_19=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid second \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND_20=The provided \
+### value "%s" is not a valid generalized time value because the sub-second \
+### component is not valid (between 1 and 3 numeric digits)
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND_21=The provided value \
+### "%s" is not a valid generalized time value because the sub-second value may \
+### not contain more than three digits
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET_22=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+### offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR_23=The provided value \
+### "%s" is not a valid generalized time value because it contains an invalid \
+### character '%s' at position %d
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE_24=The provided value \
+### "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_25=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA_26=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u6700\u540e\u4e00\u4e2a\u975e\u7a7a\u683c\u5b57\u7b26\u662f\u9017\u53f7\u6216\u5206\u53f7
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT_27=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u6570\u5b57 '%s' \u4f5c\u4e3a\u5c5e\u6027\u540d\u79f0\u4e2d\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR_28=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u5c5e\u6027\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u4f4d\u7f6e %3$d \u5904\u7684\u5b57\u7b26 '%2$c'
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR_29=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u5c5e\u6027\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u4e0b\u5212\u7ebf\u5b57\u7b26\uff0c\u9664\u975e\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH_30=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u8fde\u5b57\u7b26\u4f5c\u4e3a\u5c5e\u6027\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE_31=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u4e0b\u5212\u7ebf\u5b57\u7b26\u4f5c\u4e3a\u5c5e\u6027\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\uff0c\u5373\u4f7f\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT_32=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u6570\u5b57 '%c' \u4f5c\u4e3a\u5c5e\u6027\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\uff0c\u9664\u975e\u5c06\u540d\u79f0\u6307\u5b9a\u4e3a OID \u6216\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME_33=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u5b83\u5305\u542b\u7684 RDN \u5177\u6709\u7a7a\u5c5e\u6027\u540d\u79f0
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD_34=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u89e3\u6790\u7684\u5c5e\u6027\u540d\u79f0 %s \u5305\u542b\u4e00\u4e2a\u53e5\u70b9\uff0c\u4f46\u8be5\u540d\u79f0\u4f3c\u4e4e\u4e0d\u662f\u6709\u6548\u7684 OID
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME_35=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u6700\u540e\u4e00\u4e2a\u975e\u7a7a\u683c\u5b57\u7b26\u662f\u5c5e\u6027\u540d\u79f0 '%s' \u7684\u4e00\u90e8\u5206
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL_36=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u5c5e\u6027\u540d\u79f0 "%s" \u540e\u9762\u7684\u4e0b\u4e00\u4e2a\u975e\u7a7a\u683c\u5b57\u7b26\u5e94\u8be5\u4e3a\u7b49\u53f7\uff0c\u800c\u5b9e\u9645\u4e3a '%c'
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR_37=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u4f4d\u7f6e %3$d \u5904\u7684\u5b57\u7b26 '%2$c' \u65e0\u6548
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT_38=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u5c5e\u6027\u503c\u4ee5\u4e95\u53f7 (#) \u5f00\u5934\uff0c\u4f46\u6ca1\u6709\u540e\u8ddf\u4e24\u4e2a\u5341\u516d\u8fdb\u5236\u6570\u5b57\u7684\u6b63\u500d\u6570
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT_39=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u5c5e\u6027\u503c\u4ee5\u4e95\u53f7 (#) \u5f00\u5934\uff0c\u4f46\u5305\u542b\u7684\u5b57\u7b26 %c \u4e0d\u662f\u6709\u6548\u7684\u5341\u516d\u8fdb\u5236\u6570\u5b57
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE_40=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u5728\u5c1d\u8bd5\u89e3\u6790\u67d0\u4e2a RDN \u7ec4\u4ef6\u4e2d\u7684\u5c5e\u6027\u503c\u65f6\u51fa\u73b0\u610f\u5916\u5931\u8d25: "%s"
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE_41=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u67d0\u4e2a RDN \u7ec4\u4ef6\u5305\u542b\u4e00\u4e2a\u7528\u5f15\u53f7\u5f15\u8d77\u6765\u7684\u503c\uff0c\u4f46\u8be5\u503c\u6ca1\u6709\u76f8\u5e94\u7684\u53f3\u5f15\u53f7
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID_42=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u67d0\u4e2a RDN \u7ec4\u4ef6\u5305\u542b\u4e00\u4e2a\u5e26\u6709\u8f6c\u4e49\u5341\u516d\u8fdb\u5236\u6570\u5b57\u7684\u503c\uff0c\u4f46\u6ca1\u6709\u540e\u8ddf\u7b2c\u4e8c\u4e2a\u5341\u516d\u8fdb\u5236\u6570\u5b57
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO_43=The provided value "%s" could \
+### not be parsed as a valid integer because the first digit may not be zero \
+### unless it is the only digit
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH_44=The provided value "%s" \
+### could not be parsed as a valid integer because the dash may only appear if it \
+### is the first character of the value followed by one or more digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER_45=The provided value "%s" \
+### could not be parsed as a valid integer because character '%c' at position %d \
+### is not allowed in an integer value
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE_46=The provided value "%s" could \
+### not be parsed as a valid integer because it did not contain any digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE_47=The provided value "%s" \
+### could not be parsed as a valid integer because it contained only a dash not \
+### followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE_48=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684 OID\uff0c\u56e0\u4e3a\u5b83\u4e0d\u5305\u542b\u4efb\u4f55\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER_49=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684 OID\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS_50=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684 OID\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u6216\u9644\u8fd1\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD_51=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684 OID\uff0c\u56e0\u4e3a\u5b83\u4ee5\u53e5\u70b9\u7ed3\u5c3e
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE_52=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS_53=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE_54=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID_55=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID_56=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID_57=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_58=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS_59=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_60=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u7c7b\u578b\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5c06\u5355\u5f15\u53f7\u4f5c\u4e3a\u6807\u8bb0 %s \u540e\u7684\u7b2c\u4e00\u4e2a\u975e\u7a7a\u767d\u5b57\u7b26\u3002\u4f46\u662f\uff0c\u627e\u5230\u7684\u662f\u5b57\u7b26 %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE_61=The definition for \
+### the attribute type with OID %s declared a superior type with an OID of %s. \
+### No attribute type with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR_62=The definition for \
+### the attribute type with OID %s declared that approximate matching should be \
+### performed using the matching rule "%s". No such approximate matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR_63=The definition for \
+### the attribute type with OID %s declared that equality matching should be \
+### performed using the matching rule "%s". No such equality matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR_64=The definition for \
+### the attribute type with OID %s declared that ordering matching should be \
+### performed using the matching rule "%s". No such ordering matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR_65=The definition for \
+### the attribute type with OID %s declared that substring matching should be \
+### performed using the matching rule "%s". No such substring matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX_66=The definition for the \
+### attribute type with OID %s declared that it should have a syntax with OID %s. \
+### No such syntax is configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE_67=The definition \
+### for the attribute type with OID %s declared that it should have an attribute \
+### usage of %s. This is an invalid usage
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS_68=The provided value \
+### "%s" could not be parsed as an attribute type description because a single \
+### quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE_69=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684 objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS_70=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE_71=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID_72=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID_73=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID_74=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_75=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS_76=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_77=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a objectclass \u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5c06\u5355\u5f15\u53f7\u4f5c\u4e3a\u6807\u8bb0 %s \u540e\u7684\u7b2c\u4e00\u4e2a\u975e\u7a7a\u767d\u5b57\u7b26\u3002\u4f46\u662f\uff0c\u627e\u5230\u7684\u662f\u5b57\u7b26 %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS_78=The definition \
+### for the objectclass with OID %s declared a superior objectclass with an OID \
+### of %s. No objectclass with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS_79=The provided \
+### value "%s" could not be parsed as an objectclass description because a single \
+### quote was expected at position %d but the character %s was found instead
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR_80=The definition \
+### for the objectclass with OID %s declared that it should include required \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR_81=The definition \
+### for the objectclass with OID %s declared that it should include optional \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER_82=The provided value "%s" \
+### cannot be parsed as a valid IA5 string because it contains an illegal \
+### character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE_83=\u6b64\u5c5e\u6027\u6307\u793a\u7535\u8bdd\u53f7\u7801\u5c5e\u6027\u8bed\u6cd5\u662f\u5426\u5e94\u4f7f\u7528\u4e25\u683c\u6a21\u5f0f\uff0c\u8be5\u6a21\u5f0f\u4ec5\u63a5\u53d7 ITU-T E.123 \u683c\u5f0f\u7684\u503c\u3002\u5982\u679c\u542f\u7528\u6b64\u5c5e\u6027\uff0c\u5219\u4f1a\u62d2\u7edd\u4e0d\u4f7f\u7528\u8be5\u683c\u5f0f\u7684\u4efb\u4f55\u503c\u3002\u5982\u679c\u7981\u7528\u6b64\u5c5e\u6027\uff0c\u5219\u4f1a\u63a5\u53d7\u4efb\u4f55\u503c\uff0c\u4f46\u5728\u6267\u884c\u5339\u914d\u65f6\u4ec5\u8003\u8651\u6570\u5b57
+###SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE_84=An error \
+### occurred while trying to retrieve attribute \
+### ds-cfg-strict-format from configuration entry %s: %s. The \
+### Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+### for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY_85=\u63d0\u4f9b\u7684\u503c\u4e0d\u662f\u6709\u6548\u7684\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216 Null
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS_86=\u63d0\u4f9b\u7684\u503c "%s" \u4e0d\u662f\u6709\u6548\u7684\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u542f\u7528\u4e86\u4e25\u683c\u7535\u8bdd\u53f7\u7801\u68c0\u67e5\uff0c\u8be5\u503c\u6ca1\u6709\u6309\u7167 ITU-T E.123 \u89c4\u8303\u4ee5\u52a0\u53f7\u5f00\u5934
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR_87=\u63d0\u4f9b\u7684\u503c "%1$s" \u4e0d\u662f\u6709\u6548\u7684\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u542f\u7528\u4e86\u4e25\u683c\u7535\u8bdd\u53f7\u7801\u68c0\u67e5\uff0cITU-T E.123 \u89c4\u8303\u4e0d\u5141\u8bb8\u4f7f\u7528\u4f4d\u7f6e %3$d \u5904\u7684\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS_88=\u63d0\u4f9b\u7684\u503c "%s" \u4e0d\u662f\u6709\u6548\u7684\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u5b83\u4e0d\u5305\u542b\u4efb\u4f55\u6570\u5b57
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE_89=\u5df2\u5c06\u914d\u7f6e\u6761\u76ee %2$s \u4e2d\u7684\u914d\u7f6e\u5c5e\u6027 ds-cfg-strict-format \u503c\u66f4\u65b0\u4e3a %1$s\uff0c\u8be5\u5c5e\u6027\u7528\u4e8e\u6307\u793a\u662f\u5426\u4f7f\u7528\u4e25\u683c\u7535\u8bdd\u53f7\u7801\u8bed\u6cd5\u68c0\u67e5
+###SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR_90=The provided value \
+### "%s" is not a valid numeric string because it contained character %s at \
+### position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE_91=\u63d0\u4f9b\u7684\u503c\u4e0d\u662f\u6709\u6548\u7684\u6570\u5b57\u5b57\u7b26\u4e32\uff0c\u56e0\u4e3a\u5b83\u4e0d\u5305\u542b\u4efb\u4f55\u5b57\u7b26\u3002\u6570\u5b57\u5b57\u7b26\u4e32\u503c\u5fc5\u987b\u81f3\u5c11\u5305\u542b\u4e00\u4e2a\u6570\u5b57\u6216\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE_92=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS_93=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE_94=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID_95=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID_96=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID_97=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS_98=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN_99=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u5c1d\u8bd5\u4ece\u4f4d\u7f6e %d \u5904\u6216\u9644\u8fd1\u7684\u5b57\u7b26\u4e32\u4e2d\u8bfb\u53d6 "DESC" \u6807\u8bb0\u65f6\u51fa\u73b0\u610f\u5916\u9519\u8bef: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC_100=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u5e94\u8be5\u4e3a "DESC" \u6807\u8bb0\u7684\u4f4d\u7f6e\u627e\u5230\u4e86\u5b57\u7b26\u4e32 "%s"
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE_101=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u5c1d\u8bd5\u4ece\u4f4d\u7f6e %d \u5904\u6216\u9644\u8fd1\u7684\u5b57\u7b26\u4e32\u4e2d\u8bfb\u53d6 "DESC" \u6807\u8bb0\u503c\u65f6\u51fa\u73b0\u610f\u5916\u9519\u8bef: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS_102=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u53f3\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE_103=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u53f3\u5706\u62ec\u53f7\u540e\u9762\u7684\u4f4d\u7f6e %3$d \u5904\u627e\u5230\u975e\u6cd5\u5b57\u7b26 %2$s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS_104=The provided \
+### value "%s" could not be parsed as an attribute syntax description because a \
+### single quote was expected at position %d but the character %s was found \
+### instead
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE_105=The provided value \
+### could not be parsed as a printable string because it was null or empty. A \
+### printable string must contain at least one character
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER_106=The provided \
+### value "%s" could not be parsed as a printable string because it contained an \
+### invalid character %s at position %d
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD_107=The provided value "*" \
+### could not be parsed as a substring assertion because it consists only of a \
+### wildcard character and zero-length substrings are not allowed
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS_108=The provided \
+### value "%s" could not be parsed as a substring assertion because it contains \
+### consecutive wildcard characters at position %d and zero-length substrings are \
+### not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT_109=\u63d0\u4f9b\u7684\u503c %s \u592a\u77ed\u800c\u65e0\u6cd5\u4f5c\u4e3a\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR_110=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5728\u4e16\u7eaa\u6216\u5e74\u4efd\u89c4\u8303\u4e2d\u4f7f\u7528 %s \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH_111=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a %s \u4e0d\u662f\u6709\u6548\u7684\u6708\u4efd\u89c4\u8303
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY_112=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a %s \u4e0d\u662f\u6709\u6548\u7684\u65e5\u671f\u89c4\u8303
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR_113=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a %s \u4e0d\u662f\u6709\u6548\u7684\u5c0f\u65f6\u89c4\u8303
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE_114=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a %s \u4e0d\u662f\u6709\u6548\u7684\u5206\u949f\u89c4\u8303
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR_115=\u63d0\u4f9b\u7684\u503c %1$s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u65e0\u6548\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND_116=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a %s \u4e0d\u662f\u6709\u6548\u7684\u79d2\u949f\u89c4\u8303
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET_117=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u65f6\u95f4\u503c\uff0c\u56e0\u4e3a %s \u4e0d\u662f\u6709\u6548\u7684 GMT \u504f\u79fb
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE_118=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c %s \u89e3\u6790\u4e3a\u6709\u6548\u7684 UTC \u65f6\u95f4: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE_119=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684 DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS_120=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE_121=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID_122=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID_123=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID_124=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS_125=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_126=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS_127=DIT \u5185\u5bb9\u89c4\u5219 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u7ed3\u6784\u5316 objectclass %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL_128=DIT \u5185\u5bb9\u89c4\u5219 "%s" \u4e0e OID \u4e3a %s (%s) \u7684 objectclass \u76f8\u5173\u8054\u3002\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u5b58\u5728\u6b64 objectclass\uff0c\u4f46\u5b9a\u4e49\u4e3a %s \u800c\u4e0d\u662f\u7ed3\u6784\u5316\u7c7b
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS_129=DIT \u5185\u5bb9\u89c4\u5219 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u8f85\u52a9 objectclass %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY_130=DIT \u5185\u5bb9\u89c4\u5219 "%s" \u4e0e\u8f85\u52a9 objectclass %s \u76f8\u5173\u8054\u3002\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u5b58\u5728\u6b64 objectclass\uff0c\u4f46\u5b9a\u4e49\u4e3a %s \u800c\u4e0d\u662f\u8f85\u52a9\u7c7b
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR_131=DIT \u5185\u5bb9\u89c4\u5219 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u5fc5\u9700\u5c5e\u6027\u7c7b\u578b %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR_132=DIT \u5185\u5bb9\u89c4\u5219 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u53ef\u9009\u5c5e\u6027\u7c7b\u578b %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR_133=DIT \u5185\u5bb9\u89c4\u5219 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u7981\u6b62\u5c5e\u6027\u7c7b\u578b %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS_134=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u5185\u5bb9\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5355\u5f15\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f\u5b57\u7b26 %s
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE_135=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS_136=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%c' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE_137=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID_138=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID_139=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID_140=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS_141=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_142=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS_143=\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u7ed3\u6784\u5316 objectclass %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL_144=\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0 "%s" \u4e0e OID \u4e3a %s (%s) \u7684 objectclass \u76f8\u5173\u8054\u3002\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u5b58\u5728\u6b64 objectclass\uff0c\u4f46\u5b9a\u4e49\u4e3a %s \u800c\u4e0d\u662f\u7ed3\u6784\u5316\u7c7b
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR_145=OID \u4e3a %s \u7684\u540d\u79f0\u683c\u5f0f\u5b9a\u4e49\u58f0\u660e\u5b83\u5e94\u8be5\u5305\u542b\u5fc5\u9700\u5c5e\u6027 "%s"\u3002\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u4e0d\u5b58\u5728\u4e0e\u6b64\u540d\u79f0\u6216 OID \u5339\u914d\u7684\u5c5e\u6027\u7c7b\u578b
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR_146=OID \u4e3a %s \u7684\u540d\u79f0\u683c\u5f0f\u5b9a\u4e49\u58f0\u660e\u5b83\u5e94\u8be5\u5305\u542b\u53ef\u9009\u5c5e\u6027 "%s"\u3002\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u4e0d\u5b58\u5728\u4e0e\u6b64\u540d\u79f0\u6216 OID \u5339\u914d\u7684\u5c5e\u6027\u7c7b\u578b
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS_147=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u672a\u6307\u5b9a\u5173\u8054\u7684\u7ed3\u6784\u5316 objectclass
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS_148=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u540d\u79f0\u683c\u5f0f\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5355\u5f15\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f\u5b57\u7b26 %c
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE_149=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS_150=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE_151=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID_152=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID_153=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID_154=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS_155=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_156=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX_157=\u5339\u914d\u89c4\u5219\u63cf\u8ff0 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u5c5e\u6027\u8bed\u6cd5 %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX_158=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u672a\u6307\u5b9a\u5173\u8054\u7684\u5c5e\u6027\u8bed\u6cd5
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS_159=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5355\u5f15\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f\u5b57\u7b26 %s
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE_160=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS_161=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE_162=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID_163=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID_164=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID_165=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE_166=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6307\u5b9a\u7684\u5339\u914d\u89c4\u5219 %s \u672a\u77e5
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS_167=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_168=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR_169=\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0 "%s" \u4e0e\u670d\u52a1\u5668\u6a21\u5f0f\u4e2d\u672a\u5b9a\u4e49\u7684\u5c5e\u6027\u7c7b\u578b %s \u76f8\u5173\u8054
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR_170=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u672a\u6307\u5b9a\u53ef\u7528\u4e8e\u5173\u8054 OID \u7684\u5c5e\u6027\u7c7b\u578b\u96c6
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS_171=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5339\u914d\u89c4\u5219\u7528\u6cd5\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5355\u5f15\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f\u5b57\u7b26 %s
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE_172=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684 DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a\u6216\u4ec5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS_173=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5de6\u5706\u62ec\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f '%s' \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE_174=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5728\u76ee\u5f55\u670d\u52a1\u5668\u8981\u6c42\u63d0\u4f9b\u66f4\u591a\u6570\u636e\u65f6\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID_175=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u89c4\u5219 ID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS_176=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u610f\u5916\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_177=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM_178=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5f15\u7528\u4e86\u672a\u77e5\u7684\u540d\u79f0\u683c\u5f0f %s
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID_179=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u5f15\u7528\u4e86\u4e0a\u7ea7 DIT \u7ed3\u6784\u89c4\u5219\u7684\u672a\u77e5\u89c4\u5219 ID %d
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM_180=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5b83\u672a\u6307\u5b9a\u89c4\u5219\u7684\u540d\u79f0\u683c\u5f0f
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS_181=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u5e94\u8be5\u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u5355\u5f15\u53f7\uff0c\u4f46\u627e\u5230\u7684\u662f\u5b57\u7b26 %s
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID_182=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID_183=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID_184=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a DIT \u7ed3\u6784\u89c4\u5219\u63cf\u8ff0\uff0c\u56e0\u4e3a\u975e\u6570\u5b57 OID \u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT_185=\u63d0\u4f9b\u7684\u503c "%s" \u592a\u77ed\u800c\u65e0\u6cd5\u4f5c\u4e3a\u6709\u6548\u7684\u7535\u62a5\u53f7\u7801\u503c
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE_186=\u63d0\u4f9b\u7684\u503c "%1$s" \u4e0d\u5305\u542b\u6709\u6548\u7684\u7535\u62a5\u53f7\u7801\uff0c\u56e0\u4e3a\u4f4d\u7f6e %3$d \u5904\u7684\u5b57\u7b26 %2$s \u4e0d\u662f\u6709\u6548\u7684\u53ef\u6253\u5370\u5b57\u7b26\u4e32\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR_187=\u63d0\u4f9b\u7684\u503c "%1$s" \u4e0d\u5305\u542b\u6709\u6548\u7684\u7535\u62a5\u53f7\u7801\uff0c\u56e0\u4e3a\u4f4d\u7f6e %3$d \u5904\u7684\u5b57\u7b26 %2$s \u65e2\u4e0d\u662f\u6709\u6548\u7684\u53ef\u6253\u5370\u5b57\u7b26\u4e32\u5b57\u7b26\uff0c\u4e5f\u4e0d\u662f\u7528\u4e8e\u5206\u9694\u7535\u62a5\u53f7\u7801\u7ec4\u6210\u90e8\u5206\u7684\u7f8e\u5143\u7b26\u53f7
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED_188=\u63d0\u4f9b\u7684\u503c "%s" \u4e0d\u5305\u542b\u6709\u6548\u7684\u7535\u62a5\u53f7\u7801\uff0c\u56e0\u4e3a\u5728\u8bfb\u53d6\u4e09\u4e2a\u4ee5\u7f8e\u5143\u7b26\u53f7\u5206\u9694\u7684\u53ef\u6253\u5370\u5b57\u7b26\u4e32\u4e4b\u524d\u5230\u8fbe\u503c\u672b\u5c3e
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY_189=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684\u4f20\u771f\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE_190=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u4f20\u771f\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u4f4d\u7f6e %3$d \u5904\u7684\u5b57\u7b26 %2$s \u4e0d\u662f\u6709\u6548\u7684\u53ef\u6253\u5370\u5b57\u7b26\u4e32\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR_191=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u4f20\u771f\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u5b83\u4ee5\u7f8e\u5143\u7b26\u53f7\u7ed3\u5c3e\uff0c\u4f46\u8be5\u7f8e\u5143\u7b26\u53f7\u5e94\u540e\u8ddf\u4f20\u771f\u53c2\u6570
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER_192=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u4f20\u771f\u7535\u8bdd\u53f7\u7801\uff0c\u56e0\u4e3a\u4f4d\u7f6e %3$d \u548c %4$d \u4e4b\u95f4\u7684\u5b57\u7b26\u4e32 "%2$s" \u4e0d\u662f\u6709\u6548\u7684\u4f20\u771f\u53c2\u6570
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN_193=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u540d\u79f0\u548c\u53ef\u9009 UID \u503c\uff0c\u56e0\u4e3a\u5728\u5c1d\u8bd5\u89e3\u6790 DN \u90e8\u5206\u65f6\u51fa\u73b0\u9519\u8bef: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT_194=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u540d\u79f0\u548c\u53ef\u9009 UID \u503c\uff0c\u56e0\u4e3a UID \u90e8\u5206\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u4e8c\u8fdb\u5236\u6570\u5b57 %2$s
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY_195=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u6709\u6548\u7684\u667a\u80fd\u7528\u6237\u7535\u62a5\u7ec8\u7aef\u6807\u8bc6\u7b26\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE_196=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u667a\u80fd\u7528\u6237\u7535\u62a5\u7ec8\u7aef\u6807\u8bc6\u7b26\uff0c\u56e0\u4e3a\u4f4d\u7f6e %3$d \u5904\u7684\u5b57\u7b26 %2$s \u4e0d\u662f\u6709\u6548\u7684\u53ef\u6253\u5370\u5b57\u7b26\u4e32\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR_197=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u667a\u80fd\u7528\u6237\u7535\u62a5\u7ec8\u7aef\u6807\u8bc6\u7b26\uff0c\u56e0\u4e3a\u5b83\u4ee5\u7f8e\u5143\u7b26\u53f7\u7ed3\u5c3e\uff0c\u4f46\u8be5\u7f8e\u5143\u7b26\u53f7\u5e94\u540e\u8ddf TTX \u53c2\u6570
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON_198=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u667a\u80fd\u7528\u6237\u7535\u62a5\u7ec8\u7aef\u6807\u8bc6\u7b26\uff0c\u56e0\u4e3a\u53c2\u6570\u5b57\u7b26\u4e32\u4e0d\u5305\u542b\u5c06\u540d\u79f0\u4e0e\u503c\u9694\u5f00\u7684\u5192\u53f7
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER_199=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u667a\u80fd\u7528\u6237\u7535\u62a5\u7ec8\u7aef\u6807\u8bc6\u7b26\uff0c\u56e0\u4e3a\u5b57\u7b26\u4e32 "%s" \u4e0d\u662f\u6709\u6548\u7684 TTX \u53c2\u6570\u540d\u79f0
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE_200=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c\u89e3\u6790\u4e3a\u5176\u4ed6\u90ae\u7bb1\u503c\uff0c\u56e0\u4e3a\u5b83\u4e3a\u7a7a
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE_201=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5176\u4ed6\u90ae\u7bb1\u503c\uff0c\u56e0\u4e3a\u7f8e\u5143\u7b26\u53f7\u524d\u9762\u6ca1\u6709\u90ae\u7bb1\u7c7b\u578b
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR_202=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5176\u4ed6\u90ae\u7bb1\u503c\uff0c\u56e0\u4e3a\u90ae\u7bb1\u7c7b\u578b\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX_203=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5176\u4ed6\u90ae\u7bb1\u503c\uff0c\u56e0\u4e3a\u7f8e\u5143\u7b26\u53f7\u540e\u9762\u6ca1\u6709\u90ae\u7bb1
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR_204=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u5176\u4ed6\u90ae\u7bb1\u503c\uff0c\u56e0\u4e3a\u90ae\u7bb1\u5728\u4f4d\u7f6e %3$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %2$s
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC_205=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u5b83\u5728\u4e95\u53f7 (#) \u5b57\u7b26\u524d\u9762\u4e0d\u5305\u542b objectclass \u540d\u79f0\u6216 OID
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR_206=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6761\u4ef6\u90e8\u5206 %2$s \u5728\u4f4d\u7f6e %4$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %3$c
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN_207=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6761\u4ef6\u90e8\u5206 %s \u4e0d\u5305\u542b\u4e0e\u521d\u59cb\u5de6\u5706\u62ec\u53f7\u5bf9\u5e94\u7684\u53f3\u5706\u62ec\u53f7
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK_208=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6761\u4ef6\u90e8\u5206 %s \u4ee5\u95ee\u53f7\u5f00\u5934\uff0c\u4f46\u6ca1\u6709\u540e\u8ddf\u5b57\u7b26\u4e32\u201c\u771f\u201d\u6216\u201c\u5047\u201d
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR_209=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6761\u4ef6\u90e8\u5206 %s \u4e0d\u5305\u542b\u5c06\u5c5e\u6027\u7c7b\u578b\u4e0e\u5339\u914d\u7c7b\u578b\u9694\u5f00\u7684\u7f8e\u5143\u7b26\u53f7
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR_210=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6761\u4ef6\u90e8\u5206 %s \u672a\u5728\u7f8e\u5143\u7b26\u53f7\u524d\u9762\u6307\u5b9a\u5c5e\u6027\u7c7b\u578b
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE_211=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6761\u4ef6\u90e8\u5206 %s \u672a\u5728\u7f8e\u5143\u7b26\u53f7\u540e\u9762\u6307\u5b9a\u5339\u914d\u7c7b\u578b
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE_212=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6761\u4ef6\u90e8\u5206 %s \u5177\u6709\u65e0\u6548\u7684\u5339\u914d\u7c7b\u578b\uff08\u4ece\u4f4d\u7f6e %d \u5904\u5f00\u59cb\uff09
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP_213=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u5b83\u4e0d\u5305\u542b\u5c06 objectclass \u4e0e\u6761\u4ef6\u9694\u5f00\u7684\u4e95\u53f7 (#) \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC_214=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u5b83\u5728\u4e95\u53f7 (#) \u5b57\u7b26\u524d\u9762\u4e0d\u5305\u542b objectclass \u540d\u79f0\u6216 OID
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID_215=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6307\u5b9a objectclass \u7684\u6570\u5b57 OID %s \u5728\u4f4d\u7f6e %d \u5904\u5305\u542b\u4e24\u4e2a\u8fde\u7eed\u7684\u53e5\u70b9
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID_216=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6307\u5b9a objectclass \u7684\u6570\u5b57 OID %2$s \u5728\u4f4d\u7f6e %4$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %3$s
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME_217=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%1$s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a objectclass \u540d\u79f0 %2$s \u5728\u4f4d\u7f6e %4$d \u5904\u5305\u542b\u975e\u6cd5\u5b57\u7b26 %3$s
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP_218=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u5b83\u4e0d\u5305\u542b\u5c06\u6761\u4ef6\u4e0e\u8303\u56f4\u9694\u5f00\u7684\u4e95\u53f7 (#) \u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE_219=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u672a\u5728\u6700\u7ec8\u4e95\u53f7 (#) \u5b57\u7b26\u540e\u9762\u63d0\u4f9b\u4efb\u4f55\u8303\u56f4
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE_220=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u6307\u5b9a\u7684\u8303\u56f4 %s \u65e0\u6548
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA_221=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u589e\u5f3a\u7684\u6307\u5bfc\u503c\uff0c\u56e0\u4e3a\u5b83\u672a\u5728\u4e95\u53f7 (#) \u5b57\u7b26\u4e4b\u95f4\u6307\u5b9a\u4efb\u4f55\u6761\u4ef6
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE_222=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c %s \u89e3\u6790\u4e3a\u6709\u6548\u7684 OID: %s
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE_223=An unexpected \
+### error occurred while trying to normalize value %s as a generalized time \
+### value: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE_224=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseExactOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE_225=An error occurred while \
+### attempting to compare two objects using the caseExactOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE_226=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE_227=An error occurred while \
+### attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE_228=An error \
+### occurred while attempting to compare two AttributeValue objects using the \
+### generalizedTimeOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE_229=An error occurred \
+### while attempting to compare two objects using the \
+### generalizedTimeOrderingMatch matching rule because the objects were of an \
+### unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+### value objects may be compared
+###SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE_230=An error occurred while \
+### attempting to compare two AttributeValue objects using the \
+### integerOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE_231=An error occurred while \
+### attempting to compare two objects using the integerOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE_232=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### numericStringOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE_233=An error occurred \
+### while attempting to compare two objects using the numericStringOrderingMatch \
+### matching rule because the objects were of an unsupported type %s. Only byte \
+### arrays, ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE_234=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### octetStringOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE_235=An error occurred while \
+### attempting to compare two objects using the octetStringOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH_236=The provided value "%s" has \
+### an invalid length for a UUID. All UUID values must have a length of exactly \
+### 36 bytes, but the provided value had a length of %d bytes
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH_237=The provided value "%s" should \
+### have had a dash at position %d, but the character '%s' was found instead
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX_238=The provided value "%s" should \
+### have had a hexadecimal digit at position %d, but the character '%s' was found \
+### instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH_239=\u6307\u793a\u4f7f\u7528\u76ee\u5f55\u5b57\u7b26\u4e32\u8bed\u6cd5\u7684\u5c5e\u6027\u662f\u5426\u5141\u8bb8\u5177\u6709\u96f6\u957f\u5ea6\u503c\u3002\u4ece\u6280\u672f\u4e0a\u8bb2\uff0cLDAP \u89c4\u8303\u4e0d\u5141\u8bb8\u5b58\u5728\u8fd9\u79cd\u60c5\u51b5\uff0c\u4f46\u5bf9\u4e8e\u5411\u540e\u517c\u5bb9\u4ee5\u524d\u7684\u76ee\u5f55\u670d\u52a1\u5668\u53d1\u884c\u7248\u6765\u8bf4\uff0c\u8fd9\u53ef\u80fd\u975e\u5e38\u6709\u7528
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH_240=An \
+### error occurred while trying to determine the value of the %s configuration \
+### attribute, which indicates whether directory string attributes should be \
+### allowed to have zero-length values: %s
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE_241=The \
+### operation attempted to assign a zero-length value to an attribute with the \
+### directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH_242=\u5df2\u5c06\u914d\u7f6e\u6761\u76ee %2$s \u4e2d\u7684 %1$s \u5c5e\u6027\u66f4\u65b0\u4e3a\u65b0\u7684\u503c %3$s
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR_243=The provided \
+### authPassword value had an invalid scheme character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_244=The provided authPassword value \
+### had a zero-length scheme element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR_245=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the scheme and authInfo elements
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR_246=The provided \
+### authPassword value had an invalid authInfo character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_247=The provided authPassword \
+### value had a zero-length authInfo element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR_248=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the authInfo and authValue elements
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS_249=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### it did not start with a parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE_250=The provided value "%s" could not \
+### be parsed by the integer first component matching rule because it did not \
+### have any non-space characters after the opening parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT_251=The provided value "%s" \
+### could not be parsed by the integer first component matching rule because it \
+### did not have any space characters after the first component
+###SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT_252=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### the first component does not appear to be an integer value
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE_253=No value was given to decode by \
+### the user password attribute syntax
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE_254=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not start with the opening curly brace ("{") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE_255=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not contain a closing curly brace ("}") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME_256=Unable to decode the provided \
+### value according to the user password syntax because the value does not \
+### contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID_257=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684 RFC 3672 \u5b50\u6811\u89c4\u8303
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID_258=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u7edd\u5bf9\u5b50\u6811\u89c4\u8303
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID_259=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u76f8\u5bf9\u5b50\u6811\u89c4\u8303
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER_260=The provided value %s is not \
+### allowed for attributes with a Integer syntax
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR_261=The provided \
+### authPassword value had an invalid authValue character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE_262=The provided authPassword \
+### value had a zero-length authValue element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR_263=The provided \
+### authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER_264=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u5c5e\u6027\u8bed\u6cd5\u6269\u5c55\uff0c\u56e0\u4e3a\u5728\u4f4d\u7f6e %d \u5904\u627e\u5230\u65e0\u6548\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION_265=\u7531\u4e8e\u6269\u5c55\u65e0\u6548\u800c\u65e0\u6cd5\u89e3\u6790\u5c5e\u6027\u8bed\u6cd5\u3002%s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE_266=The definition \
+### for objectclass %s is invalid because it has an objectclass type of %s but \
+### this is incompatible with the objectclass type %s for the superior class %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP_267=The \
+### definition for objectclass %s is invalid because it is defined as a \
+### structural class but its superior chain does not include the "top" \
+### objectclass
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE_268=The definition \
+### for attribute type %s is invalid because its attribute usage %s is not the \
+### same as the usage for its superior type %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE_269=The \
+### definition for attribute type %s is invalid because it is defined as a \
+### collective type but the superior type %s is not collective
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE_270=The \
+### definition for attribute type %s is invalid because it is not defined as a \
+### collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL_271=DIT \u5185\u5bb9\u89c4\u5219 "%1$s" \u65e0\u6548\uff0c\u56e0\u4e3a\u5b83\u7981\u6b62\u4f7f\u7528\u5173\u8054\u7ed3\u6784\u5316\u5bf9\u8c61\u7c7b %3$s \u6240\u9700\u7684\u5c5e\u6027\u7c7b\u578b %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY_272=DIT \u5185\u5bb9\u89c4\u5219 "%1$s" \u65e0\u6548\uff0c\u56e0\u4e3a\u5b83\u7981\u6b62\u4f7f\u7528\u5173\u8054\u8f85\u52a9\u5bf9\u8c61\u7c7b %3$s \u6240\u9700\u7684\u5c5e\u6027\u7c7b\u578b %2$s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL_273=The definition \
+### for attribute type %s is invalid because it is declared COLLECTIVE but does \
+### not have a usage of userApplications
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL_274=The \
+### definition for attribute type %s is invalid because it is declared \
+### NO-USER-MODIFICATION but does not have an operational usage
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR_275=The \
+### provided value %s is not a valid generalized time value because it contains \
+### illegal character %s in the fraction component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION_276=The provided \
+### value %s is not a valid generalized time value because it does not contain at \
+### least one digit after the period to use as the fractional component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO_277=The provided \
+### value %s is not a valid generalized time value because it does not end with \
+### 'Z' or a time zone offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME_278=The provided value \
+### %s is not a valid generalized time value because it represents an invalid \
+### time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED_279=\u65e0\u6cd5\u5bfc\u5165\u6a21\u5f0f\u5143\u7d20: %s, %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE_280=\u5339\u914d\u89c4\u5219\u6761\u76ee %s \u4e0b\u7684\u5bf9\u7167\u89c4\u5219 %s \u65e0\u6548\uff0c\u56e0\u4e3a JVM \u4e0d\u652f\u6301\u8bed\u8a00\u73af\u5883 %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT_281=\u63d0\u4f9b\u7684\u5bf9\u7167\u89c4\u5219 %s \u4e0d\u5305\u542b\u6709\u6548\u7684 OID \u683c\u5f0f:LOCALE
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR_282=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u6807\u8bc6\u540d\uff0c\u56e0\u4e3a\u4e00\u4e2a\u5c5e\u6027\u503c\u4ee5\u5728\u9700\u8981\u907f\u5f00\u7684\u4f4d\u7f6e %d \u5904\u7684\u4e00\u4e2a\u5b57\u7b26\u5f00\u59cb
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR_283=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5c5e\u6027\u7c7b\u578b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u5c5e\u6027\u7c7b\u578b\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u4f4d\u7f6e %d \u5904\u7684\u5b57\u7b26 '%c'
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_284=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5c5e\u6027\u7c7b\u578b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u5c5e\u6027\u7c7b\u578b\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u4e0b\u5212\u7ebf\u5b57\u7b26\uff0c\u9664\u975e\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_285=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5c5e\u6027\u7c7b\u578b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u8fde\u5b57\u7b26\u4f5c\u4e3a\u5c5e\u6027\u7c7b\u578b\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_286=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5c5e\u6027\u7c7b\u578b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u4e0b\u5212\u7ebf\u5b57\u7b26\u4f5c\u4e3a\u5c5e\u6027\u7c7b\u578b\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\uff0c\u5373\u4f7f\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_287=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5c5e\u6027\u7c7b\u578b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u6570\u5b57 '%c' \u4f5c\u4e3a\u5c5e\u6027\u7c7b\u578b\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\uff0c\u9664\u975e\u5c06\u540d\u79f0\u6307\u5b9a\u4e3a OID \u6216\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR_288=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5bf9\u8c61\u7c7b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u5bf9\u8c61\u7c7b\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u4f4d\u7f6e %d \u5904\u7684\u5b57\u7b26 '%c'
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_289=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5bf9\u8c61\u7c7b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u5bf9\u8c61\u7c7b\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u4e0b\u5212\u7ebf\u5b57\u7b26\uff0c\u9664\u975e\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_290=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5bf9\u8c61\u7c7b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u8fde\u5b57\u7b26\u4f5c\u4e3a\u5bf9\u8c61\u7c7b\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_291=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5bf9\u8c61\u7c7b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u4e0b\u5212\u7ebf\u5b57\u7b26\u4f5c\u4e3a\u5bf9\u8c61\u7c7b\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\uff0c\u5373\u4f7f\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_292=\u65e0\u6cd5\u5c06\u63d0\u4f9b\u7684\u503c "%s" \u89e3\u6790\u4e3a\u6709\u6548\u7684\u5bf9\u8c61\u7c7b\u5b9a\u4e49\uff0c\u56e0\u4e3a\u4e0d\u5141\u8bb8\u5c06\u6570\u5b57 '%c' \u4f5c\u4e3a\u5bf9\u8c61\u7c7b\u540d\u79f0\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\uff0c\u9664\u975e\u5c06\u540d\u79f0\u6307\u5b9a\u4e3a OID \u6216\u542f\u7528\u4e86 %s \u914d\u7f6e\u9009\u9879
diff --git a/sdk/src/com/sun/opends/sdk/util/messages_zh_TW.properties b/sdk/src/com/sun/opends/sdk/util/messages_zh_TW.properties
new file mode 100755
index 0000000..990d8e8
--- /dev/null
+++ b/sdk/src/com/sun/opends/sdk/util/messages_zh_TW.properties
@@ -0,0 +1,531 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2009 Sun Microsystems, Inc.
+#
+# Global directives
+#
+global.ordinal=-1
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE_1=Unable to retrieve \
+### approximate matching rule %s used as the default for the %s attribute syntax. \
+### Approximate matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE_2=Unable to retrieve \
+### equality matching rule %s used as the default for the %s attribute syntax. \
+### Equality matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE_3=Unable to retrieve \
+### ordering matching rule %s used as the default for the %s attribute syntax. \
+### Ordering matches will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE_4=Unable to retrieve \
+### substring matching rule %s used as the default for the %s attribute syntax. \
+### Substring matching will not be allowed by default for attributes with this \
+### syntax
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN_5=The provided value "%s" is not \
+### allowed for attributes with a Boolean syntax. The only allowed values are \
+### 'TRUE' and 'FALSE'
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT_6=The provided value "%s" is too \
+### short to be a valid bit string. A bit string must be a series of binary \
+### digits surrounded by single quotes and followed by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED_7=The provided value "%s" is not \
+### a valid bit string because it is not surrounded by single quotes and followed \
+### by a capital letter B
+###SEVERE_WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT_8=The provided value "%s" is \
+### not a valid bit string because '%s' is not a valid binary digit
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH_9=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684\u570b\u5bb6/\u5730\u5340\u5b57\u4e32\uff0c\u56e0\u70ba\u5176\u9577\u5ea6\u4e0d\u662f\u6b63\u597d\u5169\u500b\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE_10=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684\u570b\u5bb6/\u5730\u5340\u5b57\u4e32\uff0c\u56e0\u70ba\u5176\u4e2d\u5305\u542b\u4e00\u6216\u591a\u500b\u4e0d\u53ef\u5217\u5370\u7684\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS_11=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684\u50b3\u9001\u65b9\u6cd5\u503c\uff0c\u56e0\u70ba\u5176\u4e2d\u4e0d\u5305\u542b\u4efb\u4f55\u5143\u7d20
+MILD_ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT_12=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684\u50b3\u9001\u65b9\u6cd5\u503c\uff0c\u56e0\u70ba\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684\u65b9\u6cd5
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_TOO_SHORT_13=The provided value "%s" \
+### is too short to be a valid generalized time value
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_YEAR_14=The provided value \
+### "%s" is not a valid generalized time value because the '%s' character is not \
+### allowed in the century or year specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MONTH_15=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid month \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_DAY_16=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid day \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_HOUR_17=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid hour \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_MINUTE_18=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid minute \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SECOND_19=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid second \
+### specification
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_SUBSECOND_20=The provided \
+### value "%s" is not a valid generalized time value because the sub-second \
+### component is not valid (between 1 and 3 numeric digits)
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_LONG_SUBSECOND_21=The provided value \
+### "%s" is not a valid generalized time value because the sub-second value may \
+### not contain more than three digits
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET_22=The provided value \
+### "%s" is not a valid generalized time value because "%s" is not a valid GMT \
+### offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_CHAR_23=The provided value \
+### "%s" is not a valid generalized time value because it contains an invalid \
+### character '%s' at position %d
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE_24=The provided value \
+### "%s" could not be parsed as a valid generalized time: %s
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_25=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31: %s
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_COMMA_26=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u6700\u5f8c\u4e00\u500b\u975e\u7a7a\u683c\u5b57\u5143\u70ba\u9017\u865f\u6216\u5206\u865f
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_START_WITH_DIGIT_27=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u6578\u5b57\u300c%s\u300d\u4e0d\u5f97\u505a\u70ba\u5c6c\u6027\u540d\u7a31\u4e2d\u7684\u7b2c\u4e00\u500b\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR_28=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5c6c\u6027\u540d\u7a31\u4e2d\u4e0d\u5f97\u6709\u4f4d\u7f6e %3$d \u7684\u5b57\u5143\u300c%2$c\u300d
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_UNDERSCORE_CHAR_29=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5c6c\u6027\u540d\u7a31\u4e2d\u4e0d\u5f97\u6709\u5e95\u7dda\u5b57\u5143\uff0c\u9664\u975e\u5df2\u555f\u7528 %s \u914d\u7f6e\u9078\u9805
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DASH_30=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u9023\u5b57\u7b26\u5b57\u5143\u4e0d\u5f97\u505a\u70ba\u5c6c\u6027\u540d\u7a31\u7684\u7b2c\u4e00\u500b\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_UNDERSCORE_31=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5373\u4f7f\u5df2\u555f\u7528 %s \u914d\u7f6e\u9078\u9805\uff0c\u5e95\u7dda\u5b57\u5143\u4e5f\u4e0d\u5f97\u505a\u70ba\u5c6c\u6027\u540d\u7a31\u7684\u7b2c\u4e00\u500b\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_INITIAL_DIGIT_32=The provided value "%s" could not be parsed as a valid distinguished name because the digit '%c' is not allowed as the first character of an attribute name unless the name is specified as an OID or the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME_33=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5176\u4e2d\u6240\u542b\u7684 RDN \u542b\u6709\u7a7a\u7684\u5c6c\u6027\u540d\u7a31
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD_34=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5256\u6790\u7684\u5c6c\u6027\u540d\u7a31 %s \u5305\u542b\u4e00\u500b\u5c0f\u6578\u9ede\u865f\uff0c\u4f46\u8a72\u540d\u7a31\u4f3c\u4e4e\u4e0d\u662f\u6709\u6548\u7684 OID
+MILD_ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME_35=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u6700\u5f8c\u4e00\u500b\u975e\u7a7a\u683c\u5b57\u5143\u662f\u5c6c\u6027\u540d\u7a31\u300c%s\u300d\u7684\u4e00\u90e8\u5206
+MILD_ERR_ATTR_SYNTAX_DN_NO_EQUAL_36=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5c6c\u6027\u540d\u7a31\u300c%s\u300d\u5f8c\u7684\u4e0b\u4e00\u500b\u975e\u7a7a\u683c\u5b57\u5143\u61c9\u70ba\u7b49\u865f\uff0c\u4f46\u5be6\u969b\u4e0a\u662f\u300c%c\u300d
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_CHAR_37=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u4f4d\u7f6e %3$d \u7684\u5b57\u5143\u300c%2$c\u300d\u7121\u6548
+MILD_ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT_38=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5c6c\u6027\u503c\u662f\u4ee5\u4e95\u5b57\u865f (#) \u958b\u982d\uff0c\u4f46\u4e26\u672a\u7dca\u63a5\u8457\u5169\u500b\u5341\u516d\u9032\u5236\u6578\u5b57\u7684\u6b63\u500d\u6578
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT_39=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5c6c\u6027\u503c\u662f\u4ee5\u4e95\u5b57\u865f (#) \u958b\u982d\uff0c\u4f46\u5176\u4e2d\u542b\u6709\u4e26\u975e\u6709\u6548\u5341\u516d\u9032\u5236\u6578\u5b57\u7684\u5b57\u5143 %c
+MILD_ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE_40=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5728\u5617\u8a66\u5f9e\u5176\u4e2d\u4e00\u500b RDN \u5143\u4ef6\u5256\u6790\u5c6c\u6027\u503c\u6642\uff0c\u767c\u751f\u672a\u9810\u671f\u7684\u5931\u6557:\u300c%s\u300d
+MILD_ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE_41=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5176\u4e2d\u4e00\u500b RDN \u5143\u4ef6\u6240\u542b\u4e4b\u52a0\u4e0a\u5f15\u865f\u7684\u503c\uff0c\u6c92\u6709\u5c0d\u61c9\u7684\u53f3\u96d9\u5f15\u865f
+MILD_ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID_42=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u8fa8\u5225\u540d\u7a31\uff0c\u56e0\u70ba\u5176\u4e2d\u4e00\u500b RDN \u5143\u4ef6\u6240\u5305\u542b\u7684\u503c\uff0c\u542b\u6709\u672a\u7dca\u63a5\u8457\u7b2c\u4e8c\u500b\u5341\u516d\u9032\u5236\u6578\u5b57\u7684\u9000\u51fa\u5341\u516d\u9032\u5236\u6578\u5b57
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO_43=The provided value "%s" could \
+### not be parsed as a valid integer because the first digit may not be zero \
+### unless it is the only digit
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH_44=The provided value "%s" \
+### could not be parsed as a valid integer because the dash may only appear if it \
+### is the first character of the value followed by one or more digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER_45=The provided value "%s" \
+### could not be parsed as a valid integer because character '%c' at position %d \
+### is not allowed in an integer value
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE_46=The provided value "%s" could \
+### not be parsed as a valid integer because it did not contain any digits
+###SEVERE_WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE_47=The provided value "%s" \
+### could not be parsed as a valid integer because it contained only a dash not \
+### followed by an integer value
+MILD_ERR_ATTR_SYNTAX_OID_NO_VALUE_48=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 OID\uff0c\u56e0\u70ba\u5176\u4e2d\u4e0d\u5305\u542b\u4efb\u4f55\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER_49=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 OID\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u6709\u975e\u6cd5\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS_50=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 OID\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u6216\u9644\u8fd1\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD_51=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 OID\uff0c\u56e0\u70ba\u5176\u7d50\u5c3e\u70ba\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE_52=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS_53=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_TRUNCATED_VALUE_54=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_DOUBLE_PERIOD_IN_NUMERIC_OID_55=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_NUMERIC_OID_56=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_IN_STRING_OID_57=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_CHAR_58=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_UNEXPECTED_CLOSE_PARENTHESIS_59=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_60=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u985e\u578b\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u8a18\u865f %s \u5f8c\u61c9\u4ee5\u55ae\u5f15\u865f\u505a\u70ba\u7b2c\u4e00\u500b\u975e\u7a7a\u767d\u5b57\u5143\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f %s \u5b57\u5143
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE_61=The definition for \
+### the attribute type with OID %s declared a superior type with an OID of %s. \
+### No attribute type with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR_62=The definition for \
+### the attribute type with OID %s declared that approximate matching should be \
+### performed using the matching rule "%s". No such approximate matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR_63=The definition for \
+### the attribute type with OID %s declared that equality matching should be \
+### performed using the matching rule "%s". No such equality matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR_64=The definition for \
+### the attribute type with OID %s declared that ordering matching should be \
+### performed using the matching rule "%s". No such ordering matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR_65=The definition for \
+### the attribute type with OID %s declared that substring matching should be \
+### performed using the matching rule "%s". No such substring matching rule is \
+### configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SYNTAX_66=The definition for the \
+### attribute type with OID %s declared that it should have a syntax with OID %s. \
+### No such syntax is configured for use in the Directory Server
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE_67=The definition \
+### for the attribute type with OID %s declared that it should have an attribute \
+### usage of %s. This is an invalid usage
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_EXPECTED_QUOTE_AT_POS_68=The provided value \
+### "%s" could not be parsed as an attribute type description because a single \
+### quote was expected at position %d but the character %s was found instead
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE_69=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS_70=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE_71=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID_72=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID_73=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID_74=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_75=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_UNEXPECTED_CLOSE_PARENTHESIS_76=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_77=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u7269\u4ef6\u985e\u5225\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u8a18\u865f %s \u5f8c\u61c9\u4ee5\u55ae\u5f15\u865f\u505a\u70ba\u7b2c\u4e00\u500b\u975e\u7a7a\u767d\u5b57\u5143\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f %s \u5b57\u5143
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS_78=The definition \
+### for the objectclass with OID %s declared a superior objectclass with an OID \
+### of %s. No objectclass with this OID exists in the server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_QUOTE_AT_POS_79=The provided \
+### value "%s" could not be parsed as an objectclass description because a single \
+### quote was expected at position %d but the character %s was found instead
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR_80=The definition \
+### for the objectclass with OID %s declared that it should include required \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR_81=The definition \
+### for the objectclass with OID %s declared that it should include optional \
+### attribute "%s". No attribute type matching this name or OID exists in the \
+### server schema
+###SEVERE_WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER_82=The provided value "%s" \
+### cannot be parsed as a valid IA5 string because it contains an illegal \
+### character "%s" that is not allowed in the IA5 (ASCII) character set
+INFO_ATTR_SYNTAX_TELEPHONE_DESCRIPTION_STRICT_MODE_83=\u9019\u8868\u793a\u96fb\u8a71\u865f\u78bc\u5c6c\u6027\u8a9e\u6cd5\u662f\u5426\u61c9\u4f7f\u7528\u56b4\u683c\u6a21\u5f0f\uff0c\u800c\u50c5\u63a5\u53d7 ITU-T E.123 \u683c\u5f0f\u7684\u503c\u3002\u82e5\u555f\u7528\u6b64\u9805\u76ee\uff0c\u5c07\u6703\u62d2\u7d55\u4efb\u4f55\u672a\u4f7f\u7528\u6b64\u683c\u5f0f\u7684\u503c\u3002\u82e5\u505c\u7528\u6b64\u9805\u76ee\uff0c\u5247\u6703\u63a5\u53d7\u4efb\u4f55\u503c\uff0c\u4f46\u5728\u57f7\u884c\u76f8\u7b26\u4f5c\u696d\u6642\u53ea\u6703\u8003\u91cf\u6578\u5b57
+###SEVERE_WARN_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE_84=An error \
+### occurred while trying to retrieve attribute \
+### ds-cfg-strict-format from configuration entry %s: %s. The \
+### Directory Server will not enforce strict compliance to the ITU-T E.123 format \
+### for telephone number values
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_EMPTY_85=\u63d0\u4f9b\u7684\u503c\u4e0d\u662f\u6709\u6548\u7684\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u7a7a\u503c
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS_86=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u5df2\u555f\u7528\u56b4\u683c\u7684\u96fb\u8a71\u865f\u78bc\u6aa2\u67e5\uff0c\u4e14\u8a72\u503c\u4e26\u975e\u4ee5\u52a0\u865f\u958b\u982d\uff0c\u800c\u4e0d\u7b26\u5408 ITU-T E.123 \u898f\u683c
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR_87=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u4e0d\u662f\u6709\u6548\u7684\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u5df2\u555f\u7528\u56b4\u683c\u7684\u96fb\u8a71\u865f\u78bc\u6aa2\u67e5\uff0c\u800c ITU-T E.123 \u898f\u683c\u4e0d\u5141\u8a31\u4f4d\u7f6e %3$d \u7684\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS_88=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u5176\u4e2d\u4e0d\u5305\u542b\u4efb\u4f55\u6578\u5b57
+INFO_ATTR_SYNTAX_TELEPHONE_UPDATED_STRICT_MODE_89=\u5728\u914d\u7f6e\u9805\u76ee %2$s \u4e2d\uff0c\u5df2\u5c07\u53ef\u8868\u793a\u662f\u5426\u4f7f\u7528\u56b4\u683c\u96fb\u8a71\u865f\u78bc\u8a9e\u6cd5\u6aa2\u67e5\u7684\u914d\u7f6e\u5c6c\u6027 ds-cfg-strict-format \u7684\u503c\u66f4\u65b0\u70ba %1$s
+###SEVERE_WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR_90=The provided value \
+### "%s" is not a valid numeric string because it contained character %s at \
+### position %d that was neither a digit nor a space
+MILD_ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE_91=\u63d0\u4f9b\u7684\u503c\u4e0d\u662f\u6709\u6548\u7684\u6578\u503c\u5b57\u4e32\uff0c\u56e0\u70ba\u5176\u4e2d\u4e0d\u5305\u542b\u4efb\u4f55\u5b57\u5143\u3002\u6578\u503c\u5b57\u4e32\u503c\u5fc5\u9808\u5305\u542b\u81f3\u5c11\u4e00\u500b\u6578\u5b57\u6216\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE_92=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS_93=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TRUNCATED_VALUE_94=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_DOUBLE_PERIOD_IN_NUMERIC_OID_95=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_NUMERIC_OID_96=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_IN_STRING_OID_97=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_UNEXPECTED_CLOSE_PARENTHESIS_98=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN_99=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u5617\u8a66\u5f9e\u4f4d\u7f6e %d \u6216\u9644\u8fd1\u7684\u5b57\u4e32\u8b80\u53d6\u300cDESC\u300d\u8a18\u865f\u6642\uff0c\u767c\u751f\u672a\u9810\u671f\u7684\u932f\u8aa4: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_TOKEN_NOT_DESC_100=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u9810\u671f\u61c9\u70ba\u300cDESC\u300d\u8a18\u865f\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u5b57\u4e32\u300c%s\u300d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE_101=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u5617\u8a66\u5f9e\u4f4d\u7f6e %d \u6216\u9644\u8fd1\u7684\u5b57\u4e32\u8b80\u53d6\u300cDESC\u300d\u8a18\u865f\u7684\u503c\u6642\uff0c\u767c\u751f\u672a\u9810\u671f\u7684\u932f\u8aa4: %s
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_CLOSE_PARENTHESIS_102=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u53f3\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_CHAR_AFTER_CLOSE_103=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u53f3\u62ec\u5f27\u5f8c\u7684\u4f4d\u7f6e %3$d \u627e\u5230\u975e\u6cd5\u5b57\u5143 %2$s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_QUOTE_AT_POS_104=The provided \
+### value "%s" could not be parsed as an attribute syntax description because a \
+### single quote was expected at position %d but the character %s was found \
+### instead
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE_105=The provided value \
+### could not be parsed as a printable string because it was null or empty. A \
+### printable string must contain at least one character
+###SEVERE_WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER_106=The provided \
+### value "%s" could not be parsed as a printable string because it contained an \
+### invalid character %s at position %d
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD_107=The provided value "*" \
+### could not be parsed as a substring assertion because it consists only of a \
+### wildcard character and zero-length substrings are not allowed
+###SEVERE_WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS_108=The provided \
+### value "%s" could not be parsed as a substring assertion because it contains \
+### consecutive wildcard characters at position %d and zero-length substrings are \
+### not allowed
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT_109=\u63d0\u4f9b\u7684\u503c %s \u592a\u77ed\uff0c\u7121\u6cd5\u505a\u70ba\u6709\u6548\u7684 UTC \u6642\u9593\u503c
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR_110=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba\u4e16\u7d00\u6216\u5e74\u4efd\u898f\u683c\u4e2d\u4e0d\u5141\u8a31 %s \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH_111=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba %s \u4e0d\u662f\u6709\u6548\u7684\u6708\u4efd\u898f\u683c
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY_112=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba %s \u4e0d\u662f\u6709\u6548\u7684\u65e5\u671f\u898f\u683c
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR_113=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba %s \u4e0d\u662f\u6709\u6548\u7684\u5c0f\u6642\u898f\u683c
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE_114=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba %s \u4e0d\u662f\u6709\u6548\u7684\u5206\u9418\u898f\u683c
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR_115=\u63d0\u4f9b\u7684\u503c %1$s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u7121\u6548\u7684\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND_116=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba %s \u4e0d\u662f\u6709\u6548\u7684\u79d2\u9418\u898f\u683c
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET_117=\u63d0\u4f9b\u7684\u503c %s \u4e0d\u662f\u6709\u6548\u7684 UTC \u6642\u9593\u503c\uff0c\u56e0\u70ba %s \u4e0d\u662f\u6709\u6548\u7684 GMT \u504f\u79fb\u91cf
+MILD_ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE_118=\u63d0\u4f9b\u7684\u503c %s \u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 UTC \u6642\u9593: %s
+MILD_ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE_119=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS_120=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DCR_TRUNCATED_VALUE_121=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_DCR_DOUBLE_PERIOD_IN_NUMERIC_OID_122=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_NUMERIC_OID_123=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_IN_STRING_OID_124=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_UNEXPECTED_CLOSE_PARENTHESIS_125=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_DCR_ILLEGAL_CHAR_126=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS_127=DIT \u5167\u5bb9\u898f\u5247\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u7d50\u69cb\u7269\u4ef6\u985e\u5225 %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL_128=DIT \u5167\u5bb9\u898f\u5247\u300c%s\u300d\u8207 OID \u70ba %s \u7684\u7269\u4ef6\u985e\u5225 (%s) \u76f8\u95dc\u806f\u3002\u6b64\u7269\u4ef6\u985e\u5225\u5b58\u5728\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\uff0c\u4f46\u5df2\u5b9a\u7fa9\u70ba %s \u800c\u975e\u7d50\u69cb
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS_129=DIT \u5167\u5bb9\u898f\u5247\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u8f14\u52a9\u7269\u4ef6\u985e\u5225 %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY_130=DIT \u5167\u5bb9\u898f\u5247\u300c%s\u300d\u8207\u8f14\u52a9\u7269\u4ef6\u985e\u5225 %s \u76f8\u95dc\u806f\u3002\u6b64\u7269\u4ef6\u985e\u5225\u5b58\u5728\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\uff0c\u4f46\u5df2\u5b9a\u7fa9\u70ba %s \u800c\u975e\u8f14\u52a9
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR_131=DIT \u5167\u5bb9\u898f\u5247\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u5fc5\u8981\u5c6c\u6027\u985e\u578b %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR_132=DIT \u5167\u5bb9\u898f\u5247\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u9078\u64c7\u6027\u5c6c\u6027\u985e\u578b %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR_133=DIT \u5167\u5bb9\u898f\u5247\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u7981\u6b62\u5c6c\u6027\u985e\u578b %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_DCR_EXPECTED_QUOTE_AT_POS_134=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u5167\u5bb9\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u55ae\u5f15\u865f\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f %s \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE_135=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS_136=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%c\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_TRUNCATED_VALUE_137=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_DOUBLE_PERIOD_IN_NUMERIC_OID_138=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_NUMERIC_OID_139=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_IN_STRING_OID_140=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNEXPECTED_CLOSE_PARENTHESIS_141=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_CHAR_142=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$c
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS_143=\u540d\u7a31\u8868\u8aaa\u660e\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u7d50\u69cb\u7269\u4ef6\u985e\u5225 %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL_144=\u540d\u7a31\u8868\u8aaa\u660e\u300c%s\u300d\u8207 OID \u70ba %s \u7684\u7269\u4ef6\u985e\u5225 (%s) \u76f8\u95dc\u806f\u3002\u6b64\u7269\u4ef6\u985e\u5225\u5b58\u5728\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\uff0c\u4f46\u5df2\u5b9a\u7fa9\u70ba %s \u800c\u975e\u7d50\u69cb
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR_145=OID \u70ba %s \u7684\u540d\u7a31\u8868\u5b9a\u7fa9\u5ba3\u544a\u4e86\u5b83\u61c9\u5305\u542b\u5fc5\u8981\u5c6c\u6027\u300c%s\u300d\u3002\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u6c92\u6709\u7b26\u5408\u6b64\u540d\u7a31\u6216 OID \u7684\u5c6c\u6027\u985e\u578b\u5b58\u5728
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR_146=OID \u70ba %s \u7684\u540d\u7a31\u8868\u5b9a\u7fa9\u5ba3\u544a\u4e86\u5b83\u61c9\u5305\u542b\u9078\u64c7\u6027\u5c6c\u6027\u300c%s\u300d\u3002\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u6c92\u6709\u7b26\u5408\u6b64\u540d\u7a31\u6216 OID \u7684\u5c6c\u6027\u985e\u578b\u5b58\u5728
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS_147=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u672a\u6307\u5b9a\u5176\u76f8\u95dc\u806f\u7684\u7d50\u69cb\u7269\u4ef6\u985e\u5225
+MILD_ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_QUOTE_AT_POS_148=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u540d\u7a31\u8868\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u55ae\u5f15\u865f\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f %c \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_MR_EMPTY_VALUE_149=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS_150=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE_151=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_MR_DOUBLE_PERIOD_IN_NUMERIC_OID_152=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_NUMERIC_OID_153=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_IN_STRING_OID_154=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_MR_UNEXPECTED_CLOSE_PARENTHESIS_155=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR_156=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX_157=\u76f8\u7b26\u898f\u5247\u8aaa\u660e\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u5c6c\u6027\u8a9e\u6cd5 %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_MR_NO_SYNTAX_158=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u672a\u6307\u5b9a\u5176\u76f8\u95dc\u806f\u7684\u5c6c\u6027\u8a9e\u6cd5
+MILD_ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS_159=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u55ae\u5f15\u865f\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f %s \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE_160=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS_161=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_MRUSE_TRUNCATED_VALUE_162=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_MRUSE_DOUBLE_PERIOD_IN_NUMERIC_OID_163=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_NUMERIC_OID_164=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_IN_STRING_OID_165=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE_166=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u6307\u5b9a\u7684\u76f8\u7b26\u898f\u5247 %s \u4e0d\u660e
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNEXPECTED_CLOSE_PARENTHESIS_167=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_CHAR_168=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR_169=\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\u300c%s\u300d\u8207\u672a\u5b9a\u7fa9\u65bc\u4f3a\u670d\u5668\u6a21\u5f0f\u4e2d\u7684\u5c6c\u6027\u985e\u578b %s \u76f8\u95dc\u806f
+MILD_ERR_ATTR_SYNTAX_MRUSE_NO_ATTR_170=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u672a\u6307\u5b9a\u53ef\u8207\u76f8\u95dc OID \u4e00\u8d77\u4f7f\u7528\u7684\u5c6c\u6027\u985e\u578b\u96c6
+MILD_ERR_ATTR_SYNTAX_MRUSE_EXPECTED_QUOTE_AT_POS_171=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u76f8\u7b26\u898f\u5247\u4f7f\u7528\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u55ae\u5f15\u865f\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f %s \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE_172=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684\u6216\u50c5\u5305\u542b\u7a7a\u683c
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS_173=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u5de6\u62ec\u5f27\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f\u300c%s\u300d\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DSR_TRUNCATED_VALUE_174=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5df2\u9054\u8a72\u503c\u7d50\u5c3e\uff0c\u4f46\u76ee\u9304\u4f3a\u670d\u5668\u9810\u671f\u61c9\u6709\u66f4\u591a\u63d0\u4f9b\u7684\u8cc7\u6599
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_RULE_ID_175=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u898f\u5247 OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_DSR_UNEXPECTED_CLOSE_PARENTHESIS_176=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %d \u542b\u6709\u672a\u9810\u671f\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_177=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM_178=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u53c3\u7167\u4e86\u4e0d\u660e\u7684\u540d\u7a31\u8868 %s
+MILD_ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID_179=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u53c3\u7167\u4e86\u4e0a\u5c64 DIT \u7d50\u69cb\u898f\u5247\u7684\u4e0d\u660e\u898f\u5247 ID %d
+MILD_ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM_180=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u8a72\u503c\u672a\u6307\u5b9a\u898f\u5247\u7684\u540d\u7a31\u8868
+MILD_ERR_ATTR_SYNTAX_DSR_EXPECTED_QUOTE_AT_POS_181=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u61c9\u6709\u55ae\u5f15\u865f\uff0c\u4f46\u627e\u5230\u7684\u537b\u662f %s \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_DSR_DOUBLE_PERIOD_IN_NUMERIC_OID_182=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_NUMERIC_OID_183=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_DSR_ILLEGAL_CHAR_IN_STRING_OID_184=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba DIT \u7d50\u69cb\u898f\u5247\u8aaa\u660e\uff0c\u56e0\u70ba\u975e\u6578\u503c OID \u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_TELEX_TOO_SHORT_185=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u592a\u77ed\uff0c\u7121\u6cd5\u505a\u70ba\u6709\u6548\u7684\u96fb\u5831\u865f\u78bc\u503c
+MILD_ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE_186=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u4e0d\u542b\u6709\u6548\u7684\u96fb\u5831\u865f\u78bc\uff0c\u56e0\u70ba\u4f4d\u7f6e %3$d \u7684\u5b57\u5143 %2$s \u4e0d\u662f\u6709\u6548\u7684\u53ef\u5217\u5370\u5b57\u4e32\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR_187=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u4e0d\u542b\u6709\u6548\u7684\u96fb\u5831\u865f\u78bc\uff0c\u56e0\u70ba\u4f4d\u7f6e %3$d \u7684\u5b57\u5143 %2$s \u4e0d\u662f\u6709\u6548\u7684\u53ef\u5217\u5370\u5b57\u4e32\u5b57\u5143\uff0c\u4e5f\u4e0d\u662f\u53ef\u5206\u9694\u96fb\u5831\u865f\u78bc\u5143\u4ef6\u7684\u8ca8\u5e63\u7b26\u865f
+MILD_ERR_ATTR_SYNTAX_TELEX_TRUNCATED_188=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u4e0d\u542b\u6709\u6548\u7684\u96fb\u5831\u865f\u78bc\uff0c\u56e0\u70ba\u5728\u53ef\u8b80\u53d6\u4e09\u500b\u4ee5\u8ca8\u5e63\u7b26\u865f\u5206\u9694\u7684\u53ef\u5217\u5370\u5b57\u4e32\u4e4b\u524d\uff0c\u767c\u73fe\u8a72\u503c\u7684\u7d50\u5c3e
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY_189=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u50b3\u771f\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE_190=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u50b3\u771f\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u4f4d\u7f6e %3$d \u7684\u5b57\u5143 %2$s \u4e0d\u662f\u6709\u6548\u7684\u53ef\u5217\u5370\u5b57\u4e32\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR_191=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u50b3\u771f\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u8a72\u503c\u7684\u7d50\u5c3e\u662f\u8ca8\u5e63\u7b26\u865f\uff0c\u4f46\u8a72\u8ca8\u5e63\u7b26\u865f\u539f\u61c9\u7dca\u63a5\u8457\u50b3\u771f\u53c3\u6578
+MILD_ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER_192=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u50b3\u771f\u96fb\u8a71\u865f\u78bc\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %3$d \u8207 %4$d \u4e4b\u9593\u7684\u5b57\u4e32\u300c%2$s\u300d\u4e0d\u662f\u6709\u6548\u7684\u50b3\u771f\u53c3\u6578
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN_193=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u540d\u7a31\u8207\u9078\u64c7\u6027 UID \u503c\uff0c\u56e0\u70ba\u5728\u5617\u8a66\u5256\u6790 DN \u90e8\u5206\u6642\u767c\u751f\u932f\u8aa4: %s
+MILD_ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT_194=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u540d\u7a31\u8207\u9078\u64c7\u6027 UID \u503c\uff0c\u56e0\u70ba OID \u90e8\u5206\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u4e8c\u9032\u4f4d\u6578\u5b57 %2$s
+MILD_ERR_ATTR_SYNTAX_TELETEXID_EMPTY_195=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 teletex \u7d42\u7aef\u6a5f\u8b58\u5225\u78bc\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684
+MILD_ERR_ATTR_SYNTAX_TELETEXID_NOT_PRINTABLE_196=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 teletex \u7d42\u7aef\u6a5f\u8b58\u5225\u78bc\uff0c\u56e0\u70ba\u4f4d\u7f6e %3$d \u7684\u5b57\u5143 %2$s \u4e0d\u662f\u6709\u6548\u7684\u53ef\u5217\u5370\u5b57\u4e32\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_TELETEXID_END_WITH_DOLLAR_197=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 teletex \u7d42\u7aef\u6a5f\u8b58\u5225\u78bc\uff0c\u56e0\u70ba\u8a72\u503c\u7684\u7d50\u5c3e\u662f\u8ca8\u5e63\u7b26\u865f\uff0c\u4f46\u8a72\u8ca8\u5e63\u7b26\u865f\u539f\u61c9\u7dca\u63a5\u8457 TTX \u53c3\u6578
+MILD_ERR_ATTR_SYNTAX_TELETEXID_PARAM_NO_COLON_198=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 teletex \u7d42\u7aef\u6a5f\u8b58\u5225\u78bc\uff0c\u56e0\u70ba\u53c3\u6578\u5b57\u4e32\u4e0d\u5305\u542b\u7528\u4ee5\u5340\u9694\u540d\u7a31\u8207\u503c\u7684\u5192\u865f
+MILD_ERR_ATTR_SYNTAX_TELETEXID_ILLEGAL_PARAMETER_199=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 teletex \u7d42\u7aef\u6a5f\u8b58\u5225\u78bc\uff0c\u56e0\u70ba\u5b57\u4e32\u300c%s\u300d\u4e0d\u662f\u6709\u6548\u7684 TTX \u53c3\u6578\u540d\u7a31
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_EMPTY_VALUE_200=\u63d0\u4f9b\u7684\u503c\u7121\u6cd5\u5256\u6790\u70ba\u5176\u4ed6\u96fb\u5b50\u4fe1\u7bb1\u503c\uff0c\u56e0\u70ba\u8a72\u503c\u662f\u7a7a\u7684
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MBTYPE_201=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5176\u4ed6\u96fb\u5b50\u4fe1\u7bb1\u503c\uff0c\u56e0\u70ba\u5728\u8ca8\u5e63\u7b26\u865f\u4e4b\u524d\u6c92\u6709\u4efb\u4f55\u96fb\u5b50\u4fe1\u7bb1\u985e\u578b
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MBTYPE_CHAR_202=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5176\u4ed6\u96fb\u5b50\u4fe1\u7bb1\u503c\uff0c\u56e0\u70ba\u96fb\u5b50\u4fe1\u7bb1\u985e\u578b\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_NO_MAILBOX_203=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5176\u4ed6\u96fb\u5b50\u4fe1\u7bb1\u503c\uff0c\u56e0\u70ba\u5728\u8ca8\u5e63\u7b26\u865f\u4e4b\u5f8c\u6c92\u6709\u4efb\u4f55\u96fb\u5b50\u4fe1\u7bb1
+MILD_ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR_204=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5176\u4ed6\u96fb\u5b50\u4fe1\u7bb1\u503c\uff0c\u56e0\u70ba\u96fb\u5b50\u4fe1\u7bb1\u5728\u4f4d\u7f6e %3$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %2$s
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_OC_205=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4e95\u5b57\u865f (#) \u5b57\u5143\u4e4b\u524d\u4e0d\u5305\u542b\u7269\u4ef6\u985e\u5225\u540d\u7a31\u6216 OID
+MILD_ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR_206=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u689d\u4ef6\u90e8\u5206 %2$s \u5728\u4f4d\u7f6e %4$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %3$c
+MILD_ERR_ATTR_SYNTAX_GUIDE_MISSING_CLOSE_PAREN_207=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u689d\u4ef6\u90e8\u5206 %s \u4e0d\u5305\u542b\u8207\u521d\u59cb\u5de6\u62ec\u5f27\u5c0d\u61c9\u7684\u53f3\u62ec\u5f27
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_QUESTION_MARK_208=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u689d\u4ef6\u90e8\u5206 %s \u662f\u4ee5\u554f\u865f\u958b\u982d\uff0c\u4f46\u4e26\u672a\u7dca\u63a5\u8457\u5b57\u4e32\u300ctrue\u300d\u6216\u300cfalse\u300d
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_DOLLAR_209=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u689d\u4ef6\u90e8\u5206 %s \u4e0d\u5305\u542b\u7528\u4ee5\u5340\u9694\u5c6c\u6027\u985e\u578b\u8207\u76f8\u7b26\u985e\u578b\u7684\u8ca8\u5e63\u7b26\u865f
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_ATTR_210=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u689d\u4ef6\u90e8\u5206 %s \u672a\u5728\u8ca8\u5e63\u7b26\u865f\u4e4b\u524d\u6307\u5b9a\u5c6c\u6027\u985e\u578b
+MILD_ERR_ATTR_SYNTAX_GUIDE_NO_MATCH_TYPE_211=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u689d\u4ef6\u90e8\u5206 %s \u672a\u5728\u8ca8\u5e63\u7b26\u865f\u4e4b\u5f8c\u6307\u5b9a\u76f8\u7b26\u985e\u578b
+MILD_ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE_212=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u689d\u4ef6\u90e8\u5206 %s \u5f9e\u4f4d\u7f6e %d \u8d77\u6709\u7121\u6548\u7684\u76f8\u7b26\u985e\u578b
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP_213=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u8a72\u503c\u4e0d\u5305\u542b\u7528\u4ee5\u5340\u9694\u7269\u4ef6\u985e\u5225\u8207\u689d\u4ef6\u7684\u4e95\u5b57\u865f (#) \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC_214=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4e95\u5b57\u865f (#) \u5b57\u5143\u4e4b\u524d\u4e0d\u5305\u542b\u7269\u4ef6\u985e\u5225\u540d\u7a31\u6216 OID
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_DOUBLE_PERIOD_IN_OC_OID_215=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u7528\u4ee5\u6307\u5b9a\u7269\u4ef6\u985e\u5225\u7684\u6578\u503c OID %s \u5728\u4f4d\u7f6e %d \u542b\u6709\u5169\u500b\u9023\u7e8c\u7684\u5c0f\u6578\u9ede\u865f
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_OID_216=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u7528\u4ee5\u6307\u5b9a\u7269\u4ef6\u985e\u5225\u7684\u6578\u503c OID %2$s \u5728\u4f4d\u7f6e %4$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %3$s
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_ILLEGAL_CHAR_IN_OC_NAME_217=\u63d0\u4f9b\u7684\u503c\u300c%1$s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u7269\u4ef6\u985e\u5225\u540d\u7a31 %2$s \u5728\u4f4d\u7f6e %4$d \u542b\u6709\u975e\u6cd5\u5b57\u5143 %3$s
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP_218=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u8a72\u503c\u6c92\u6709\u7528\u4ee5\u5340\u9694\u689d\u4ef6\u8207\u7bc4\u570d\u7684\u4e95\u5b57\u865f (#) \u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SCOPE_219=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u5728\u6700\u7d42\u7684\u4e95\u5b57\u865f (#) \u5b57\u5143\u4e4b\u5f8c\u672a\u63d0\u4f9b\u7bc4\u570d
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_INVALID_SCOPE_220=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u6307\u5b9a\u7684\u7bc4\u570d %s \u7121\u6548
+MILD_ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_CRITERIA_221=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u589e\u5f37\u5f15\u5c0e\u503c\uff0c\u56e0\u70ba\u8a72\u503c\u5728\u4e95\u5b57\u865f (#) \u5b57\u5143\u4e4b\u9593\u672a\u6307\u5b9a\u4efb\u4f55\u689d\u4ef6
+MILD_ERR_ATTR_SYNTAX_OID_INVALID_VALUE_222=\u63d0\u4f9b\u7684\u503c %s \u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 OID: %s
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE_223=An unexpected \
+### error occurred while trying to normalize value %s as a generalized time \
+### value: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_CANNOT_NORMALIZE_224=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseExactOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_EXACT_COMPARE_INVALID_TYPE_225=An error occurred while \
+### attempting to compare two objects using the caseExactOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_CANNOT_NORMALIZE_226=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### caseIgnoreOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_CASE_IGNORE_COMPARE_INVALID_TYPE_227=An error occurred while \
+### attempting to compare two objects using the caseIgnoreOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_CANNOT_NORMALIZE_228=An error \
+### occurred while attempting to compare two AttributeValue objects using the \
+### generalizedTimeOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_GENERALIZED_TIME_COMPARE_INVALID_TYPE_229=An error occurred \
+### while attempting to compare two objects using the \
+### generalizedTimeOrderingMatch matching rule because the objects were of an \
+### unsupported type %s. Only byte arrays, ASN.1 octet strings, and attribute \
+### value objects may be compared
+###SEVERE_WARN_OMR_INTEGER_COMPARE_CANNOT_NORMALIZE_230=An error occurred while \
+### attempting to compare two AttributeValue objects using the \
+### integerOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_INTEGER_COMPARE_INVALID_TYPE_231=An error occurred while \
+### attempting to compare two objects using the integerOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_CANNOT_NORMALIZE_232=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### numericStringOrderingMatch matching rule because the normalized form of one \
+### of those values could not be retrieved: %s
+###SEVERE_WARN_OMR_NUMERIC_STRING_COMPARE_INVALID_TYPE_233=An error occurred \
+### while attempting to compare two objects using the numericStringOrderingMatch \
+### matching rule because the objects were of an unsupported type %s. Only byte \
+### arrays, ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_CANNOT_NORMALIZE_234=An error occurred \
+### while attempting to compare two AttributeValue objects using the \
+### octetStringOrderingMatch matching rule because the normalized form of one of \
+### those values could not be retrieved: %s
+###SEVERE_WARN_OMR_OCTET_STRING_COMPARE_INVALID_TYPE_235=An error occurred while \
+### attempting to compare two objects using the octetStringOrderingMatch matching \
+### rule because the objects were of an unsupported type %s. Only byte arrays, \
+### ASN.1 octet strings, and attribute value objects may be compared
+###SEVERE_WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH_236=The provided value "%s" has \
+### an invalid length for a UUID. All UUID values must have a length of exactly \
+### 36 bytes, but the provided value had a length of %d bytes
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH_237=The provided value "%s" should \
+### have had a dash at position %d, but the character '%s' was found instead
+###SEVERE_WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX_238=The provided value "%s" should \
+### have had a hexadecimal digit at position %d, but the character '%s' was found \
+### instead
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_DESCRIPTION_ALLOW_ZEROLENGTH_239=\u8868\u793a\u4f7f\u7528\u76ee\u9304\u5b57\u4e32\u8a9e\u6cd5\u7684\u5c6c\u6027\u662f\u5426\u53ef\u6709\u96f6\u9577\u5ea6\u7684\u503c\u3002LDAP \u898f\u683c\u6280\u8853\u4e0a\u4e0d\u5141\u8a31\u6b64\u8a2d\u5b9a\uff0c\u4f46\u5728\u820a\u7248\u76ee\u9304\u4f3a\u670d\u5668\u7684\u5411\u4e0b\u76f8\u5bb9\u6027\u65b9\u9762\uff0c\u9019\u53ef\u80fd\u5f88\u6709\u7528
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH_240=An \
+### error occurred while trying to determine the value of the %s configuration \
+### attribute, which indicates whether directory string attributes should be \
+### allowed to have zero-length values: %s
+###SEVERE_ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE_241=The \
+### operation attempted to assign a zero-length value to an attribute with the \
+### directory string syntax
+INFO_ATTR_SYNTAX_DIRECTORYSTRING_UPDATED_ALLOW_ZEROLENGTH_242=\u914d\u7f6e\u9805\u76ee %2$s \u4e2d\u7684 %1$s \u5c6c\u6027\u5df2\u4f7f\u7528\u65b0\u503c %3$s \u9032\u884c\u66f4\u65b0
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_SCHEME_CHAR_243=The provided \
+### authPassword value had an invalid scheme character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_244=The provided authPassword value \
+### had a zero-length scheme element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME_SEPARATOR_245=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the scheme and authInfo elements
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_INFO_CHAR_246=The provided \
+### authPassword value had an invalid authInfo character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_247=The provided authPassword \
+### value had a zero-length authInfo element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO_SEPARATOR_248=The provided \
+### authPassword value was missing the separator character or had an illegal \
+### character between the authInfo and authValue elements
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS_249=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### it did not start with a parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_NONSPACE_250=The provided value "%s" could not \
+### be parsed by the integer first component matching rule because it did not \
+### have any non-space characters after the opening parenthesis
+###SEVERE_ERR_EMR_INTFIRSTCOMP_NO_SPACE_AFTER_INT_251=The provided value "%s" \
+### could not be parsed by the integer first component matching rule because it \
+### did not have any space characters after the first component
+###SEVERE_ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT_252=The provided value \
+### "%s" could not be parsed by the integer first component matching rule because \
+### the first component does not appear to be an integer value
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_VALUE_253=No value was given to decode by \
+### the user password attribute syntax
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE_254=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not start with the opening curly brace ("{") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE_255=Unable to decode the \
+### provided value according to the user password syntax because the value does \
+### not contain a closing curly brace ("}") character
+###SEVERE_ERR_ATTR_SYNTAX_USERPW_NO_SCHEME_256=Unable to decode the provided \
+### value according to the user password syntax because the value does not \
+### contain a storage scheme name
+MILD_ERR_ATTR_SYNTAX_RFC3672_SUBTREE_SPECIFICATION_INVALID_257=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684 RFC 3672 \u5b50\u6a39\u72c0\u7d50\u69cb\u898f\u683c
+MILD_ERR_ATTR_SYNTAX_ABSOLUTE_SUBTREE_SPECIFICATION_INVALID_258=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u7d55\u5c0d\u5b50\u6a39\u72c0\u7d50\u69cb\u898f\u683c
+MILD_ERR_ATTR_SYNTAX_RELATIVE_SUBTREE_SPECIFICATION_INVALID_259=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u6709\u6548\u7684\u76f8\u5c0d\u5b50\u6a39\u72c0\u7d50\u69cb\u898f\u683c
+###SEVERE_WARN_ATTR_SYNTAX_ILLEGAL_INTEGER_260=The provided value %s is not \
+### allowed for attributes with a Integer syntax
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_AUTH_VALUE_CHAR_261=The provided \
+### authPassword value had an invalid authValue character at position %d
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE_262=The provided authPassword \
+### value had a zero-length authValue element
+###SEVERE_ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR_263=The provided \
+### authPassword value had an invalid trailing character at position %d
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_EXTENSION_INVALID_CHARACTER_264=\u63d0\u4f9b\u7684\u503c\u300c%s\u300d\u7121\u6cd5\u5256\u6790\u70ba\u5c6c\u6027\u8a9e\u6cd5\u5ef6\u4f38\uff0c\u56e0\u70ba\u5728\u4f4d\u7f6e %d \u627e\u5230\u7121\u6548\u7684\u5b57\u5143
+MILD_ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION_265=\u5c6c\u6027\u8a9e\u6cd5\u56e0\u5ef6\u4f38\u7121\u6548\u800c\u7121\u6cd5\u5256\u6790\u3002%s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE_266=The definition \
+### for objectclass %s is invalid because it has an objectclass type of %s but \
+### this is incompatible with the objectclass type %s for the superior class %s
+###SEVERE_WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP_267=The \
+### definition for objectclass %s is invalid because it is defined as a \
+### structural class but its superior chain does not include the "top" \
+### objectclass
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE_268=The definition \
+### for attribute type %s is invalid because its attribute usage %s is not the \
+### same as the usage for its superior type %s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE_269=The \
+### definition for attribute type %s is invalid because it is defined as a \
+### collective type but the superior type %s is not collective
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE_270=The \
+### definition for attribute type %s is invalid because it is not defined as a \
+### collective type but the superior type %s is collective
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL_271=DIT \u5167\u5bb9\u898f\u5247\u300c%1$s\u300d\u7121\u6548\uff0c\u56e0\u70ba\u8a72\u898f\u5247\u7981\u6b62\u4f7f\u7528\u76f8\u95dc\u7d50\u69cb\u7269\u4ef6\u985e\u5225 %3$s \u6240\u9700\u7684\u5c6c\u6027\u985e\u578b %2$s
+MILD_ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY_272=DIT \u5167\u5bb9\u898f\u5247\u300c%1$s\u300d\u7121\u6548\uff0c\u56e0\u70ba\u8a72\u898f\u5247\u7981\u6b62\u4f7f\u7528\u76f8\u95dc\u8f14\u52a9\u7269\u4ef6\u985e\u5225 %3$s \u6240\u9700\u7684\u5c6c\u6027\u985e\u578b %2$s
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_IS_OPERATIONAL_273=The definition \
+### for attribute type %s is invalid because it is declared COLLECTIVE but does \
+### not have a usage of userApplications
+###SEVERE_WARN_ATTR_SYNTAX_ATTRTYPE_NO_USER_MOD_NOT_OPERATIONAL_274=The \
+### definition for attribute type %s is invalid because it is declared \
+### NO-USER-MODIFICATION but does not have an operational usage
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_FRACTION_CHAR_275=The \
+### provided value %s is not a valid generalized time value because it contains \
+### illegal character %s in the fraction component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_EMPTY_FRACTION_276=The provided \
+### value %s is not a valid generalized time value because it does not contain at \
+### least one digit after the period to use as the fractional component
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_NO_TIME_ZONE_INFO_277=The provided \
+### value %s is not a valid generalized time value because it does not end with \
+### 'Z' or a time zone offset
+###SEVERE_WARN_ATTR_SYNTAX_GENERALIZED_TIME_ILLEGAL_TIME_278=The provided value \
+### %s is not a valid generalized time value because it represents an invalid \
+### time (e.g., a date that does not exist): %s
+NOTICE_SCHEMA_IMPORT_FAILED_279=\u7121\u6cd5\u532f\u5165\u6a21\u5f0f\u5143\u7d20: %s, %s
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE_280=The collation rule %s under matching rule entry %s is invalid as the locale %s is not supported by JVM
+MILD_WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT_281=The provided collation rule %s does not contain a valid format of OID:LOCALE
+MILD_ERR_ATTR_SYNTAX_DN_INVALID_REQUIRES_ESCAPE_CHAR_282=The provided value "%s" could not be parsed as a valid distinguished name because an attribute value started with a character at position %d that needs to be escaped
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_CHAR_283=The provided value "%s" could not be parsed as a valid attribute type definition because character '%c' at position %d is not allowed in an attribute type name
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_284=The provided value "%s" could not be parsed as a valid attribute type definition because the underscore character is not allowed in an attribute type name unless the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_285=The provided value "%s" could not be parsed as a valid attribute type definition because the hyphen character is not allowed as the first character of an attribute type name
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_286=The provided value "%s" could not be parsed as a valid attribute type definition because the underscore character is not allowed as the first character of an attribute type name even if the %s configuration option is enabled
+MILD_ERR_ATTR_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_287=The provided value "%s" could not be parsed as a valid attribute type definition because the digit '%c' is not allowed as the first character of an attribute type name unless the name is specified as an OID or the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_CHAR_288=The provided value "%s" could not be parsed as a valid object class definition because character '%c' at position %d is not allowed in an object class name
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_UNDERSCORE_CHAR_289=The provided value "%s" could not be parsed as a valid object class definition because the underscore character is not allowed in an object class name unless the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DASH_290=The provided value "%s" could not be parsed as a valid object class definition because the hyphen character is not allowed as the first character of an object class name
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_UNDERSCORE_291=The provided value "%s" could not be parsed as a valid object class definition because the underscore character is not allowed as the first character of an object class name even if the %s configuration option is enabled
+MILD_ERR_OC_SYNTAX_ATTR_ILLEGAL_INITIAL_DIGIT_292=The provided value "%s" could not be parsed as a valid object class definition because the digit '%c' is not allowed as the first character of an object class name unless the name is specified as an OID or the %s configuration option is enabled
diff --git a/sdk/src/org/opends/sdk/AbstractConnection.java b/sdk/src/org/opends/sdk/AbstractConnection.java
index 58d7e51..0f29a4c 100644
--- a/sdk/src/org/opends/sdk/AbstractConnection.java
+++ b/sdk/src/org/opends/sdk/AbstractConnection.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.ProtocolMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.util.Collection;
import java.util.LinkedList;
diff --git a/sdk/src/org/opends/sdk/AttributeDescription.java b/sdk/src/org/opends/sdk/AttributeDescription.java
index 92dfd56..69255bd 100644
--- a/sdk/src/org/opends/sdk/AttributeDescription.java
+++ b/sdk/src/org/opends/sdk/AttributeDescription.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.util.StaticUtils.*;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.schema.AttributeType;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.schema.UnknownSchemaElementException;
diff --git a/sdk/src/org/opends/sdk/DN.java b/sdk/src/org/opends/sdk/DN.java
index 40208c3..010b2d0 100644
--- a/sdk/src/org/opends/sdk/DN.java
+++ b/sdk/src/org/opends/sdk/DN.java
@@ -29,11 +29,11 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.schema.UnknownSchemaElementException;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
diff --git a/sdk/src/org/opends/sdk/DecodeException.java b/sdk/src/org/opends/sdk/DecodeException.java
index fabaca2..b0b8764 100644
--- a/sdk/src/org/opends/sdk/DecodeException.java
+++ b/sdk/src/org/opends/sdk/DecodeException.java
@@ -31,7 +31,7 @@
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.LocalizableException;
diff --git a/sdk/src/org/opends/sdk/Filter.java b/sdk/src/org/opends/sdk/Filter.java
index 6370007..ddff4ee 100644
--- a/sdk/src/org/opends/sdk/Filter.java
+++ b/sdk/src/org/opends/sdk/Filter.java
@@ -29,17 +29,16 @@
-import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.sdk.util.StaticUtils.byteToHex;
-import static org.opends.sdk.util.StaticUtils.getBytes;
-import static org.opends.sdk.util.StaticUtils.toLowerCase;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.util.StaticUtils.*;
import java.util.*;
-import org.opends.messages.Message;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.util.*;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/RDN.java b/sdk/src/org/opends/sdk/RDN.java
index 2831f9e..a553d6e 100644
--- a/sdk/src/org/opends/sdk/RDN.java
+++ b/sdk/src/org/opends/sdk/RDN.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.util.StaticUtils.*;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.schema.*;
import org.opends.sdk.util.*;
diff --git a/sdk/src/org/opends/sdk/ResultCode.java b/sdk/src/org/opends/sdk/ResultCode.java
index c8d7cb0..9306f9a 100644
--- a/sdk/src/org/opends/sdk/ResultCode.java
+++ b/sdk/src/org/opends/sdk/ResultCode.java
@@ -29,13 +29,13 @@
-import static org.opends.messages.CoreMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/asn1/ASN1ByteSequenceReader.java b/sdk/src/org/opends/sdk/asn1/ASN1ByteSequenceReader.java
index 8e3ec17..fca1186 100644
--- a/sdk/src/org/opends/sdk/asn1/ASN1ByteSequenceReader.java
+++ b/sdk/src/org/opends/sdk/asn1/ASN1ByteSequenceReader.java
@@ -29,22 +29,21 @@
-import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.sdk.asn1.ASN1Constants.ELEMENT_READ_STATE_NEED_FIRST_LENGTH_BYTE;
-import static org.opends.sdk.asn1.ASN1Constants.ELEMENT_READ_STATE_NEED_TYPE;
-import static org.opends.sdk.asn1.ASN1Constants.ELEMENT_READ_STATE_NEED_VALUE_BYTES;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.asn1.ASN1Constants.*;
import java.io.IOException;
import java.util.LinkedList;
import java.util.logging.Level;
-import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequenceReader;
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.ByteStringBuilder;
import org.opends.sdk.util.StaticUtils;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/asn1/ASN1InputStreamReader.java b/sdk/src/org/opends/sdk/asn1/ASN1InputStreamReader.java
index 1b67947..a367063 100644
--- a/sdk/src/org/opends/sdk/asn1/ASN1InputStreamReader.java
+++ b/sdk/src/org/opends/sdk/asn1/ASN1InputStreamReader.java
@@ -29,24 +29,22 @@
-import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.sdk.asn1.ASN1Constants.ELEMENT_READ_STATE_NEED_ADDITIONAL_LENGTH_BYTES;
-import static org.opends.sdk.asn1.ASN1Constants.ELEMENT_READ_STATE_NEED_FIRST_LENGTH_BYTE;
-import static org.opends.sdk.asn1.ASN1Constants.ELEMENT_READ_STATE_NEED_TYPE;
-import static org.opends.sdk.asn1.ASN1Constants.ELEMENT_READ_STATE_NEED_VALUE_BYTES;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.asn1.ASN1Constants.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.LinkedList;
import java.util.logging.Level;
-import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.ByteStringBuilder;
import org.opends.sdk.util.SizeLimitInputStream;
import org.opends.sdk.util.StaticUtils;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/asn1/ASN1OutputStreamWriter.java b/sdk/src/org/opends/sdk/asn1/ASN1OutputStreamWriter.java
index e3ca2e6..8ba76f1 100644
--- a/sdk/src/org/opends/sdk/asn1/ASN1OutputStreamWriter.java
+++ b/sdk/src/org/opends/sdk/asn1/ASN1OutputStreamWriter.java
@@ -28,7 +28,7 @@
-import static org.opends.messages.ProtocolMessages.ERR_ASN1_SEQUENCE_WRITE_NOT_STARTED;
+import static com.sun.opends.sdk.util.Messages.ERR_ASN1_SEQUENCE_WRITE_NOT_STARTED;
import static org.opends.sdk.asn1.ASN1Constants.BOOLEAN_VALUE_FALSE;
import static org.opends.sdk.asn1.ASN1Constants.BOOLEAN_VALUE_TRUE;
@@ -37,7 +37,7 @@
import java.util.ArrayList;
import java.util.logging.Level;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteSequenceOutputStream;
import org.opends.sdk.util.ByteStringBuilder;
diff --git a/sdk/src/org/opends/sdk/asn1/AbstractASN1Reader.java b/sdk/src/org/opends/sdk/asn1/AbstractASN1Reader.java
index 131c9ab..2ec53df 100644
--- a/sdk/src/org/opends/sdk/asn1/AbstractASN1Reader.java
+++ b/sdk/src/org/opends/sdk/asn1/AbstractASN1Reader.java
@@ -29,16 +29,17 @@
-import static org.opends.messages.ProtocolMessages.ERR_ASN1_UNEXPECTED_TAG;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.asn1.ASN1Constants.*;
import java.io.IOException;
-import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.ByteStringBuilder;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/controls/AccountUsabilityControl.java b/sdk/src/org/opends/sdk/controls/AccountUsabilityControl.java
index 5b6bb74..9bd5efb 100644
--- a/sdk/src/org/opends/sdk/controls/AccountUsabilityControl.java
+++ b/sdk/src/org/opends/sdk/controls/AccountUsabilityControl.java
@@ -2,16 +2,16 @@
-import static org.opends.messages.ProtocolMessages.ERR_ACCTUSABLEREQ_CONTROL_HAS_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_ACCTUSABLERES_DECODE_ERROR;
-import static org.opends.messages.ProtocolMessages.ERR_ACCTUSABLERES_NO_CONTROL_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_ACCTUSABLERES_UNKNOWN_VALUE_ELEMENT_TYPE;
+import static com.sun.opends.sdk.util.Messages.ERR_ACCTUSABLEREQ_CONTROL_HAS_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ACCTUSABLERES_DECODE_ERROR;
+import static com.sun.opends.sdk.util.Messages.ERR_ACCTUSABLERES_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ACCTUSABLERES_UNKNOWN_VALUE_ELEMENT_TYPE;
import static org.opends.sdk.util.StaticUtils.byteToHex;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/AssertionControl.java b/sdk/src/org/opends/sdk/controls/AssertionControl.java
index 76e8dee..fc87255 100644
--- a/sdk/src/org/opends/sdk/controls/AssertionControl.java
+++ b/sdk/src/org/opends/sdk/controls/AssertionControl.java
@@ -29,13 +29,13 @@
-import static org.opends.messages.ProtocolMessages.ERR_LDAPASSERT_INVALID_CONTROL_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_LDAPASSERT_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_LDAPASSERT_INVALID_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_LDAPASSERT_NO_CONTROL_VALUE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.Filter;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/controls/AuthorizationIdentityControl.java b/sdk/src/org/opends/sdk/controls/AuthorizationIdentityControl.java
index ddd3260..29478e6 100644
--- a/sdk/src/org/opends/sdk/controls/AuthorizationIdentityControl.java
+++ b/sdk/src/org/opends/sdk/controls/AuthorizationIdentityControl.java
@@ -2,10 +2,10 @@
-import static org.opends.messages.ProtocolMessages.ERR_AUTHZIDREQ_CONTROL_HAS_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_AUTHZIDRESP_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_AUTHZIDREQ_CONTROL_HAS_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_AUTHZIDRESP_NO_CONTROL_VALUE;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DN;
import org.opends.sdk.DecodeException;
import org.opends.sdk.schema.Schema;
diff --git a/sdk/src/org/opends/sdk/controls/EntryChangeNotificationControl.java b/sdk/src/org/opends/sdk/controls/EntryChangeNotificationControl.java
index 90b9c02..5bfd59f 100644
--- a/sdk/src/org/opends/sdk/controls/EntryChangeNotificationControl.java
+++ b/sdk/src/org/opends/sdk/controls/EntryChangeNotificationControl.java
@@ -2,16 +2,16 @@
-import static org.opends.messages.ProtocolMessages.ERR_ECN_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_ECN_ILLEGAL_PREVIOUS_DN;
-import static org.opends.messages.ProtocolMessages.ERR_ECN_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ECN_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ECN_ILLEGAL_PREVIOUS_DN;
+import static com.sun.opends.sdk.util.Messages.ERR_ECN_NO_CONTROL_VALUE;
import static org.opends.sdk.asn1.ASN1Constants.UNIVERSAL_INTEGER_TYPE;
import static org.opends.sdk.asn1.ASN1Constants.UNIVERSAL_OCTET_STRING_TYPE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DN;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/controls/GetEffectiveRightsRequestControl.java b/sdk/src/org/opends/sdk/controls/GetEffectiveRightsRequestControl.java
index cbce065..e3b7038 100644
--- a/sdk/src/org/opends/sdk/controls/GetEffectiveRightsRequestControl.java
+++ b/sdk/src/org/opends/sdk/controls/GetEffectiveRightsRequestControl.java
@@ -2,13 +2,13 @@
-import static org.opends.messages.ProtocolMessages.INFO_GETEFFECTIVERIGHTS_DECODE_ERROR;
-import static org.opends.messages.ProtocolMessages.INFO_GETEFFECTIVERIGHTS_INVALID_AUTHZID;
+import static com.sun.opends.sdk.util.Messages.INFO_GETEFFECTIVERIGHTS_DECODE_ERROR;
+import static com.sun.opends.sdk.util.Messages.INFO_GETEFFECTIVERIGHTS_INVALID_AUTHZID;
import java.io.IOException;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DN;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/controls/MatchedValuesControl.java b/sdk/src/org/opends/sdk/controls/MatchedValuesControl.java
index 8162bc0..6c1bbae 100644
--- a/sdk/src/org/opends/sdk/controls/MatchedValuesControl.java
+++ b/sdk/src/org/opends/sdk/controls/MatchedValuesControl.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.ProtocolMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
@@ -37,7 +37,7 @@
import java.util.LinkedList;
import java.util.List;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.AbstractFilterVisitor;
import org.opends.sdk.DecodeException;
import org.opends.sdk.Filter;
diff --git a/sdk/src/org/opends/sdk/controls/PagedResultsControl.java b/sdk/src/org/opends/sdk/controls/PagedResultsControl.java
index fc01e7c..9fc130ec 100644
--- a/sdk/src/org/opends/sdk/controls/PagedResultsControl.java
+++ b/sdk/src/org/opends/sdk/controls/PagedResultsControl.java
@@ -2,14 +2,14 @@
-import static org.opends.messages.ProtocolMessages.ERR_LDAP_PAGED_RESULTS_DECODE_COOKIE;
-import static org.opends.messages.ProtocolMessages.ERR_LDAP_PAGED_RESULTS_DECODE_NULL;
-import static org.opends.messages.ProtocolMessages.ERR_LDAP_PAGED_RESULTS_DECODE_SEQUENCE;
-import static org.opends.messages.ProtocolMessages.ERR_LDAP_PAGED_RESULTS_DECODE_SIZE;
+import static com.sun.opends.sdk.util.Messages.ERR_LDAP_PAGED_RESULTS_DECODE_COOKIE;
+import static com.sun.opends.sdk.util.Messages.ERR_LDAP_PAGED_RESULTS_DECODE_NULL;
+import static com.sun.opends.sdk.util.Messages.ERR_LDAP_PAGED_RESULTS_DECODE_SEQUENCE;
+import static com.sun.opends.sdk.util.Messages.ERR_LDAP_PAGED_RESULTS_DECODE_SIZE;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/PasswordExpiredControl.java b/sdk/src/org/opends/sdk/controls/PasswordExpiredControl.java
index a84c432..756232c 100644
--- a/sdk/src/org/opends/sdk/controls/PasswordExpiredControl.java
+++ b/sdk/src/org/opends/sdk/controls/PasswordExpiredControl.java
@@ -2,9 +2,9 @@
-import static org.opends.messages.ProtocolMessages.ERR_PWEXPIRED_CONTROL_INVALID_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PWEXPIRED_CONTROL_INVALID_VALUE;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/controls/PasswordExpiringControl.java b/sdk/src/org/opends/sdk/controls/PasswordExpiringControl.java
index b5c24bf..d0f3796 100644
--- a/sdk/src/org/opends/sdk/controls/PasswordExpiringControl.java
+++ b/sdk/src/org/opends/sdk/controls/PasswordExpiringControl.java
@@ -2,11 +2,11 @@
-import static org.opends.messages.ProtocolMessages.ERR_PWEXPIRING_CANNOT_DECODE_SECONDS_UNTIL_EXPIRATION;
-import static org.opends.messages.ProtocolMessages.ERR_PWEXPIRING_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PWEXPIRING_CANNOT_DECODE_SECONDS_UNTIL_EXPIRATION;
+import static com.sun.opends.sdk.util.Messages.ERR_PWEXPIRING_NO_CONTROL_VALUE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/controls/PasswordPolicyControl.java b/sdk/src/org/opends/sdk/controls/PasswordPolicyControl.java
index 9671bbd..2fa1ac2 100644
--- a/sdk/src/org/opends/sdk/controls/PasswordPolicyControl.java
+++ b/sdk/src/org/opends/sdk/controls/PasswordPolicyControl.java
@@ -2,13 +2,13 @@
-import static org.opends.messages.ProtocolMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.util.StaticUtils.byteToHex;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/PasswordPolicyErrorType.java b/sdk/src/org/opends/sdk/controls/PasswordPolicyErrorType.java
index 08d3f45..1549897 100644
--- a/sdk/src/org/opends/sdk/controls/PasswordPolicyErrorType.java
+++ b/sdk/src/org/opends/sdk/controls/PasswordPolicyErrorType.java
@@ -2,12 +2,12 @@
-import static org.opends.messages.ProtocolMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.util.Arrays;
import java.util.List;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/controls/PasswordPolicyWarningType.java b/sdk/src/org/opends/sdk/controls/PasswordPolicyWarningType.java
index 880f561..85ebf35 100644
--- a/sdk/src/org/opends/sdk/controls/PasswordPolicyWarningType.java
+++ b/sdk/src/org/opends/sdk/controls/PasswordPolicyWarningType.java
@@ -2,13 +2,13 @@
-import static org.opends.messages.ProtocolMessages.INFO_PWPWARNTYPE_DESCRIPTION_GRACE_LOGINS_REMAINING;
-import static org.opends.messages.ProtocolMessages.INFO_PWPWARNTYPE_DESCRIPTION_TIME_BEFORE_EXPIRATION;
+import static com.sun.opends.sdk.util.Messages.INFO_PWPWARNTYPE_DESCRIPTION_GRACE_LOGINS_REMAINING;
+import static com.sun.opends.sdk.util.Messages.INFO_PWPWARNTYPE_DESCRIPTION_TIME_BEFORE_EXPIRATION;
import java.util.Arrays;
import java.util.List;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/controls/PersistentSearchControl.java b/sdk/src/org/opends/sdk/controls/PersistentSearchControl.java
index d9afee4..b3ce6da 100644
--- a/sdk/src/org/opends/sdk/controls/PersistentSearchControl.java
+++ b/sdk/src/org/opends/sdk/controls/PersistentSearchControl.java
@@ -2,13 +2,13 @@
-import static org.opends.messages.ProtocolMessages.ERR_PSEARCH_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_PSEARCH_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PSEARCH_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PSEARCH_NO_CONTROL_VALUE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/PostReadControl.java b/sdk/src/org/opends/sdk/controls/PostReadControl.java
index c835007..82b8686 100644
--- a/sdk/src/org/opends/sdk/controls/PostReadControl.java
+++ b/sdk/src/org/opends/sdk/controls/PostReadControl.java
@@ -29,17 +29,17 @@
-import static org.opends.messages.ProtocolMessages.ERR_POSTREADREQ_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_POSTREADREQ_NO_CONTROL_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_POSTREADRESP_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_POSTREADRESP_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_POSTREADREQ_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_POSTREADREQ_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_POSTREADRESP_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_POSTREADRESP_NO_CONTROL_VALUE;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/PreReadControl.java b/sdk/src/org/opends/sdk/controls/PreReadControl.java
index 050aaac..fa6c417 100644
--- a/sdk/src/org/opends/sdk/controls/PreReadControl.java
+++ b/sdk/src/org/opends/sdk/controls/PreReadControl.java
@@ -29,17 +29,17 @@
-import static org.opends.messages.ProtocolMessages.ERR_PREREADREQ_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_PREREADREQ_NO_CONTROL_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_PREREADRESP_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_PREREADRESP_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PREREADREQ_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PREREADREQ_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PREREADRESP_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PREREADRESP_NO_CONTROL_VALUE;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/ProxiedAuthV1Control.java b/sdk/src/org/opends/sdk/controls/ProxiedAuthV1Control.java
index 0b51fb1..9ff8cf8 100644
--- a/sdk/src/org/opends/sdk/controls/ProxiedAuthV1Control.java
+++ b/sdk/src/org/opends/sdk/controls/ProxiedAuthV1Control.java
@@ -2,14 +2,14 @@
-import static org.opends.messages.ProtocolMessages.ERR_PROXYAUTH1_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_PROXYAUTH1_CONTROL_NOT_CRITICAL;
-import static org.opends.messages.ProtocolMessages.ERR_PROXYAUTH1_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PROXYAUTH1_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PROXYAUTH1_CONTROL_NOT_CRITICAL;
+import static com.sun.opends.sdk.util.Messages.ERR_PROXYAUTH1_NO_CONTROL_VALUE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DN;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/controls/ProxiedAuthV2Control.java b/sdk/src/org/opends/sdk/controls/ProxiedAuthV2Control.java
index 3a1e2ec..6f48e47 100644
--- a/sdk/src/org/opends/sdk/controls/ProxiedAuthV2Control.java
+++ b/sdk/src/org/opends/sdk/controls/ProxiedAuthV2Control.java
@@ -2,14 +2,14 @@
-import static org.opends.messages.ProtocolMessages.ERR_PROXYAUTH2_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.ERR_PROXYAUTH2_CONTROL_NOT_CRITICAL;
-import static org.opends.messages.ProtocolMessages.ERR_PROXYAUTH2_NO_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PROXYAUTH2_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PROXYAUTH2_CONTROL_NOT_CRITICAL;
+import static com.sun.opends.sdk.util.Messages.ERR_PROXYAUTH2_NO_CONTROL_VALUE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DN;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/controls/ServerSideSortControl.java b/sdk/src/org/opends/sdk/controls/ServerSideSortControl.java
index f62e780..b0e36d3 100644
--- a/sdk/src/org/opends/sdk/controls/ServerSideSortControl.java
+++ b/sdk/src/org/opends/sdk/controls/ServerSideSortControl.java
@@ -2,7 +2,7 @@
-import static org.opends.messages.ProtocolMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
@@ -10,7 +10,7 @@
import java.util.List;
import java.util.StringTokenizer;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/SubtreeDeleteControl.java b/sdk/src/org/opends/sdk/controls/SubtreeDeleteControl.java
index 1777b79..351968b 100644
--- a/sdk/src/org/opends/sdk/controls/SubtreeDeleteControl.java
+++ b/sdk/src/org/opends/sdk/controls/SubtreeDeleteControl.java
@@ -2,9 +2,9 @@
-import static org.opends.messages.ProtocolMessages.ERR_SUBTREE_DELETE_INVALID_CONTROL_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_SUBTREE_DELETE_INVALID_CONTROL_VALUE;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/controls/VLVControl.java b/sdk/src/org/opends/sdk/controls/VLVControl.java
index c04f353..be479be 100644
--- a/sdk/src/org/opends/sdk/controls/VLVControl.java
+++ b/sdk/src/org/opends/sdk/controls/VLVControl.java
@@ -2,15 +2,15 @@
-import static org.opends.messages.ProtocolMessages.INFO_VLVREQ_CONTROL_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.INFO_VLVREQ_CONTROL_NO_VALUE;
-import static org.opends.messages.ProtocolMessages.INFO_VLVRES_CONTROL_CANNOT_DECODE_VALUE;
-import static org.opends.messages.ProtocolMessages.INFO_VLVRES_CONTROL_NO_VALUE;
+import static com.sun.opends.sdk.util.Messages.INFO_VLVREQ_CONTROL_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.INFO_VLVREQ_CONTROL_NO_VALUE;
+import static com.sun.opends.sdk.util.Messages.INFO_VLVRES_CONTROL_CANNOT_DECODE_VALUE;
+import static com.sun.opends.sdk.util.Messages.INFO_VLVRES_CONTROL_NO_VALUE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1;
import org.opends.sdk.asn1.ASN1Reader;
diff --git a/sdk/src/org/opends/sdk/controls/VLVTarget.java b/sdk/src/org/opends/sdk/controls/VLVTarget.java
index 8aef176..dc91d3c 100644
--- a/sdk/src/org/opends/sdk/controls/VLVTarget.java
+++ b/sdk/src/org/opends/sdk/controls/VLVTarget.java
@@ -2,12 +2,12 @@
-import static org.opends.messages.ProtocolMessages.INFO_VLVREQ_CONTROL_INVALID_TARGET_TYPE;
+import static com.sun.opends.sdk.util.Messages.INFO_VLVREQ_CONTROL_INVALID_TARGET_TYPE;
import static org.opends.sdk.util.StaticUtils.byteToHex;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1Reader;
import org.opends.sdk.asn1.ASN1Writer;
diff --git a/sdk/src/org/opends/sdk/extensions/CancelRequest.java b/sdk/src/org/opends/sdk/extensions/CancelRequest.java
index 4e85fe2..0226363 100644
--- a/sdk/src/org/opends/sdk/extensions/CancelRequest.java
+++ b/sdk/src/org/opends/sdk/extensions/CancelRequest.java
@@ -2,13 +2,13 @@
-import static org.opends.messages.ExtensionMessages.ERR_EXTOP_CANCEL_CANNOT_DECODE_REQUEST_VALUE;
-import static org.opends.messages.ExtensionMessages.ERR_EXTOP_CANCEL_NO_REQUEST_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_EXTOP_CANCEL_CANNOT_DECODE_REQUEST_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_EXTOP_CANCEL_NO_REQUEST_VALUE;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.ResultCode;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/extensions/GetConnectionIDRequest.java b/sdk/src/org/opends/sdk/extensions/GetConnectionIDRequest.java
index 308b62a..d0c49f1 100644
--- a/sdk/src/org/opends/sdk/extensions/GetConnectionIDRequest.java
+++ b/sdk/src/org/opends/sdk/extensions/GetConnectionIDRequest.java
@@ -4,7 +4,7 @@
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.ResultCode;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/extensions/GetSymmetricKeyRequest.java b/sdk/src/org/opends/sdk/extensions/GetSymmetricKeyRequest.java
index 8d0c3e9..0abd842 100644
--- a/sdk/src/org/opends/sdk/extensions/GetSymmetricKeyRequest.java
+++ b/sdk/src/org/opends/sdk/extensions/GetSymmetricKeyRequest.java
@@ -2,12 +2,12 @@
-import static org.opends.messages.ExtensionMessages.ERR_GET_SYMMETRIC_KEY_ASN1_DECODE_EXCEPTION;
-import static org.opends.messages.ExtensionMessages.ERR_GET_SYMMETRIC_KEY_NO_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_GET_SYMMETRIC_KEY_ASN1_DECODE_EXCEPTION;
+import static com.sun.opends.sdk.util.Messages.ERR_GET_SYMMETRIC_KEY_NO_VALUE;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.ResultCode;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/extensions/PasswordModifyRequest.java b/sdk/src/org/opends/sdk/extensions/PasswordModifyRequest.java
index fc4dff1..9d0fcd3 100644
--- a/sdk/src/org/opends/sdk/extensions/PasswordModifyRequest.java
+++ b/sdk/src/org/opends/sdk/extensions/PasswordModifyRequest.java
@@ -2,12 +2,12 @@
-import static org.opends.messages.ExtensionMessages.ERR_EXTOP_PASSMOD_CANNOT_DECODE_REQUEST;
+import static com.sun.opends.sdk.util.Messages.ERR_EXTOP_PASSMOD_CANNOT_DECODE_REQUEST;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.ResultCode;
import org.opends.sdk.asn1.ASN1;
diff --git a/sdk/src/org/opends/sdk/extensions/PasswordPolicyStateExtendedOperation.java b/sdk/src/org/opends/sdk/extensions/PasswordPolicyStateExtendedOperation.java
index aefdd21..7d27ee1 100644
--- a/sdk/src/org/opends/sdk/extensions/PasswordPolicyStateExtendedOperation.java
+++ b/sdk/src/org/opends/sdk/extensions/PasswordPolicyStateExtendedOperation.java
@@ -2,9 +2,9 @@
-import static org.opends.messages.ExtensionMessages.ERR_PWPSTATE_EXTOP_DECODE_FAILURE;
-import static org.opends.messages.ExtensionMessages.ERR_PWPSTATE_EXTOP_NO_REQUEST_VALUE;
-import static org.opends.messages.ExtensionMessages.ERR_PWPSTATE_EXTOP_UNKNOWN_OP_TYPE;
+import static com.sun.opends.sdk.util.Messages.ERR_PWPSTATE_EXTOP_DECODE_FAILURE;
+import static com.sun.opends.sdk.util.Messages.ERR_PWPSTATE_EXTOP_NO_REQUEST_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_PWPSTATE_EXTOP_UNKNOWN_OP_TYPE;
import static org.opends.sdk.util.StaticUtils.formatAsGeneralizedTime;
import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
@@ -14,7 +14,7 @@
import java.util.Date;
import java.util.List;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DN;
import org.opends.sdk.DecodeException;
import org.opends.sdk.ResultCode;
diff --git a/sdk/src/org/opends/sdk/ldap/ASN1StreamReader.java b/sdk/src/org/opends/sdk/ldap/ASN1StreamReader.java
index aab8ef0..e953da3 100644
--- a/sdk/src/org/opends/sdk/ldap/ASN1StreamReader.java
+++ b/sdk/src/org/opends/sdk/ldap/ASN1StreamReader.java
@@ -28,17 +28,13 @@
-import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.sdk.ldap.LDAPConstants.ELEMENT_READ_STATE_NEED_ADDITIONAL_LENGTH_BYTES;
-import static org.opends.sdk.ldap.LDAPConstants.ELEMENT_READ_STATE_NEED_FIRST_LENGTH_BYTE;
-import static org.opends.sdk.ldap.LDAPConstants.ELEMENT_READ_STATE_NEED_TYPE;
-import static org.opends.sdk.ldap.LDAPConstants.ELEMENT_READ_STATE_NEED_VALUE_BYTES;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.ldap.LDAPConstants.*;
import java.io.IOException;
import java.nio.BufferUnderflowException;
import java.util.logging.Level;
-import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.asn1.ASN1Reader;
import org.opends.sdk.asn1.AbstractASN1Reader;
@@ -48,6 +44,7 @@
import com.sun.grizzly.streams.StreamReader;
import com.sun.grizzly.utils.PoolableObject;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/ldap/ASN1StreamWriter.java b/sdk/src/org/opends/sdk/ldap/ASN1StreamWriter.java
index 9221029..0ee55f4 100644
--- a/sdk/src/org/opends/sdk/ldap/ASN1StreamWriter.java
+++ b/sdk/src/org/opends/sdk/ldap/ASN1StreamWriter.java
@@ -28,14 +28,12 @@
-import static org.opends.messages.ProtocolMessages.ERR_ASN1_SEQUENCE_WRITE_NOT_STARTED;
-import static org.opends.sdk.asn1.ASN1Constants.BOOLEAN_VALUE_FALSE;
-import static org.opends.sdk.asn1.ASN1Constants.BOOLEAN_VALUE_TRUE;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.asn1.ASN1Constants.*;
import java.io.IOException;
import java.util.logging.Level;
-import org.opends.messages.Message;
import org.opends.sdk.asn1.ASN1Writer;
import org.opends.sdk.asn1.AbstractASN1Writer;
import org.opends.sdk.util.ByteSequence;
@@ -44,6 +42,7 @@
import com.sun.grizzly.streams.StreamWriter;
import com.sun.grizzly.utils.PoolableObject;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/ldap/LDAPDecoder.java b/sdk/src/org/opends/sdk/ldap/LDAPDecoder.java
index 3b658b3..9e757a0 100644
--- a/sdk/src/org/opends/sdk/ldap/LDAPDecoder.java
+++ b/sdk/src/org/opends/sdk/ldap/LDAPDecoder.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.ProtocolMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.asn1.ASN1Constants.*;
import static org.opends.sdk.ldap.LDAPConstants.*;
diff --git a/sdk/src/org/opends/sdk/ldap/SASLStreamWriter.java b/sdk/src/org/opends/sdk/ldap/SASLStreamWriter.java
index 22a74a3..4178d0c 100644
--- a/sdk/src/org/opends/sdk/ldap/SASLStreamWriter.java
+++ b/sdk/src/org/opends/sdk/ldap/SASLStreamWriter.java
@@ -42,6 +42,7 @@
/**
* SASL stream writer.
*/
+@SuppressWarnings("unchecked")
final class SASLStreamWriter extends StreamWriterDecorator
{
private final SASLFilter saslFilter;
diff --git a/sdk/src/org/opends/sdk/ldap/UnexpectedRequestException.java b/sdk/src/org/opends/sdk/ldap/UnexpectedRequestException.java
index d854fd4..094cf02 100644
--- a/sdk/src/org/opends/sdk/ldap/UnexpectedRequestException.java
+++ b/sdk/src/org/opends/sdk/ldap/UnexpectedRequestException.java
@@ -31,7 +31,7 @@
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.requests.Request;
diff --git a/sdk/src/org/opends/sdk/ldap/UnexpectedResponseException.java b/sdk/src/org/opends/sdk/ldap/UnexpectedResponseException.java
index 1f038dd..37f4041 100644
--- a/sdk/src/org/opends/sdk/ldap/UnexpectedResponseException.java
+++ b/sdk/src/org/opends/sdk/ldap/UnexpectedResponseException.java
@@ -31,7 +31,7 @@
import java.io.IOException;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.responses.Response;
diff --git a/sdk/src/org/opends/sdk/ldap/UnsupportedMessageException.java b/sdk/src/org/opends/sdk/ldap/UnsupportedMessageException.java
index d2ae7d5..5343a81 100644
--- a/sdk/src/org/opends/sdk/ldap/UnsupportedMessageException.java
+++ b/sdk/src/org/opends/sdk/ldap/UnsupportedMessageException.java
@@ -50,7 +50,7 @@
public UnsupportedMessageException(int id, byte tag,
ByteString content)
{
- super(org.opends.messages.Message.raw(
+ super(com.sun.opends.sdk.util.Message.raw(
"Unsupported LDAP message: id=%d, tag=%d, content=%s", id, tag,
content).toString());
this.id = id;
diff --git a/sdk/src/org/opends/sdk/ldif/AbstractLDIFReader.java b/sdk/src/org/opends/sdk/ldif/AbstractLDIFReader.java
index 54760c5..baf3255 100644
--- a/sdk/src/org/opends/sdk/ldif/AbstractLDIFReader.java
+++ b/sdk/src/org/opends/sdk/ldif/AbstractLDIFReader.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.UtilityMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.util.StaticUtils.toLowerCase;
import java.io.BufferedReader;
@@ -41,8 +41,8 @@
import java.util.LinkedList;
import java.util.List;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.*;
import org.opends.sdk.util.*;
diff --git a/sdk/src/org/opends/sdk/ldif/LDIFChangeRecordReader.java b/sdk/src/org/opends/sdk/ldif/LDIFChangeRecordReader.java
index c9cc3a8..20a693b 100644
--- a/sdk/src/org/opends/sdk/ldif/LDIFChangeRecordReader.java
+++ b/sdk/src/org/opends/sdk/ldif/LDIFChangeRecordReader.java
@@ -29,8 +29,8 @@
-import static org.opends.messages.UtilityMessages.*;
-import static org.opends.sdk.util.StaticUtils.toLowerCase;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.util.StaticUtils.*;
import java.io.IOException;
import java.io.InputStream;
@@ -38,7 +38,6 @@
import java.util.Arrays;
import java.util.List;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.requests.ModifyDNRequest;
import org.opends.sdk.requests.ModifyRequest;
@@ -48,6 +47,8 @@
import org.opends.sdk.util.LocalizedIllegalArgumentException;
import org.opends.sdk.util.Validator;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/ldif/LDIFEntryReader.java b/sdk/src/org/opends/sdk/ldif/LDIFEntryReader.java
index 6c7a475..dbdd7ff 100644
--- a/sdk/src/org/opends/sdk/ldif/LDIFEntryReader.java
+++ b/sdk/src/org/opends/sdk/ldif/LDIFEntryReader.java
@@ -29,21 +29,20 @@
-import static org.opends.messages.UtilityMessages.WARN_READ_LDIF_RECORD_MULTIPLE_CHANGE_RECORDS_FOUND;
-import static org.opends.messages.UtilityMessages.WARN_READ_LDIF_RECORD_NO_CHANGE_RECORD_FOUND;
-import static org.opends.messages.UtilityMessages.WARN_READ_LDIF_RECORD_UNEXPECTED_IO_ERROR;
+import static com.sun.opends.sdk.util.Messages.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
import org.opends.sdk.util.Validator;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/requests/Requests.java b/sdk/src/org/opends/sdk/requests/Requests.java
index 69c1dcc..b6185b8 100644
--- a/sdk/src/org/opends/sdk/requests/Requests.java
+++ b/sdk/src/org/opends/sdk/requests/Requests.java
@@ -29,9 +29,8 @@
-import static org.opends.messages.UtilityMessages.WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE;
+import static com.sun.opends.sdk.util.Messages.*;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.ldif.ChangeRecord;
import org.opends.sdk.ldif.LDIFChangeRecordReader;
@@ -39,6 +38,8 @@
import org.opends.sdk.util.LocalizedIllegalArgumentException;
import org.opends.sdk.util.Validator;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/sasl/AbstractSASLContext.java b/sdk/src/org/opends/sdk/sasl/AbstractSASLContext.java
index 4b97a18..1226691 100644
--- a/sdk/src/org/opends/sdk/sasl/AbstractSASLContext.java
+++ b/sdk/src/org/opends/sdk/sasl/AbstractSASLContext.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.ExtensionMessages.INFO_SASL_UNSUPPORTED_CALLBACK;
+import static com.sun.opends.sdk.util.Messages.*;
import java.io.IOException;
@@ -101,7 +101,7 @@
}
else
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message
@@ -141,7 +141,7 @@
protected void handle(AuthorizeCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -152,7 +152,7 @@
protected void handle(ChoiceCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -163,7 +163,7 @@
protected void handle(ConfirmationCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -174,7 +174,7 @@
protected void handle(LanguageCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -185,7 +185,7 @@
protected void handle(NameCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -196,7 +196,7 @@
protected void handle(PasswordCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -207,7 +207,7 @@
protected void handle(RealmCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -218,7 +218,7 @@
protected void handle(RealmChoiceCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -229,7 +229,7 @@
protected void handle(TextInputCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
@@ -240,7 +240,7 @@
protected void handle(TextOutputCallback callback)
throws UnsupportedCallbackException
{
- org.opends.messages.Message message =
+ com.sun.opends.sdk.util.Message message =
INFO_SASL_UNSUPPORTED_CALLBACK.get(getSASLBindRequest()
.getSASLMechanism(), String.valueOf(callback));
throw new UnsupportedCallbackException(callback, message.toString());
diff --git a/sdk/src/org/opends/sdk/sasl/GSSAPISASLBindRequest.java b/sdk/src/org/opends/sdk/sasl/GSSAPISASLBindRequest.java
index 7eac5d5..556adb2 100644
--- a/sdk/src/org/opends/sdk/sasl/GSSAPISASLBindRequest.java
+++ b/sdk/src/org/opends/sdk/sasl/GSSAPISASLBindRequest.java
@@ -29,9 +29,8 @@
-import static org.opends.messages.ExtensionMessages.ERR_SASL_CONTEXT_CREATE_ERROR;
-import static org.opends.messages.ExtensionMessages.ERR_SASL_PROTOCOL_ERROR;
-import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.util.StaticUtils.*;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -44,11 +43,11 @@
import javax.security.sasl.SaslClient;
import javax.security.sasl.SaslException;
-import org.opends.messages.Message;
import org.opends.sdk.DN;
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.Validator;
+import com.sun.opends.sdk.util.Message;
import com.sun.security.auth.callback.TextCallbackHandler;
import com.sun.security.auth.module.Krb5LoginModule;
diff --git a/sdk/src/org/opends/sdk/schema/AbstractSubstringMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/AbstractSubstringMatchingRuleImpl.java
index 7c0c1b0..23f4257 100644
--- a/sdk/src/org/opends/sdk/schema/AbstractSubstringMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/AbstractSubstringMatchingRuleImpl.java
@@ -28,10 +28,11 @@
+import static com.sun.opends.sdk.util.Messages.*;
+
import java.util.LinkedList;
import java.util.List;
-import org.opends.messages.SchemaMessages;
import org.opends.sdk.Assertion;
import org.opends.sdk.ConditionResult;
import org.opends.sdk.DecodeException;
@@ -172,7 +173,7 @@
if (value.length() == 0)
{
throw DecodeException.error(
- SchemaMessages.WARN_ATTR_SYNTAX_SUBSTRING_EMPTY.get());
+ WARN_ATTR_SYNTAX_SUBSTRING_EMPTY.get());
}
ByteSequence initialString = null;
@@ -199,7 +200,7 @@
if (reader.remaining() == 0)
{
throw DecodeException.error(
- SchemaMessages.WARN_ATTR_SYNTAX_SUBSTRING_NO_WILDCARDS
+ WARN_ATTR_SYNTAX_SUBSTRING_NO_WILDCARDS
.get(value.toString()));
}
while (true)
@@ -211,7 +212,7 @@
if (bytes.length() == 0)
{
throw DecodeException.error(
- SchemaMessages.WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS
+ WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS
.get(value.toString(), reader.pos()));
}
if (anyStrings == null)
diff --git a/sdk/src/org/opends/sdk/schema/AttributeType.java b/sdk/src/org/opends/sdk/schema/AttributeType.java
index f338af2..c124e43 100644
--- a/sdk/src/org/opends/sdk/schema/AttributeType.java
+++ b/sdk/src/org/opends/sdk/schema/AttributeType.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.SCHEMA_PROPERTY_APPROX_RULE;
import java.util.Collections;
@@ -37,7 +37,7 @@
import java.util.List;
import java.util.Map;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.StaticUtils;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/AttributeTypeSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/AttributeTypeSyntaxImpl.java
index 66967d8..a90500b 100644
--- a/sdk/src/org/opends/sdk/schema/AttributeTypeSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/AttributeTypeSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE;
import static org.opends.sdk.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_ATTRIBUTE_TYPE_NAME;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/AuthPasswordSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/AuthPasswordSyntaxImpl.java
index 6c98bfa..dfd961b 100644
--- a/sdk/src/org/opends/sdk/schema/AuthPasswordSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/AuthPasswordSyntaxImpl.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EMR_AUTH_PASSWORD_EXACT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_AUTH_PASSWORD_NAME;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/BinarySyntaxImpl.java b/sdk/src/org/opends/sdk/schema/BinarySyntaxImpl.java
index db1e9d3..c0aa2a9 100644
--- a/sdk/src/org/opends/sdk/schema/BinarySyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/BinarySyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_BINARY_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleImpl.java
index 36ce4b1..9dd4994 100644
--- a/sdk/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleImpl.java
@@ -28,11 +28,11 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/BitStringSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/BitStringSyntaxImpl.java
index 92ff2e7..777ae2e 100644
--- a/sdk/src/org/opends/sdk/schema/BitStringSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/BitStringSyntaxImpl.java
@@ -29,13 +29,13 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_BIT_STRING_INVALID_BIT;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_BIT_STRING_NOT_QUOTED;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_BIT_STRING_TOO_SHORT;
import static org.opends.sdk.schema.SchemaConstants.EMR_BIT_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_BIT_STRING_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleImpl.java
index 0c52bcd..31b328e 100644
--- a/sdk/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleImpl.java
@@ -28,7 +28,7 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/BooleanSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/BooleanSyntaxImpl.java
index 5d9a3cc..81120db 100644
--- a/sdk/src/org/opends/sdk/schema/BooleanSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/BooleanSyntaxImpl.java
@@ -29,11 +29,11 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_ILLEGAL_BOOLEAN;
import static org.opends.sdk.schema.SchemaConstants.EMR_BOOLEAN_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_BOOLEAN_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleImpl.java
index 0df9ee9..ccdaddf 100644
--- a/sdk/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleImpl.java
@@ -28,12 +28,12 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
import static org.opends.sdk.util.StringPrepProfile.NO_CASE_FOLD;
import static org.opends.sdk.util.StringPrepProfile.TRIM;
import static org.opends.sdk.util.StringPrepProfile.prepareUnicode;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleImpl.java
index a70abe7..d70bf5b 100644
--- a/sdk/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleImpl.java
@@ -28,12 +28,12 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
import static org.opends.sdk.util.StringPrepProfile.NO_CASE_FOLD;
import static org.opends.sdk.util.StringPrepProfile.TRIM;
import static org.opends.sdk.util.StringPrepProfile.prepareUnicode;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleImpl.java
index c27caf9..b0c094c 100644
--- a/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleImpl.java
@@ -28,12 +28,12 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
import static org.opends.sdk.util.StringPrepProfile.CASE_FOLD;
import static org.opends.sdk.util.StringPrepProfile.TRIM;
import static org.opends.sdk.util.StringPrepProfile.prepareUnicode;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleImpl.java
index b205035..b278a85 100644
--- a/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleImpl.java
@@ -28,12 +28,12 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
import static org.opends.sdk.util.StringPrepProfile.CASE_FOLD;
import static org.opends.sdk.util.StringPrepProfile.TRIM;
import static org.opends.sdk.util.StringPrepProfile.prepareUnicode;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/CertificateListSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/CertificateListSyntaxImpl.java
index 6041dad..98ecb08 100644
--- a/sdk/src/org/opends/sdk/schema/CertificateListSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CertificateListSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_CERTLIST_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/CertificatePairSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/CertificatePairSyntaxImpl.java
index 6c4ebdd..1ff653f 100644
--- a/sdk/src/org/opends/sdk/schema/CertificatePairSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CertificatePairSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_CERTPAIR_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/CertificateSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/CertificateSyntaxImpl.java
index 3d34b64..faddbf0 100644
--- a/sdk/src/org/opends/sdk/schema/CertificateSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CertificateSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_CERTIFICATE_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/ConflictingSchemaElementException.java b/sdk/src/org/opends/sdk/schema/ConflictingSchemaElementException.java
index 857cfda..a9aa81e 100644
--- a/sdk/src/org/opends/sdk/schema/ConflictingSchemaElementException.java
+++ b/sdk/src/org/opends/sdk/schema/ConflictingSchemaElementException.java
@@ -29,7 +29,7 @@
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
diff --git a/sdk/src/org/opends/sdk/schema/CoreSchemaImpl.java b/sdk/src/org/opends/sdk/schema/CoreSchemaImpl.java
index c48b5c2..5b19141 100644
--- a/sdk/src/org/opends/sdk/schema/CoreSchemaImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CoreSchemaImpl.java
@@ -32,7 +32,7 @@
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/schema/CountryStringSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/CountryStringSyntaxImpl.java
index b3cbe22..72efb88 100644
--- a/sdk/src/org/opends/sdk/schema/CountryStringSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/CountryStringSyntaxImpl.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_COUNTRY_STRING_INVALID_LENGTH;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_COUNTRY_STRING_NOT_PRINTABLE;
import static org.opends.sdk.schema.SchemaConstants.*;
import static org.opends.sdk.util.StaticUtils.toLowerCase;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/DITContentRule.java b/sdk/src/org/opends/sdk/schema/DITContentRule.java
index db5309b..d53bc94 100644
--- a/sdk/src/org/opends/sdk/schema/DITContentRule.java
+++ b/sdk/src/org/opends/sdk/schema/DITContentRule.java
@@ -29,11 +29,11 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/DITContentRuleSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/DITContentRuleSyntaxImpl.java
index db62d3e..a60a327 100644
--- a/sdk/src/org/opends/sdk/schema/DITContentRuleSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/DITContentRuleSyntaxImpl.java
@@ -29,14 +29,14 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
import static org.opends.sdk.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_DIT_CONTENT_RULE_NAME;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/DITStructureRule.java b/sdk/src/org/opends/sdk/schema/DITStructureRule.java
index 851c3f3..6996ae9 100644
--- a/sdk/src/org/opends/sdk/schema/DITStructureRule.java
+++ b/sdk/src/org/opends/sdk/schema/DITStructureRule.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/DITStructureRuleSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/DITStructureRuleSyntaxImpl.java
index 699fb59..d0e26fd 100644
--- a/sdk/src/org/opends/sdk/schema/DITStructureRuleSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/DITStructureRuleSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
import static org.opends.sdk.schema.SchemaConstants.EMR_INTEGER_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_DIT_STRUCTURE_RULE_NAME;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/DeliveryMethodSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/DeliveryMethodSyntaxImpl.java
index 1f65218..4ee0dab 100644
--- a/sdk/src/org/opends/sdk/schema/DeliveryMethodSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/DeliveryMethodSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DELIVERY_METHOD_INVALID_ELEMENT;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DELIVERY_METHOD_NO_ELEMENTS;
import static org.opends.sdk.schema.SchemaConstants.*;
import static org.opends.sdk.util.StaticUtils.toLowerCase;
import java.util.HashSet;
import java.util.StringTokenizer;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/DirectoryStringFirstComponentEqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/DirectoryStringFirstComponentEqualityMatchingRuleImpl.java
index 1814375..e2595f5 100644
--- a/sdk/src/org/opends/sdk/schema/DirectoryStringFirstComponentEqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/DirectoryStringFirstComponentEqualityMatchingRuleImpl.java
@@ -28,13 +28,13 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_EXPECTED_OPEN_PARENTHESIS;
import static org.opends.sdk.util.StringPrepProfile.CASE_FOLD;
import static org.opends.sdk.util.StringPrepProfile.TRIM;
import static org.opends.sdk.util.StringPrepProfile.prepareUnicode;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.Assertion;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/DirectoryStringSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/DirectoryStringSyntaxImpl.java
index f53b391..59dfb82 100644
--- a/sdk/src/org/opends/sdk/schema/DirectoryStringSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/DirectoryStringSyntaxImpl.java
@@ -29,10 +29,10 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_DIRECTORYSTRING_INVALID_ZEROLENGTH_VALUE;
import static org.opends.sdk.schema.SchemaConstants.*;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/DistinguishedNameSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/DistinguishedNameSyntaxImpl.java
index f068290..46b75f9 100644
--- a/sdk/src/org/opends/sdk/schema/DistinguishedNameSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/DistinguishedNameSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_DN_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DN;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
diff --git a/sdk/src/org/opends/sdk/schema/EnhancedGuideSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/EnhancedGuideSyntaxImpl.java
index 4790bd1..f8de2fb 100644
--- a/sdk/src/org/opends/sdk/schema/EnhancedGuideSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/EnhancedGuideSyntaxImpl.java
@@ -29,13 +29,13 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_ENHANCED_GUIDE_NAME;
import static org.opends.sdk.util.StaticUtils.toLowerCase;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.SubstringReader;
diff --git a/sdk/src/org/opends/sdk/schema/EnumOrderingMatchingRule.java b/sdk/src/org/opends/sdk/schema/EnumOrderingMatchingRule.java
index a82cd12..4b2f6ef 100644
--- a/sdk/src/org/opends/sdk/schema/EnumOrderingMatchingRule.java
+++ b/sdk/src/org/opends/sdk/schema/EnumOrderingMatchingRule.java
@@ -28,7 +28,7 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_LDAPSYNTAX_ENUM_INVALID_VALUE;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_LDAPSYNTAX_ENUM_INVALID_VALUE;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/EnumSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/EnumSyntaxImpl.java
index 4687fa5..5677039 100644
--- a/sdk/src/org/opends/sdk/schema/EnumSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/EnumSyntaxImpl.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_LDAPSYNTAX_ENUM_INVALID_VALUE;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_LDAPSYNTAX_ENUM_INVALID_VALUE;
import static org.opends.sdk.schema.SchemaConstants.AMR_DOUBLE_METAPHONE_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_OID_GENERIC_ENUM;
@@ -42,8 +42,8 @@
import java.util.Collections;
import java.util.List;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/FacsimileNumberSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/FacsimileNumberSyntaxImpl.java
index 5112a04..ab18a27 100644
--- a/sdk/src/org/opends/sdk/schema/FacsimileNumberSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/FacsimileNumberSyntaxImpl.java
@@ -29,10 +29,10 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_FAXNUMBER_EMPTY;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_FAXNUMBER_END_WITH_DOLLAR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_FAXNUMBER_ILLEGAL_PARAMETER;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_FAXNUMBER_NOT_PRINTABLE;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
@@ -41,7 +41,7 @@
import java.util.HashSet;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/FaxSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/FaxSyntaxImpl.java
index eff93f0..f7e594e 100644
--- a/sdk/src/org/opends/sdk/schema/FaxSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/FaxSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_FAX_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/GeneralizedTimeSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/GeneralizedTimeSyntaxImpl.java
index 9df5dde..00a3add 100644
--- a/sdk/src/org/opends/sdk/schema/GeneralizedTimeSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/GeneralizedTimeSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/GuideSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/GuideSyntaxImpl.java
index 497e4a2..50d80b3 100644
--- a/sdk/src/org/opends/sdk/schema/GuideSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/GuideSyntaxImpl.java
@@ -29,13 +29,13 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_GUIDE_NAME;
import static org.opends.sdk.util.StaticUtils.toLowerCase;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.SubstringReader;
diff --git a/sdk/src/org/opends/sdk/schema/IA5StringSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/IA5StringSyntaxImpl.java
index e0086f0..b103c25 100644
--- a/sdk/src/org/opends/sdk/schema/IA5StringSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/IA5StringSyntaxImpl.java
@@ -29,11 +29,11 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER;
import static org.opends.sdk.schema.SchemaConstants.*;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/IntegerEqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/IntegerEqualityMatchingRuleImpl.java
index f408ddc..e6770da 100644
--- a/sdk/src/org/opends/sdk/schema/IntegerEqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/IntegerEqualityMatchingRuleImpl.java
@@ -28,9 +28,9 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_ILLEGAL_INTEGER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_ILLEGAL_INTEGER;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/IntegerFirstComponentEqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/IntegerFirstComponentEqualityMatchingRuleImpl.java
index de646b0..0c9c357 100644
--- a/sdk/src/org/opends/sdk/schema/IntegerFirstComponentEqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/IntegerFirstComponentEqualityMatchingRuleImpl.java
@@ -28,11 +28,11 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_EXPECTED_OPEN_PARENTHESIS;
-import static org.opends.messages.SchemaMessages.ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.Assertion;
import org.opends.sdk.ConditionResult;
import org.opends.sdk.DecodeException;
diff --git a/sdk/src/org/opends/sdk/schema/IntegerOrderingMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/IntegerOrderingMatchingRuleImpl.java
index 9f630f0..1d16369 100644
--- a/sdk/src/org/opends/sdk/schema/IntegerOrderingMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/IntegerOrderingMatchingRuleImpl.java
@@ -28,9 +28,9 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_ILLEGAL_INTEGER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_ILLEGAL_INTEGER;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/IntegerSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/IntegerSyntaxImpl.java
index e95441d..5ecd7a1 100644
--- a/sdk/src/org/opends/sdk/schema/IntegerSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/IntegerSyntaxImpl.java
@@ -29,16 +29,16 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER;
import static org.opends.sdk.schema.SchemaConstants.EMR_INTEGER_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_INTEGER_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_EXACT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_INTEGER_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/JPEGSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/JPEGSyntaxImpl.java
index 3b07283..0454deb 100644
--- a/sdk/src/org/opends/sdk/schema/JPEGSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/JPEGSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_JPEG_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/LDAPSyntaxDescriptionSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/LDAPSyntaxDescriptionSyntaxImpl.java
index bfe652c..5971f1d 100644
--- a/sdk/src/org/opends/sdk/schema/LDAPSyntaxDescriptionSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/LDAPSyntaxDescriptionSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_LDAP_SYNTAX_NAME;
import java.util.*;
import java.util.regex.Pattern;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/MatchingRule.java b/sdk/src/org/opends/sdk/schema/MatchingRule.java
index 1cedd1c..e97ffe6 100644
--- a/sdk/src/org/opends/sdk/schema/MatchingRule.java
+++ b/sdk/src/org/opends/sdk/schema/MatchingRule.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX;
-import static org.opends.messages.SchemaMessages.WARN_MATCHING_RULE_NOT_IMPLEMENTED;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX;
+import static com.sun.opends.sdk.util.Messages.WARN_MATCHING_RULE_NOT_IMPLEMENTED;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.Assertion;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/MatchingRuleSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/MatchingRuleSyntaxImpl.java
index 9657d53..fb551b6 100644
--- a/sdk/src/org/opends/sdk/schema/MatchingRuleSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/MatchingRuleSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MR_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MR_NO_SYNTAX;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MR_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MR_NO_SYNTAX;
import static org.opends.sdk.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_MATCHING_RULE_NAME;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/MatchingRuleUse.java b/sdk/src/org/opends/sdk/schema/MatchingRuleUse.java
index 11a6a62..cf3b078 100644
--- a/sdk/src/org/opends/sdk/schema/MatchingRuleUse.java
+++ b/sdk/src/org/opends/sdk/schema/MatchingRuleUse.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/MatchingRuleUseSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/MatchingRuleUseSyntaxImpl.java
index 086055a..e9f4bdf 100644
--- a/sdk/src/org/opends/sdk/schema/MatchingRuleUseSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/MatchingRuleUseSyntaxImpl.java
@@ -29,17 +29,17 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_MRUSE_NO_ATTR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_MRUSE_NO_ATTR;
import static org.opends.sdk.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_MATCHING_RULE_USE_NAME;
import java.util.Set;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/NameAndOptionalUIDSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/NameAndOptionalUIDSyntaxImpl.java
index acc8ad7..be1b686 100644
--- a/sdk/src/org/opends/sdk/schema/NameAndOptionalUIDSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/NameAndOptionalUIDSyntaxImpl.java
@@ -29,13 +29,13 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_NAMEANDUID_ILLEGAL_BINARY_DIGIT;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_NAMEANDUID_INVALID_DN;
import static org.opends.sdk.schema.SchemaConstants.EMR_UNIQUE_MEMBER_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_NAME_AND_OPTIONAL_UID_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DN;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
diff --git a/sdk/src/org/opends/sdk/schema/NameForm.java b/sdk/src/org/opends/sdk/schema/NameForm.java
index eb0b398..dbe1bbd 100644
--- a/sdk/src/org/opends/sdk/schema/NameForm.java
+++ b/sdk/src/org/opends/sdk/schema/NameForm.java
@@ -29,14 +29,14 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/NameFormSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/NameFormSyntaxImpl.java
index e03bbc0..9745316 100644
--- a/sdk/src/org/opends/sdk/schema/NameFormSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/NameFormSyntaxImpl.java
@@ -29,14 +29,14 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_NAME_FORM_NAME;
import java.util.Set;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/NumericStringSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/NumericStringSyntaxImpl.java
index 960ead7..5726466 100644
--- a/sdk/src/org/opends/sdk/schema/NumericStringSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/NumericStringSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_NUMERIC_STRING_ILLEGAL_CHAR;
import static org.opends.sdk.schema.SchemaConstants.EMR_NUMERIC_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_NUMERIC_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_EXACT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_NUMERIC_STRING_NAME;
import static org.opends.sdk.util.StaticUtils.isDigit;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/OIDSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/OIDSyntaxImpl.java
index 3ca71ae..55f1ef6 100644
--- a/sdk/src/org/opends/sdk/schema/OIDSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/OIDSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_OID_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.SubstringReader;
diff --git a/sdk/src/org/opends/sdk/schema/ObjectClass.java b/sdk/src/org/opends/sdk/schema/ObjectClass.java
index 81844ee..de50379 100644
--- a/sdk/src/org/opends/sdk/schema/ObjectClass.java
+++ b/sdk/src/org/opends/sdk/schema/ObjectClass.java
@@ -29,14 +29,14 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EXTENSIBLE_OBJECT_OBJECTCLASS_NAME;
import static org.opends.sdk.schema.SchemaConstants.EXTENSIBLE_OBJECT_OBJECTCLASS_OID;
import static org.opends.sdk.schema.SchemaConstants.TOP_OBJECTCLASS_NAME;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/ObjectClassSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/ObjectClassSyntaxImpl.java
index 23a294a..81e551e 100644
--- a/sdk/src/org/opends/sdk/schema/ObjectClassSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/ObjectClassSyntaxImpl.java
@@ -29,14 +29,14 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS;
import static org.opends.sdk.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_OBJECTCLASS_NAME;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/ObjectIdentifierFirstComponentEqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/ObjectIdentifierFirstComponentEqualityMatchingRuleImpl.java
index a743223..5fffa6f 100644
--- a/sdk/src/org/opends/sdk/schema/ObjectIdentifierFirstComponentEqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/ObjectIdentifierFirstComponentEqualityMatchingRuleImpl.java
@@ -28,10 +28,10 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_EXPECTED_OPEN_PARENTHESIS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_EXPECTED_OPEN_PARENTHESIS;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.Assertion;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/OctetStringSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/OctetStringSyntaxImpl.java
index ccc4977..f04baec 100644
--- a/sdk/src/org/opends/sdk/schema/OctetStringSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/OctetStringSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_OCTET_STRING_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/OtherMailboxSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/OtherMailboxSyntaxImpl.java
index 3956aea..f21559b 100644
--- a/sdk/src/org/opends/sdk/schema/OtherMailboxSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/OtherMailboxSyntaxImpl.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_LIST_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_LIST_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_OTHER_MAILBOX_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/PostalAddressSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/PostalAddressSyntaxImpl.java
index bb90087..4a24587 100644
--- a/sdk/src/org/opends/sdk/schema/PostalAddressSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/PostalAddressSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_POSTAL_ADDRESS_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/PresentationAddressSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/PresentationAddressSyntaxImpl.java
index ad4531d..de7e862 100644
--- a/sdk/src/org/opends/sdk/schema/PresentationAddressSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/PresentationAddressSyntaxImpl.java
@@ -31,7 +31,7 @@
import static org.opends.sdk.schema.SchemaConstants.*;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/PrintableStringSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/PrintableStringSyntaxImpl.java
index 06b2c20..941ec23 100644
--- a/sdk/src/org/opends/sdk/schema/PrintableStringSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/PrintableStringSyntaxImpl.java
@@ -29,11 +29,11 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_PRINTABLE_STRING_EMPTY_VALUE;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_PRINTABLE_STRING_ILLEGAL_CHARACTER;
import static org.opends.sdk.schema.SchemaConstants.*;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/ProtocolInformationSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/ProtocolInformationSyntaxImpl.java
index fb9c8de..2ccef37 100644
--- a/sdk/src/org/opends/sdk/schema/ProtocolInformationSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/ProtocolInformationSyntaxImpl.java
@@ -31,7 +31,7 @@
import static org.opends.sdk.schema.SchemaConstants.*;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/RegexSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/RegexSyntaxImpl.java
index 45ff406..0c6ff8b 100644
--- a/sdk/src/org/opends/sdk/schema/RegexSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/RegexSyntaxImpl.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_LDAPSYNTAX_REGEX_INVALID_VALUE;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_LDAPSYNTAX_REGEX_INVALID_VALUE;
import static org.opends.sdk.schema.SchemaConstants.AMR_DOUBLE_METAPHONE_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
@@ -37,8 +37,8 @@
import java.util.regex.Pattern;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/Schema.java b/sdk/src/org/opends/sdk/schema/Schema.java
index 227c522..5c1a30f 100644
--- a/sdk/src/org/opends/sdk/schema/Schema.java
+++ b/sdk/src/org/opends/sdk/schema/Schema.java
@@ -28,11 +28,11 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.*;
import org.opends.sdk.responses.SearchResultEntry;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/SchemaBuilder.java b/sdk/src/org/opends/sdk/schema/SchemaBuilder.java
index f8f1c9e..bfe949c 100644
--- a/sdk/src/org/opends/sdk/schema/SchemaBuilder.java
+++ b/sdk/src/org/opends/sdk/schema/SchemaBuilder.java
@@ -29,23 +29,20 @@
-import static org.opends.messages.CoreMessages.*;
-import static org.opends.messages.SchemaMessages.*;
-import static org.opends.sdk.schema.SchemaConstants.EXTENSIBLE_OBJECT_OBJECTCLASS_OID;
-import static org.opends.sdk.schema.SchemaConstants.OMR_GENERIC_ENUM_NAME;
-import static org.opends.sdk.schema.SchemaConstants.SCHEMA_PROPERTY_APPROX_RULE;
-import static org.opends.sdk.schema.SchemaConstants.TOP_OBJECTCLASS_NAME;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.schema.SchemaConstants.*;
import java.util.*;
import java.util.regex.Pattern;
-import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
import org.opends.sdk.util.StaticUtils;
import org.opends.sdk.util.SubstringReader;
import org.opends.sdk.util.Validator;
+import com.sun.opends.sdk.util.Message;
+
/**
diff --git a/sdk/src/org/opends/sdk/schema/SchemaElement.java b/sdk/src/org/opends/sdk/schema/SchemaElement.java
index 59cdab7..b7ce0bf 100644
--- a/sdk/src/org/opends/sdk/schema/SchemaElement.java
+++ b/sdk/src/org/opends/sdk/schema/SchemaElement.java
@@ -32,7 +32,7 @@
import java.util.List;
import java.util.Map;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/SchemaException.java b/sdk/src/org/opends/sdk/schema/SchemaException.java
index 4bd4ef1..6058ebb 100644
--- a/sdk/src/org/opends/sdk/schema/SchemaException.java
+++ b/sdk/src/org/opends/sdk/schema/SchemaException.java
@@ -29,7 +29,7 @@
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.LocalizableException;
diff --git a/sdk/src/org/opends/sdk/schema/SchemaNotFoundException.java b/sdk/src/org/opends/sdk/schema/SchemaNotFoundException.java
index b4ceb1e..d85b79b 100644
--- a/sdk/src/org/opends/sdk/schema/SchemaNotFoundException.java
+++ b/sdk/src/org/opends/sdk/schema/SchemaNotFoundException.java
@@ -29,7 +29,7 @@
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.LocalizableException;
diff --git a/sdk/src/org/opends/sdk/schema/SchemaUtils.java b/sdk/src/org/opends/sdk/schema/SchemaUtils.java
index 7037b31..2ff2602 100644
--- a/sdk/src/org/opends/sdk/schema/SchemaUtils.java
+++ b/sdk/src/org/opends/sdk/schema/SchemaUtils.java
@@ -28,13 +28,13 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.util.StaticUtils.isAlpha;
import static org.opends.sdk.util.StaticUtils.isDigit;
import java.util.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.SubstringReader;
diff --git a/sdk/src/org/opends/sdk/schema/SubstringAssertionSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/SubstringAssertionSyntaxImpl.java
index 0f9e446..5f901be 100644
--- a/sdk/src/org/opends/sdk/schema/SubstringAssertionSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/SubstringAssertionSyntaxImpl.java
@@ -34,8 +34,8 @@
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_SUBSTRING_ASSERTION_NAME;
-import org.opends.messages.MessageBuilder;
-import org.opends.messages.SchemaMessages;
+import com.sun.opends.sdk.util.MessageBuilder;
+import com.sun.opends.sdk.util.Messages;
import org.opends.sdk.util.ByteSequence;
@@ -120,7 +120,7 @@
if (valueString.charAt(0) == '*')
{
invalidReason
- .append(SchemaMessages.WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD
+ .append(Messages.WARN_ATTR_SYNTAX_SUBSTRING_ONLY_WILDCARD
.get());
return false;
@@ -138,7 +138,7 @@
&& valueString.charAt(i - 1) == '*')
{
invalidReason
- .append(SchemaMessages.WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS
+ .append(Messages.WARN_ATTR_SYNTAX_SUBSTRING_CONSECUTIVE_WILDCARDS
.get(valueString, i));
return false;
}
diff --git a/sdk/src/org/opends/sdk/schema/SupportedAlgorithmSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/SupportedAlgorithmSyntaxImpl.java
index 732fd66..aa981c3 100644
--- a/sdk/src/org/opends/sdk/schema/SupportedAlgorithmSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/SupportedAlgorithmSyntaxImpl.java
@@ -33,7 +33,7 @@
import static org.opends.sdk.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_SUPPORTED_ALGORITHM_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/Syntax.java b/sdk/src/org/opends/sdk/schema/Syntax.java
index efb0392..b50edb0 100644
--- a/sdk/src/org/opends/sdk/schema/Syntax.java
+++ b/sdk/src/org/opends/sdk/schema/Syntax.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.util.Collections;
import java.util.Iterator;
@@ -37,8 +37,8 @@
import java.util.Map;
import java.util.regex.Pattern;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.Validator;
diff --git a/sdk/src/org/opends/sdk/schema/SyntaxImpl.java b/sdk/src/org/opends/sdk/schema/SyntaxImpl.java
index a232461..5946af3 100644
--- a/sdk/src/org/opends/sdk/schema/SyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/SyntaxImpl.java
@@ -29,7 +29,7 @@
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/TelephoneNumberSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/TelephoneNumberSyntaxImpl.java
index 37aad35..a63cf85 100644
--- a/sdk/src/org/opends/sdk/schema/TelephoneNumberSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/TelephoneNumberSyntaxImpl.java
@@ -29,17 +29,17 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEPHONE_EMPTY;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEPHONE_EMPTY;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEPHONE_ILLEGAL_CHAR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEPHONE_NO_DIGITS;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEPHONE_NO_PLUS;
import static org.opends.sdk.schema.SchemaConstants.EMR_TELEPHONE_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_TELEPHONE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_TELEPHONE_NAME;
import static org.opends.sdk.util.StaticUtils.isDigit;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/TeletexTerminalIdentifierSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/TeletexTerminalIdentifierSyntaxImpl.java
index 32f6fe5..e21fcef 100644
--- a/sdk/src/org/opends/sdk/schema/TeletexTerminalIdentifierSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/TeletexTerminalIdentifierSyntaxImpl.java
@@ -29,7 +29,7 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
@@ -37,7 +37,7 @@
import java.util.HashSet;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/TelexNumberSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/TelexNumberSyntaxImpl.java
index b171593..fdb9150 100644
--- a/sdk/src/org/opends/sdk/schema/TelexNumberSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/TelexNumberSyntaxImpl.java
@@ -29,16 +29,16 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEX_TOO_SHORT;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_TELEX_TRUNCATED;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEX_ILLEGAL_CHAR;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEX_NOT_PRINTABLE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEX_TOO_SHORT;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_TELEX_TRUNCATED;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_TELEX_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/UTCTimeSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/UTCTimeSyntaxImpl.java
index 7cf9295..92f349f 100644
--- a/sdk/src/org/opends/sdk/schema/UTCTimeSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/UTCTimeSyntaxImpl.java
@@ -29,15 +29,15 @@
-import static org.opends.messages.SchemaMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import static org.opends.sdk.schema.SchemaConstants.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.StaticUtils;
diff --git a/sdk/src/org/opends/sdk/schema/UUIDEqualityMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/UUIDEqualityMatchingRuleImpl.java
index 6d739b5..d58f489 100644
--- a/sdk/src/org/opends/sdk/schema/UUIDEqualityMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/UUIDEqualityMatchingRuleImpl.java
@@ -28,11 +28,11 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/UUIDOrderingMatchingRuleImpl.java b/sdk/src/org/opends/sdk/schema/UUIDOrderingMatchingRuleImpl.java
index 2ce5503..d0c6176 100644
--- a/sdk/src/org/opends/sdk/schema/UUIDOrderingMatchingRuleImpl.java
+++ b/sdk/src/org/opends/sdk/schema/UUIDOrderingMatchingRuleImpl.java
@@ -28,11 +28,11 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
import org.opends.sdk.util.ByteString;
diff --git a/sdk/src/org/opends/sdk/schema/UUIDSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/UUIDSyntaxImpl.java
index c8df196..cecb143 100644
--- a/sdk/src/org/opends/sdk/schema/UUIDSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/UUIDSyntaxImpl.java
@@ -29,12 +29,12 @@
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX;
-import static org.opends.messages.SchemaMessages.WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX;
+import static com.sun.opends.sdk.util.Messages.WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_UUID_NAME;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/schema/UnknownSchemaElementException.java b/sdk/src/org/opends/sdk/schema/UnknownSchemaElementException.java
index 2849440..6ee9020 100644
--- a/sdk/src/org/opends/sdk/schema/UnknownSchemaElementException.java
+++ b/sdk/src/org/opends/sdk/schema/UnknownSchemaElementException.java
@@ -29,7 +29,7 @@
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
diff --git a/sdk/src/org/opends/sdk/schema/UserPasswordSyntaxImpl.java b/sdk/src/org/opends/sdk/schema/UserPasswordSyntaxImpl.java
index 8c7dc4d..9ec601f 100644
--- a/sdk/src/org/opends/sdk/schema/UserPasswordSyntaxImpl.java
+++ b/sdk/src/org/opends/sdk/schema/UserPasswordSyntaxImpl.java
@@ -29,16 +29,16 @@
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_USERPW_NO_SCHEME;
-import static org.opends.messages.SchemaMessages.ERR_ATTR_SYNTAX_USERPW_NO_VALUE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_USERPW_NO_CLOSING_BRACE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_USERPW_NO_OPENING_BRACE;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_USERPW_NO_SCHEME;
+import static com.sun.opends.sdk.util.Messages.ERR_ATTR_SYNTAX_USERPW_NO_VALUE;
import static org.opends.sdk.schema.SchemaConstants.EMR_USER_PASSWORD_EXACT_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_USER_PASSWORD_NAME;
import static org.opends.sdk.util.StaticUtils.toLowerCase;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
import org.opends.sdk.DecodeException;
import org.opends.sdk.util.ByteSequence;
diff --git a/sdk/src/org/opends/sdk/tools/ApplicationKeyManager.java b/sdk/src/org/opends/sdk/tools/ApplicationKeyManager.java
new file mode 100755
index 0000000..ee4e80b
--- /dev/null
+++ b/sdk/src/org/opends/sdk/tools/ApplicationKeyManager.java
@@ -0,0 +1,335 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008-2009 Sun Microsystems, Inc.
+ * Portions Copyright 2009 Parametric Technology Corporation (PTC)
+ */
+
+package org.opends.sdk.tools;
+
+
+
+import java.net.Socket;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import java.security.Principal;
+import java.security.PrivateKey;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.X509Certificate;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.TrustManagerFactory;
+import javax.net.ssl.X509KeyManager;
+
+import org.opends.sdk.util.Platform;
+
+
+
+/**
+ * This class is in charge of checking whether the certificates that are
+ * presented are trusted or not. This implementation tries to check also
+ * that the subject DN of the certificate corresponds to the host passed
+ * using the setHostName method.
+ *<p>
+ * The constructor tries to use a default TrustManager from the system
+ * and if it cannot be retrieved this class will only accept the
+ * certificates explicitly accepted by the user (and specified by
+ * calling acceptCertificate).
+ *<p>
+ * NOTE: this class is not aimed to be used when we have connections in
+ * parallel.
+ */
+final class ApplicationKeyManager implements X509KeyManager
+{
+ static private final Logger LOG = Logger
+ .getLogger(ApplicationKeyManager.class.getName());
+
+ /**
+ * The default keyManager.
+ */
+ private X509KeyManager keyManager = null;
+
+
+
+ /**
+ * The default constructor.
+ *
+ * @param keystore
+ * The keystore to use for this keymanager.
+ * @param password
+ * The keystore password to use for this keymanager.
+ */
+ ApplicationKeyManager(KeyStore keystore, char[] password)
+ {
+ KeyManagerFactory kmf = null;
+ String userSpecifiedAlgo = System
+ .getProperty("org.opends.admin.keymanageralgo");
+ String userSpecifiedProvider = System
+ .getProperty("org.opends.admin.keymanagerprovider");
+
+ // Handle IBM specific cases if the user did not specify a algorithm
+ // and/or provider.
+ if (userSpecifiedAlgo == null && Platform.isVendor("IBM"))
+ userSpecifiedAlgo = "IbmX509";
+ if (userSpecifiedProvider == null && Platform.isVendor("IBM"))
+ userSpecifiedProvider = "IBMJSSE2";
+
+ // Have some fallbacks to choose the provider and algorith of the
+ // key manager. First see if the user wanted to use something
+ // specific, then try with the SunJSSE provider and SunX509
+ // algorithm. Finally, fallback to the default algorithm of the JVM.
+ String[] preferredProvider = { userSpecifiedProvider, "SunJSSE",
+ null, null };
+ String[] preferredAlgo = { userSpecifiedAlgo, "SunX509", "SunX509",
+ TrustManagerFactory.getDefaultAlgorithm() };
+ for (int i = 0; i < preferredProvider.length && keyManager == null; i++)
+ {
+ String provider = preferredProvider[i];
+ String algo = preferredAlgo[i];
+ if (algo == null)
+ {
+ continue;
+ }
+ try
+ {
+ if (provider != null)
+ {
+ kmf = KeyManagerFactory.getInstance(algo, provider);
+ }
+ else
+ {
+ kmf = KeyManagerFactory.getInstance(algo);
+ }
+ kmf.init(keystore, password);
+ KeyManager kms[] = kmf.getKeyManagers();
+ /*
+ * Iterate over the returned keymanagers, look for an instance
+ * of X509KeyManager. If found, use that as our "default" key
+ * manager.
+ */
+ for (int j = 0; j < kms.length; j++)
+ {
+ if (kms[i] instanceof X509KeyManager)
+ {
+ keyManager = (X509KeyManager) kms[j];
+ break;
+ }
+ }
+ }
+ catch (NoSuchAlgorithmException e)
+ {
+ // Nothing to do. Maybe we should avoid this and be strict, but
+ // we are in a best effor mode.
+ LOG.log(Level.WARNING, "Error with the algorithm", e);
+ }
+ catch (KeyStoreException e)
+ {
+ // Nothing to do. Maybe we should avoid this and be strict, but
+ // we are in a best effor mode..
+ LOG.log(Level.WARNING, "Error with the keystore", e);
+ }
+ catch (UnrecoverableKeyException e)
+ {
+ // Nothing to do. Maybe we should avoid this and be strict, but
+ // we are in a best effor mode.
+ LOG.log(Level.WARNING, "Error with the key", e);
+ }
+ catch (NoSuchProviderException e)
+ {
+ // Nothing to do. Maybe we should avoid this and be strict, but
+ // we are in a best effor mode.
+ LOG.log(Level.WARNING, "Error with the provider", e);
+ }
+ }
+ }
+
+
+
+ /**
+ * Choose an alias to authenticate the client side of a secure socket
+ * given the public key type and the list of certificate issuer
+ * authorities recognized by the peer (if any).
+ *
+ * @param keyType
+ * the key algorithm type name(s), ordered with the
+ * most-preferred key type first.
+ * @param issuers
+ * the list of acceptable CA issuer subject names or null if
+ * it does not matter which issuers are used.
+ * @param socket
+ * the socket to be used for this connection. This parameter
+ * can be null, in which case this method will return the
+ * most generic alias to use.
+ * @return the alias name for the desired key, or null if there are no
+ * matches.
+ */
+ public String chooseClientAlias(String[] keyType,
+ Principal[] issuers, Socket socket)
+ {
+ if (keyManager != null)
+ {
+ return keyManager.chooseClientAlias(keyType, issuers, socket);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Choose an alias to authenticate the client side of a secure socket
+ * given the public key type and the list of certificate issuer
+ * authorities recognized by the peer (if any).
+ *
+ * @param keyType
+ * the key algorithm type name(s), ordered with the
+ * most-preferred key type first.
+ * @param issuers
+ * the list of acceptable CA issuer subject names or null if
+ * it does not matter which issuers are used.
+ * @param socket
+ * the socket to be used for this connection. This parameter
+ * can be null, in which case this method will return the
+ * most generic alias to use.
+ * @return the alias name for the desired key, or null if there are no
+ * matches.
+ */
+ public String chooseServerAlias(String keyType, Principal[] issuers,
+ Socket socket)
+ {
+ if (keyManager != null)
+ {
+ return keyManager.chooseServerAlias(keyType, issuers, socket);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Returns the certificate chain associated with the given alias.
+ *
+ * @param alias
+ * the alias name
+ * @return the certificate chain (ordered with the user's certificate
+ * first and the root certificate authority last), or null if
+ * the alias can't be found.
+ */
+ public X509Certificate[] getCertificateChain(String alias)
+ {
+ if (keyManager != null)
+ {
+ return keyManager.getCertificateChain(alias);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Get the matching aliases for authenticating the server side of a
+ * secure socket given the public key type and the list of certificate
+ * issuer authorities recognized by the peer (if any).
+ *
+ * @param keyType
+ * the key algorithm type name
+ * @param issuers
+ * the list of acceptable CA issuer subject names or null if
+ * it does not matter which issuers are used.
+ * @return an array of the matching alias names, or null if there were
+ * no matches.
+ */
+ public String[] getClientAliases(String keyType, Principal[] issuers)
+ {
+ if (keyManager != null)
+ {
+ return keyManager.getClientAliases(keyType, issuers);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Returns the key associated with the given alias.
+ *
+ * @param alias
+ * the alias name
+ * @return the requested key, or null if the alias can't be found.
+ */
+ public PrivateKey getPrivateKey(String alias)
+ {
+ if (keyManager != null)
+ {
+ return keyManager.getPrivateKey(alias);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Get the matching aliases for authenticating the server side of a
+ * secure socket given the public key type and the list of certificate
+ * issuer authorities recognized by the peer (if any).
+ *
+ * @param keyType
+ * the key algorithm type name
+ * @param issuers
+ * the list of acceptable CA issuer subject names or null if
+ * it does not matter which issuers are used.
+ * @return an array of the matching alias names, or null if there were
+ * no matches.
+ */
+ public String[] getServerAliases(String keyType, Principal[] issuers)
+ {
+ if (keyManager != null)
+ {
+ return keyManager.getServerAliases(keyType, issuers);
+ }
+ else
+ {
+ return null;
+ }
+ }
+}
diff --git a/sdk/src/org/opends/sdk/tools/Argument.java b/sdk/src/org/opends/sdk/tools/Argument.java
index 15206eb..77df584 100644
--- a/sdk/src/org/opends/sdk/tools/Argument.java
+++ b/sdk/src/org/opends/sdk/tools/Argument.java
@@ -28,14 +28,14 @@
-import static org.opends.messages.UtilityMessages.*;
-import static org.opends.sdk.util.StaticUtils.toLowerCase;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.util.StaticUtils.*;
import java.util.Iterator;
import java.util.LinkedList;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
@@ -100,7 +100,7 @@
/**
* Creates a new argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -177,7 +177,7 @@
/**
* Retrieves the generic name that will be used to refer to this
* argument.
- *
+ *
* @return The generic name that will be used to refer to this
* argument.
*/
@@ -191,7 +191,7 @@
/**
* Retrieves the single-character identifier that may be used to
* specify the value of this argument.
- *
+ *
* @return The single-character identifier that may be used to specify
* the value of this argument, or <CODE>null</CODE> if there
* is none.
@@ -206,7 +206,7 @@
/**
* Retrieves the long (multi-character) identifier that may be used to
* specify the value of this argument.
- *
+ *
* @return The long (multi-character) identifier that may be used to
* specify the value of this argument.
*/
@@ -220,7 +220,7 @@
/**
* Indicates whether this argument is required to have at least one
* value.
- *
+ *
* @return <CODE>true</CODE> if this argument is required to have at
* least one value, or <CODE>false</CODE> if it does not need
* to have a value.
@@ -235,7 +235,7 @@
/**
* Specifies whether this argument is required to have at least one
* value.
- *
+ *
* @param isRequired
* Indicates whether this argument is required to have at
* least one value.
@@ -250,7 +250,7 @@
/**
* Indicates whether this argument is present in the parsed set of
* command-line arguments.
- *
+ *
* @return <CODE>true</CODE> if this argument is present in the parsed
* set of command-line arguments, or <CODE>false</CODE> if
* not.
@@ -265,7 +265,7 @@
/**
* Specifies whether this argument is present in the parsed set of
* command-line arguments.
- *
+ *
* @param isPresent
* Indicates whether this argument is present in the set of
* command-line arguments.
@@ -280,7 +280,7 @@
/**
* Indicates whether this argument should be hidden from the usage
* information.
- *
+ *
* @return <CODE>true</CODE> if this argument should be hidden from
* the usage information, or <CODE>false</CODE> if not.
*/
@@ -294,7 +294,7 @@
/**
* Specifies whether this argument should be hidden from the usage
* information.
- *
+ *
* @param isHidden
* Indicates whether this argument should be hidden from the
* usage information.
@@ -309,7 +309,7 @@
/**
* Indicates whether this argument may be provided more than once on
* the command line to specify multiple values.
- *
+ *
* @return <CODE>true</CODE> if this argument may be provided more
* than once on the command line to specify multiple values,
* or <CODE>false</CODE> if it may have at most one value.
@@ -324,7 +324,7 @@
/**
* Specifies whether this argument may be provided more than once on
* the command line to specify multiple values.
- *
+ *
* @param isMultiValued
* Indicates whether this argument may be provided more than
* once on the command line to specify multiple values.
@@ -339,7 +339,7 @@
/**
* Indicates whether a value must be provided with this argument if it
* is present.
- *
+ *
* @return <CODE>true</CODE> if a value must be provided with the
* argument if it is present, or <CODE>false</CODE> if the
* argument does not take a value and the presence of the
@@ -357,7 +357,7 @@
* Specifies whether a value must be provided with this argument if it
* is present. If this is changed from <CODE>false</CODE> to
* <CODE>true</CODE>, then a value placeholder must also be provided.
- *
+ *
* @param needsValue
* Indicates whether a value must be provided with this
* argument if it is present.
@@ -372,7 +372,7 @@
/**
* Retrieves the value placeholder that will be displayed for this
* argument in the generated usage information.
- *
+ *
* @return The value placeholder that will be displayed for this
* argument in the generated usage information, or
* <CODE>null</CODE> if there is none.
@@ -389,7 +389,7 @@
* argument in the generated usage information. It may be
* <CODE>null</CODE> only if <CODE>needsValue()</CODE> returns
* <CODE>false</CODE>.
- *
+ *
* @param valuePlaceholder
* The value placeholder that will be displayed for this
* argument in the generated usage information.
@@ -405,7 +405,7 @@
* Retrieves the default value that will be used for this argument if
* it is not specified on the command line and it is not set from a
* properties file.
- *
+ *
* @return The default value that will be used for this argument if it
* is not specified on the command line and it is not set from
* a properties file, or <CODE>null</CODE> if there is no
@@ -422,7 +422,7 @@
* Specifies the default value that will be used for this argument if
* it is not specified on the command line and it is not set from a
* properties file.
- *
+ *
* @param defaultValue
* The default value that will be used for this argument if
* it is not specified on the command line and it is not set
@@ -442,7 +442,7 @@
* returned from the <CODE>getDefaultValue</CODE>, but the properties
* file value will be overridden by a value supplied on the command
* line.
- *
+ *
* @return The name of a property in a properties file that may be
* used to set the default value for this argument if it is
* present.
@@ -457,7 +457,7 @@
/**
* Specifies the name of a property in a properties file that may be
* used to set the default value for this argument if it is present.
- *
+ *
* @param propertyName
* The name of a property in a properties file that may be
* used to set the default value for this argument if it is
@@ -473,7 +473,7 @@
/**
* Indicates whether this argument was provided in the set of
* properties found is a properties file.
- *
+ *
* @return <CODE>true</CODE> if this argument was provided in the set
* of properties found is a properties file, or
* <CODE>false</CODE> if not.
@@ -488,7 +488,7 @@
/**
* Specifies whether this argument was provided in the set of
* properties found is a properties file.
- *
+ *
* @param isValueSetByProperty
* Specify whether this argument was provided in the set of
* properties found is a properties file.
@@ -502,7 +502,7 @@
/**
* Retrieves the human-readable description for this argument.
- *
+ *
* @return The human-readable description for this argument.
*/
public Message getDescription()
@@ -514,7 +514,7 @@
/**
* Indicates whether this argument has at least one value.
- *
+ *
* @return <CODE>true</CODE> if this argument has at least one value,
* or <CODE>false</CODE> if it does not have any values.
*/
@@ -529,7 +529,7 @@
* Retrieves the string vale for this argument. If it has multiple
* values, then the first will be returned. If it does not have any
* values, then the default value will be returned.
- *
+ *
* @return The string value for this argument, or <CODE>null</CODE> if
* there are no values and no default value has been given.
*/
@@ -547,7 +547,7 @@
/**
* Retrieves the set of string values for this argument.
- *
+ *
* @return The set of string values for this argument.
*/
public LinkedList<String> getValues()
@@ -559,7 +559,7 @@
/**
* Retrieves the value of this argument as an integer.
- *
+ *
* @return The value of this argument as an integer.
* @throws ArgumentException
* If there are multiple values, or the value cannot be
@@ -604,7 +604,7 @@
/**
* Retrieves the set of values for this argument as a list of
* integers.
- *
+ *
* @return A list of the integer representations of the values for
* this argument.
* @throws ArgumentException
@@ -638,7 +638,7 @@
/**
* Retrieves the value of this argument as an integer.
- *
+ *
* @return The value of this argument as an integer.
* @throws ArgumentException
* If there are multiple values, or the value cannot be
@@ -683,7 +683,7 @@
/**
* Retrieves the set of values for this argument as a list of
* integers.
- *
+ *
* @return A list of the integer representations of the values for
* this argument.
* @throws ArgumentException
@@ -717,7 +717,7 @@
/**
* Retrieves the value of this argument as a <CODE>Boolean</CODE>.
- *
+ *
* @return The value of this argument as a <CODE>Boolean</CODE>.
* @throws ArgumentException
* If this argument cannot be interpreted as a Boolean
@@ -768,7 +768,7 @@
/**
* Indicates whether the provided value is acceptable for use in this
* argument.
- *
+ *
* @param valueString
* The value for which to make the determination.
* @param invalidReason
@@ -786,7 +786,7 @@
* Adds a value to the set of values for this argument. This should
* only be called if the value is allowed by the
* <CODE>valueIsAcceptable</CODE> method.
- *
+ *
* @param valueString
* The string representation of the value to add to this
* argument.
diff --git a/sdk/src/org/opends/sdk/tools/ArgumentException.java b/sdk/src/org/opends/sdk/tools/ArgumentException.java
index 6521e03..83d0bea 100644
--- a/sdk/src/org/opends/sdk/tools/ArgumentException.java
+++ b/sdk/src/org/opends/sdk/tools/ArgumentException.java
@@ -28,7 +28,7 @@
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
import org.opends.sdk.util.LocalizableException;
diff --git a/sdk/src/org/opends/sdk/tools/ArgumentGroup.java b/sdk/src/org/opends/sdk/tools/ArgumentGroup.java
index 65b3394..7036c76 100644
--- a/sdk/src/org/opends/sdk/tools/ArgumentGroup.java
+++ b/sdk/src/org/opends/sdk/tools/ArgumentGroup.java
@@ -34,7 +34,7 @@
import java.util.LinkedList;
import java.util.List;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/tools/ArgumentParser.java b/sdk/src/org/opends/sdk/tools/ArgumentParser.java
index 4c0a056..fc43397 100644
--- a/sdk/src/org/opends/sdk/tools/ArgumentParser.java
+++ b/sdk/src/org/opends/sdk/tools/ArgumentParser.java
@@ -28,18 +28,10 @@
-import static org.opends.messages.ToolMessages.INFO_DESCRIPTION_GENERAL_ARGS;
-import static org.opends.messages.ToolMessages.INFO_DESCRIPTION_IO_ARGS;
-import static org.opends.messages.ToolMessages.INFO_DESCRIPTION_LDAP_CONNECTION_ARGS;
-import static org.opends.messages.ToolMessages.INFO_DESCRIPTION_PRODUCT_VERSION;
-import static org.opends.messages.UtilityMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
-import static org.opends.server.util.ServerConstants.EOL;
-import static org.opends.server.util.ServerConstants.PROPERTY_SCRIPT_NAME;
-import static org.opends.server.util.StaticUtils.getBytes;
-import static org.opends.server.util.StaticUtils.getExceptionMessage;
-import static org.opends.server.util.StaticUtils.toLowerCase;
-import static org.opends.server.util.StaticUtils.wrapText;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
+import static org.opends.sdk.tools.Utils.*;
+import static org.opends.sdk.util.StaticUtils.*;
import java.io.File;
import java.io.FileInputStream;
@@ -47,9 +39,8 @@
import java.io.OutputStream;
import java.util.*;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
-import org.opends.server.util.SetupUtils;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
@@ -157,44 +148,42 @@
* Group for arguments that have not been explicitly grouped. These
* will appear at the top of the usage statement without a header.
*/
- private ArgumentGroup defaultArgGroup =
- new ArgumentGroup(Message.EMPTY, Integer.MAX_VALUE);
+ private ArgumentGroup defaultArgGroup = new ArgumentGroup(
+ Message.EMPTY, Integer.MAX_VALUE);
/**
* Group for arguments that are related to connection through LDAP.
* This includes options like the bind DN, the port, etc.
*/
- private ArgumentGroup ldapArgGroup =
- new ArgumentGroup(INFO_DESCRIPTION_LDAP_CONNECTION_ARGS.get(),
- Integer.MIN_VALUE + 2);
+ private ArgumentGroup ldapArgGroup = new ArgumentGroup(
+ INFO_DESCRIPTION_LDAP_CONNECTION_ARGS.get(),
+ Integer.MIN_VALUE + 2);
/**
* Group for arguments that are related to utility input/output like
* properties file, no-prompt etc. These will appear toward the bottom
* of the usage statement.
*/
- private ArgumentGroup ioArgGroup =
- new ArgumentGroup(INFO_DESCRIPTION_IO_ARGS.get(),
- Integer.MIN_VALUE + 1);
+ private ArgumentGroup ioArgGroup = new ArgumentGroup(
+ INFO_DESCRIPTION_IO_ARGS.get(), Integer.MIN_VALUE + 1);
/**
* Group for arguments that are general like help, version etc. These
* will appear at the end of the usage statement.
*/
- private ArgumentGroup generalArgGroup =
- new ArgumentGroup(INFO_DESCRIPTION_GENERAL_ARGS.get(),
- Integer.MIN_VALUE);
+ private ArgumentGroup generalArgGroup = new ArgumentGroup(
+ INFO_DESCRIPTION_GENERAL_ARGS.get(), Integer.MIN_VALUE);
private final static String INDENT = " ";
- private final static int MAX_LENGTH =
- SetupUtils.isWindows() ? 79 : 80;
+
+ private final static int MAX_LENGTH = 80;
/**
* Creates a new instance of this argument parser with no arguments.
* Unnamed trailing arguments will not be allowed.
- *
+ *
* @param mainClassName
* The fully-qualified name of the Java class that should be
* invoked to launch the program with which this argument
@@ -206,7 +195,7 @@
* Indicates whether long arguments should be treated in a
* case-sensitive manner.
*/
- public ArgumentParser(String mainClassName, Message toolDescription,
+ ArgumentParser(String mainClassName, Message toolDescription,
boolean longArgumentsCaseSensitive)
{
this.mainClassName = mainClassName;
@@ -237,7 +226,7 @@
/**
* Creates a new instance of this argument parser with no arguments
* that may or may not be allowed to have unnamed trailing arguments.
- *
+ *
* @param mainClassName
* The fully-qualified name of the Java class that should be
* invoked to launch the program with which this argument
@@ -264,7 +253,7 @@
* unnamed trailing arguments in the generated usage
* information.
*/
- public ArgumentParser(String mainClassName, Message toolDescription,
+ ArgumentParser(String mainClassName, Message toolDescription,
boolean longArgumentsCaseSensitive,
boolean allowsTrailingArguments, int minTrailingArguments,
int maxTrailingArguments, String trailingArgsDisplayName)
@@ -296,12 +285,12 @@
* Retrieves the fully-qualified name of the Java class that should be
* invoked to launch the program with which this argument parser is
* associated.
- *
+ *
* @return The fully-qualified name of the Java class that should be
* invoked to launch the program with which this argument
* parser is associated.
*/
- public String getMainClassName()
+ String getMainClassName()
{
return mainClassName;
}
@@ -311,11 +300,11 @@
/**
* Retrieves a human-readable description for this tool, which should
* be included at the top of the command-line usage information.
- *
+ *
* @return A human-readable description for this tool, or {@code null}
* if none is available.
*/
- public Message getToolDescription()
+ Message getToolDescription()
{
return toolDescription;
}
@@ -329,11 +318,11 @@
* be manually parsed by the application using this parser. Note that
* once an unnamed trailing argument has been identified, all
* remaining arguments will be classified as such.
- *
+ *
* @return <CODE>true</CODE> if this parser allows unnamed trailing
* arguments, or <CODE>false</CODE> if it does not.
*/
- public boolean allowsTrailingArguments()
+ boolean allowsTrailingArguments()
{
return allowsTrailingArguments;
}
@@ -343,12 +332,12 @@
/**
* Retrieves the minimum number of unnamed trailing arguments that
* must be provided.
- *
+ *
* @return The minimum number of unnamed trailing arguments that must
* be provided, or a value less than or equal to zero if no
* minimum will be enforced.
*/
- public int getMinTrailingArguments()
+ int getMinTrailingArguments()
{
return minTrailingArguments;
}
@@ -358,12 +347,12 @@
/**
* Retrieves the maximum number of unnamed trailing arguments that may
* be provided.
- *
+ *
* @return The maximum number of unnamed trailing arguments that may
* be provided, or a value less than or equal to zero if no
* maximum will be enforced.
*/
- public int getMaxTrailingArguments()
+ int getMaxTrailingArguments()
{
return maxTrailingArguments;
}
@@ -373,11 +362,11 @@
/**
* Retrieves the list of all arguments that have been defined for this
* argument parser.
- *
+ *
* @return The list of all arguments that have been defined for this
* argument parser.
*/
- public LinkedList<Argument> getArgumentList()
+ LinkedList<Argument> getArgumentList()
{
return argumentList;
}
@@ -386,13 +375,13 @@
/**
* Retrieves the argument with the specified name.
- *
+ *
* @param name
* The name of the argument to retrieve.
* @return The argument with the specified name, or <CODE>null</CODE>
* if there is no such argument.
*/
- public Argument getArgument(String name)
+ Argument getArgument(String name)
{
return argumentMap.get(name);
}
@@ -403,11 +392,11 @@
* Retrieves the set of arguments mapped by the short identifier that
* may be used to reference them. Note that arguments that do not have
* a short identifier will not be present in this list.
- *
+ *
* @return The set of arguments mapped by the short identifier that
* may be used to reference them.
*/
- public HashMap<Character, Argument> getArgumentsByShortID()
+ HashMap<Character, Argument> getArgumentsByShortID()
{
return shortIDMap;
}
@@ -416,13 +405,13 @@
/**
* Retrieves the argument with the specified short identifier.
- *
+ *
* @param shortID
* The short ID for the argument to retrieve.
* @return The argument with the specified short identifier, or
* <CODE>null</CODE> if there is no such argument.
*/
- public Argument getArgumentForShortID(Character shortID)
+ Argument getArgumentForShortID(Character shortID)
{
return shortIDMap.get(shortID);
}
@@ -433,11 +422,11 @@
* Retrieves the set of arguments mapped by the long identifier that
* may be used to reference them. Note that arguments that do not have
* a long identifier will not be present in this list.
- *
+ *
* @return The set of arguments mapped by the long identifier that may
* be used to reference them.
*/
- public HashMap<String, Argument> getArgumentsByLongID()
+ HashMap<String, Argument> getArgumentsByLongID()
{
return longIDMap;
}
@@ -446,13 +435,13 @@
/**
* Retrieves the argument with the specified long identifier.
- *
+ *
* @param longID
* The long identifier of the argument to retrieve.
* @return The argument with the specified long identifier, or
* <CODE>null</CODE> if there is no such argument.
*/
- public Argument getArgumentForLongID(String longID)
+ Argument getArgumentForLongID(String longID)
{
return longIDMap.get(longID);
}
@@ -462,11 +451,11 @@
/**
* Retrieves the set of unnamed trailing arguments that were provided
* on the command line.
- *
+ *
* @return The set of unnamed trailing arguments that were provided on
* the command line.
*/
- public ArrayList<String> getTrailingArguments()
+ ArrayList<String> getTrailingArguments()
{
return trailingArguments;
}
@@ -475,12 +464,12 @@
/**
* Retrieves the raw set of arguments that were provided.
- *
+ *
* @return The raw set of arguments that were provided, or
* <CODE>null</CODE> if the argument list has not yet been
* parsed.
*/
- public String[] getRawArguments()
+ String[] getRawArguments()
{
return rawArguments;
}
@@ -489,11 +478,11 @@
/**
* Sets the usage group description for the default argument group.
- *
+ *
* @param description
* for the default group
*/
- public void setDefaultArgumentGroupDescription(Message description)
+ void setDefaultArgumentGroupDescription(Message description)
{
this.defaultArgGroup.setDescription(description);
}
@@ -502,11 +491,11 @@
/**
* Sets the usage group description for the LDAP argument group.
- *
+ *
* @param description
* for the LDAP group
*/
- public void setLdapArgumentGroupDescription(Message description)
+ void setLdapArgumentGroupDescription(Message description)
{
this.ldapArgGroup.setDescription(description);
}
@@ -516,11 +505,11 @@
/**
* Sets the usage group description for the input/output argument
* group.
- *
+ *
* @param description
* for the input/output group
*/
- public void setInputOutputArgumentGroupDescription(Message description)
+ void setInputOutputArgumentGroupDescription(Message description)
{
this.ioArgGroup.setDescription(description);
}
@@ -529,11 +518,11 @@
/**
* Sets the usage group description for the general argument group.
- *
+ *
* @param description
* for the general group
*/
- public void setGeneralArgumentGroupDescription(Message description)
+ void setGeneralArgumentGroupDescription(Message description)
{
this.generalArgGroup.setDescription(description);
}
@@ -543,14 +532,14 @@
/**
* Adds the provided argument to the set of arguments handled by this
* parser.
- *
+ *
* @param argument
* The argument to be added.
* @throws ArgumentException
* If the provided argument conflicts with another argument
* that has already been defined.
*/
- public void addArgument(Argument argument) throws ArgumentException
+ void addArgument(Argument argument) throws ArgumentException
{
addArgument(argument, null);
}
@@ -560,15 +549,14 @@
/**
* Adds the provided argument to the set of arguments handled by this
* parser and puts the arguement in the default group.
- *
+ *
* @param argument
* The argument to be added.
* @throws ArgumentException
* If the provided argument conflicts with another argument
* that has already been defined.
*/
- public void addDefaultArgument(Argument argument)
- throws ArgumentException
+ void addDefaultArgument(Argument argument) throws ArgumentException
{
addArgument(argument, defaultArgGroup);
}
@@ -578,14 +566,14 @@
/**
* Adds the provided argument to the set of arguments handled by this
* parser and puts the argument in the LDAP connection group.
- *
+ *
* @param argument
* The argument to be added.
* @throws ArgumentException
* If the provided argument conflicts with another argument
* that has already been defined.
*/
- public void addLdapConnectionArgument(Argument argument)
+ void addLdapConnectionArgument(Argument argument)
throws ArgumentException
{
addArgument(argument, ldapArgGroup);
@@ -596,14 +584,14 @@
/**
* Adds the provided argument to the set of arguments handled by this
* parser and puts the argument in the input/output group.
- *
+ *
* @param argument
* The argument to be added.
* @throws ArgumentException
* If the provided argument conflicts with another argument
* that has already been defined.
*/
- public void addInputOutputArgument(Argument argument)
+ void addInputOutputArgument(Argument argument)
throws ArgumentException
{
addArgument(argument, ioArgGroup);
@@ -614,15 +602,14 @@
/**
* Adds the provided argument to the set of arguments handled by this
* parser and puts the arguement in the general group.
- *
+ *
* @param argument
* The argument to be added.
* @throws ArgumentException
* If the provided argument conflicts with another argument
* that has already been defined.
*/
- public void addGeneralArgument(Argument argument)
- throws ArgumentException
+ void addGeneralArgument(Argument argument) throws ArgumentException
{
addArgument(argument, generalArgGroup);
}
@@ -632,7 +619,7 @@
/**
* Adds the provided argument to the set of arguments handled by this
* parser.
- *
+ *
* @param argument
* The argument to be added.
* @param group
@@ -641,7 +628,7 @@
* If the provided argument conflicts with another argument
* that has already been defined.
*/
- public void addArgument(Argument argument, ArgumentGroup group)
+ void addArgument(Argument argument, ArgumentGroup group)
throws ArgumentException
{
@@ -650,9 +637,8 @@
{
String conflictingName = shortIDMap.get(shortID).getName();
- Message message =
- ERR_ARGPARSER_DUPLICATE_SHORT_ID.get(argument.getName(),
- String.valueOf(shortID), conflictingName);
+ Message message = ERR_ARGPARSER_DUPLICATE_SHORT_ID.get(argument
+ .getName(), String.valueOf(shortID), conflictingName);
throw new ArgumentException(message);
}
@@ -664,10 +650,10 @@
// identifier.
try
{
- versionArgument =
- new BooleanArgument(OPTION_LONG_PRODUCT_VERSION, null,
- OPTION_LONG_PRODUCT_VERSION,
- INFO_DESCRIPTION_PRODUCT_VERSION.get());
+ versionArgument = new BooleanArgument(
+ OPTION_LONG_PRODUCT_VERSION, null,
+ OPTION_LONG_PRODUCT_VERSION,
+ INFO_DESCRIPTION_PRODUCT_VERSION.get());
this.generalArgGroup.addArgument(versionArgument);
}
catch (ArgumentException e)
@@ -688,9 +674,8 @@
{
String conflictingName = longIDMap.get(longID).getName();
- Message message =
- ERR_ARGPARSER_DUPLICATE_LONG_ID.get(argument.getName(),
- argument.getLongIdentifier(), conflictingName);
+ Message message = ERR_ARGPARSER_DUPLICATE_LONG_ID.get(argument
+ .getName(), argument.getLongIdentifier(), conflictingName);
throw new ArgumentException(message);
}
}
@@ -727,12 +712,12 @@
* still need to check for the presence of the usage argument after
* calling <CODE>parseArguments</CODE> to know that no further
* processing will be required.
- *
+ *
* @param argument
* The argument whose presence should automatically trigger
* the display of usage information.
*/
- public void setUsageArgument(Argument argument)
+ void setUsageArgument(Argument argument)
{
usageArgument = argument;
usageOutputStream = System.out;
@@ -750,7 +735,7 @@
* still need to check for the presence of the usage argument after
* calling <CODE>parseArguments</CODE> to know that no further
* processing will be required.
- *
+ *
* @param argument
* The argument whose presence should automatically trigger
* the display of usage information.
@@ -758,8 +743,7 @@
* The output stream to which the usage information should be
* written.
*/
- public void setUsageArgument(Argument argument,
- OutputStream outputStream)
+ void setUsageArgument(Argument argument, OutputStream outputStream)
{
usageArgument = argument;
usageOutputStream = outputStream;
@@ -770,12 +754,12 @@
/**
* Sets the provided argument which will be used to identify the file
* properties.
- *
+ *
* @param argument
* The argument which will be used to identify the file
* properties.
*/
- public void setFilePropertiesArgument(StringArgument argument)
+ void setFilePropertiesArgument(StringArgument argument)
{
filePropertiesPathArgument = argument;
}
@@ -785,12 +769,12 @@
/**
* Sets the provided argument which will be used to identify the file
* properties.
- *
+ *
* @param argument
* The argument which will be used to indicate if we have to
* look for properties file.
*/
- public void setNoPropertiesFileArgument(BooleanArgument argument)
+ void setNoPropertiesFileArgument(BooleanArgument argument)
{
noPropertiesFileArgument = argument;
}
@@ -800,15 +784,14 @@
/**
* Parses the provided set of arguments and updates the information
* associated with this parser accordingly.
- *
+ *
* @param rawArguments
* The raw set of arguments to parse.
* @throws ArgumentException
* If a problem was encountered while parsing the provided
* arguments.
*/
- public void parseArguments(String[] rawArguments)
- throws ArgumentException
+ void parseArguments(String[] rawArguments) throws ArgumentException
{
parseArguments(rawArguments, null);
}
@@ -820,7 +803,7 @@
* associated with this parser accordingly. Default values for
* unspecified arguments may be read from the specified properties
* file.
- *
+ *
* @param rawArguments
* The set of raw arguments to parse.
* @param propertiesFile
@@ -833,9 +816,8 @@
* If a problem was encountered while parsing the provided
* arguments or interacting with the properties file.
*/
- public void parseArguments(String[] rawArguments,
- String propertiesFile, boolean requirePropertiesFile)
- throws ArgumentException
+ void parseArguments(String[] rawArguments, String propertiesFile,
+ boolean requirePropertiesFile) throws ArgumentException
{
this.rawArguments = rawArguments;
@@ -853,9 +835,8 @@
{
if (requirePropertiesFile)
{
- Message message =
- ERR_ARGPARSER_CANNOT_READ_PROPERTIES_FILE.get(String
- .valueOf(propertiesFile), getExceptionMessage(e));
+ Message message = ERR_ARGPARSER_CANNOT_READ_PROPERTIES_FILE
+ .get(String.valueOf(propertiesFile), getExceptionMessage(e));
throw new ArgumentException(message, e);
}
}
@@ -870,7 +851,7 @@
* associated with this parser accordingly. Default values for
* unspecified arguments may be read from the specified properties if
* any are provided.
- *
+ *
* @param rawArguments
* The set of raw arguments to parse.
* @param argumentProperties
@@ -881,7 +862,7 @@
* If a problem was encountered while parsing the provided
* arguments.
*/
- public void parseArguments(String[] rawArguments,
+ void parseArguments(String[] rawArguments,
Properties argumentProperties) throws ArgumentException
{
this.rawArguments = rawArguments;
@@ -899,9 +880,8 @@
if ((maxTrailingArguments > 0)
&& (trailingArguments.size() > maxTrailingArguments))
{
- Message message =
- ERR_ARGPARSER_TOO_MANY_TRAILING_ARGS
- .get(maxTrailingArguments);
+ Message message = ERR_ARGPARSER_TOO_MANY_TRAILING_ARGS
+ .get(maxTrailingArguments);
throw new ArgumentException(message);
}
@@ -937,8 +917,8 @@
else if (equalPos == 0)
{
// The argument starts with "--=", which is not acceptable.
- Message message =
- ERR_ARGPARSER_LONG_ARG_WITHOUT_NAME.get(arg);
+ Message message = ERR_ARGPARSER_LONG_ARG_WITHOUT_NAME
+ .get(arg);
throw new ArgumentException(message);
}
else
@@ -996,8 +976,8 @@
else
{
// There is no such argument registered.
- Message message =
- ERR_ARGPARSER_NO_ARGUMENT_WITH_LONG_ID.get(origArgName);
+ Message message = ERR_ARGPARSER_NO_ARGUMENT_WITH_LONG_ID
+ .get(origArgName);
throw new ArgumentException(message);
}
}
@@ -1032,9 +1012,8 @@
{
if ((i + 1) == numArguments)
{
- Message message =
- ERR_ARGPARSER_NO_VALUE_FOR_ARGUMENT_WITH_LONG_ID
- .get(origArgName);
+ Message message = ERR_ARGPARSER_NO_VALUE_FOR_ARGUMENT_WITH_LONG_ID
+ .get(origArgName);
throw new ArgumentException(message);
}
@@ -1044,9 +1023,8 @@
MessageBuilder invalidReason = new MessageBuilder();
if (!a.valueIsAcceptable(argValue, invalidReason))
{
- Message message =
- ERR_ARGPARSER_VALUE_UNACCEPTABLE_FOR_LONG_ID.get(
- argValue, origArgName, invalidReason.toString());
+ Message message = ERR_ARGPARSER_VALUE_UNACCEPTABLE_FOR_LONG_ID
+ .get(argValue, origArgName, invalidReason.toString());
throw new ArgumentException(message);
}
@@ -1054,9 +1032,8 @@
// acceptable to have more than one.
if (a.hasValue() && (!a.isMultiValued()))
{
- Message message =
- ERR_ARGPARSER_NOT_MULTIVALUED_FOR_LONG_ID
- .get(origArgName);
+ Message message = ERR_ARGPARSER_NOT_MULTIVALUED_FOR_LONG_ID
+ .get(origArgName);
throw new ArgumentException(message);
}
@@ -1066,9 +1043,8 @@
{
if (argValue != null)
{
- Message message =
- ERR_ARGPARSER_ARG_FOR_LONG_ID_DOESNT_TAKE_VALUE
- .get(origArgName);
+ Message message = ERR_ARGPARSER_ARG_FOR_LONG_ID_DOESNT_TAKE_VALUE
+ .get(origArgName);
throw new ArgumentException(message);
}
}
@@ -1083,8 +1059,8 @@
// -n value
if (arg.equals("-"))
{
- Message message =
- ERR_ARGPARSER_INVALID_DASH_AS_ARGUMENT.get();
+ Message message = ERR_ARGPARSER_INVALID_DASH_AS_ARGUMENT
+ .get();
throw new ArgumentException(message);
}
@@ -1139,9 +1115,8 @@
else
{
// There is no such argument registered.
- Message message =
- ERR_ARGPARSER_NO_ARGUMENT_WITH_SHORT_ID.get(String
- .valueOf(argCharacter));
+ Message message = ERR_ARGPARSER_NO_ARGUMENT_WITH_SHORT_ID
+ .get(String.valueOf(argCharacter));
throw new ArgumentException(message);
}
}
@@ -1176,9 +1151,8 @@
{
if ((i + 1) == numArguments)
{
- Message message =
- ERR_ARGPARSER_NO_VALUE_FOR_ARGUMENT_WITH_SHORT_ID
- .get(String.valueOf(argCharacter));
+ Message message = ERR_ARGPARSER_NO_VALUE_FOR_ARGUMENT_WITH_SHORT_ID
+ .get(String.valueOf(argCharacter));
throw new ArgumentException(message);
}
@@ -1188,9 +1162,8 @@
MessageBuilder invalidReason = new MessageBuilder();
if (!a.valueIsAcceptable(argValue, invalidReason))
{
- Message message =
- ERR_ARGPARSER_VALUE_UNACCEPTABLE_FOR_SHORT_ID.get(
- argValue, String.valueOf(argCharacter),
+ Message message = ERR_ARGPARSER_VALUE_UNACCEPTABLE_FOR_SHORT_ID
+ .get(argValue, String.valueOf(argCharacter),
invalidReason.toString());
throw new ArgumentException(message);
}
@@ -1199,9 +1172,8 @@
// acceptable to have more than one.
if (a.hasValue() && (!a.isMultiValued()))
{
- Message message =
- ERR_ARGPARSER_NOT_MULTIVALUED_FOR_SHORT_ID.get(String
- .valueOf(argCharacter));
+ Message message = ERR_ARGPARSER_NOT_MULTIVALUED_FOR_SHORT_ID
+ .get(String.valueOf(argCharacter));
throw new ArgumentException(message);
}
@@ -1228,9 +1200,8 @@
if (b == null)
{
// There is no such argument registered.
- Message message =
- ERR_ARGPARSER_NO_ARGUMENT_WITH_SHORT_ID.get(String
- .valueOf(argCharacter));
+ Message message = ERR_ARGPARSER_NO_ARGUMENT_WITH_SHORT_ID
+ .get(String.valueOf(argCharacter));
throw new ArgumentException(message);
}
else if (b.needsValue())
@@ -1239,9 +1210,8 @@
// a
// valid argument that takes a value. We don't support
// that.
- Message message =
- ERR_ARGPARSER_CANT_MIX_ARGS_WITH_VALUES.get(String
- .valueOf(argCharacter), argValue, String
+ Message message = ERR_ARGPARSER_CANT_MIX_ARGS_WITH_VALUES
+ .get(String.valueOf(argCharacter), argValue, String
.valueOf(c));
throw new ArgumentException(message);
}
@@ -1283,8 +1253,8 @@
// It doesn't start with a dash and we don't allow trailing
// arguments,
// so this is illegal.
- Message message =
- ERR_ARGPARSER_DISALLOWED_TRAILING_ARGUMENT.get(arg);
+ Message message = ERR_ARGPARSER_DISALLOWED_TRAILING_ARGUMENT
+ .get(arg);
throw new ArgumentException(message);
}
}
@@ -1296,9 +1266,8 @@
{
if (trailingArguments.size() < minTrailingArguments)
{
- Message message =
- ERR_ARGPARSER_TOO_FEW_TRAILING_ARGUMENTS
- .get(minTrailingArguments);
+ Message message = ERR_ARGPARSER_TOO_FEW_TRAILING_ARGUMENTS
+ .get(minTrailingArguments);
throw new ArgumentException(message);
}
}
@@ -1323,9 +1292,8 @@
if ((argumentProperties != null)
&& (a.getPropertyName() != null))
{
- String value =
- argumentProperties.getProperty(a.getPropertyName()
- .toLowerCase());
+ String value = argumentProperties.getProperty(a
+ .getPropertyName().toLowerCase());
MessageBuilder invalidReason = new MessageBuilder();
if (value != null)
{
@@ -1360,8 +1328,8 @@
// a problem.
if ((!a.hasValue()) && a.isRequired())
{
- Message message =
- ERR_ARGPARSER_NO_VALUE_FOR_REQUIRED_ARG.get(a.getName());
+ Message message = ERR_ARGPARSER_NO_VALUE_FOR_REQUIRED_ARG
+ .get(a.getName());
throw new ArgumentException(message);
}
}
@@ -1372,7 +1340,7 @@
/**
* Check if we have a properties file.
- *
+ *
* @return The properties found in the properties file or null.
* @throws ArgumentException
* If a problem was encountered while parsing the provided
@@ -1404,9 +1372,8 @@
{
// Check in "user home"/.opends directory
String userDir = System.getProperty("user.home");
- propertiesFilePath =
- findPropertiesFile(userDir + File.separator
- + DEFAULT_OPENDS_CONFIG_DIR);
+ propertiesFilePath = findPropertiesFile(userDir + File.separator
+ + DEFAULT_OPENDS_CONFIG_DIR);
// TODO
/*
@@ -1425,7 +1392,7 @@
// We have a location for the properties file.
Properties argumentProperties = new Properties();
- String scriptName = System.getProperty(PROPERTY_SCRIPT_NAME);
+ String scriptName = System.getProperty(Utils.PROPERTY_SCRIPT_NAME);
try
{
Properties p = new Properties();
@@ -1444,8 +1411,8 @@
{
if (currentPropertyName.startsWith(scriptName))
{
- propertyName =
- currentPropertyName.substring(scriptName.length() + 1);
+ propertyName = currentPropertyName.substring(scriptName
+ .length() + 1);
}
else
{
@@ -1461,9 +1428,8 @@
}
catch (Exception e)
{
- Message message =
- ERR_ARGPARSER_CANNOT_READ_PROPERTIES_FILE.get(String
- .valueOf(propertiesFilePath), getExceptionMessage(e));
+ Message message = ERR_ARGPARSER_CANNOT_READ_PROPERTIES_FILE.get(
+ String.valueOf(propertiesFilePath), getExceptionMessage(e));
throw new ArgumentException(message, e);
}
return argumentProperties;
@@ -1473,7 +1439,7 @@
/**
* Get the absolute path of the properties file.
- *
+ *
* @param directory
* The location in which we should look for properties file
* @return The absolute path of the properties file or null
@@ -1481,9 +1447,8 @@
private String findPropertiesFile(String directory)
{
// Look for the tools properties file
- File f =
- new File(directory, DEFAULT_OPENDS_PROPERTIES_FILE_NAME
- + DEFAULT_OPENDS_PROPERTIES_FILE_EXTENSION);
+ File f = new File(directory, DEFAULT_OPENDS_PROPERTIES_FILE_NAME
+ + DEFAULT_OPENDS_PROPERTIES_FILE_EXTENSION);
if (f.exists() && f.canRead())
{
return f.getAbsolutePath();
@@ -1499,12 +1464,12 @@
/**
* Appends usage information based on the defined arguments to the
* provided buffer.
- *
+ *
* @param buffer
* The buffer to which the usage information should be
* appended.
*/
- public void getUsage(StringBuilder buffer)
+ void getUsage(StringBuilder buffer)
{
usageOrVersionDisplayed = true;
if ((toolDescription != null) && (toolDescription.length() > 0))
@@ -1597,11 +1562,11 @@
/**
* Retrieves a message containing usage information based on the
* defined arguments.
- *
+ *
* @return A string containing usage information based on the defined
* arguments.
*/
- public Message getUsageMessage()
+ Message getUsageMessage()
{
StringBuilder buffer = new StringBuilder();
getUsage(buffer);
@@ -1616,11 +1581,11 @@
/**
* Retrieves a string containing usage information based on the
* defined arguments.
- *
+ *
* @return A string containing usage information based on the defined
* arguments.
*/
- public String getUsage()
+ String getUsage()
{
StringBuilder buffer = new StringBuilder();
getUsage(buffer);
@@ -1633,7 +1598,7 @@
/**
* Writes usage information based on the defined arguments to the
* provided output stream.
- *
+ *
* @param outputStream
* The output stream to which the usage information should be
* written.
@@ -1641,7 +1606,7 @@
* If a problem occurs while attempting to write the usage
* information to the provided output stream.
*/
- public void getUsage(OutputStream outputStream) throws IOException
+ void getUsage(OutputStream outputStream) throws IOException
{
StringBuilder buffer = new StringBuilder();
getUsage(buffer);
@@ -1655,11 +1620,11 @@
* Indicates whether the version or the usage information has been
* displayed to the end user either by an explicit argument like "-H"
* or "--help", or by a built-in argument like "-?".
- *
+ *
* @return {@code true} if the usage information has been displayed,
* or {@code false} if not.
*/
- public boolean usageOrVersionDisplayed()
+ boolean usageOrVersionDisplayed()
{
return usageOrVersionDisplayed;
}
@@ -1668,7 +1633,7 @@
/**
* Appends argument usage information to the provided buffer.
- *
+ *
* @param a
* The argument to handle.
* @param buffer
@@ -1713,8 +1678,8 @@
newBuffer.append(a.getValuePlaceholder());
}
- int lineLength =
- (buffer.length() - currentLength) + newBuffer.length();
+ int lineLength = (buffer.length() - currentLength)
+ + newBuffer.length();
if (lineLength > MAX_LENGTH)
{
buffer.append(EOL);
@@ -1823,7 +1788,7 @@
/**
* Given an argument, returns an appropriate group. Arguments may be
* part of one of the special groups or the default group.
- *
+ *
* @param argument
* for which a group is requested
* @return argument group appropriate for <code>argument</code>
@@ -1855,7 +1820,7 @@
/**
* Indicates whether or not argument group description headers should
* be printed.
- *
+ *
* @return boolean where true means print the descriptions
*/
boolean printUsageGroupHeaders()
@@ -1884,11 +1849,10 @@
try
{
- versionArgument =
- new BooleanArgument(OPTION_LONG_PRODUCT_VERSION,
- OPTION_SHORT_PRODUCT_VERSION,
- OPTION_LONG_PRODUCT_VERSION,
- INFO_DESCRIPTION_PRODUCT_VERSION.get());
+ versionArgument = new BooleanArgument(
+ OPTION_LONG_PRODUCT_VERSION, OPTION_SHORT_PRODUCT_VERSION,
+ OPTION_LONG_PRODUCT_VERSION, INFO_DESCRIPTION_PRODUCT_VERSION
+ .get());
this.generalArgGroup.addArgument(versionArgument);
}
catch (ArgumentException e)
@@ -1905,19 +1869,15 @@
if (arg != null)
{
String longId = arg.getLongIdentifier();
- io =
- OPTION_LONG_VERBOSE.equals(longId)
- || OPTION_LONG_QUIET.equals(longId)
- || OPTION_LONG_NO_PROMPT.equals(longId)
- || OPTION_LONG_PROP_FILE_PATH.equals(longId)
- || OPTION_LONG_NO_PROP_FILE.equals(longId)
- || OPTION_LONG_SCRIPT_FRIENDLY.equals(longId)
- || OPTION_LONG_DONT_WRAP.equals(longId)
- || OPTION_LONG_ENCODING.equals(longId)
- || OPTION_DSCFG_LONG_DISPLAY_EQUIVALENT.equals(longId)
- || OPTION_LONG_EQUIVALENT_COMMAND_FILE_PATH
- .equals(longId)
- || OPTION_LONG_BATCH_FILE_PATH.equals(longId);
+ io = OPTION_LONG_VERBOSE.equals(longId)
+ || OPTION_LONG_QUIET.equals(longId)
+ || OPTION_LONG_NO_PROMPT.equals(longId)
+ || OPTION_LONG_PROP_FILE_PATH.equals(longId)
+ || OPTION_LONG_NO_PROP_FILE.equals(longId)
+ || OPTION_LONG_SCRIPT_FRIENDLY.equals(longId)
+ || OPTION_LONG_DONT_WRAP.equals(longId)
+ || OPTION_LONG_ENCODING.equals(longId)
+ || OPTION_LONG_BATCH_FILE_PATH.equals(longId);
}
return io;
}
@@ -1930,29 +1890,28 @@
if (arg != null)
{
String longId = arg.getLongIdentifier();
- ldap =
- OPTION_LONG_USE_SSL.equals(longId)
- || OPTION_LONG_START_TLS.equals(longId)
- || OPTION_LONG_HOST.equals(longId)
- || OPTION_LONG_PORT.equals(longId)
- || OPTION_LONG_BINDDN.equals(longId)
- || OPTION_LONG_BINDPWD.equals(longId)
- || OPTION_LONG_BINDPWD_FILE.equals(longId)
- || OPTION_LONG_SASLOPTION.equals(longId)
- || OPTION_LONG_TRUSTALL.equals(longId)
- || OPTION_LONG_TRUSTSTOREPATH.equals(longId)
- || OPTION_LONG_TRUSTSTORE_PWD.equals(longId)
- || OPTION_LONG_TRUSTSTORE_PWD_FILE.equals(longId)
- || OPTION_LONG_KEYSTOREPATH.equals(longId)
- || OPTION_LONG_KEYSTORE_PWD.equals(longId)
- || OPTION_LONG_KEYSTORE_PWD_FILE.equals(longId)
- || OPTION_LONG_CERT_NICKNAME.equals(longId)
- || OPTION_LONG_REFERENCED_HOST_NAME.equals(longId)
- || OPTION_LONG_ADMIN_UID.equals(longId)
- || OPTION_LONG_REPORT_AUTHZ_ID.equals(longId)
- || OPTION_LONG_USE_PW_POLICY_CTL.equals(longId)
- || OPTION_LONG_USE_SASL_EXTERNAL.equals(longId)
- || OPTION_LONG_PROTOCOL_VERSION.equals(longId);
+ ldap = OPTION_LONG_USE_SSL.equals(longId)
+ || OPTION_LONG_START_TLS.equals(longId)
+ || OPTION_LONG_HOST.equals(longId)
+ || OPTION_LONG_PORT.equals(longId)
+ || OPTION_LONG_BINDDN.equals(longId)
+ || OPTION_LONG_BINDPWD.equals(longId)
+ || OPTION_LONG_BINDPWD_FILE.equals(longId)
+ || OPTION_LONG_SASLOPTION.equals(longId)
+ || OPTION_LONG_TRUSTALL.equals(longId)
+ || OPTION_LONG_TRUSTSTOREPATH.equals(longId)
+ || OPTION_LONG_TRUSTSTORE_PWD.equals(longId)
+ || OPTION_LONG_TRUSTSTORE_PWD_FILE.equals(longId)
+ || OPTION_LONG_KEYSTOREPATH.equals(longId)
+ || OPTION_LONG_KEYSTORE_PWD.equals(longId)
+ || OPTION_LONG_KEYSTORE_PWD_FILE.equals(longId)
+ || OPTION_LONG_CERT_NICKNAME.equals(longId)
+ || OPTION_LONG_REFERENCED_HOST_NAME.equals(longId)
+ || OPTION_LONG_ADMIN_UID.equals(longId)
+ || OPTION_LONG_REPORT_AUTHZ_ID.equals(longId)
+ || OPTION_LONG_USE_PW_POLICY_CTL.equals(longId)
+ || OPTION_LONG_USE_SASL_EXTERNAL.equals(longId)
+ || OPTION_LONG_PROTOCOL_VERSION.equals(longId);
}
return ldap;
}
@@ -1965,9 +1924,8 @@
if (arg != null)
{
String longId = arg.getLongIdentifier();
- general =
- OPTION_LONG_HELP.equals(longId)
- || OPTION_LONG_PRODUCT_VERSION.equals(longId);
+ general = OPTION_LONG_HELP.equals(longId)
+ || OPTION_LONG_PRODUCT_VERSION.equals(longId);
}
return general;
}
@@ -1977,11 +1935,11 @@
/**
* Returns whether the usage argument was provided or not. This method
* should be called after a call to parseArguments.
- *
+ *
* @return <CODE>true</CODE> if the usage argument was provided and
* <CODE>false</CODE> otherwise.
*/
- public boolean isUsageArgumentPresent()
+ boolean isUsageArgumentPresent()
{
boolean isUsageArgumentPresent = false;
if (usageArgument != null)
@@ -1996,11 +1954,11 @@
/**
* Returns whether the version argument was provided or not. This
* method should be called after a call to parseArguments.
- *
+ *
* @return <CODE>true</CODE> if the version argument was provided and
* <CODE>false</CODE> otherwise.
*/
- public boolean isVersionArgumentPresent()
+ boolean isVersionArgumentPresent()
{
return versionPresent;
}
diff --git a/sdk/src/org/opends/sdk/tools/ArgumentParserConnectionFactory.java b/sdk/src/org/opends/sdk/tools/ArgumentParserConnectionFactory.java
index 6fc6de3..af94487 100644
--- a/sdk/src/org/opends/sdk/tools/ArgumentParserConnectionFactory.java
+++ b/sdk/src/org/opends/sdk/tools/ArgumentParserConnectionFactory.java
@@ -29,9 +29,8 @@
-import static org.opends.messages.AdminToolMessages.INFO_DESCRIPTION_ADMIN_UID;
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
import java.io.File;
import java.io.FileInputStream;
@@ -50,9 +49,6 @@
import javax.security.auth.Subject;
import javax.security.auth.login.LoginException;
-import org.opends.admin.ads.util.ApplicationKeyManager;
-import org.opends.messages.Message;
-import org.opends.quicksetup.Constants;
import org.opends.sdk.*;
import org.opends.sdk.ldap.LDAPConnectionFactory;
import org.opends.sdk.ldap.LDAPConnectionOptions;
@@ -63,12 +59,8 @@
import org.opends.sdk.util.LocalizedIllegalArgumentException;
import org.opends.sdk.util.SSLUtils;
import org.opends.sdk.util.StaticUtils;
-import org.opends.sdk.util.ssl.PromptingTrustManager;
-import org.opends.sdk.util.ssl.TrustAllTrustManager;
-import org.opends.sdk.util.ssl.TrustStoreTrustManager;
-import org.opends.server.util.SelectableCertificateKeyManager;
-import org.opends.server.util.cli.CLIException;
-import org.opends.server.util.cli.ConsoleApplication;
+
+import com.sun.opends.sdk.util.Message;
@@ -106,11 +98,6 @@
private StringArgument bindDnArg = null;
/**
- * The 'adminUID' global argument.
- */
- private StringArgument adminUidArg = null;
-
- /**
* The 'bindPasswordFile' global argument.
*/
private FileBasedArgument bindPasswordFileArg = null;
@@ -266,16 +253,6 @@
bindDnArg.setPropertyName(OPTION_LONG_BINDDN);
argumentParser.addLdapConnectionArgument(bindDnArg);
- // It is up to the classes that required admin UID to make this
- // argument
- // visible and add it.
- adminUidArg = new StringArgument("adminUID", 'I',
- OPTION_LONG_ADMIN_UID, false, false, true,
- INFO_ADMINUID_PLACEHOLDER.get(), Constants.GLOBAL_ADMIN_UID,
- null, INFO_DESCRIPTION_ADMIN_UID.get());
- adminUidArg.setPropertyName(OPTION_LONG_ADMIN_UID);
- adminUidArg.setHidden(true);
-
bindPasswordArg = new StringArgument("bindPassword",
OPTION_SHORT_BINDPWD, OPTION_LONG_BINDPWD, false, false, true,
INFO_BINDPWD_PLACEHOLDER.get(), null, null,
diff --git a/sdk/src/org/opends/sdk/tools/BooleanArgument.java b/sdk/src/org/opends/sdk/tools/BooleanArgument.java
index 3707350..08ffa8e 100644
--- a/sdk/src/org/opends/sdk/tools/BooleanArgument.java
+++ b/sdk/src/org/opends/sdk/tools/BooleanArgument.java
@@ -28,10 +28,10 @@
-import static org.opends.messages.UtilityMessages.ERR_BOOLEANARG_NO_VALUE_ALLOWED;
+import static com.sun.opends.sdk.util.Messages.ERR_BOOLEANARG_NO_VALUE_ALLOWED;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
@@ -46,7 +46,7 @@
{
/**
* Creates a new Boolean argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -75,7 +75,7 @@
/**
* Indicates whether the provided value is acceptable for use in this
* argument.
- *
+ *
* @param valueString
* The value for which to make the determination.
* @param invalidReason
diff --git a/sdk/src/org/opends/sdk/tools/CLIException.java b/sdk/src/org/opends/sdk/tools/CLIException.java
new file mode 100755
index 0000000..093b70c
--- /dev/null
+++ b/sdk/src/org/opends/sdk/tools/CLIException.java
@@ -0,0 +1,104 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008 Sun Microsystems, Inc.
+ */
+package org.opends.sdk.tools;
+
+
+
+import org.opends.sdk.util.LocalizableException;
+
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.Messages;
+
+
+
+/**
+ * Thrown to indicate that a problem occurred when interacting with the
+ * client. For example, if input provided by the client was invalid.
+ */
+@SuppressWarnings("serial")
+final class CLIException extends Exception implements
+ LocalizableException
+{
+
+ /**
+ * Adapts any exception that may have occurred whilst reading input
+ * from the console.
+ *
+ * @param cause
+ * The exception that occurred whilst reading input from the
+ * console.
+ * @return Returns a new CLI exception describing a problem that
+ * occurred whilst reading input from the console.
+ */
+ static CLIException adaptInputException(Throwable cause)
+ {
+ return new CLIException(Messages.ERR_CONSOLE_INPUT_ERROR.get(cause
+ .getMessage()), cause);
+ }
+
+
+
+ /**
+ * Creates a new CLI exception with the provided message.
+ *
+ * @param message
+ * The message explaining the problem that occurred.
+ */
+ CLIException(Message message)
+ {
+ super(message.toString());
+ this.message = message;
+ }
+
+
+
+ /**
+ * Creates a new CLI exception with the provided message and cause.
+ *
+ * @param message
+ * The message explaining the problem that occurred.
+ * @param cause
+ * The cause of this exception.
+ */
+ CLIException(Message message, Throwable cause)
+ {
+ super(message.toString(), cause);
+ this.message = message;
+ }
+
+
+
+ private final Message message;
+
+
+
+ public Message getMessageObject()
+ {
+ return message;
+ }
+
+}
diff --git a/sdk/src/org/opends/sdk/tools/ConsoleApplication.java b/sdk/src/org/opends/sdk/tools/ConsoleApplication.java
new file mode 100755
index 0000000..56f7e42
--- /dev/null
+++ b/sdk/src/org/opends/sdk/tools/ConsoleApplication.java
@@ -0,0 +1,594 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008-2009 Sun Microsystems, Inc.
+ */
+package org.opends.sdk.tools;
+
+
+
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.Utils.*;
+
+import java.io.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import com.sun.opends.sdk.util.Message;
+
+
+
+/**
+ * This class provides an abstract base class which can be used as the
+ * basis of a console-based application.
+ */
+abstract class ConsoleApplication
+{
+ private static final class NullOutputStream extends OutputStream
+ {
+ /**
+ * The singleton instance for this class.
+ */
+ private static final NullOutputStream instance = new NullOutputStream();
+
+ /**
+ * The singleton print stream tied to the null output stream.
+ */
+ private static final PrintStream printStream = new PrintStream(
+ instance);
+
+
+
+ /**
+ * Retrieves a print stream using this null output stream.
+ *
+ * @return A print stream using this null output stream.
+ */
+ static PrintStream printStream()
+ {
+ return printStream;
+ }
+
+
+
+ /**
+ * Creates a new instance of this null output stream.
+ */
+ private NullOutputStream()
+ {
+ // No implementation is required.
+ }
+
+
+
+ /**
+ * Closes the output stream. This has no effect.
+ */
+ public void close()
+ {
+ // No implementation is required.
+ }
+
+
+
+ /**
+ * Flushes the output stream. This has no effect.
+ */
+ public void flush()
+ {
+ // No implementation is required.
+ }
+
+
+
+ /**
+ * Writes the provided data to this output stream. This has no
+ * effect.
+ *
+ * @param b
+ * The byte array containing the data to be written.
+ */
+ public void write(byte[] b)
+ {
+ // No implementation is required.
+ }
+
+
+
+ /**
+ * Writes the provided data to this output stream. This has no
+ * effect.
+ *
+ * @param b
+ * The byte array containing the data to be written.
+ * @param off
+ * The offset at which the real data begins.
+ * @param len
+ * The number of bytes to be written.
+ */
+ public void write(byte[] b, int off, int len)
+ {
+ // No implementation is required.
+ }
+
+
+
+ /**
+ * Writes the provided byte to this output stream. This has no
+ * effect.
+ *
+ * @param b
+ * The byte to be written.
+ */
+ public void write(int b)
+ {
+ // No implementation is required.
+ }
+ }
+
+
+
+ /**
+ * A null reader.
+ */
+ private static final class NullReader extends Reader
+ {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void close() throws IOException
+ {
+ // Do nothing.
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int read(char[] cbuf, int off, int len) throws IOException
+ {
+ return -1;
+ }
+ }
+
+
+
+ // The error stream which this application should use.
+ private final PrintStream err;
+
+ // The input stream reader which this application should use.
+ private final BufferedReader reader;
+
+ private final InputStream in;
+
+ // The output stream which this application should use.
+ private final PrintStream out;
+
+
+
+ /**
+ * Creates a new console application instance.
+ *
+ * @param in
+ * The application input stream.
+ * @param out
+ * The application output stream.
+ * @param err
+ * The application error stream.
+ */
+ ConsoleApplication(InputStream in, OutputStream out, OutputStream err)
+ {
+ this.in = in;
+ if (in != null)
+ {
+ this.reader = new BufferedReader(new InputStreamReader(in));
+ }
+ else
+ {
+ this.reader = new BufferedReader(new NullReader());
+ }
+
+ if (out != null)
+ {
+ this.out = new PrintStream(out);
+ }
+ else
+ {
+ this.out = NullOutputStream.printStream();
+ }
+
+ if (err != null)
+ {
+ this.err = new PrintStream(err);
+ }
+ else
+ {
+ this.err = NullOutputStream.printStream();
+ }
+ }
+
+
+
+ /**
+ * Gets the application error stream.
+ *
+ * @return Returns the application error stream.
+ */
+ final PrintStream getErrorStream()
+ {
+ return err;
+ }
+
+
+
+ /**
+ * Gets the application input stream reader.
+ *
+ * @return Returns the application input stream.
+ */
+ final BufferedReader getInputReader()
+ {
+ return reader;
+ }
+
+
+
+ /**
+ * Gets the application input stream.
+ *
+ * @return Returns the application input stream.
+ */
+ final InputStream getInputStream()
+ {
+ return in;
+ }
+
+
+
+ /**
+ * Gets the application output stream.
+ *
+ * @return Returns the application output stream.
+ */
+ final PrintStream getOutputStream()
+ {
+ return out;
+ }
+
+
+
+ /**
+ * Indicates whether or not the user has requested advanced mode.
+ *
+ * @return Returns <code>true</code> if the user has requested
+ * advanced mode.
+ */
+ abstract boolean isAdvancedMode();
+
+
+
+ /**
+ * Indicates whether or not the user has requested interactive
+ * behavior.
+ *
+ * @return Returns <code>true</code> if the user has requested
+ * interactive behavior.
+ */
+ abstract boolean isInteractive();
+
+
+
+ /**
+ * Indicates whether or not this console application is running in its
+ * menu-driven mode. This can be used to dictate whether output should
+ * go to the error stream or not. In addition, it may also dictate
+ * whether or not sub-menus should display a cancel option as well as
+ * a quit option.
+ *
+ * @return Returns <code>true</code> if this console application is
+ * running in its menu-driven mode.
+ */
+ abstract boolean isMenuDrivenMode();
+
+
+
+ /**
+ * Indicates whether or not the user has requested quiet output.
+ *
+ * @return Returns <code>true</code> if the user has requested quiet
+ * output.
+ */
+ abstract boolean isQuiet();
+
+
+
+ /**
+ * Indicates whether or not the user has requested script-friendly
+ * output.
+ *
+ * @return Returns <code>true</code> if the user has requested
+ * script-friendly output.
+ */
+ abstract boolean isScriptFriendly();
+
+
+
+ /**
+ * Indicates whether or not the user has requested verbose output.
+ *
+ * @return Returns <code>true</code> if the user has requested verbose
+ * output.
+ */
+ abstract boolean isVerbose();
+
+
+
+ /**
+ * Interactively prompts the user to press return to continue. This
+ * method should be called in situations where a user needs to be
+ * given a chance to read some documentation before continuing
+ * (continuing may cause the documentation to be scrolled out of
+ * view).
+ */
+ final void pressReturnToContinue()
+ {
+ Message msg = INFO_MENU_PROMPT_RETURN_TO_CONTINUE.get();
+ try
+ {
+ readLineOfInput(msg);
+ }
+ catch (CLIException e)
+ {
+ // Ignore the exception - applications don't care.
+ }
+ }
+
+
+
+ /**
+ * Displays a blank line to the error stream.
+ */
+ final void println()
+ {
+ err.println();
+ }
+
+
+
+ /**
+ * Displays a message to the error stream.
+ *
+ * @param msg
+ * The message.
+ */
+ final void println(Message msg)
+ {
+ err.println(wrapText(msg, MAX_LINE_WIDTH));
+ }
+
+
+
+ /**
+ * Displays a message to the error stream.
+ *
+ * @param msg
+ * The message.
+ */
+ final void print(Message msg)
+ {
+ err.print(wrapText(msg, MAX_LINE_WIDTH));
+ }
+
+
+
+ /**
+ * Displays a blank line to the output stream if we are not in quiet
+ * mode.
+ */
+ final void printlnProgress()
+ {
+ if (!isQuiet())
+ {
+ out.println();
+ }
+ }
+
+
+
+ /**
+ * Displays a message to the output stream if we are not in quiet
+ * mode.
+ *
+ * @param msg
+ * The message.
+ */
+ final void printProgress(Message msg)
+ {
+ if (!isQuiet())
+ {
+ out.print(msg);
+ }
+ }
+
+
+
+ /**
+ * Displays a message to the error stream indented by the specified
+ * number of columns.
+ *
+ * @param msg
+ * The message.
+ * @param indent
+ * The number of columns to indent.
+ */
+ final void println(Message msg, int indent)
+ {
+ err.println(wrapText(msg, MAX_LINE_WIDTH, indent));
+ }
+
+
+
+ /**
+ * Displays a message to the error stream if verbose mode is enabled.
+ *
+ * @param msg
+ * The verbose message.
+ */
+ final void printVerboseMessage(Message msg)
+ {
+ if (isVerbose() || isInteractive())
+ {
+ err.println(wrapText(msg, MAX_LINE_WIDTH));
+ }
+ }
+
+
+
+ /**
+ * Interactively retrieves a line of input from the console.
+ *
+ * @param prompt
+ * The prompt.
+ * @return Returns the line of input, or <code>null</code> if the end
+ * of input has been reached.
+ * @throws CLIException
+ * If the line of input could not be retrieved for some
+ * reason.
+ */
+ final String readLineOfInput(Message prompt) throws CLIException
+ {
+ if (prompt != null)
+ {
+ err.print(wrapText(prompt, MAX_LINE_WIDTH));
+ err.print(" ");
+ }
+ try
+ {
+ String s = reader.readLine();
+ if (s == null)
+ {
+ throw CLIException.adaptInputException(new EOFException(
+ "End of input"));
+ }
+ else
+ {
+ return s;
+ }
+ }
+ catch (IOException e)
+ {
+ throw CLIException.adaptInputException(e);
+ }
+ }
+
+
+
+ /**
+ * Commodity method that interactively prompts (on error output) the
+ * user to provide a string value. Any non-empty string will be
+ * allowed (the empty string will indicate that the default should be
+ * used, if there is one).
+ *
+ * @param prompt
+ * The prompt to present to the user.
+ * @param defaultValue
+ * The default value to assume if the user presses ENTER
+ * without typing anything, or <CODE>null</CODE> if there
+ * should not be a default and the user must explicitly
+ * provide a value.
+ * @throws CLIException
+ * If the line of input could not be retrieved for some
+ * reason.
+ * @return The string value read from the user.
+ */
+ final String readInput(Message prompt, String defaultValue)
+ throws CLIException
+ {
+ while (true)
+ {
+ if (defaultValue != null)
+ {
+ prompt = INFO_PROMPT_SINGLE_DEFAULT.get(prompt.toString(),
+ defaultValue);
+ }
+ String response = readLineOfInput(prompt);
+
+ if ("".equals(response))
+ {
+ if (defaultValue == null)
+ {
+ print(INFO_ERROR_EMPTY_RESPONSE.get());
+ }
+ else
+ {
+ return defaultValue;
+ }
+ }
+ else
+ {
+ return response;
+ }
+ }
+ }
+
+
+
+ /**
+ * Commodity method that interactively prompts (on error output) the
+ * user to provide a string value. Any non-empty string will be
+ * allowed (the empty string will indicate that the default should be
+ * used, if there is one). If an error occurs a message will be logged
+ * to the provided logger.
+ *
+ * @param prompt
+ * The prompt to present to the user.
+ * @param defaultValue
+ * The default value to assume if the user presses ENTER
+ * without typing anything, or <CODE>null</CODE> if there
+ * should not be a default and the user must explicitly
+ * provide a value.
+ * @param logger
+ * the Logger to be used to log the error message.
+ * @return The string value read from the user.
+ */
+ final String readInput(Message prompt, String defaultValue,
+ Logger logger)
+ {
+ String s = defaultValue;
+ try
+ {
+ s = readInput(prompt, defaultValue);
+ }
+ catch (CLIException ce)
+ {
+ logger.log(Level.WARNING, "Error reading input: " + ce, ce);
+ }
+ return s;
+ }
+
+}
diff --git a/sdk/src/org/opends/sdk/util/ssl/DistrustAllTrustManager.java b/sdk/src/org/opends/sdk/tools/DistrustAllTrustManager.java
similarity index 93%
rename from sdk/src/org/opends/sdk/util/ssl/DistrustAllTrustManager.java
rename to sdk/src/org/opends/sdk/tools/DistrustAllTrustManager.java
index 3b1ac39..c9ec73a 100644
--- a/sdk/src/org/opends/sdk/util/ssl/DistrustAllTrustManager.java
+++ b/sdk/src/org/opends/sdk/tools/DistrustAllTrustManager.java
@@ -25,7 +25,7 @@
* Copyright 2008 Sun Microsystems, Inc.
*/
-package org.opends.sdk.util.ssl;
+package org.opends.sdk.tools;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
@@ -35,7 +35,7 @@
/**
* An X509TrustManager which trusts everything.
*/
-public class DistrustAllTrustManager implements X509TrustManager {
+final class DistrustAllTrustManager implements X509TrustManager {
/**
* {@inheritDoc}
diff --git a/sdk/src/org/opends/sdk/tools/FileBasedArgument.java b/sdk/src/org/opends/sdk/tools/FileBasedArgument.java
index 2225feb..da51150 100644
--- a/sdk/src/org/opends/sdk/tools/FileBasedArgument.java
+++ b/sdk/src/org/opends/sdk/tools/FileBasedArgument.java
@@ -28,16 +28,16 @@
-import static org.opends.messages.UtilityMessages.*;
-import static org.opends.server.util.StaticUtils.getExceptionMessage;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.LinkedHashMap;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
@@ -67,7 +67,7 @@
/**
* Creates a new file-based argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -105,7 +105,7 @@
/**
* Creates a new file-based argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -158,7 +158,7 @@
/**
* Retrieves a map between the filenames specified on the command line
* and the first lines read from those files.
- *
+ *
* @return A map between the filenames specified on the command line
* and the first lines read from those files.
*/
@@ -172,7 +172,7 @@
/**
* Indicates whether the provided value is acceptable for use in this
* argument.
- *
+ *
* @param valueString
* The value for which to make the determination.
* @param invalidReason
@@ -267,7 +267,7 @@
* <CODE>valueIsAcceptable</CODE> so that the value read from the file
* may be stored in the name-to-value hash and used in place of the
* filename here.
- *
+ *
* @param valueString
* The string representation of the value to add to this
* argument.
diff --git a/sdk/src/org/opends/sdk/tools/HostnameMismatchCertificateException.java b/sdk/src/org/opends/sdk/tools/HostnameMismatchCertificateException.java
new file mode 100644
index 0000000..b022bbd
--- /dev/null
+++ b/sdk/src/org/opends/sdk/tools/HostnameMismatchCertificateException.java
@@ -0,0 +1,93 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2009 Sun Microsystems, Inc.
+ */
+package org.opends.sdk.tools;
+
+
+
+import java.security.cert.CertificateException;
+
+
+
+/**
+ * The certificate's subject DN's value and the host name we tried to
+ * connect to do not match.
+ */
+@SuppressWarnings("serial")
+final class HostnameMismatchCertificateException extends
+ CertificateException
+{
+ private String expectedHostname;
+
+ private String certificateHostname;
+
+
+
+ HostnameMismatchCertificateException(String expectedHostname,
+ String certificateHostname)
+ {
+ this.expectedHostname = expectedHostname;
+ this.certificateHostname = certificateHostname;
+ }
+
+
+
+ HostnameMismatchCertificateException(String msg,
+ String expectedHostname, String certificateHostname)
+ {
+ super(msg);
+ this.expectedHostname = expectedHostname;
+ this.certificateHostname = certificateHostname;
+ }
+
+
+
+ String getExpectedHostname()
+ {
+ return expectedHostname;
+ }
+
+
+
+ void setExpectedHostname(String expectedHostname)
+ {
+ this.expectedHostname = expectedHostname;
+ }
+
+
+
+ String getCertificateHostname()
+ {
+ return certificateHostname;
+ }
+
+
+
+ void setCertificateHostname(String certificateHostname)
+ {
+ this.certificateHostname = certificateHostname;
+ }
+}
diff --git a/sdk/src/org/opends/sdk/tools/IntegerArgument.java b/sdk/src/org/opends/sdk/tools/IntegerArgument.java
index 41f44f4..5c60bb8 100644
--- a/sdk/src/org/opends/sdk/tools/IntegerArgument.java
+++ b/sdk/src/org/opends/sdk/tools/IntegerArgument.java
@@ -28,13 +28,10 @@
-import static org.opends.messages.UtilityMessages.ERR_ARG_CANNOT_DECODE_AS_INT;
-import static org.opends.messages.UtilityMessages.ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND;
-import static org.opends.messages.UtilityMessages.ERR_INTARG_VALUE_ABOVE_UPPER_BOUND;
-import static org.opends.messages.UtilityMessages.ERR_INTARG_VALUE_BELOW_LOWER_BOUND;
+import static com.sun.opends.sdk.util.Messages.*;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
@@ -61,7 +58,7 @@
/**
* Creates a new integer argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -104,7 +101,7 @@
/**
* Creates a new integer argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -168,7 +165,7 @@
/**
* Creates a new integer argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -225,7 +222,7 @@
/**
* Creates a new integer argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -282,7 +279,7 @@
/**
* Creates a new integer argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -360,7 +357,7 @@
/**
* Creates a new integer argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -439,7 +436,7 @@
/**
* Indicates whether a lower bound should be enforced for values of
* this argument.
- *
+ *
* @return <CODE>true</CODE> if a lower bound should be enforced for
* values of this argument, or <CODE>false</CODE> if not.
*/
@@ -453,7 +450,7 @@
/**
* Retrieves the lower bound that may be enforced for values of this
* argument.
- *
+ *
* @return The lower bound that may be enforced for values of this
* argument.
*/
@@ -467,7 +464,7 @@
/**
* Indicates whether a upper bound should be enforced for values of
* this argument.
- *
+ *
* @return <CODE>true</CODE> if a upper bound should be enforced for
* values of this argument, or <CODE>false</CODE> if not.
*/
@@ -481,7 +478,7 @@
/**
* Retrieves the upper bound that may be enforced for values of this
* argument.
- *
+ *
* @return The upper bound that may be enforced for values of this
* argument.
*/
@@ -495,7 +492,7 @@
/**
* Indicates whether the provided value is acceptable for use in this
* argument.
- *
+ *
* @param valueString
* The value for which to make the determination.
* @param invalidReason
diff --git a/sdk/src/org/opends/sdk/tools/LDAPCompare.java b/sdk/src/org/opends/sdk/tools/LDAPCompare.java
index 8af5264..d06594b 100644
--- a/sdk/src/org/opends/sdk/tools/LDAPCompare.java
+++ b/sdk/src/org/opends/sdk/tools/LDAPCompare.java
@@ -29,14 +29,13 @@
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
-import static org.opends.server.util.StaticUtils.*;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
+import static org.opends.sdk.tools.Utils.*;
import java.io.*;
import java.util.ArrayList;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.controls.AssertionControl;
import org.opends.sdk.controls.Control;
@@ -48,7 +47,8 @@
import org.opends.sdk.util.Base64;
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
-import org.opends.server.util.cli.ConsoleApplication;
+
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/tools/LDAPModify.java b/sdk/src/org/opends/sdk/tools/LDAPModify.java
index fdad8c0..5d593e2 100644
--- a/sdk/src/org/opends/sdk/tools/LDAPModify.java
+++ b/sdk/src/org/opends/sdk/tools/LDAPModify.java
@@ -29,9 +29,9 @@
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
-import static org.opends.server.util.StaticUtils.*;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
+import static org.opends.sdk.tools.Utils.*;
import java.io.FileInputStream;
import java.io.IOException;
@@ -41,7 +41,6 @@
import java.util.LinkedList;
import java.util.StringTokenizer;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.controls.*;
import org.opends.sdk.ldif.*;
@@ -52,7 +51,8 @@
import org.opends.sdk.responses.Responses;
import org.opends.sdk.responses.Result;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
-import org.opends.server.util.cli.ConsoleApplication;
+
+import com.sun.opends.sdk.util.Message;
@@ -63,8 +63,11 @@
public final class LDAPModify extends ConsoleApplication
{
private Connection connection;
+
private EntryWriter writer;
+
private Collection<Control> controls;
+
private BooleanArgument verbose;
@@ -144,9 +147,8 @@
// Create the command-line argument parser for use with this
// program.
Message toolDescription = INFO_LDAPMODIFY_TOOL_DESCRIPTION.get();
- ArgumentParser argParser =
- new ArgumentParser(LDAPModify.class.getName(), toolDescription,
- false);
+ ArgumentParser argParser = new ArgumentParser(LDAPModify.class
+ .getName(), toolDescription, false);
ArgumentParserConnectionFactory connectionFactory;
BooleanArgument continueOnError;
@@ -167,112 +169,96 @@
try
{
- connectionFactory =
- new ArgumentParserConnectionFactory(argParser, this);
- propertiesFileArgument =
- new StringArgument("propertiesFilePath", null,
- OPTION_LONG_PROP_FILE_PATH, false, false, true,
- INFO_PROP_FILE_PATH_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_PROP_FILE_PATH.get());
+ connectionFactory = new ArgumentParserConnectionFactory(
+ argParser, this);
+ propertiesFileArgument = new StringArgument("propertiesFilePath",
+ null, OPTION_LONG_PROP_FILE_PATH, false, false, true,
+ INFO_PROP_FILE_PATH_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_PROP_FILE_PATH.get());
argParser.addArgument(propertiesFileArgument);
argParser.setFilePropertiesArgument(propertiesFileArgument);
- noPropertiesFileArgument =
- new BooleanArgument("noPropertiesFileArgument", null,
- OPTION_LONG_NO_PROP_FILE, INFO_DESCRIPTION_NO_PROP_FILE
- .get());
+ noPropertiesFileArgument = new BooleanArgument(
+ "noPropertiesFileArgument", null, OPTION_LONG_NO_PROP_FILE,
+ INFO_DESCRIPTION_NO_PROP_FILE.get());
argParser.addArgument(noPropertiesFileArgument);
argParser.setNoPropertiesFileArgument(noPropertiesFileArgument);
- defaultAdd =
- new BooleanArgument("defaultAdd", 'a', "defaultAdd",
- INFO_MODIFY_DESCRIPTION_DEFAULT_ADD.get());
+ defaultAdd = new BooleanArgument("defaultAdd", 'a', "defaultAdd",
+ INFO_MODIFY_DESCRIPTION_DEFAULT_ADD.get());
argParser.addArgument(defaultAdd);
- filename =
- new StringArgument("filename", OPTION_SHORT_FILENAME,
- OPTION_LONG_FILENAME, false, false, true,
- INFO_FILE_PLACEHOLDER.get(), null, null,
- INFO_LDAPMODIFY_DESCRIPTION_FILENAME.get());
+ filename = new StringArgument("filename", OPTION_SHORT_FILENAME,
+ OPTION_LONG_FILENAME, false, false, true,
+ INFO_FILE_PLACEHOLDER.get(), null, null,
+ INFO_LDAPMODIFY_DESCRIPTION_FILENAME.get());
filename.setPropertyName(OPTION_LONG_FILENAME);
argParser.addArgument(filename);
- proxyAuthzID =
- new StringArgument("proxy_authzid", OPTION_SHORT_PROXYAUTHID,
- OPTION_LONG_PROXYAUTHID, false, false, true,
- INFO_PROXYAUTHID_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_PROXY_AUTHZID.get());
+ proxyAuthzID = new StringArgument("proxy_authzid",
+ OPTION_SHORT_PROXYAUTHID, OPTION_LONG_PROXYAUTHID, false,
+ false, true, INFO_PROXYAUTHID_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_PROXY_AUTHZID.get());
proxyAuthzID.setPropertyName(OPTION_LONG_PROXYAUTHID);
argParser.addArgument(proxyAuthzID);
- assertionFilter =
- new StringArgument("assertionfilter", null,
- OPTION_LONG_ASSERTION_FILE, false, false, true,
- INFO_ASSERTION_FILTER_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_ASSERTION_FILTER.get());
+ assertionFilter = new StringArgument("assertionfilter", null,
+ OPTION_LONG_ASSERTION_FILE, false, false, true,
+ INFO_ASSERTION_FILTER_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_ASSERTION_FILTER.get());
assertionFilter.setPropertyName(OPTION_LONG_ASSERTION_FILE);
argParser.addArgument(assertionFilter);
- preReadAttributes =
- new StringArgument("prereadattrs", null, "preReadAttributes",
- false, false, true,
- INFO_ATTRIBUTE_LIST_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_PREREAD_ATTRS.get());
+ preReadAttributes = new StringArgument("prereadattrs", null,
+ "preReadAttributes", false, false, true,
+ INFO_ATTRIBUTE_LIST_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_PREREAD_ATTRS.get());
preReadAttributes.setPropertyName("preReadAttributes");
argParser.addArgument(preReadAttributes);
- postReadAttributes =
- new StringArgument("postreadattrs", null,
- "postReadAttributes", false, false, true,
- INFO_ATTRIBUTE_LIST_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_POSTREAD_ATTRS.get());
+ postReadAttributes = new StringArgument("postreadattrs", null,
+ "postReadAttributes", false, false, true,
+ INFO_ATTRIBUTE_LIST_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_POSTREAD_ATTRS.get());
postReadAttributes.setPropertyName("postReadAttributes");
argParser.addArgument(postReadAttributes);
- controlStr =
- new StringArgument("control", 'J', "control", false, true,
- true, INFO_LDAP_CONTROL_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_CONTROLS.get());
+ controlStr = new StringArgument("control", 'J', "control", false,
+ true, true, INFO_LDAP_CONTROL_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_CONTROLS.get());
controlStr.setPropertyName("control");
argParser.addArgument(controlStr);
- version =
- new IntegerArgument("version", OPTION_SHORT_PROTOCOL_VERSION,
- OPTION_LONG_PROTOCOL_VERSION, false, false, true,
- INFO_PROTOCOL_VERSION_PLACEHOLDER.get(), 3, null,
- INFO_DESCRIPTION_VERSION.get());
+ version = new IntegerArgument("version",
+ OPTION_SHORT_PROTOCOL_VERSION, OPTION_LONG_PROTOCOL_VERSION,
+ false, false, true, INFO_PROTOCOL_VERSION_PLACEHOLDER.get(),
+ 3, null, INFO_DESCRIPTION_VERSION.get());
version.setPropertyName(OPTION_LONG_PROTOCOL_VERSION);
argParser.addArgument(version);
- encodingStr =
- new StringArgument("encoding", 'i', "encoding", false, false,
- true, INFO_ENCODING_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_ENCODING.get());
+ encodingStr = new StringArgument("encoding", 'i', "encoding",
+ false, false, true, INFO_ENCODING_PLACEHOLDER.get(), null,
+ null, INFO_DESCRIPTION_ENCODING.get());
encodingStr.setPropertyName("encoding");
argParser.addArgument(encodingStr);
- continueOnError =
- new BooleanArgument("continueOnError", 'c',
- "continueOnError", INFO_DESCRIPTION_CONTINUE_ON_ERROR
- .get());
+ continueOnError = new BooleanArgument("continueOnError", 'c',
+ "continueOnError", INFO_DESCRIPTION_CONTINUE_ON_ERROR.get());
continueOnError.setPropertyName("continueOnError");
argParser.addArgument(continueOnError);
- noop =
- new BooleanArgument("no-op", OPTION_SHORT_DRYRUN,
- OPTION_LONG_DRYRUN, INFO_DESCRIPTION_NOOP.get());
+ noop = new BooleanArgument("no-op", OPTION_SHORT_DRYRUN,
+ OPTION_LONG_DRYRUN, INFO_DESCRIPTION_NOOP.get());
noop.setPropertyName(OPTION_LONG_DRYRUN);
argParser.addArgument(noop);
- verbose =
- new BooleanArgument("verbose", 'v', "verbose",
- INFO_DESCRIPTION_VERBOSE.get());
+ verbose = new BooleanArgument("verbose", 'v', "verbose",
+ INFO_DESCRIPTION_VERBOSE.get());
verbose.setPropertyName("verbose");
argParser.addArgument(verbose);
- showUsage =
- new BooleanArgument("showUsage", OPTION_SHORT_HELP,
- OPTION_LONG_HELP, INFO_DESCRIPTION_SHOWUSAGE.get());
+ showUsage = new BooleanArgument("showUsage", OPTION_SHORT_HELP,
+ OPTION_LONG_HELP, INFO_DESCRIPTION_SHOWUSAGE.get());
argParser.addArgument(showUsage);
argParser.setUsageArgument(showUsage, getOutputStream());
}
@@ -339,8 +325,8 @@
}
catch (DecodeException de)
{
- Message message =
- ERR_TOOL_INVALID_CONTROL_STRING.get(ctrlString);
+ Message message = ERR_TOOL_INVALID_CONTROL_STRING
+ .get(ctrlString);
println(message);
ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
@@ -349,8 +335,8 @@
if (proxyAuthzID.isPresent())
{
- Control proxyControl =
- new ProxiedAuthV2Control(proxyAuthzID.getValue());
+ Control proxyControl = new ProxiedAuthV2Control(proxyAuthzID
+ .getValue());
controls.add(proxyControl);
}
@@ -370,8 +356,8 @@
}
catch (LocalizedIllegalArgumentException le)
{
- Message message =
- ERR_LDAP_ASSERTION_INVALID_FILTER.get(le.getMessage());
+ Message message = ERR_LDAP_ASSERTION_INVALID_FILTER.get(le
+ .getMessage());
println(message);
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
@@ -393,8 +379,8 @@
{
String valueStr = postReadAttributes.getValue();
StringTokenizer tokenizer = new StringTokenizer(valueStr, ", ");
- PostReadControl.Request control =
- new PostReadControl.Request(true);
+ PostReadControl.Request control = new PostReadControl.Request(
+ true);
while (tokenizer.hasMoreTokens())
{
control.addAttribute(tokenizer.nextToken());
@@ -425,15 +411,13 @@
{
try
{
- reader =
- new LDIFChangeRecordReader(new FileInputStream(filename
- .getValue()));
+ reader = new LDIFChangeRecordReader(new FileInputStream(
+ filename.getValue()));
}
catch (Exception e)
{
- Message message =
- ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ.get(filename
- .getValue(), e.getLocalizedMessage());
+ Message message = ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ.get(
+ filename.getValue(), e.getLocalizedMessage());
println(message);
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
@@ -458,9 +442,8 @@
}
catch (IOException ioe)
{
- Message message =
- ERR_LDIF_FILE_READ_ERROR.get(filename.getValue(), ioe
- .getLocalizedMessage());
+ Message message = ERR_LDIF_FILE_READ_ERROR.get(filename
+ .getValue(), ioe.getLocalizedMessage());
println(message);
return ResultCode.CLIENT_SIDE_LOCAL_ERROR.intValue();
}
@@ -502,8 +485,8 @@
}
else
{
- Message msg =
- INFO_OPERATION_SUCCESSFUL.get(operationType, name);
+ Message msg = INFO_OPERATION_SUCCESSFUL
+ .get(operationType, name);
println(msg);
if ((r.getDiagnosticMessage() != null)
&& (r.getDiagnosticMessage().length() > 0))
@@ -519,8 +502,8 @@
}
}
- Control control =
- r.getControl(PreReadControl.OID_LDAP_READENTRY_PREREAD);
+ Control control = r
+ .getControl(PreReadControl.OID_LDAP_READENTRY_PREREAD);
if (control != null && control instanceof PreReadControl.Response)
{
PreReadControl.Response dc = (PreReadControl.Response) control;
@@ -534,13 +517,12 @@
throw new RuntimeException(ioe);
}
}
- control =
- r.getControl(PostReadControl.OID_LDAP_READENTRY_POSTREAD);
+ control = r
+ .getControl(PostReadControl.OID_LDAP_READENTRY_POSTREAD);
if (control != null
&& control instanceof PostReadControl.Response)
{
- PostReadControl.Response dc =
- (PostReadControl.Response) control;
+ PostReadControl.Response dc = (PostReadControl.Response) control;
println(INFO_LDAPMODIFY_POSTREAD_ENTRY.get());
try
{
diff --git a/sdk/src/org/opends/sdk/tools/LDAPPasswordModify.java b/sdk/src/org/opends/sdk/tools/LDAPPasswordModify.java
index 6f51b57..900ff61 100644
--- a/sdk/src/org/opends/sdk/tools/LDAPPasswordModify.java
+++ b/sdk/src/org/opends/sdk/tools/LDAPPasswordModify.java
@@ -1,13 +1,12 @@
package org.opends.sdk.tools;
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
-import static org.opends.server.util.StaticUtils.*;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
+import static org.opends.sdk.tools.Utils.*;
import java.io.InputStream;
import java.io.OutputStream;
-import org.opends.messages.Message;
import org.opends.sdk.Connection;
import org.opends.sdk.DecodeException;
import org.opends.sdk.ErrorResultException;
@@ -16,7 +15,8 @@
import org.opends.sdk.extensions.PasswordModifyRequest;
import org.opends.sdk.extensions.PasswordModifyResult;
import org.opends.sdk.util.ByteString;
-import org.opends.server.util.cli.ConsoleApplication;
+
+import com.sun.opends.sdk.util.Message;
/**
* This program provides a utility that uses the LDAP password modify extended
diff --git a/sdk/src/org/opends/sdk/tools/LDAPSearch.java b/sdk/src/org/opends/sdk/tools/LDAPSearch.java
index bc443df..e792a0d 100644
--- a/sdk/src/org/opends/sdk/tools/LDAPSearch.java
+++ b/sdk/src/org/opends/sdk/tools/LDAPSearch.java
@@ -29,9 +29,8 @@
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
-import static org.opends.server.util.ServerConstants.*;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
import java.io.*;
import java.util.ArrayList;
@@ -39,7 +38,6 @@
import java.util.List;
import java.util.StringTokenizer;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.controls.*;
import org.opends.sdk.ldif.EntryWriter;
@@ -53,7 +51,8 @@
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.LocalizedIllegalArgumentException;
import org.opends.sdk.util.StaticUtils;
-import org.opends.server.util.cli.ConsoleApplication;
+
+import com.sun.opends.sdk.util.Message;
@@ -83,7 +82,8 @@
{
entryCount++;
- Control control = entry.getControl(OID_ENTRY_CHANGE_NOTIFICATION);
+ Control control = entry
+ .getControl(EntryChangeNotificationControl.OID_ENTRY_CHANGE_NOTIFICATION);
if (control != null
&& control instanceof EntryChangeNotificationControl)
{
@@ -96,7 +96,8 @@
println(INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN.get(previousDN));
}
}
- control = entry.getControl(OID_ACCOUNT_USABLE_CONTROL);
+ control = entry
+ .getControl(AccountUsabilityControl.OID_ACCOUNT_USABLE_CONTROL);
if (control != null
&& control instanceof AccountUsabilityControl.Response)
{
diff --git a/sdk/src/org/opends/sdk/tools/ModRate.java b/sdk/src/org/opends/sdk/tools/ModRate.java
index 9643894..4d78b64 100644
--- a/sdk/src/org/opends/sdk/tools/ModRate.java
+++ b/sdk/src/org/opends/sdk/tools/ModRate.java
@@ -29,20 +29,19 @@
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
-import static org.opends.server.util.StaticUtils.filterExitCode;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
+import static org.opends.sdk.tools.Utils.*;
import java.io.InputStream;
import java.io.OutputStream;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.requests.ModifyRequest;
import org.opends.sdk.requests.Requests;
import org.opends.sdk.responses.Result;
-import org.opends.server.util.cli.ConsoleApplication;
+import com.sun.opends.sdk.util.Message;
/**
@@ -56,7 +55,7 @@
/**
* The main method for SearchRate tool.
- *
+ *
* @param args
* The command-line arguments provided to this program.
*/
@@ -76,7 +75,7 @@
/**
* Parses the provided command-line arguments and uses that
* information to run the ldapsearch tool.
- *
+ *
* @param args
* The command-line arguments provided to this program.
* @return The error code.
@@ -92,7 +91,7 @@
/**
* Parses the provided command-line arguments and uses that
* information to run the ldapsearch tool.
- *
+ *
* @param args
* The command-line arguments provided to this program.
* @param inStream
@@ -349,7 +348,7 @@
/**
* Indicates whether or not the user has requested advanced mode.
- *
+ *
* @return Returns <code>true</code> if the user has requested
* advanced mode.
*/
@@ -363,7 +362,7 @@
/**
* Indicates whether or not the user has requested interactive
* behavior.
- *
+ *
* @return Returns <code>true</code> if the user has requested
* interactive behavior.
*/
@@ -380,7 +379,7 @@
* go to the error stream or not. In addition, it may also dictate
* whether or not sub-menus should display a cancel option as well as
* a quit option.
- *
+ *
* @return Returns <code>true</code> if this console application is
* running in its menu-driven mode.
*/
@@ -393,7 +392,7 @@
/**
* Indicates whether or not the user has requested quiet output.
- *
+ *
* @return Returns <code>true</code> if the user has requested quiet
* output.
*/
@@ -407,7 +406,7 @@
/**
* Indicates whether or not the user has requested script-friendly
* output.
- *
+ *
* @return Returns <code>true</code> if the user has requested
* script-friendly output.
*/
@@ -420,7 +419,7 @@
/**
* Indicates whether or not the user has requested verbose output.
- *
+ *
* @return Returns <code>true</code> if the user has requested verbose
* output.
*/
diff --git a/sdk/src/org/opends/sdk/tools/MultiChoiceArgument.java b/sdk/src/org/opends/sdk/tools/MultiChoiceArgument.java
index 05ebc4c..4152c6f 100644
--- a/sdk/src/org/opends/sdk/tools/MultiChoiceArgument.java
+++ b/sdk/src/org/opends/sdk/tools/MultiChoiceArgument.java
@@ -28,12 +28,12 @@
-import static org.opends.messages.UtilityMessages.ERR_MCARG_VALUE_NOT_ALLOWED;
+import static com.sun.opends.sdk.util.Messages.ERR_MCARG_VALUE_NOT_ALLOWED;
import java.util.Collection;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
@@ -55,7 +55,7 @@
/**
* Creates a new string argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -105,7 +105,7 @@
/**
* Creates a new string argument with the provided information.
- *
+ *
* @param name
* The generic name that should be used to refer to this
* argument.
@@ -170,7 +170,7 @@
/**
* Retrieves the set of allowed values for this argument. The contents
* of this set must not be altered by the caller.
- *
+ *
* @return The set of allowed values for this argument.
*/
public Collection<T> getAllowedValues()
@@ -183,7 +183,7 @@
/**
* Indicates whether the set of allowed values for this argument
* should be treated in a case-sensitive manner.
- *
+ *
* @return <CODE>true</CODE> if the values are to be treated in a
* case-sensitive manner, or <CODE>false</CODE> if not.
*/
@@ -197,7 +197,7 @@
/**
* Indicates whether the provided value is acceptable for use in this
* argument.
- *
+ *
* @param valueString
* The value for which to make the determination.
* @param invalidReason
@@ -229,7 +229,7 @@
* Specifies the default value that will be used for this argument if
* it is not specified on the command line and it is not set from a
* properties file.
- *
+ *
* @param defaultValue
* The default value that will be used for this argument if
* it is not specified on the command line and it is not set
@@ -246,7 +246,7 @@
* Retrieves the string vale for this argument. If it has multiple
* values, then the first will be returned. If it does not have any
* values, then the default value will be returned.
- *
+ *
* @return The string value for this argument, or <CODE>null</CODE> if
* there are no values and no default value has been given.
* @throws ArgumentException
diff --git a/sdk/src/org/opends/sdk/tools/MultiColumnPrinter.java b/sdk/src/org/opends/sdk/tools/MultiColumnPrinter.java
index 0b1b7db..61454cc 100644
--- a/sdk/src/org/opends/sdk/tools/MultiColumnPrinter.java
+++ b/sdk/src/org/opends/sdk/tools/MultiColumnPrinter.java
@@ -31,16 +31,14 @@
import java.util.Enumeration;
import java.util.Vector;
-import org.opends.server.util.cli.ConsoleApplication;
-
/**
- * Utility class for printing aligned collumns of text.
+ * Utility class for printing aligned columns of text.
* <P>
* This class allows you to specify:
* <UL>
- * <LI>The number of collumns in the output. This will determine the
+ * <LI>The number of columns in the output. This will determine the
* dimension of the string arrays passed to add(String[]) or
* addTitle(String[]).
* <LI>spacing/gap between columns
@@ -49,7 +47,7 @@
* </UL>
* <P>
* Example usage:
- *
+ *
* <PRE>
* MyPrinter mp = new MyPrinter(3, 2, "-");
* String oneRow[] = new String[3];
@@ -70,7 +68,7 @@
* <P>
* The above would print:
* <P>
- *
+ *
* <PRE>
* --------------------------------------
* User Name Email Address Phone Number
@@ -81,7 +79,7 @@
* <P>
* This class also supports multi-row titles and having title strings
* spanning multiple collumns. Example usage:
- *
+ *
* <PRE>
* TestPrinter tp = new TestPrinter(4, 2, "-");
* String oneRow[] = new String[4];
@@ -116,7 +114,7 @@
* <P>
* The above would print:
* <P>
- *
+ *
* <PRE>
* ------------------------------------
* Name Contact
@@ -130,17 +128,25 @@
{
final public static int LEFT = 0;
+
final public static int CENTER = 1;
+
final public static int RIGHT = 2;
private int numCol = 2;
+
private int gap = 4;
+
private int align = CENTER;
+
private int titleAlign = CENTER;
+
private String border = null;
private Vector<String[]> titleTable = null;
+
private Vector<int[]> titleSpanTable = null;
+
private int curLength[];
private final ConsoleApplication app;
@@ -149,7 +155,7 @@
/**
* Creates a new MultiColumnPrinter class.
- *
+ *
* @param numCol
* number of columns
* @param gap
@@ -159,8 +165,8 @@
* @param align
* type of alignment within columns
*/
- public MultiColumnPrinter(int numCol, int gap, String border,
- int align, ConsoleApplication app)
+ MultiColumnPrinter(int numCol, int gap, String border, int align,
+ ConsoleApplication app)
{
titleTable = new Vector<String[]>();
@@ -180,7 +186,7 @@
/**
* Creates a sorted new MultiColumnPrinter class using LEFT alignment.
- *
+ *
* @param numCol
* number of columns
* @param gap
@@ -188,7 +194,7 @@
* @param border
* character used to frame the titles
*/
- public MultiColumnPrinter(int numCol, int gap, String border,
+ MultiColumnPrinter(int numCol, int gap, String border,
ConsoleApplication app)
{
this(numCol, gap, border, LEFT, app);
@@ -199,13 +205,13 @@
/**
* Creates a sorted new MultiColumnPrinter class using LEFT alignment
* and with no title border.
- *
+ *
* @param numCol
* number of columns
* @param gap
* gap between each column
*/
- public MultiColumnPrinter(int numCol, int gap, ConsoleApplication app)
+ MultiColumnPrinter(int numCol, int gap, ConsoleApplication app)
{
this(numCol, gap, null, LEFT, app);
}
@@ -214,14 +220,13 @@
/**
* Adds to the row of strings to be used as the title for the table.
- *
+ *
* @param row
* Array of strings to print in one row of title.
*/
- public void addTitle(String[] row)
+ void addTitle(String[] row)
{
- if (row == null)
- return;
+ if (row == null) return;
int[] span = new int[row.length];
for (int i = 0; i < row.length; i++)
@@ -242,7 +247,7 @@
* is 4 collumns wide, it is possible to have some title strings in a
* row to 'span' multiple collumns:
* <P>
- *
+ *
* <PRE>
* ------------------------------------
* Name Contact
@@ -251,11 +256,11 @@
* Bob Jones bob@foo.com 123-4567
* John Doe john@foo.com 456-7890
* </PRE>
- *
+ *
* In the example above, the title row has a string 'Name' that spans
* 2 collumns. The string 'Contact' also spans 2 collumns. The above
* is done by passing in to addTitle() an array that contains:
- *
+ *
* <PRE>
* span[0] = 2; // spans 2 collumns
* span[1] = 0; // spans 0 collumns, ignore
@@ -265,7 +270,7 @@
* <P>
* A span value of 1 is the default. The method addTitle(String[] row)
* basically does:
- *
+ *
* <PRE>
* int[] span = new int[row.length];
* for (int i = 0; i < row.length; i++)
@@ -274,14 +279,14 @@
* }
* addTitle(row, span);
* </PRE>
- *
+ *
* @param row
* Array of strings to print in one row of title.
* @param span
* Array of integers that reflect the number of collumns the
* corresponding title string will occupy.
*/
- public void addTitle(String[] row, int span[])
+ void addTitle(String[] row, int span[])
{
// Need to create a new instance of it, otherwise the new values
// will always overwrite the old values.
@@ -300,10 +305,10 @@
/**
* Set alignment for title strings
- *
+ *
* @param titleAlign
*/
- public void setTitleAlign(int titleAlign)
+ void setTitleAlign(int titleAlign)
{
this.titleAlign = titleAlign;
}
@@ -313,7 +318,7 @@
/**
* Clears title strings.
*/
- public void clearTitle()
+ void clearTitle()
{
titleTable.clear();
titleSpanTable.clear();
@@ -324,7 +329,7 @@
/**
* Prints the table title
*/
- public void printTitle()
+ void printTitle()
{
// Get the longest string for each column and store in curLength[]
@@ -333,15 +338,14 @@
Enumeration<int[]> spanEnum = titleSpanTable.elements();
while (elm.hasMoreElements())
{
- String[] row = (String[]) elm.nextElement();
- int[] curSpan = (int[]) spanEnum.nextElement();
+ String[] row = elm.nextElement();
+ int[] curSpan = spanEnum.nextElement();
for (int i = 0; i < numCol; i++)
{
// None of the fields should be null, but if it
// happens to be so, replace it with "-".
- if (row[i] == null)
- row[i] = "-";
+ if (row[i] == null) row[i] = "-";
int len = row[i].length();
@@ -384,15 +388,14 @@
while (elm.hasMoreElements())
{
- String[] row = (String[]) elm.nextElement();
- int[] curSpan = (int[]) spanEnum.nextElement();
+ String[] row = elm.nextElement();
+ int[] curSpan = spanEnum.nextElement();
for (int i = 0; i < numCol; i++)
{
int availableSpace = 0, span = curSpan[i];
- if (span == 0)
- continue;
+ if (span == 0) continue;
availableSpace = curLength[i];
@@ -410,8 +413,7 @@
int space_before = availableSpace - row[i].length();
printSpaces(space_before);
app.getOutputStream().print(row[i]);
- if (i < numCol - 1)
- printSpaces(gap);
+ if (i < numCol - 1) printSpaces(gap);
}
else if (titleAlign == CENTER)
{
@@ -422,8 +424,7 @@
printSpaces(space_before);
app.getOutputStream().print(row[i]);
printSpaces(space_after);
- if (i < numCol - 1)
- printSpaces(gap);
+ if (i < numCol - 1) printSpaces(gap);
}
else
{
@@ -442,11 +443,11 @@
/**
* Adds one row of text to output.
- *
+ *
* @param row
* Array of strings to print in one row.
*/
- public void printRow(String... row)
+ void printRow(String... row)
{
for (int i = 0; i < numCol; i++)
{
@@ -455,8 +456,7 @@
int space_before = curLength[i] - row[i].length();
printSpaces(space_before);
app.getOutputStream().print(row[i]);
- if (i < numCol - 1)
- printSpaces(gap);
+ if (i < numCol - 1) printSpaces(gap);
}
else if (align == CENTER)
{
@@ -467,8 +467,7 @@
printSpaces(space1);
app.getOutputStream().print(row[i]);
printSpaces(space2);
- if (i < numCol - 1)
- printSpaces(gap);
+ if (i < numCol - 1) printSpaces(gap);
}
else
{
@@ -494,8 +493,7 @@
private void printBorder()
{
- if (border == null)
- return;
+ if (border == null) return;
// For the value in each column
for (int i = 0; i < numCol; i++)
diff --git a/sdk/src/org/opends/sdk/tools/PerformanceRunner.java b/sdk/src/org/opends/sdk/tools/PerformanceRunner.java
index 3a00dbe..8e29882 100644
--- a/sdk/src/org/opends/sdk/tools/PerformanceRunner.java
+++ b/sdk/src/org/opends/sdk/tools/PerformanceRunner.java
@@ -37,11 +37,11 @@
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.AuthenticatedConnectionFactory.AuthenticatedAsynchronousConnection;
import org.opends.sdk.responses.Result;
-import org.opends.server.util.cli.ConsoleApplication;
+
+import com.sun.opends.sdk.util.Message;
@@ -50,34 +50,53 @@
*/
abstract class PerformanceRunner
{
- private final AtomicInteger operationRecentCount =
- new AtomicInteger();
+ private final AtomicInteger operationRecentCount = new AtomicInteger();
+
private final AtomicInteger successRecentCount = new AtomicInteger();
+
private final AtomicInteger failedRecentCount = new AtomicInteger();
+
private final AtomicLong waitRecentTime = new AtomicLong();
- private final AtomicReference<ReversableArray> eTimeBuffer =
- new AtomicReference<ReversableArray>(new ReversableArray(100000));
+
+ private final AtomicReference<ReversableArray> eTimeBuffer = new AtomicReference<ReversableArray>(
+ new ReversableArray(100000));
+
private final ConsoleApplication app;
- private final ThreadLocal<DataSource[]> dataSources =
- new ThreadLocal<DataSource[]>();
+
+ private final ThreadLocal<DataSource[]> dataSources = new ThreadLocal<DataSource[]>();
private volatile boolean stopRequested;
+
private int numThreads;
+
private int numConnections;
+
private int targetThroughput;
+
private int maxIterations;
+
private boolean isAsync;
+
private boolean noRebind;
+
private int statsInterval;
private IntegerArgument numThreadsArgument;
+
private IntegerArgument maxIterationsArgument;
+
private IntegerArgument statsIntervalArgument;
+
private IntegerArgument targetThroughputArgument;
+
private IntegerArgument numConnectionsArgument;
+
private IntegerArgument percentilesArgument;
+
private BooleanArgument keepConnectionsOpen;
+
private BooleanArgument noRebindArgument;
+
private BooleanArgument asyncArgument;
private StringArgument arguments;
@@ -88,97 +107,76 @@
throws ArgumentException
{
this.app = app;
- numThreadsArgument =
- new IntegerArgument("numThreads", 't', "numThreads", false,
- false, true, Message.raw("{numThreads}"), 1, null, true, 1,
- false, 0, Message
- .raw("number of search threads per connection"));
+ numThreadsArgument = new IntegerArgument("numThreads", 't',
+ "numThreads", false, false, true, Message.raw("{numThreads}"),
+ 1, null, true, 1, false, 0, Message
+ .raw("number of search threads per connection"));
numThreadsArgument.setPropertyName("numThreads");
argParser.addArgument(numThreadsArgument);
- numConnectionsArgument =
- new IntegerArgument("numConnections", 'c', "numConnections",
- false, false, true, Message.raw("{numConnections}"), 1,
- null, true, 1, false, 0, Message
- .raw("number of connections"));
+ numConnectionsArgument = new IntegerArgument("numConnections", 'c',
+ "numConnections", false, false, true, Message
+ .raw("{numConnections}"), 1, null, true, 1, false, 0,
+ Message.raw("number of connections"));
numThreadsArgument.setPropertyName("numConnections");
argParser.addArgument(numConnectionsArgument);
- maxIterationsArgument =
- new IntegerArgument("maxIterations", 'm', "maxIterations",
- false, false, true, Message.raw("{maxIterations}"), 0,
- null, Message
- .raw("max searches per thread, 0 for unlimited"));
+ maxIterationsArgument = new IntegerArgument("maxIterations", 'm',
+ "maxIterations", false, false, true, Message
+ .raw("{maxIterations}"), 0, null, Message
+ .raw("max searches per thread, 0 for unlimited"));
numThreadsArgument.setPropertyName("maxIterations");
argParser.addArgument(maxIterationsArgument);
- statsIntervalArgument =
- new IntegerArgument(
- "statInterval",
- 'i',
- "statInterval",
- false,
- false,
- true,
- Message.raw("{statInterval}"),
- 5,
- null,
- true,
- 1,
- false,
- 0,
- Message
- .raw("Display results each specified number of seconds"));
+ statsIntervalArgument = new IntegerArgument("statInterval", 'i',
+ "statInterval", false, false, true, Message
+ .raw("{statInterval}"), 5, null, true, 1, false, 0, Message
+ .raw("Display results each specified number of seconds"));
numThreadsArgument.setPropertyName("statInterval");
argParser.addArgument(statsIntervalArgument);
- targetThroughputArgument =
- new IntegerArgument("targetThroughput", 'M',
- "targetThroughput", false, false, true, Message
- .raw("{targetThroughput}"), 0, null, Message
- .raw("Target average throughput to achieve"));
+ targetThroughputArgument = new IntegerArgument("targetThroughput",
+ 'M', "targetThroughput", false, false, true, Message
+ .raw("{targetThroughput}"), 0, null, Message
+ .raw("Target average throughput to achieve"));
targetThroughputArgument.setPropertyName("targetThroughput");
argParser.addArgument(targetThroughputArgument);
- percentilesArgument =
- new IntegerArgument("percentile", 'e', "percentile", false,
- true, Message.raw("{percentile}"), true, 50, true, 100,
- Message.raw("Calculate max response time for a "
- + "percentile of operations"));
+ percentilesArgument = new IntegerArgument("percentile", 'e',
+ "percentile", false, true, Message.raw("{percentile}"), true,
+ 50, true, 100, Message.raw("Calculate max response time for a "
+ + "percentile of operations"));
percentilesArgument.setPropertyName("percentile");
argParser.addArgument(percentilesArgument);
- keepConnectionsOpen =
- new BooleanArgument("keepConnectionsOpen", 'f',
- "keepConnectionsOpen", Message.raw("keep connections open"));
+ keepConnectionsOpen = new BooleanArgument("keepConnectionsOpen",
+ 'f', "keepConnectionsOpen", Message
+ .raw("keep connections open"));
keepConnectionsOpen.setPropertyName("keepConnectionsOpen");
argParser.addArgument(keepConnectionsOpen);
- noRebindArgument =
- new BooleanArgument("noRebind", 'F', "noRebind", Message
- .raw("keep connections open and don't rebind"));
+ noRebindArgument = new BooleanArgument("noRebind", 'F', "noRebind",
+ Message.raw("keep connections open and don't rebind"));
keepConnectionsOpen.setPropertyName("noRebind");
argParser.addArgument(noRebindArgument);
- asyncArgument =
- new BooleanArgument("asynchronous", 'A', "asynchronous",
- Message.raw("asynch, don't wait for results"));
+ asyncArgument = new BooleanArgument("asynchronous", 'A',
+ "asynchronous", Message.raw("asynch, don't wait for results"));
keepConnectionsOpen.setPropertyName("asynchronous");
argParser.addArgument(asyncArgument);
- arguments =
- new StringArgument(
- "arguments",
- 'g',
- "arguments",
- false,
- true,
- true,
- Message.raw("{arguments}"),
- null,
- null,
- Message
- .raw("arguments for variables in the filter and/or base DN"));
+ arguments = new StringArgument(
+ "arguments",
+ 'g',
+ "arguments",
+ false,
+ true,
+ true,
+ Message.raw("{arguments}"),
+ null,
+ null,
+ Message
+ .raw("arguments for variables in the filter and/or base DN"));
arguments.setPropertyName("arguments");
argParser.addArgument(arguments);
}
@@ -239,9 +237,8 @@
if (keepConnectionsOpen.isPresent()
|| noRebindArgument.isPresent())
{
- connection =
- connectionFactory.getAsynchronousConnection(null, null)
- .get();
+ connection = connectionFactory.getAsynchronousConnection(
+ null, null).get();
}
for (int j = 0; j < numThreads; j++)
{
@@ -357,7 +354,9 @@
Thread
{
private int count;
+
private final AsynchronousConnection connection;
+
private final ConnectionFactory<?> connectionFactory;
@@ -400,8 +399,7 @@
AsynchronousConnection connection;
R handler;
- double targetTimeInMS =
- (1.0 / (targetThroughput / (numThreads * numConnections))) * 1000.0;
+ double targetTimeInMS = (1.0 / (targetThroughput / (numThreads * numConnections))) * 1000.0;
double sleepTimeInMS = 0;
long start;
while (!stopRequested
@@ -414,9 +412,8 @@
{
try
{
- connection =
- connectionFactory.getAsynchronousConnection(null, null)
- .get();
+ connection = connectionFactory.getAsynchronousConnection(
+ null, null).get();
}
catch (InterruptedException e)
{
@@ -441,8 +438,7 @@
if (!noRebind
&& connection instanceof AuthenticatedAsynchronousConnection)
{
- AuthenticatedAsynchronousConnection ac =
- (AuthenticatedAsynchronousConnection) connection;
+ AuthenticatedAsynchronousConnection ac = (AuthenticatedAsynchronousConnection) connection;
try
{
ac.rebind(null, null).get();
@@ -464,8 +460,8 @@
}
}
}
- future =
- performOperation(connection, handler, dataSources.get());
+ future = performOperation(connection, handler, dataSources
+ .get());
operationRecentCount.getAndIncrement();
count++;
if (!isAsync)
@@ -508,9 +504,8 @@
continue;
}
- sleepTimeInMS +=
- targetTimeInMS
- - ((System.nanoTime() - start) / 1000000.0);
+ sleepTimeInMS += targetTimeInMS
+ - ((System.nanoTime() - start) / 1000000.0);
if (sleepTimeInMS < -60000)
{
// If we fall behind by 60 seconds, just forget about
@@ -527,26 +522,41 @@
class StatsThread extends Thread
{
protected final String[] EMPTY_STRINGS = new String[0];
+
private final MultiColumnPrinter printer;
+
private final List<GarbageCollectorMXBean> beans;
+
private final Set<Double> percentiles;
+
private final int numColumns;
private ReversableArray etimes = new ReversableArray(100000);
+
private final ReversableArray array = new ReversableArray(200000);
protected long totalSuccessCount;
+
protected long totalOperationCount;
+
protected long totalFailedCount;
+
protected long totalWaitTime;
+
protected int successCount;
+
protected int searchCount;
+
protected int failedCount;
+
protected long waitTime;
protected long lastStatTime;
+
protected long lastGCDuration;
+
protected double recentDuration;
+
protected double averageDuration;
@@ -569,12 +579,10 @@
}
}
this.percentiles = pSet.descendingSet();
- numColumns =
- 5 + this.percentiles.size() + additionalColumns.length
- + (isAsync ? 1 : 0);
- printer =
- new MultiColumnPrinter(numColumns, 2, "-",
- MultiColumnPrinter.RIGHT, app);
+ numColumns = 5 + this.percentiles.size()
+ + additionalColumns.length + (isAsync ? 1 : 0);
+ printer = new MultiColumnPrinter(numColumns, 2, "-",
+ MultiColumnPrinter.RIGHT, app);
printer.setTitleAlign(MultiColumnPrinter.RIGHT);
String[] title = new String[numColumns];
@@ -676,17 +684,15 @@
averageDuration -= gcDuration;
recentDuration /= 1000.0;
averageDuration /= 1000.0;
- strings[0] =
- String.format("%.1f", successCount / recentDuration);
- strings[1] =
- String.format("%.1f", totalSuccessCount / averageDuration);
- strings[2] =
- String.format("%.3f",
- (waitTime - (gcDuration - lastGCDuration))
- / successCount / 1000000.0);
- strings[3] =
- String.format("%.3f", (totalWaitTime - gcDuration)
- / totalSuccessCount / 1000000.0);
+ strings[0] = String.format("%.1f", successCount
+ / recentDuration);
+ strings[1] = String.format("%.1f", totalSuccessCount
+ / averageDuration);
+ strings[2] = String.format("%.3f",
+ (waitTime - (gcDuration - lastGCDuration)) / successCount
+ / 1000000.0);
+ strings[3] = String.format("%.3f", (totalWaitTime - gcDuration)
+ / totalSuccessCount / 1000000.0);
boolean changed = false;
etimes = eTimeBuffer.getAndSet(etimes);
@@ -733,28 +739,26 @@
int i = 4;
for (Double percent : percentiles)
{
- index =
- array.size()
- - (int) Math.floor((percent / 100.0)
- * totalSuccessCount) - 1;
+ index = array.size()
+ - (int) Math.floor((percent / 100.0) * totalSuccessCount)
+ - 1;
if (index < 0)
{
- strings[i++] =
- String.format("*%.3f", array.get(0) / 1000000.0);
+ strings[i++] = String.format("*%.3f",
+ array.get(0) / 1000000.0);
}
else
{
- strings[i++] =
- String.format("%.3f", array.get(index) / 1000000.0);
+ strings[i++] = String.format("%.3f",
+ array.get(index) / 1000000.0);
}
}
- strings[i++] =
- String.format("%.1f", totalFailedCount / averageDuration);
+ strings[i++] = String.format("%.1f", totalFailedCount
+ / averageDuration);
if (isAsync)
{
- strings[i++] =
- String
- .format("%.1f", (double) searchCount / successCount);
+ strings[i++] = String.format("%.1f", (double) searchCount
+ / successCount);
}
for (String column : getAdditionalColumns())
{
@@ -770,7 +774,9 @@
private static class ReversableArray
{
private final long[] array;
+
private boolean reversed;
+
private int size;
diff --git a/sdk/src/org/opends/sdk/tools/PromptingTrustManager.java b/sdk/src/org/opends/sdk/tools/PromptingTrustManager.java
new file mode 100644
index 0000000..b2690ee
--- /dev/null
+++ b/sdk/src/org/opends/sdk/tools/PromptingTrustManager.java
@@ -0,0 +1,483 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008 Sun Microsystems, Inc.
+ */
+
+package org.opends.sdk.tools;
+
+
+
+import static com.sun.opends.sdk.util.Messages.*;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.TrustManagerFactory;
+import javax.net.ssl.X509TrustManager;
+
+import org.opends.sdk.util.Validator;
+
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
+
+
+
+/**
+ * A trust manager which prompts the user for the length of time that
+ * they would like to trust a server certificate.
+ */
+final class PromptingTrustManager implements X509TrustManager
+{
+ static private final Logger LOG = Logger
+ .getLogger(PromptingTrustManager.class.getName());
+
+ static private final String DEFAULT_PATH = System
+ .getProperty("user.home")
+ + File.separator + ".opends" + File.separator + "keystore";
+
+ static private final char[] DEFAULT_PASSWORD = "OpenDS".toCharArray();
+
+
+
+ /**
+ * Enumeration description server certificate trust option.
+ */
+ private static enum TrustOption
+ {
+ UNTRUSTED(1, INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_NO.get()), SESSION(
+ 2, INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_SESSION.get()), PERMANENT(
+ 3, INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_ALWAYS.get()), CERTIFICATE_DETAILS(
+ 4, INFO_LDAP_CONN_PROMPT_SECURITY_CERTIFICATE_DETAILS.get());
+
+ private Integer choice;
+
+ private Message msg;
+
+
+
+ /**
+ * Private constructor.
+ *
+ * @param i
+ * the menu return value.
+ * @param msg
+ * the message message.
+ */
+ private TrustOption(int i, Message msg)
+ {
+ choice = i;
+ this.msg = msg;
+ }
+
+
+
+ /**
+ * Returns the choice number.
+ *
+ * @return the attribute name.
+ */
+ Integer getChoice()
+ {
+ return choice;
+ }
+
+
+
+ /**
+ * Return the menu message.
+ *
+ * @return the menu message.
+ */
+ Message getMenuMessage()
+ {
+ return msg;
+ }
+ }
+
+
+
+ private final KeyStore inMemoryTrustStore;
+
+ private final KeyStore onDiskTrustStore;
+
+ private final X509TrustManager inMemoryTrustManager;
+
+ private final X509TrustManager onDiskTrustManager;
+
+ private final X509TrustManager nestedTrustManager;
+
+ private final ConsoleApplication app;
+
+
+
+ PromptingTrustManager(ConsoleApplication app,
+ X509TrustManager sourceTrustManager) throws KeyStoreException,
+ IOException, NoSuchAlgorithmException, CertificateException
+ {
+ this(app, DEFAULT_PATH, sourceTrustManager);
+ }
+
+
+
+ PromptingTrustManager(ConsoleApplication app,
+ String acceptedStorePath, X509TrustManager sourceTrustManager)
+ throws KeyStoreException, IOException, NoSuchAlgorithmException,
+ CertificateException
+ {
+ Validator.ensureNotNull(app, acceptedStorePath);
+ this.app = app;
+ this.nestedTrustManager = sourceTrustManager;
+ inMemoryTrustStore = KeyStore
+ .getInstance(KeyStore.getDefaultType());
+ onDiskTrustStore = KeyStore.getInstance(KeyStore.getDefaultType());
+
+ File onDiskTrustStorePath = new File(acceptedStorePath);
+ inMemoryTrustStore.load(null, null);
+ if (!onDiskTrustStorePath.exists())
+ {
+ onDiskTrustStore.load(null, null);
+ }
+ else
+ {
+ FileInputStream fos = new FileInputStream(onDiskTrustStorePath);
+ onDiskTrustStore.load(fos, DEFAULT_PASSWORD);
+ }
+ TrustManagerFactory tmf = TrustManagerFactory
+ .getInstance(TrustManagerFactory.getDefaultAlgorithm());
+
+ tmf.init(inMemoryTrustStore);
+ X509TrustManager x509tm = null;
+ for (TrustManager tm : tmf.getTrustManagers())
+ {
+ if (tm instanceof X509TrustManager)
+ {
+ x509tm = (X509TrustManager) tm;
+ break;
+ }
+ }
+ if (x509tm == null)
+ {
+ throw new NoSuchAlgorithmException();
+ }
+ this.inMemoryTrustManager = x509tm;
+
+ tmf.init(onDiskTrustStore);
+ x509tm = null;
+ for (TrustManager tm : tmf.getTrustManagers())
+ {
+ if (tm instanceof X509TrustManager)
+ {
+ x509tm = (X509TrustManager) tm;
+ break;
+ }
+ }
+ if (x509tm == null)
+ {
+ throw new NoSuchAlgorithmException();
+ }
+ this.onDiskTrustManager = x509tm;
+ }
+
+
+
+ public void checkClientTrusted(X509Certificate[] x509Certificates,
+ String s) throws CertificateException
+ {
+ try
+ {
+ inMemoryTrustManager.checkClientTrusted(x509Certificates, s);
+ }
+ catch (Exception ce1)
+ {
+ try
+ {
+ onDiskTrustManager.checkClientTrusted(x509Certificates, s);
+ }
+ catch (Exception ce2)
+ {
+ if (nestedTrustManager != null)
+ {
+ try
+ {
+ nestedTrustManager.checkClientTrusted(x509Certificates, s);
+ }
+ catch (Exception ce3)
+ {
+ checkManuallyTrusted(x509Certificates, ce3);
+ }
+ }
+ else
+ {
+ checkManuallyTrusted(x509Certificates, ce1);
+ }
+ }
+ }
+ }
+
+
+
+ public void checkServerTrusted(X509Certificate[] x509Certificates,
+ String s) throws CertificateException
+ {
+ try
+ {
+ inMemoryTrustManager.checkServerTrusted(x509Certificates, s);
+ }
+ catch (Exception ce1)
+ {
+ try
+ {
+ onDiskTrustManager.checkServerTrusted(x509Certificates, s);
+ }
+ catch (Exception ce2)
+ {
+ if (nestedTrustManager != null)
+ {
+ try
+ {
+ nestedTrustManager.checkServerTrusted(x509Certificates, s);
+ }
+ catch (Exception ce3)
+ {
+ checkManuallyTrusted(x509Certificates, ce3);
+ }
+ }
+ else
+ {
+ checkManuallyTrusted(x509Certificates, ce1);
+ }
+ }
+ }
+ }
+
+
+
+ public X509Certificate[] getAcceptedIssuers()
+ {
+ if (nestedTrustManager != null)
+ {
+ return nestedTrustManager.getAcceptedIssuers();
+ }
+ return new X509Certificate[0];
+ }
+
+
+
+ /**
+ * Indicate if the certificate chain can be trusted.
+ *
+ * @param chain
+ * The certificate chain to validate certificate.
+ */
+ private void checkManuallyTrusted(X509Certificate[] chain,
+ Exception exception) throws CertificateException
+ {
+ app.println();
+ app
+ .println(INFO_LDAP_CONN_PROMPT_SECURITY_SERVER_CERTIFICATE
+ .get());
+ app.println();
+ for (int i = 0; i < chain.length; i++)
+ {
+ // Certificate DN
+ app.println(INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_USER_DN
+ .get(chain[i].getSubjectDN().toString()));
+
+ // certificate validity
+ app.println(INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_VALIDITY
+ .get(chain[i].getNotBefore().toString(), chain[i]
+ .getNotAfter().toString()));
+
+ // certificate Issuer
+ app.println(INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_ISSUER
+ .get(chain[i].getIssuerDN().toString()));
+
+ app.println();
+ app.println();
+ }
+
+ app.println();
+ app.println(INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION.get());
+ app.println();
+
+ Map<String, TrustOption> menuOptions = new HashMap<String, TrustOption>();
+ for (TrustOption t : TrustOption.values())
+ {
+ menuOptions.put(t.getChoice().toString(), t);
+
+ MessageBuilder builder = new MessageBuilder();
+ builder.append(t.getChoice());
+ builder.append(") ");
+ builder.append(t.getMenuMessage());
+ app.println(builder.toMessage(), 2 /* Indent options */);
+ }
+
+ TrustOption defaultTrustMethod = TrustOption.SESSION;
+ Message promptMsg = INFO_MENU_PROMPT_SINGLE_DEFAULT
+ .get(defaultTrustMethod.getChoice().toString());
+
+ while (true)
+ {
+ app.println();
+ String choice;
+ try
+ {
+ choice = app.readInput(promptMsg, defaultTrustMethod
+ .getChoice().toString());
+ }
+ catch (CLIException e)
+ {
+ // What can we do here?
+ throw new CertificateException(exception);
+ }
+ finally
+ {
+ app.println();
+ }
+
+ TrustOption option = menuOptions.get(choice.trim());
+ if (option == null)
+ {
+ app.println(ERR_MENU_BAD_CHOICE_SINGLE.get());
+ app.println();
+ continue;
+ }
+
+ switch (option)
+ {
+ case UNTRUSTED:
+ if (exception instanceof CertificateException)
+ {
+ throw (CertificateException) exception;
+ }
+ else
+ {
+ throw new CertificateException(exception);
+ }
+ case CERTIFICATE_DETAILS:
+ for (X509Certificate aChain : chain)
+ {
+ app.println();
+ app.println(INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE
+ .get(aChain.toString()));
+ app.println();
+ }
+ break;
+ default: // SESSION / PERMANENT.
+ // Update the trust manager with the new certificate
+ acceptCertificate(chain, option == TrustOption.PERMANENT);
+ return;
+ }
+ }
+ }
+
+
+
+ /**
+ * This method is called when the user accepted a certificate.
+ *
+ * @param chain
+ * the certificate chain accepted by the user. certificate.
+ */
+ void acceptCertificate(X509Certificate[] chain, boolean permanent)
+ {
+ if (permanent)
+ {
+ LOG.log(Level.INFO, "Permanently accepting certificate chain to "
+ + "truststore");
+ }
+ else
+ {
+ LOG.log(Level.INFO,
+ "Accepting certificate chain for this session");
+ }
+
+ for (X509Certificate aChain : chain)
+ {
+ try
+ {
+ String alias = aChain.getSubjectDN().getName();
+ inMemoryTrustStore.setCertificateEntry(alias, aChain);
+ if (permanent)
+ {
+ onDiskTrustStore.setCertificateEntry(alias, aChain);
+ }
+ }
+ catch (Exception e)
+ {
+ LOG.log(Level.WARNING, "Error setting certificate to store: "
+ + e + "\nCert: " + aChain.toString());
+ }
+ }
+
+ if (permanent)
+ {
+ try
+ {
+ File truststoreFile = new File(DEFAULT_PATH);
+ if (!truststoreFile.exists())
+ {
+ createFile(truststoreFile);
+ }
+ FileOutputStream fos = new FileOutputStream(truststoreFile);
+ onDiskTrustStore.store(fos, DEFAULT_PASSWORD);
+ fos.close();
+ }
+ catch (Exception e)
+ {
+ LOG.log(Level.WARNING, "Error saving store to disk: " + e);
+ }
+ }
+ }
+
+
+
+ private boolean createFile(File f) throws IOException
+ {
+ boolean success = false;
+ if (f != null)
+ {
+ File parent = f.getParentFile();
+ if (!parent.exists())
+ {
+ parent.mkdirs();
+ }
+ success = f.createNewFile();
+ }
+ return success;
+ }
+}
diff --git a/sdk/src/org/opends/sdk/tools/SearchRate.java b/sdk/src/org/opends/sdk/tools/SearchRate.java
index b3c157e..a5d380d 100644
--- a/sdk/src/org/opends/sdk/tools/SearchRate.java
+++ b/sdk/src/org/opends/sdk/tools/SearchRate.java
@@ -29,9 +29,9 @@
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.tools.ToolConstants.*;
-import static org.opends.server.util.StaticUtils.filterExitCode;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.tools.ToolConstants.*;
+import static org.opends.sdk.tools.Utils.*;
import java.io.InputStream;
import java.io.OutputStream;
@@ -40,12 +40,14 @@
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
-import org.opends.messages.Message;
import org.opends.sdk.*;
import org.opends.sdk.requests.Requests;
import org.opends.sdk.requests.SearchRequest;
-import org.opends.sdk.responses.*;
-import org.opends.server.util.cli.ConsoleApplication;
+import org.opends.sdk.responses.Result;
+import org.opends.sdk.responses.SearchResultEntry;
+import org.opends.sdk.responses.SearchResultReference;
+
+import com.sun.opends.sdk.util.Message;
@@ -60,15 +62,15 @@
/**
* The main method for SearchRate tool.
- *
+ *
* @param args
* The command-line arguments provided to this program.
*/
public static void main(String[] args)
{
- int retCode =
- mainSearchRate(args, System.in, System.out, System.err);
+ int retCode = mainSearchRate(args, System.in, System.out,
+ System.err);
if (retCode != 0)
{
@@ -81,7 +83,7 @@
/**
* Parses the provided command-line arguments and uses that
* information to run the ldapsearch tool.
- *
+ *
* @param args
* The command-line arguments provided to this program.
* @return The error code.
@@ -97,7 +99,7 @@
/**
* Parses the provided command-line arguments and uses that
* information to run the ldapsearch tool.
- *
+ *
* @param args
* The command-line arguments provided to this program.
* @param inStream
@@ -133,13 +135,13 @@
{
// Create the command-line argument parser for use with this
// program.
- Message toolDescription =
- Message.raw("This utility can be used to "
+ Message toolDescription = Message
+ .raw("This utility can be used to "
+ "measure search performance");
// TODO: correct usage
- ArgumentParser argParser =
- new ArgumentParser(SearchRate.class.getName(), toolDescription,
- false, true, 1, 0, "[filter] [attributes ...]");
+ ArgumentParser argParser = new ArgumentParser(SearchRate.class
+ .getName(), toolDescription, false, true, 1, 0,
+ "[filter] [attributes ...]");
ArgumentParserConnectionFactory connectionFactory;
SearchPerformanceRunner runner;
@@ -153,61 +155,54 @@
try
{
- connectionFactory =
- new ArgumentParserConnectionFactory(argParser, this);
+ connectionFactory = new ArgumentParserConnectionFactory(
+ argParser, this);
runner = new SearchPerformanceRunner(argParser, this);
- propertiesFileArgument =
- new StringArgument("propertiesFilePath", null,
- OPTION_LONG_PROP_FILE_PATH, false, false, true,
- INFO_PROP_FILE_PATH_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_PROP_FILE_PATH.get());
+ propertiesFileArgument = new StringArgument("propertiesFilePath",
+ null, OPTION_LONG_PROP_FILE_PATH, false, false, true,
+ INFO_PROP_FILE_PATH_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_PROP_FILE_PATH.get());
argParser.addArgument(propertiesFileArgument);
argParser.setFilePropertiesArgument(propertiesFileArgument);
- noPropertiesFileArgument =
- new BooleanArgument("noPropertiesFileArgument", null,
- OPTION_LONG_NO_PROP_FILE, INFO_DESCRIPTION_NO_PROP_FILE
- .get());
+ noPropertiesFileArgument = new BooleanArgument(
+ "noPropertiesFileArgument", null, OPTION_LONG_NO_PROP_FILE,
+ INFO_DESCRIPTION_NO_PROP_FILE.get());
argParser.addArgument(noPropertiesFileArgument);
argParser.setNoPropertiesFileArgument(noPropertiesFileArgument);
- showUsage =
- new BooleanArgument("showUsage", OPTION_SHORT_HELP,
- OPTION_LONG_HELP, INFO_DESCRIPTION_SHOWUSAGE.get());
+ showUsage = new BooleanArgument("showUsage", OPTION_SHORT_HELP,
+ OPTION_LONG_HELP, INFO_DESCRIPTION_SHOWUSAGE.get());
argParser.addArgument(showUsage);
argParser.setUsageArgument(showUsage, getOutputStream());
- baseDN =
- new StringArgument("baseDN", OPTION_SHORT_BASEDN,
- OPTION_LONG_BASEDN, true, false, true,
- INFO_BASEDN_PLACEHOLDER.get(), null, null,
- INFO_SEARCH_DESCRIPTION_BASEDN.get());
+ baseDN = new StringArgument("baseDN", OPTION_SHORT_BASEDN,
+ OPTION_LONG_BASEDN, true, false, true,
+ INFO_BASEDN_PLACEHOLDER.get(), null, null,
+ INFO_SEARCH_DESCRIPTION_BASEDN.get());
baseDN.setPropertyName(OPTION_LONG_BASEDN);
argParser.addArgument(baseDN);
- searchScope =
- new MultiChoiceArgument<SearchScope>("searchScope", 's',
- "searchScope", false, true, INFO_SEARCH_SCOPE_PLACEHOLDER
- .get(), SearchScope.values(), false,
- INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE.get());
+ searchScope = new MultiChoiceArgument<SearchScope>("searchScope",
+ 's', "searchScope", false, true,
+ INFO_SEARCH_SCOPE_PLACEHOLDER.get(), SearchScope.values(),
+ false, INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE.get());
searchScope.setPropertyName("searchScope");
searchScope.setDefaultValue(SearchScope.WHOLE_SUBTREE);
argParser.addArgument(searchScope);
- dereferencePolicy =
- new MultiChoiceArgument<DereferenceAliasesPolicy>(
- "derefpolicy", 'a', "dereferencePolicy", false, true,
- INFO_DEREFERENCE_POLICE_PLACEHOLDER.get(),
- DereferenceAliasesPolicy.values(), false,
- INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY.get());
+ dereferencePolicy = new MultiChoiceArgument<DereferenceAliasesPolicy>(
+ "derefpolicy", 'a', "dereferencePolicy", false, true,
+ INFO_DEREFERENCE_POLICE_PLACEHOLDER.get(),
+ DereferenceAliasesPolicy.values(), false,
+ INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY.get());
dereferencePolicy.setPropertyName("dereferencePolicy");
dereferencePolicy.setDefaultValue(DereferenceAliasesPolicy.NEVER);
argParser.addArgument(dereferencePolicy);
- verbose =
- new BooleanArgument("verbose", 'v', "verbose",
- INFO_DESCRIPTION_VERBOSE.get());
+ verbose = new BooleanArgument("verbose", 'v', "verbose",
+ INFO_DESCRIPTION_VERBOSE.get());
verbose.setPropertyName("verbose");
argParser.addArgument(verbose);
}
@@ -241,8 +236,8 @@
}
List<String> attributes = new LinkedList<String>();
- ArrayList<String> filterAndAttributeStrings =
- argParser.getTrailingArguments();
+ ArrayList<String> filterAndAttributeStrings = argParser
+ .getTrailingArguments();
if (filterAndAttributeStrings.size() > 0)
{
// the list of trailing arguments should be structured as follow:
@@ -255,14 +250,14 @@
attributes.add(s);
}
}
- runner.attributes =
- attributes.toArray(new String[attributes.size()]);
+ runner.attributes = attributes
+ .toArray(new String[attributes.size()]);
runner.baseDN = baseDN.getValue();
try
{
runner.scope = searchScope.getTypedValue();
- runner.dereferencesAliasesPolicy =
- dereferencePolicy.getTypedValue();
+ runner.dereferencesAliasesPolicy = dereferencePolicy
+ .getTypedValue();
}
catch (ArgumentException ex1)
{
@@ -274,8 +269,8 @@
{
// Try it out to make sure the format string and data sources
// match.
- Object[] data =
- DataSource.generateData(runner.getDataSources(), null);
+ Object[] data = DataSource.generateData(runner.getDataSources(),
+ null);
String.format(runner.filter, data);
String.format(runner.baseDN, data);
}
@@ -289,6 +284,8 @@
return runner.run(connectionFactory);
}
+
+
private final AtomicInteger entryRecentCount = new AtomicInteger();
@@ -296,9 +293,13 @@
private class SearchPerformanceRunner extends PerformanceRunner
{
private String filter;
+
private String baseDN;
+
private SearchScope scope;
+
private DereferenceAliasesPolicy dereferencesAliasesPolicy;
+
private String[] attributes;
@@ -356,6 +357,7 @@
WorkerThread<SearchStatsHandler>
{
private SearchRequest sr;
+
private Object[] data;
@@ -389,9 +391,8 @@
else
{
data = DataSource.generateData(dataSources, data);
- sr =
- Requests.newSearchRequest(String.format(baseDN, data), scope,
- String.format(filter, data), attributes);
+ sr = Requests.newSearchRequest(String.format(baseDN, data),
+ scope, String.format(filter, data), attributes);
}
sr.setDereferenceAliasesPolicy(dereferencesAliasesPolicy);
}
@@ -410,6 +411,7 @@
private class SearchStatsThread extends StatsThread
{
private long totalEntryCount;
+
private final String[] extraColumn;
@@ -426,8 +428,8 @@
{
int entryCount = entryRecentCount.getAndSet(0);
totalEntryCount += entryCount;
- extraColumn[0] =
- String.format("%.1f", (double) entryCount / successCount);
+ extraColumn[0] = String.format("%.1f", (double) entryCount
+ / successCount);
return extraColumn;
}
}
@@ -437,7 +439,7 @@
/**
* Indicates whether or not the user has requested advanced mode.
- *
+ *
* @return Returns <code>true</code> if the user has requested
* advanced mode.
*/
@@ -451,7 +453,7 @@
/**
* Indicates whether or not the user has requested interactive
* behavior.
- *
+ *
* @return Returns <code>true</code> if the user has requested
* interactive behavior.
*/
@@ -468,7 +470,7 @@
* go to the error stream or not. In addition, it may also dictate
* whether or not sub-menus should display a cancel option as well as
* a quit option.
- *
+ *
* @return Returns <code>true</code> if this console application is
* running in its menu-driven mode.
*/
@@ -481,7 +483,7 @@
/**
* Indicates whether or not the user has requested quiet output.
- *
+ *
* @return Returns <code>true</code> if the user has requested quiet
* output.
*/
@@ -495,7 +497,7 @@
/**
* Indicates whether or not the user has requested script-friendly
* output.
- *
+ *
* @return Returns <code>true</code> if the user has requested
* script-friendly output.
*/
@@ -508,7 +510,7 @@
/**
* Indicates whether or not the user has requested verbose output.
- *
+ *
* @return Returns <code>true</code> if the user has requested verbose
* output.
*/
diff --git a/sdk/src/org/opends/sdk/tools/SelectableCertificateKeyManager.java b/sdk/src/org/opends/sdk/tools/SelectableCertificateKeyManager.java
new file mode 100755
index 0000000..dac98c8
--- /dev/null
+++ b/sdk/src/org/opends/sdk/tools/SelectableCertificateKeyManager.java
@@ -0,0 +1,314 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008-2009 Sun Microsystems, Inc.
+ */
+package org.opends.sdk.tools;
+
+
+
+import java.net.Socket;
+import java.security.Principal;
+import java.security.PrivateKey;
+import java.security.cert.X509Certificate;
+
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.X509ExtendedKeyManager;
+import javax.net.ssl.X509KeyManager;
+
+
+
+/**
+ * This class implements an X.509 key manager that will be used to wrap
+ * an existing key manager and makes it possible to configure which
+ * certificate(s) should be used for client and/or server operations.
+ * The certificate selection will be based on the alias (also called the
+ * nickname) of the certificate.
+ */
+final class SelectableCertificateKeyManager extends
+ X509ExtendedKeyManager
+{
+ // The alias of the certificate that should be selected from the key
+ // manager.
+ private String alias;
+
+ // The key manager that is wrapped by this key manager.
+ private X509KeyManager keyManager;
+
+
+
+ /**
+ * Creates a new instance of this key manager that will wrap the
+ * provided key manager and use the certificate with the specified
+ * alias.
+ *
+ * @param keyManager
+ * The key manager to be wrapped by this key manager.
+ * @param alias
+ * The nickname of the certificate that should be selected
+ * for operations involving this key manager.
+ */
+ SelectableCertificateKeyManager(X509KeyManager keyManager,
+ String alias)
+ {
+ this.keyManager = keyManager;
+ this.alias = alias;
+ }
+
+
+
+ /**
+ * Chooses the alias of the client certificate that should be used
+ * based on the provided critieria. This will either return the
+ * preferred alias configured for this key manager, or {@code null} if
+ * no client certificate with that alias is configured in the
+ * underlying key manager.
+ *
+ * @param keyType
+ * The set of key algorithm names, ordered with the most
+ * preferred key type first.
+ * @param issuers
+ * The list of acceptable issuer subject names, or {@code
+ * null} if any issuer may be used.
+ * @param socket
+ * The socket to be used for this connection.
+ * @return The alias configured for this key manager, or {@code null}
+ * if no such client certificate is available with that alias.
+ */
+ public String chooseClientAlias(String[] keyType,
+ Principal[] issuers, Socket socket)
+ {
+ for (String type : keyType)
+ {
+ String[] clientAliases = keyManager.getClientAliases(type,
+ issuers);
+ if (clientAliases != null)
+ {
+ for (String clientAlias : clientAliases)
+ {
+ if (clientAlias.equals(alias))
+ {
+ return alias;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+
+
+ /**
+ * Chooses the alias of the client certificate that should be used
+ * based on the provided critieria. This will either return the
+ * preferred alias configured for this key manager, or {@code null} if
+ * no client certificate with that alias is configured in the
+ * underlying key manager.
+ *
+ * @param keyType
+ * The set of key algorithm names, ordered with the most
+ * preferred key type first.
+ * @param issuers
+ * The list of acceptable issuer subject names, or {@code
+ * null} if any issuer may be used.
+ * @param engine
+ * The SSL engine to be used for this connection.
+ * @return The alias configured for this key manager, or {@code null}
+ * if no such client certificate is available with that alias.
+ */
+ public String chooseEngineClientAlias(String[] keyType,
+ Principal[] issuers, SSLEngine engine)
+ {
+ for (String type : keyType)
+ {
+ String[] clientAliases = keyManager.getClientAliases(type,
+ issuers);
+ if (clientAliases != null)
+ {
+ for (String clientAlias : clientAliases)
+ {
+ if (clientAlias.equals(alias))
+ {
+ return alias;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+
+
+ /**
+ * Chooses the alias of the server certificate that should be used
+ * based on the provided critieria. This will either return the
+ * preferred alias configured for this key manager, or {@code null} if
+ * no server certificate with that alias is configured in the
+ * underlying key manager.
+ *
+ * @param keyType
+ * The public key type for the certificate.
+ * @param issuers
+ * The list of acceptable issuer subject names, or {@code
+ * null} if any issuer may be used.
+ * @param socket
+ * The socket to be used for this connection.
+ * @return The alias configured for this key manager, or {@code null}
+ * if no such server certificate is available with that alias.
+ */
+ public String chooseServerAlias(String keyType, Principal[] issuers,
+ Socket socket)
+ {
+ String[] serverAliases = keyManager.getServerAliases(keyType,
+ issuers);
+ if (serverAliases != null)
+ {
+ for (String serverAlias : serverAliases)
+ {
+ if (serverAlias.equals(alias))
+ {
+ return alias;
+ }
+ }
+ }
+
+ return null;
+ }
+
+
+
+ /**
+ * Chooses the alias of the server certificate that should be used
+ * based on the provided critieria. This will either return the
+ * preferred alias configured for this key manager, or {@code null} if
+ * no server certificate with that alias is configured in the
+ * underlying key manager. Note that the returned alias can be
+ * transformed in lowercase, depending on the KeyStore implementation.
+ * It is recommended not to use aliases in a KeyStore that only differ
+ * in case.
+ *
+ * @param keyType
+ * The public key type for the certificate.
+ * @param issuers
+ * The list of acceptable issuer subject names, or {@code
+ * null} if any issuer may be used.
+ * @param engine
+ * The SSL engine to be used for this connection.
+ * @return The alias configured for this key manager, or {@code null}
+ * if no such server certificate is available with that alias.
+ */
+ public String chooseEngineServerAlias(String keyType,
+ Principal[] issuers, SSLEngine engine)
+ {
+ String[] serverAliases = keyManager.getServerAliases(keyType,
+ issuers);
+ if (serverAliases != null)
+ {
+ for (String serverAlias : serverAliases)
+ {
+ if (serverAlias.equalsIgnoreCase(alias))
+ {
+ return serverAlias;
+ }
+ }
+ }
+
+ return null;
+ }
+
+
+
+ /**
+ * Retrieves the certificate chain for the provided alias.
+ *
+ * @param alias
+ * The alias for the certificate chain to retrieve.
+ * @return The certificate chain for the provided alias, or {@code
+ * null} if no certificate is associated with the provided
+ * alias.
+ */
+ public X509Certificate[] getCertificateChain(String alias)
+ {
+ return keyManager.getCertificateChain(alias);
+ }
+
+
+
+ /**
+ * Retrieves the set of certificate aliases that may be used for
+ * client authentication with the given public key type and set of
+ * issuers.
+ *
+ * @param keyType
+ * The public key type for the aliases to retrieve.
+ * @param issuers
+ * The list of acceptable issuer subject names, or {@code
+ * null} if any issuer may be used.
+ * @return The set of certificate aliases that may be used for client
+ * authentication with the given public key type and set of
+ * issuers, or {@code null} if there were none.
+ */
+ public String[] getClientAliases(String keyType, Principal[] issuers)
+ {
+ return keyManager.getClientAliases(keyType, issuers);
+ }
+
+
+
+ /**
+ * Retrieves the private key for the provided alias.
+ *
+ * @param alias
+ * The alias for the private key to return.
+ * @return The private key for the provided alias, or {@code null} if
+ * no private key is available for the provided alias.
+ */
+ public PrivateKey getPrivateKey(String alias)
+ {
+ return keyManager.getPrivateKey(alias);
+ }
+
+
+
+ /**
+ * Retrieves the set of certificate aliases that may be used for
+ * server authentication with the given public key type and set of
+ * issuers.
+ *
+ * @param keyType
+ * The public key type for the aliases to retrieve.
+ * @param issuers
+ * The list of acceptable issuer subject names, or {@code
+ * null} if any issuer may be used.
+ * @return The set of certificate aliases that may be used for server
+ * authentication with the given public key type and set of
+ * issuers, or {@code null} if there were none.
+ */
+ public String[] getServerAliases(String keyType, Principal[] issuers)
+ {
+ return keyManager.getServerAliases(keyType, issuers);
+ }
+}
diff --git a/sdk/src/org/opends/sdk/tools/StringArgument.java b/sdk/src/org/opends/sdk/tools/StringArgument.java
index b341a5e..831ef52 100644
--- a/sdk/src/org/opends/sdk/tools/StringArgument.java
+++ b/sdk/src/org/opends/sdk/tools/StringArgument.java
@@ -28,8 +28,8 @@
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
diff --git a/sdk/src/org/opends/sdk/tools/ToolConstants.java b/sdk/src/org/opends/sdk/tools/ToolConstants.java
new file mode 100755
index 0000000..af5fbfc
--- /dev/null
+++ b/sdk/src/org/opends/sdk/tools/ToolConstants.java
@@ -0,0 +1,614 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2006-2009 Sun Microsystems, Inc.
+ */
+package org.opends.sdk.tools;
+
+/**
+ * This class defines a number of constants used in one or more
+ * Directory Server tools.
+ */
+final class ToolConstants
+{
+ // Prevent instantiation.
+ private ToolConstants()
+ {
+
+ }
+
+
+
+ /**
+ * The name of the SASL property that can be used to provide the
+ * authentication ID for the bind.
+ */
+ static final String SASL_PROPERTY_AUTHID = "authid";
+
+ /**
+ * The name of the SASL property that can be used to provide the
+ * authorization ID for the bind.
+ */
+ static final String SASL_PROPERTY_AUTHZID = "authzid";
+
+ /**
+ * The name of the SASL property that can be used to provide the
+ * digest URI for the bind.
+ */
+ static final String SASL_PROPERTY_DIGEST_URI = "digest-uri";
+
+ /**
+ * The name of the SASL property that can be used to provide the KDC
+ * for use in Kerberos authentication.
+ */
+ static final String SASL_PROPERTY_KDC = "kdc";
+
+ /**
+ * The name of the SASL property that can be used to provide the
+ * quality of protection for the bind.
+ */
+ static final String SASL_PROPERTY_QOP = "qop";
+
+ /**
+ * The name of the SASL property that can be used to provide the realm
+ * for the bind.
+ */
+ static final String SASL_PROPERTY_REALM = "realm";
+
+ /**
+ * The name of the SASL property that can be used to provide trace
+ * information for a SASL ANONYMOUS request.
+ */
+ static final String SASL_PROPERTY_TRACE = "trace";
+
+ /**
+ * The name of the SASL property that can be used to provide the SASL
+ * mechanism to use.
+ */
+ static final String SASL_PROPERTY_MECH = "mech";
+
+ /**
+ * The name of the opends configuration direction in the user home
+ * directory.
+ */
+ static final String DEFAULT_OPENDS_CONFIG_DIR = ".opends";
+
+ /**
+ * The default properties file name.
+ */
+ static final String DEFAULT_OPENDS_PROPERTIES_FILE_NAME = "tools";
+
+ /**
+ * The default properties file extension.
+ */
+ static final String DEFAULT_OPENDS_PROPERTIES_FILE_EXTENSION = ".properties";
+
+ /**
+ * The value for the short option batchFilePath.
+ */
+ static final char OPTION_SHORT_BATCH_FILE_PATH = 'F';
+
+ /**
+ * The value for the long option batchFilePath .
+ */
+ static final String OPTION_LONG_BATCH_FILE_PATH = "batchFilePath";
+
+ /**
+ * The value for the short option hostname.
+ */
+ static final char OPTION_SHORT_HOST = 'h';
+
+ /**
+ * The value for the long option hostname.
+ */
+ static final String OPTION_LONG_HOST = "hostname";
+
+ /**
+ * The value for the short option port.
+ */
+ static final char OPTION_SHORT_PORT = 'p';
+
+ /**
+ * The value for the long option port.
+ */
+ static final String OPTION_LONG_PORT = "port";
+
+ /**
+ * The value for the short option useSSL.
+ */
+ static final char OPTION_SHORT_USE_SSL = 'Z';
+
+ /**
+ * The value for the long option useSSL.
+ */
+ static final String OPTION_LONG_USE_SSL = "useSSL";
+
+ /**
+ * The value for the short option baseDN.
+ */
+ static final char OPTION_SHORT_BASEDN = 'b';
+
+ /**
+ * The value for the long option baseDN.
+ */
+ static final String OPTION_LONG_BASEDN = "baseDN";
+
+ /**
+ * The value for the short option bindDN.
+ */
+ static final char OPTION_SHORT_BINDDN = 'D';
+
+ /**
+ * The value for the long option bindDN.
+ */
+ static final String OPTION_LONG_BINDDN = "bindDN";
+
+ /**
+ * The value for the short option bindPassword.
+ */
+ static final char OPTION_SHORT_BINDPWD = 'w';
+
+ /**
+ * The value for the long option bindPassword.
+ */
+ static final String OPTION_LONG_BINDPWD = "bindPassword";
+
+ /**
+ * The value for the short option bindPasswordFile.
+ */
+ static final char OPTION_SHORT_BINDPWD_FILE = 'j';
+
+ /**
+ * The value for the long option bindPasswordFile.
+ */
+ static final String OPTION_LONG_BINDPWD_FILE = "bindPasswordFile";
+
+ /**
+ * The value for the short option compress.
+ */
+ static final char OPTION_SHORT_COMPRESS = 'c';
+
+ /**
+ * The value for the long option compress.
+ */
+ static final String OPTION_LONG_COMPRESS = "compress";
+
+ /**
+ * The value for the short option filename.
+ */
+ static final char OPTION_SHORT_FILENAME = 'f';
+
+ /**
+ * The value for the long option filename.
+ */
+ static final String OPTION_LONG_FILENAME = "filename";
+
+ /**
+ * The value for the short option ldifFile.
+ */
+ static final char OPTION_SHORT_LDIF_FILE = 'l';
+
+ /**
+ * The value for the long option ldifFile.
+ */
+ static final String OPTION_LONG_LDIF_FILE = "ldifFile";
+
+ /**
+ * The value for the short option useStartTLS.
+ */
+ static final char OPTION_SHORT_START_TLS = 'q';
+
+ /**
+ * The value for the long option useStartTLS.
+ */
+ static final String OPTION_LONG_START_TLS = "useStartTLS";
+
+ /**
+ * The value for the short option randomSeed.
+ */
+ static final char OPTION_SHORT_RANDOM_SEED = 's';
+
+ /**
+ * The value for the long option randomSeed.
+ */
+ static final String OPTION_LONG_RANDOM_SEED = "randomSeed";
+
+ /**
+ * The value for the short option keyStorePath.
+ */
+ static final char OPTION_SHORT_KEYSTOREPATH = 'K';
+
+ /**
+ * The value for the long option keyStorePath.
+ */
+ static final String OPTION_LONG_KEYSTOREPATH = "keyStorePath";
+
+ /**
+ * The value for the short option trustStorePath.
+ */
+ static final char OPTION_SHORT_TRUSTSTOREPATH = 'P';
+
+ /**
+ * The value for the long option trustStorePath.
+ */
+ static final String OPTION_LONG_TRUSTSTOREPATH = "trustStorePath";
+
+ /**
+ * The value for the short option keyStorePassword.
+ */
+ static final char OPTION_SHORT_KEYSTORE_PWD = 'W';
+
+ /**
+ * The value for the long option keyStorePassword.
+ */
+ static final String OPTION_LONG_KEYSTORE_PWD = "keyStorePassword";
+
+ /**
+ * The value for the short option trustStorePassword.
+ */
+ static final char OPTION_SHORT_TRUSTSTORE_PWD = 'T';
+
+ /**
+ * The value for the long option trustStorePassword.
+ */
+ static final String OPTION_LONG_TRUSTSTORE_PWD = "trustStorePassword";
+
+ /**
+ * The value for the short option keyStorePasswordFile .
+ */
+ static final char OPTION_SHORT_KEYSTORE_PWD_FILE = 'u';
+
+ /**
+ * The value for the long option keyStorePasswordFile .
+ */
+ static final String OPTION_LONG_KEYSTORE_PWD_FILE = "keyStorePasswordFile";
+
+ /**
+ * The value for the short option keyStorePasswordFile .
+ */
+ static final char OPTION_SHORT_TRUSTSTORE_PWD_FILE = 'U';
+
+ /**
+ * The value for the long option keyStorePasswordFile .
+ */
+ static final String OPTION_LONG_TRUSTSTORE_PWD_FILE = "trustStorePasswordFile";
+
+ /**
+ * The value for the short option trustAll .
+ */
+ static final char OPTION_SHORT_TRUSTALL = 'X';
+
+ /**
+ * The value for the long option trustAll .
+ */
+ static final String OPTION_LONG_TRUSTALL = "trustAll";
+
+ /**
+ * The value for the short option certNickname .
+ */
+ static final char OPTION_SHORT_CERT_NICKNAME = 'N';
+
+ /**
+ * The value for the long option certNickname .
+ */
+ static final String OPTION_LONG_CERT_NICKNAME = "certNickname";
+
+ /**
+ * The value for the long option assertionFilter .
+ */
+ static final String OPTION_LONG_ASSERTION_FILE = "assertionFilter";
+
+ /**
+ * The value for the short option dry-run.
+ */
+ static final char OPTION_SHORT_DRYRUN = 'n';
+
+ /**
+ * The value for the long option dry-run.
+ */
+ static final String OPTION_LONG_DRYRUN = "dry-run";
+
+ /**
+ * The value for the short option help.
+ */
+ static final char OPTION_SHORT_HELP = 'H';
+
+ /**
+ * The value for the long option help.
+ */
+ static final String OPTION_LONG_HELP = "help";
+
+ /**
+ * The value for the long option cli.
+ */
+ static final String OPTION_LONG_CLI = "cli";
+
+ /**
+ * The value for the short option cli.
+ */
+ static final char OPTION_SHORT_CLI = 'i';
+
+ /**
+ * The value for the short option proxyAs.
+ */
+ static final char OPTION_SHORT_PROXYAUTHID = 'Y';
+
+ /**
+ * The value for the long option proxyAs.
+ */
+ static final String OPTION_LONG_PROXYAUTHID = "proxyAs";
+
+ /**
+ * The value for the short option saslOption.
+ */
+ static final char OPTION_SHORT_SASLOPTION = 'o';
+
+ /**
+ * The value for the long option saslOption.
+ */
+ static final String OPTION_LONG_SASLOPTION = "saslOption";
+
+ /**
+ * The value for the short option geteffectiverights control authzid.
+ */
+ static final char OPTION_SHORT_EFFECTIVERIGHTSUSER = 'g';
+
+ /**
+ * The value for the long option geteffectiverights control authzid.
+ */
+ static final String OPTION_LONG_EFFECTIVERIGHTSUSER = "getEffectiveRightsAuthzid";
+
+ /**
+ * The value for the short option geteffectiveights control
+ * attributes.
+ */
+ static final char OPTION_SHORT_EFFECTIVERIGHTSATTR = 'e';
+
+ /**
+ * The value for the long option geteffectiverights control specific
+ * attribute list.
+ */
+ static final String OPTION_LONG_EFFECTIVERIGHTSATTR = "getEffectiveRightsAttribute";
+
+ /**
+ * The value for the short option protocol version attributes.
+ */
+ static final char OPTION_SHORT_PROTOCOL_VERSION = 'V';
+
+ /**
+ * The value for the long option protocol version attribute.
+ */
+ static final String OPTION_LONG_PROTOCOL_VERSION = "ldapVersion";
+
+ /**
+ * The value for the long option version.
+ */
+ static final char OPTION_SHORT_PRODUCT_VERSION = 'V';
+
+ /**
+ * The value for the long option version.
+ */
+ static final String OPTION_LONG_PRODUCT_VERSION = "version";
+
+ /**
+ * The value for the short option description attributes.
+ */
+ static final char OPTION_SHORT_DESCRIPTION = 'd';
+
+ /**
+ * The value for the long option description attribute.
+ */
+ static final String OPTION_LONG_DESCRIPTION = "description";
+
+ /**
+ * The value for the short option groupName attributes.
+ */
+ static final char OPTION_SHORT_GROUPNAME = 'g';
+
+ /**
+ * The value for the long option groupName attribute.
+ */
+ static final String OPTION_LONG_GROUPNAME = "groupName";
+
+ /**
+ * The value for the short option newGroupName attribute.
+ */
+ static final char OPTION_SHORT_NEWGROUPNAME = 'n';
+
+ /**
+ * The value for the long option groupName attribute.
+ */
+ static final String OPTION_LONG_NEWGROUPNAME = "newGroupName";
+
+ /**
+ * The value for the short option member-name attributes.
+ */
+ static final char OPTION_SHORT_MEMBERNAME = 'm';
+
+ /**
+ * The value for the long member-name version attribute.
+ */
+ static final String OPTION_LONG_MEMBERNAME = "memberName";
+
+ /**
+ * The value for the short option serverID attributes.
+ */
+ static final String OPTION_SHORT_SERVERID = null;
+
+ /**
+ * The value for the long option serverID attribute.
+ */
+ static final String OPTION_LONG_SERVERID = "serverID";
+
+ /**
+ * The value for the short option userID attributes.
+ */
+ static final String OPTION_SHORT_USERID = null;
+
+ /**
+ * The value for the long option userID attribute.
+ */
+ static final String OPTION_LONG_USERID = "userID";
+
+ /**
+ * The value for the short option set.
+ */
+ static final Character OPTION_SHORT_SET = null;
+
+ /**
+ * The value for the long option set.
+ */
+ static final String OPTION_LONG_SET = "set";
+
+ /**
+ * Value for the quiet option short form.
+ */
+ static final Character OPTION_SHORT_QUIET = 'Q';
+
+ /**
+ * Value for the quiet option long form.
+ */
+ static final String OPTION_LONG_QUIET = "quiet";
+
+ /**
+ * Value for noninteractive session short form.
+ */
+ static final Character OPTION_SHORT_NO_PROMPT = 'n';
+
+ /**
+ * Value for noninteractive session long form.
+ */
+ static final String OPTION_LONG_NO_PROMPT = "no-prompt";
+
+ /**
+ * Long form of script friendly option.
+ */
+ static final String OPTION_LONG_SCRIPT_FRIENDLY = "script-friendly";
+
+ /**
+ * Short form of script friendly option.
+ */
+ static final Character OPTION_SHORT_SCRIPT_FRIENDLY = 's';
+
+ /**
+ * Value for verbose option short form.
+ */
+ static final Character OPTION_SHORT_VERBOSE = 'v';
+
+ /**
+ * Value for verbose option long form.
+ */
+ static final String OPTION_LONG_VERBOSE = "verbose";
+
+ /**
+ * The value for the long option propertiesFilePAth .
+ */
+ static final String OPTION_LONG_PROP_FILE_PATH = "propertiesFilePath";
+
+ /**
+ * The value for the long option propertiesFilePAth .
+ */
+ static final String OPTION_LONG_NO_PROP_FILE = "noPropertiesFile";
+
+ /**
+ * Long form of referenced host name.
+ */
+ static final String OPTION_LONG_REFERENCED_HOST_NAME = "referencedHostName";
+
+ /**
+ * Long form of admin UID.
+ */
+ static final String OPTION_LONG_ADMIN_UID = "adminUID";
+
+ /**
+ * Long form of report authorization ID connection option.
+ */
+ static final String OPTION_LONG_REPORT_AUTHZ_ID = "reportAuthzID";
+
+ /**
+ * Long form of use password policy control connection option.
+ */
+ static final String OPTION_LONG_USE_PW_POLICY_CTL = "usePasswordPolicyControl";
+
+ /**
+ * Long form of use SASL external connection option.
+ */
+ static final String OPTION_LONG_USE_SASL_EXTERNAL = "useSASLExternal";
+
+ /**
+ * Long form of option for the command-line encoding option.
+ */
+ static final String OPTION_LONG_ENCODING = "encoding";
+
+ /**
+ * Long form of option specifying no wrapping of the command-line.
+ */
+ static final String OPTION_LONG_DONT_WRAP = "dontWrap";
+
+ /**
+ * Long form of email notification upon completion option.
+ */
+ static final String OPTION_LONG_COMPLETION_NOTIFICATION_EMAIL = "completionNotify";
+
+ /**
+ * Short form of email notification upon completion option.
+ */
+ static final Character OPTION_SHORT_COMPLETION_NOTIFICATION_EMAIL = null;
+
+ /**
+ * Long form of email notification upon error option.
+ */
+ static final String OPTION_LONG_ERROR_NOTIFICATION_EMAIL = "errorNotify";
+
+ /**
+ * Short form of email notification upon error option.
+ */
+ static final Character OPTION_SHORT_ERROR_NOTIFICATION_EMAIL = null;
+
+ /**
+ * Long form of dependency option.
+ */
+ static final String OPTION_LONG_DEPENDENCY = "dependency";
+
+ /**
+ * Short form of dependency option.
+ */
+ static final Character OPTION_SHORT_DEPENDENCY = null;
+
+ /**
+ * Long form of failed dependency action option.
+ */
+ static final String OPTION_LONG_FAILED_DEPENDENCY_ACTION = "failedDependencyAction";
+
+ /**
+ * Short form of failed dependency action option.
+ */
+ static final Character OPTION_SHORT_FAILED_DEPENDENCY_ACTION = null;
+
+ /**
+ * The default separator to be used in tables.
+ */
+ static final String LIST_TABLE_SEPARATOR = ":";
+
+}
diff --git a/sdk/src/org/opends/sdk/util/ssl/TrustAllTrustManager.java b/sdk/src/org/opends/sdk/tools/TrustAllTrustManager.java
similarity index 80%
rename from sdk/src/org/opends/sdk/util/ssl/TrustAllTrustManager.java
rename to sdk/src/org/opends/sdk/tools/TrustAllTrustManager.java
index 17c0db5..3d0cbd0 100644
--- a/sdk/src/org/opends/sdk/util/ssl/TrustAllTrustManager.java
+++ b/sdk/src/org/opends/sdk/tools/TrustAllTrustManager.java
@@ -25,34 +25,43 @@
* Copyright 2008 Sun Microsystems, Inc.
*/
-package org.opends.sdk.util.ssl;
+package org.opends.sdk.tools;
+
+
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
+
+
/**
* An X509TrustManager which trusts everything.
*/
-public class TrustAllTrustManager implements X509TrustManager {
+final class TrustAllTrustManager implements X509TrustManager
+{
/**
* {@inheritDoc}
*/
- public void checkClientTrusted(X509Certificate[] chain, String authType)
- throws CertificateException
+ public void checkClientTrusted(X509Certificate[] chain,
+ String authType) throws CertificateException
{
}
+
+
/**
* {@inheritDoc}
*/
- public void checkServerTrusted(X509Certificate[] chain, String authType)
- throws CertificateException
+ public void checkServerTrusted(X509Certificate[] chain,
+ String authType) throws CertificateException
{
}
+
+
/**
* {@inheritDoc}
*/
@@ -61,4 +70,3 @@
return new X509Certificate[0];
}
}
-
diff --git a/sdk/src/org/opends/sdk/util/ssl/TrustStoreTrustManager.java b/sdk/src/org/opends/sdk/tools/TrustStoreTrustManager.java
similarity index 96%
rename from sdk/src/org/opends/sdk/util/ssl/TrustStoreTrustManager.java
rename to sdk/src/org/opends/sdk/tools/TrustStoreTrustManager.java
index 9b3ad5b..cf137ad 100644
--- a/sdk/src/org/opends/sdk/util/ssl/TrustStoreTrustManager.java
+++ b/sdk/src/org/opends/sdk/tools/TrustStoreTrustManager.java
@@ -26,7 +26,7 @@
* Portions Copyright 2009 Parametric Technology Corporation (PTC)
*/
-package org.opends.sdk.util.ssl;
+package org.opends.sdk.tools;
@@ -64,7 +64,7 @@
* retrieved this class will only accept the certificates explicitly
* accepted by the user (and specified by calling acceptCertificate).
*/
-public class TrustStoreTrustManager implements X509TrustManager
+class TrustStoreTrustManager implements X509TrustManager
{
static private final Logger LOG = Logger
.getLogger(TrustStoreTrustManager.class.getName());
@@ -79,14 +79,12 @@
private final String hostname;
- private final boolean checkValidityDates;
-
/**
* The default constructor.
*/
- public TrustStoreTrustManager(String truststorePath,
+ TrustStoreTrustManager(String truststorePath,
String truststorePassword, String hostname,
boolean checkValidityDates) throws KeyStoreException,
IOException, NoSuchAlgorithmException, CertificateException
@@ -124,7 +122,7 @@
}
this.trustManager = x509tm;
this.hostname = hostname;
- this.checkValidityDates = checkValidityDates;
+ // this.checkValidityDates = checkValidityDates;
}
diff --git a/sdk/src/org/opends/sdk/tools/Utils.java b/sdk/src/org/opends/sdk/tools/Utils.java
index da476c3..d6a090f 100644
--- a/sdk/src/org/opends/sdk/tools/Utils.java
+++ b/sdk/src/org/opends/sdk/tools/Utils.java
@@ -28,17 +28,14 @@
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.messages.UtilityMessages.INFO_TIME_IN_DAYS_HOURS_MINUTES_SECONDS;
-import static org.opends.messages.UtilityMessages.INFO_TIME_IN_HOURS_MINUTES_SECONDS;
-import static org.opends.messages.UtilityMessages.INFO_TIME_IN_MINUTES_SECONDS;
-import static org.opends.messages.UtilityMessages.INFO_TIME_IN_SECONDS;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.util.StaticUtils.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.util.StringTokenizer;
-import org.opends.messages.Message;
import org.opends.sdk.Connection;
import org.opends.sdk.DecodeException;
import org.opends.sdk.ErrorResultException;
@@ -47,7 +44,8 @@
import org.opends.sdk.responses.BindResult;
import org.opends.sdk.util.ByteString;
import org.opends.sdk.util.StaticUtils;
-import org.opends.server.util.cli.ConsoleApplication;
+
+import com.sun.opends.sdk.util.Message;
@@ -65,6 +63,254 @@
/**
+ * The name of a command-line script used to launch a tool.
+ */
+ static final String PROPERTY_SCRIPT_NAME = "org.opends.sdk.tools.scriptName";
+
+ /**
+ * The column at which to wrap long lines of output in the
+ * command-line tools.
+ */
+ static final int MAX_LINE_WIDTH;
+ static
+ {
+ int columns = 80;
+ try
+ {
+ String s = System.getenv("COLUMNS");
+ if (s != null)
+ {
+ columns = Integer.parseInt(s);
+ }
+ }
+ catch (Exception e)
+ {
+ // Do nothing.
+ }
+ MAX_LINE_WIDTH = columns - 1;
+ }
+
+
+
+ /**
+ * Inserts line breaks into the provided buffer to wrap text at no
+ * more than the specified column width. Wrapping will only be done at
+ * space boundaries and if there are no spaces within the specified
+ * width, then wrapping will be performed at the first space after the
+ * specified column.
+ *
+ * @param message
+ * The message to be wrapped.
+ * @param width
+ * The maximum number of characters to allow on a line if
+ * there is a suitable breaking point.
+ * @return The wrapped text.
+ */
+ static String wrapText(Message message, int width)
+ {
+ return wrapText(Message.toString(message), width, 0);
+ }
+
+
+
+ /**
+ * Inserts line breaks into the provided buffer to wrap text at no
+ * more than the specified column width. Wrapping will only be done at
+ * space boundaries and if there are no spaces within the specified
+ * width, then wrapping will be performed at the first space after the
+ * specified column.
+ *
+ * @param text
+ * The text to be wrapped.
+ * @param width
+ * The maximum number of characters to allow on a line if
+ * there is a suitable breaking point.
+ * @return The wrapped text.
+ */
+ static String wrapText(String text, int width)
+ {
+ return wrapText(text, width, 0);
+ }
+
+
+
+ /**
+ * Inserts line breaks into the provided buffer to wrap text at no
+ * more than the specified column width. Wrapping will only be done at
+ * space boundaries and if there are no spaces within the specified
+ * width, then wrapping will be performed at the first space after the
+ * specified column. In addition each line will be indented by the
+ * specified amount.
+ *
+ * @param message
+ * The message to be wrapped.
+ * @param width
+ * The maximum number of characters to allow on a line if
+ * there is a suitable breaking point (including any
+ * indentation).
+ * @param indent
+ * The number of columns to indent each line.
+ * @return The wrapped text.
+ */
+ static String wrapText(Message message, int width, int indent)
+ {
+ return wrapText(Message.toString(message), width, indent);
+ }
+
+
+
+ /**
+ * Inserts line breaks into the provided buffer to wrap text at no
+ * more than the specified column width. Wrapping will only be done at
+ * space boundaries and if there are no spaces within the specified
+ * width, then wrapping will be performed at the first space after the
+ * specified column. In addition each line will be indented by the
+ * specified amount.
+ *
+ * @param text
+ * The text to be wrapped.
+ * @param width
+ * The maximum number of characters to allow on a line if
+ * there is a suitable breaking point (including any
+ * indentation).
+ * @param indent
+ * The number of columns to indent each line.
+ * @return The wrapped text.
+ */
+ static String wrapText(String text, int width, int indent)
+ {
+ // Calculate the real width and indentation padding.
+ width -= indent;
+ StringBuilder pb = new StringBuilder();
+ for (int i = 0; i < indent; i++)
+ {
+ pb.append(' ');
+ }
+ String padding = pb.toString();
+
+ StringBuilder buffer = new StringBuilder();
+ if (text != null)
+ {
+ StringTokenizer lineTokenizer = new StringTokenizer(text, "\r\n",
+ true);
+ while (lineTokenizer.hasMoreTokens())
+ {
+ String line = lineTokenizer.nextToken();
+ if (line.equals("\r") || line.equals("\n"))
+ {
+ // It's an end-of-line character, so append it as-is.
+ buffer.append(line);
+ }
+ else if (line.length() < width)
+ {
+ // The line fits in the specified width, so append it as-is.
+ buffer.append(padding);
+ buffer.append(line);
+ }
+ else
+ {
+ // The line doesn't fit in the specified width, so it needs to
+ // be
+ // wrapped. Do so at space boundaries.
+ StringBuilder lineBuffer = new StringBuilder();
+ StringBuilder delimBuffer = new StringBuilder();
+ StringTokenizer wordTokenizer = new StringTokenizer(line,
+ " ", true);
+ while (wordTokenizer.hasMoreTokens())
+ {
+ String word = wordTokenizer.nextToken();
+ if (word.equals(" "))
+ {
+ // It's a space, so add it to the delim buffer only if the
+ // line
+ // buffer is not empty.
+ if (lineBuffer.length() > 0)
+ {
+ delimBuffer.append(word);
+ }
+ }
+ else if (word.length() > width)
+ {
+ // This is a long word that can't be wrapped, so we'll
+ // just have
+ // to make do.
+ if (lineBuffer.length() > 0)
+ {
+ buffer.append(padding);
+ buffer.append(lineBuffer);
+ buffer.append(EOL);
+ lineBuffer = new StringBuilder();
+ }
+ buffer.append(padding);
+ buffer.append(word);
+
+ if (wordTokenizer.hasMoreTokens())
+ {
+ // The next token must be a space, so remove it. If
+ // there are
+ // still more tokens after that, then append an EOL.
+ wordTokenizer.nextToken();
+ if (wordTokenizer.hasMoreTokens())
+ {
+ buffer.append(EOL);
+ }
+ }
+
+ if (delimBuffer.length() > 0)
+ {
+ delimBuffer = new StringBuilder();
+ }
+ }
+ else
+ {
+ // It's not a space, so see if we can fit it on the curent
+ // line.
+ int newLineLength = lineBuffer.length()
+ + delimBuffer.length() + word.length();
+ if (newLineLength < width)
+ {
+ // It does fit on the line, so add it.
+ lineBuffer.append(delimBuffer).append(word);
+
+ if (delimBuffer.length() > 0)
+ {
+ delimBuffer = new StringBuilder();
+ }
+ }
+ else
+ {
+ // It doesn't fit on the line, so end the current line
+ // and start
+ // a new one.
+ buffer.append(padding);
+ buffer.append(lineBuffer);
+ buffer.append(EOL);
+
+ lineBuffer = new StringBuilder();
+ lineBuffer.append(word);
+
+ if (delimBuffer.length() > 0)
+ {
+ delimBuffer = new StringBuilder();
+ }
+ }
+ }
+ }
+
+ // If there's anything left in the line buffer, then add it to
+ // the
+ // final buffer.
+ buffer.append(padding);
+ buffer.append(lineBuffer);
+ }
+ }
+ }
+ return buffer.toString();
+ }
+
+
+
+ /**
* Parse the specified command line argument to create the appropriate
* LDAPControl. The argument string should be in the format
* controloid[:criticality[:value|::b64value|:<fileurl]]
@@ -78,7 +324,7 @@
* @throws org.opends.sdk.DecodeException
* If an error occurs.
*/
- public static GenericControl getControl(String argString)
+ static GenericControl getControl(String argString)
throws DecodeException
{
String controlOID = null;
@@ -231,8 +477,7 @@
* If a problem occurs while trying to read the specified
* file.
*/
- public static byte[] readBytesFromFile(String filePath)
- throws IOException
+ static byte[] readBytesFromFile(String filePath) throws IOException
{
byte[] val = null;
FileInputStream fis = null;
@@ -281,7 +526,7 @@
* The error result.
* @return The error code.
*/
- public static int printErrorMessage(ConsoleApplication app,
+ static int printErrorMessage(ConsoleApplication app,
ErrorResultException ere)
{
// if ((ere.getMessage() != null) && (ere.getMessage().length() >
@@ -332,7 +577,7 @@
* @return The user-friendly representation of the specified number of
* seconds.
*/
- public static Message secondsToTimeString(int numSeconds)
+ static Message secondsToTimeString(int numSeconds)
{
if (numSeconds < 60)
{
@@ -367,7 +612,7 @@
- public static void printPasswordPolicyResults(ConsoleApplication app,
+ static void printPasswordPolicyResults(ConsoleApplication app,
Connection connection)
{
if (connection instanceof AuthenticatedConnection)
@@ -458,7 +703,7 @@
* original value will be returned. If the provided value was
* out of this range, then 255 will be returned.
*/
- public static int filterExitCode(int exitCode)
+ static int filterExitCode(int exitCode)
{
if (exitCode < 0)
{
diff --git a/sdk/src/org/opends/sdk/util/Base64.java b/sdk/src/org/opends/sdk/util/Base64.java
index 7d8d6bb..06fa779 100755
--- a/sdk/src/org/opends/sdk/util/Base64.java
+++ b/sdk/src/org/opends/sdk/util/Base64.java
@@ -28,11 +28,10 @@
-import static org.opends.messages.UtilityMessages.ERR_BASE64_DECODE_INVALID_CHARACTER;
-import static org.opends.messages.UtilityMessages.ERR_BASE64_DECODE_INVALID_LENGTH;
-import static org.opends.sdk.util.Validator.ensureNotNull;
+import static com.sun.opends.sdk.util.Messages.*;
+import static org.opends.sdk.util.Validator.*;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/util/LocalizableException.java b/sdk/src/org/opends/sdk/util/LocalizableException.java
index edbc792..ea71cf2 100644
--- a/sdk/src/org/opends/sdk/util/LocalizableException.java
+++ b/sdk/src/org/opends/sdk/util/LocalizableException.java
@@ -28,7 +28,7 @@
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/util/LocalizedIllegalArgumentException.java b/sdk/src/org/opends/sdk/util/LocalizedIllegalArgumentException.java
index 5687293..d9e8d6e 100644
--- a/sdk/src/org/opends/sdk/util/LocalizedIllegalArgumentException.java
+++ b/sdk/src/org/opends/sdk/util/LocalizedIllegalArgumentException.java
@@ -29,7 +29,7 @@
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
diff --git a/sdk/src/org/opends/sdk/util/Platform.java b/sdk/src/org/opends/sdk/util/Platform.java
index 8440dc1..7f5937a 100644
--- a/sdk/src/org/opends/sdk/util/Platform.java
+++ b/sdk/src/org/opends/sdk/util/Platform.java
@@ -28,7 +28,7 @@
package org.opends.sdk.util;
-import static org.opends.messages.UtilityMessages.*;
+import static com.sun.opends.sdk.util.Messages.*;
import java.io.*;
import java.lang.reflect.Constructor;
@@ -38,7 +38,7 @@
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
-import org.opends.messages.Message;
+import com.sun.opends.sdk.util.Message;
/**
* Provides a wrapper class that collects all of the JVM vendor
diff --git a/sdk/src/org/opends/sdk/util/StaticUtils.java b/sdk/src/org/opends/sdk/util/StaticUtils.java
index b7fb4ad..0eb960a 100644
--- a/sdk/src/org/opends/sdk/util/StaticUtils.java
+++ b/sdk/src/org/opends/sdk/util/StaticUtils.java
@@ -29,9 +29,7 @@
-import static org.opends.messages.UtilityMessages.ERR_HEX_DECODE_INVALID_CHARACTER;
-import static org.opends.messages.UtilityMessages.ERR_HEX_DECODE_INVALID_LENGTH;
-import static org.opends.messages.UtilityMessages.ERR_INVALID_ESCAPE_CHAR;
+import static com.sun.opends.sdk.util.Messages.*;
import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
@@ -42,11 +40,12 @@
import java.util.zip.Deflater;
import java.util.zip.Inflater;
-import org.opends.messages.Message;
-import org.opends.messages.MessageBuilder;
-import org.opends.messages.MessageDescriptor;
import org.opends.sdk.DecodeException;
+import com.sun.opends.sdk.util.Message;
+import com.sun.opends.sdk.util.MessageBuilder;
+import com.sun.opends.sdk.util.MessageDescriptor;
+
/**
@@ -1040,7 +1039,7 @@
final Message ieMsg = ie.getMessageObject();
if (ieMsg != null)
{
- message.append(ieMsg.getDescriptor().getId());
+ message.append(ieMsg.getDescriptor().getOrdinal());
}
else
{
diff --git a/sdk/src/org/opends/sdk/util/ssl/HostnameMismatchCertificateException.java b/sdk/src/org/opends/sdk/util/ssl/HostnameMismatchCertificateException.java
deleted file mode 100644
index f6153af..0000000
--- a/sdk/src/org/opends/sdk/util/ssl/HostnameMismatchCertificateException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.opends.sdk.util.ssl;
-
-
-
-import java.security.cert.CertificateException;
-
-
-
-/**
- * The certificate's subject DN's value and the host name we tried to
- * connect to do not match.
- */
-@SuppressWarnings("serial")
-public class HostnameMismatchCertificateException extends
- CertificateException
-{
- private String expectedHostname;
-
- private String certificateHostname;
-
-
-
- public HostnameMismatchCertificateException(String expectedHostname,
- String certificateHostname)
- {
- this.expectedHostname = expectedHostname;
- this.certificateHostname = certificateHostname;
- }
-
-
-
- public HostnameMismatchCertificateException(String msg,
- String expectedHostname, String certificateHostname)
- {
- super(msg);
- this.expectedHostname = expectedHostname;
- this.certificateHostname = certificateHostname;
- }
-
-
-
- public String getExpectedHostname()
- {
- return expectedHostname;
- }
-
-
-
- public void setExpectedHostname(String expectedHostname)
- {
- this.expectedHostname = expectedHostname;
- }
-
-
-
- public String getCertificateHostname()
- {
- return certificateHostname;
- }
-
-
-
- public void setCertificateHostname(String certificateHostname)
- {
- this.certificateHostname = certificateHostname;
- }
-}
diff --git a/sdk/src/org/opends/sdk/util/ssl/PromptingTrustManager.java b/sdk/src/org/opends/sdk/util/ssl/PromptingTrustManager.java
deleted file mode 100644
index 77ee67f..0000000
--- a/sdk/src/org/opends/sdk/util/ssl/PromptingTrustManager.java
+++ /dev/null
@@ -1,412 +0,0 @@
-package org.opends.sdk.util.ssl;
-
-import static org.opends.messages.UtilityMessages.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.TrustManagerFactory;
-import javax.net.ssl.X509TrustManager;
-
-import org.opends.messages.Message;
-import org.opends.sdk.util.Validator;
-import org.opends.server.util.cli.*;
-
-/**
- * Created by IntelliJ IDEA.
- * User: boli
- * Date: Oct 16, 2009
- * Time: 10:38:50 AM
- * To change this template use File | Settings | File Templates.
- */
-public class PromptingTrustManager implements X509TrustManager
-{
- static private final Logger LOG =
- Logger.getLogger(PromptingTrustManager.class.getName());
- static private final String DEFAULT_PATH =
- System.getProperty("user.home") + File.separator + ".opends" +
- File.separator + "keystore";
- static private final char[] DEFAULT_PASSWORD = "OpenDS".toCharArray();
-
- /**
- * Enumeration description server certificate trust option.
- */
- private enum TrustOption
- {
- UNTRUSTED(1, INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_NO.get()),
- SESSION(2,INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_SESSION.get()),
- PERMAMENT(3,INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION_ALWAYS.get()),
- CERTIFICATE_DETAILS(4,
- INFO_LDAP_CONN_PROMPT_SECURITY_CERTIFICATE_DETAILS.get());
-
- private Integer choice;
-
- private Message msg;
-
- /**
- * Private constructor.
- *
- * @param i
- * the menu return value.
- * @param msg
- * the message message.
- */
- private TrustOption(int i, Message msg)
- {
- choice = i;
- this.msg = msg;
- }
-
- /**
- * Returns the choice number.
- *
- * @return the attribute name.
- */
- public Integer getChoice()
- {
- return choice;
- }
-
- /**
- * Return the menu message.
- *
- * @return the menu message.
- */
- public Message getMenuMessage()
- {
- return msg;
- }
- }
-
- private final KeyStore inMemoryTrustStore;
- private final KeyStore onDiskTrustStore;
-
- private final X509TrustManager inMemoryTrustManager;
- private final X509TrustManager onDiskTrustManager;
-
- private final X509TrustManager nestedTrustManager;
- private final ConsoleApplication app;
-
- public PromptingTrustManager(ConsoleApplication app,
- X509TrustManager sourceTrustManager)
- throws KeyStoreException, IOException, NoSuchAlgorithmException,
- CertificateException
- {
- this(app, DEFAULT_PATH, sourceTrustManager);
- }
- public PromptingTrustManager(ConsoleApplication app, String acceptedStorePath,
- X509TrustManager sourceTrustManager)
- throws KeyStoreException, IOException, NoSuchAlgorithmException,
- CertificateException
- {
- Validator.ensureNotNull(app, acceptedStorePath);
- this.app = app;
- this.nestedTrustManager = sourceTrustManager;
- inMemoryTrustStore =
- KeyStore.getInstance(KeyStore.getDefaultType());
- onDiskTrustStore =
- KeyStore.getInstance(KeyStore.getDefaultType());
-
- File onDiskTrustStorePath = new File(acceptedStorePath);
- inMemoryTrustStore.load(null, null);
- if(!onDiskTrustStorePath.exists())
- {
- onDiskTrustStore.load(null, null);
- }
- else
- {
- FileInputStream fos = new FileInputStream(onDiskTrustStorePath);
- onDiskTrustStore.load(fos, DEFAULT_PASSWORD);
- }
- TrustManagerFactory tmf = TrustManagerFactory.getInstance(
- TrustManagerFactory.getDefaultAlgorithm());
-
- tmf.init(inMemoryTrustStore);
- X509TrustManager x509tm = null;
- for(TrustManager tm : tmf.getTrustManagers())
- {
- if(tm instanceof X509TrustManager)
- {
- x509tm = (X509TrustManager)tm;
- break;
- }
- }
- if(x509tm == null)
- {
- throw new NoSuchAlgorithmException();
- }
- this.inMemoryTrustManager = x509tm;
-
- tmf.init(onDiskTrustStore);
- x509tm = null;
- for(TrustManager tm : tmf.getTrustManagers())
- {
- if(tm instanceof X509TrustManager)
- {
- x509tm = (X509TrustManager)tm;
- break;
- }
- }
- if(x509tm == null)
- {
- throw new NoSuchAlgorithmException();
- }
- this.onDiskTrustManager = x509tm;
- }
-
- public void checkClientTrusted(X509Certificate[] x509Certificates, String s)
- throws CertificateException
- {
- try
- {
- inMemoryTrustManager.checkClientTrusted(x509Certificates, s);
- }
- catch(Exception ce1)
- {
- try
- {
- onDiskTrustManager.checkClientTrusted(x509Certificates, s);
- }
- catch(Exception ce2)
- {
- if(nestedTrustManager != null)
- {
- try
- {
- nestedTrustManager.checkClientTrusted(x509Certificates, s);
- }
- catch(Exception ce3)
- {
- checkManuallyTrusted(x509Certificates, ce3);
- }
- }
- else
- {
- checkManuallyTrusted(x509Certificates, ce1);
- }
- }
- }
- }
-
- public void checkServerTrusted(X509Certificate[] x509Certificates, String s)
- throws CertificateException
- {
- try
- {
- inMemoryTrustManager.checkServerTrusted(x509Certificates, s);
- }
- catch(Exception ce1)
- {
- try
- {
- onDiskTrustManager.checkServerTrusted(x509Certificates, s);
- }
- catch(Exception ce2)
- {
- if(nestedTrustManager != null)
- {
- try
- {
- nestedTrustManager.checkServerTrusted(x509Certificates, s);
- }
- catch(Exception ce3)
- {
- checkManuallyTrusted(x509Certificates, ce3);
- }
- }
- else
- {
- checkManuallyTrusted(x509Certificates, ce1);
- }
- }
- }
- }
-
- public X509Certificate[] getAcceptedIssuers() {
- if(nestedTrustManager != null)
- {
- return nestedTrustManager.getAcceptedIssuers();
- }
- return new X509Certificate[0];
- }
-
- /**
- * Indicate if the certificate chain can be trusted.
- *
- * @param chain The certificate chain to validate
- * certificate.
- */
- private void checkManuallyTrusted(X509Certificate[] chain,
- Exception exception)
- throws CertificateException
- {
- app.println();
- app.println(INFO_LDAP_CONN_PROMPT_SECURITY_SERVER_CERTIFICATE.get());
- app.println();
- for (int i = 0; i < chain.length; i++)
- {
- // Certificate DN
- app.println(INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_USER_DN.get(
- chain[i].getSubjectDN().toString()));
-
- // certificate validity
- app.println(
- INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_VALIDITY.get(
- chain[i].getNotBefore().toString(),
- chain[i].getNotAfter().toString()));
-
- // certificate Issuer
- app.println(
- INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE_ISSUER.get(
- chain[i].getIssuerDN().toString()));
-
- if (i+1 <chain.length)
- {
- app.println();
- app.println();
- }
- }
- MenuBuilder<Integer> builder = new MenuBuilder<Integer>(app);
- builder.setPrompt(INFO_LDAP_CONN_PROMPT_SECURITY_TRUST_OPTION.get());
-
- TrustOption defaultTrustMethod = TrustOption.SESSION ;
- for (TrustOption t : TrustOption.values())
- {
- int i = builder.addNumberedOption(t.getMenuMessage(), MenuResult
- .success(t.getChoice()));
- if (t.equals(defaultTrustMethod))
- {
- builder.setDefault(
- INFO_LDAP_CONN_PROMPT_SECURITY_PROTOCOL_DEFAULT_CHOICE
- .get(new Integer(i)), MenuResult.success(t.getChoice()));
- }
- }
-
- app.println();
- app.println();
-
- Menu<Integer> menu = builder.toMenu();
- while (true)
- {
- try
- {
- MenuResult<Integer> result = menu.run();
- if (result.isSuccess())
- {
- if (result.getValue().equals(TrustOption.UNTRUSTED.getChoice()))
- {
- if(exception instanceof CertificateException)
- {
- throw (CertificateException)exception;
- }
- else
- {
- throw new CertificateException(exception);
- }
- }
-
- if ((result.getValue().equals(TrustOption.CERTIFICATE_DETAILS
- .getChoice())))
- {
- for (X509Certificate aChain : chain) {
- app.println();
- app.println(INFO_LDAP_CONN_SECURITY_SERVER_CERTIFICATE
- .get(aChain.toString()));
- }
- continue;
- }
-
- // Update the trust manager with the new certificate
- acceptCertificate(chain,
- result.getValue().equals(TrustOption.PERMAMENT.getChoice()));
- break;
- }
- else
- {
- // Should never happen.
- throw new RuntimeException();
- }
- }
- catch (CLIException cliE)
- {
- throw new RuntimeException(cliE);
- }
- }
- }
-
- /**
- * This method is called when the user accepted a certificate.
- * @param chain the certificate chain accepted by the user.
- * certificate.
- */
- public void acceptCertificate(X509Certificate[] chain, boolean permanent)
- {
- if(permanent)
- {
- LOG.log(Level.INFO, "Permanently accepting certificate chain to " +
- "truststore");
- }
- else
- {
- LOG.log(Level.INFO, "Accepting certificate chain for this session");
- }
-
- for (X509Certificate aChain : chain) {
- try
- {
- String alias = aChain.getSubjectDN().getName();
- inMemoryTrustStore.setCertificateEntry(alias, aChain);
- if(permanent)
- {
- onDiskTrustStore.setCertificateEntry(alias, aChain);
- }
- }
- catch(Exception e)
- {
- LOG.log(Level.WARNING, "Error setting certificate to store: " + e +
- "\nCert: " + aChain.toString());
- }
- }
-
- if(permanent)
- {
- try
- {
- File truststoreFile = new File(DEFAULT_PATH);
- if (!truststoreFile.exists())
- {
- createFile(truststoreFile);
- }
- FileOutputStream fos = new FileOutputStream(truststoreFile);
- onDiskTrustStore.store(fos, DEFAULT_PASSWORD);
- fos.close();
- }
- catch(Exception e)
- {
- LOG.log(Level.WARNING, "Error saving store to disk: " + e);
- }
- }
- }
-
- private boolean createFile(File f) throws IOException {
- boolean success = false;
- if (f != null) {
- File parent = f.getParentFile();
- if (!parent.exists()) {
- parent.mkdirs();
- }
- success = f.createNewFile();
- }
- return success;
- }
-}
--
Gitblit v1.10.0