diff --git a/src/NLS/EN_US/XMLErrList_EN_US.Xml b/src/NLS/EN_US/XMLErrList_EN_US.Xml
index 7d0d705cc781854844ef9095b90ef2eec267b1ca..61fcfc17cfae687e0a938036e223679d989270de 100644
--- a/src/NLS/EN_US/XMLErrList_EN_US.Xml
+++ b/src/NLS/EN_US/XMLErrList_EN_US.Xml
@@ -467,12 +467,6 @@
             <Message Id="FACET_Len_minLen" Text="It is an error for both length and minLength to be members of facets"/>
             <Message Id="FACET_maxLen_minLen" Text="Value of maxLenght '{0}' must be greater than the value of minLength '{1}'"/>
             <Message Id="FACET_bool_Pattern" Text="Only constraining facet in boolean datatype is PATTERN"/>
-            <Message Id="FACET_max_Incl_Excl" Text="It is an error for both maxInclusive and maxExclusive to be specified for the same datatype"/>
-            <Message Id="FACET_min_Incl_Excl" Text="It is an error for both minInclusive and minExclusive to be specified for the same datatype"/>
-            <Message Id="FACET_maxExcl_minExcl" Text="maxExclusive value must be > than minExclusive value"/>
-            <Message Id="FACET_maxExcl_minIncl" Text="maxExclusive value must be > than minInclusive value"/>
-            <Message Id="FACET_maxIncl_minExcl" Text="maxInclusive value must be > than minExclusive value"/>
-            <Message Id="FACET_maxIncl_minIncl" Text="maxInclusive value must be > than minInclusive value"/>
             <Message Id="FACET_Invalid_Tag" Text="Invalid Facet Tag"/>
             <Message Id="FACET_Len_baseLen" Text="Value of Length '{0}' must be equal to the base Length '{1}'"/>
             <Message Id="FACET_minLen_baseminLen" Text="Value of minLength '{0}' must be greater than or equal to the base minLength '{1}'"/>
@@ -483,12 +477,55 @@
             <Message Id="FACET_Invalid_WS" Text="Value of whitespace '{0}' must be one of 'preserve', 'replace', 'collapse'"/>
             <Message Id="FACET_WS_collapse" Text="It is an error if whiteSpace = 'preserve' or 'replace' and base.whiteSpace = 'collapse'."/>
             <Message Id="FACET_WS_replace" Text="It is an error if whiteSpace = 'preserve' and base.whiteSpace = 'replace'."/>
-            <Message Id="VALUE_NotMatch_Pattern" Text="Value '{0}' does not match regular expression facet '{1}'"/>
+            <Message Id="FACET_Invalid_MaxIncl" Text="MaxInclusive '{0}' is invalid"/>
+            <Message Id="FACET_Invalid_MaxExcl" Text="MaxExclusive '{0}' is invalid"/>
+            <Message Id="FACET_Invalid_MinIncl" Text="MinInclusive '{0}' is invalid"/>
+            <Message Id="FACET_Invalid_MinExcl" Text="MinExclusive '{0}' is invalid"/>
+            <Message Id="FACET_Invalid_TotalDigit" Text="TotalDigit Value '{0}' is invalid"/>
+            <Message Id="FACET_Invalid_FractDigit" Text="FractionDigit Value '{0}' is invalid"/>
+            <Message Id="FACET_NonNeg_TotalDigit" Text="TotalDigit Value '{0}' must be a nonNegativeInteger"/>
+            <Message Id="FACET_NonNeg_FractDigit" Text="FractionDigit Value '{0}' must be a nonNegativeInteger"/>            
+            <Message Id="FACET_max_Incl_Excl" Text="It is an error for both maxInclusive and maxExclusive to be specified for the same datatype"/>
+            <Message Id="FACET_min_Incl_Excl" Text="It is an error for both minInclusive and minExclusive to be specified for the same datatype"/>
+            <Message Id="FACET_maxExcl_minExcl" Text="maxExclusive value '{0}' must be greater than minExclusive value '{1}'"/>
+            <Message Id="FACET_maxExcl_minIncl" Text="maxExclusive value '{0}' must be greater than minInclusive value '{1}'"/>
+            <Message Id="FACET_maxIncl_minExcl" Text="maxInclusive value '{0}' must be greater than minExclusive value '{1}'"/>
+            <Message Id="FACET_maxIncl_minIncl" Text="maxInclusive value '[0}' must be greater than minInclusive value '{1}'"/>
+            <Message Id="FACET_TotDigit_FractDigit" Text="TotalDigit value '[0}' must be greater than FractionDigit value '{1}'"/>
+            <Message Id="FACET_maxIncl_base_maxExcl" Text="maxInclusive value '{0}' must be less than base's maxExclusive value '{1}'"/>
+            <Message Id="FACET_maxIncl_base_maxIncl" Text="maxInclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'"/>
+            <Message Id="FACET_maxIncl_base_minIncl" Text="maxInclusive value '{0}' must be greater than or equal to base's minInclusive value '{1}'"/>
+            <Message Id="FACET_maxIncl_base_minExcl" Text="maxInclusive value '{0}' must be greater than base's minExclusive value '{1}'"/>
+            <Message Id="FACET_maxExcl_base_maxExcl" Text="maxExclusive value '{0}' must be less than or equal to base's maxExclusive value '{1}'"/>
+            <Message Id="FACET_maxExcl_base_maxIncl" Text="maxExclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'"/>
+            <Message Id="FACET_maxExcl_base_minIncl" Text="maxExclusive value '{0}' must be greater than base's minInclusive value '{1}'"/>
+            <Message Id="FACET_maxExcl_base_minExcl" Text="maxExclusive value '{0}' must be greater than base's minExclusive value '{1}'"/>			
+            <Message Id="FACET_minExcl_base_maxExcl" Text="minExclusive value '{0}' must be less than base's maxExclusive value '{1}'"/>
+            <Message Id="FACET_minExcl_base_maxIncl" Text="minExclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'"/>
+            <Message Id="FACET_minExcl_base_minIncl" Text="minExclusive value '{0}' must be greater than base's minInclusive value '{1}'"/>
+            <Message Id="FACET_minExcl_base_minExcl" Text="minExclusive value '{0}' must be greater than base's minExclusive value '{1}'"/>
+            <Message Id="FACET_minIncl_base_maxExcl" Text="minInclusive value '{0}' must be less than base's maxExclusive value '{1}'"/>
+            <Message Id="FACET_minIncl_base_maxIncl" Text="minInclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'"/>
+            <Message Id="FACET_minIncl_base_minIncl" Text="minInclusive value '{0}' must be greater than or equal to base's minInclusive value '{1}'"/>
+            <Message Id="FACET_minIncl_base_minExcl" Text="minInclusive value '{0}' must be greater than base's minExclusive value '{1}'"/>
+            <Message Id="FACET_totDigit_base_totalDigit" Text="totalDigit value '{0}' must be less than or equal to base's totalDigit value '{1}'"/>
+            <Message Id="FACET_maxIncl_notFromBase" Text="maxInclusive value '{0}' must be from the base's value space"/>
+            <Message Id="FACET_maxExcl_notFromBase" Text="maxExclusive value '{0}' must be from the base's value space"/>
+            <Message Id="FACET_minIncl_notFromBase" Text="minInclusive value '{0}' must be from the base's value space"/>
+            <Message Id="FACET_minExcl_notFromBase" Text="minExclusive value '{0}' must be from the base's value space"/>
+			<Message Id="VALUE_NotMatch_Pattern" Text="Value '{0}' does not match regular expression facet '{1}'"/>
             <Message Id="VALUE_Not_Base64" Text="Value '{0}' is not encoded in Base64 "/>
+            <Message Id="VALUE_Not_HexBin" Text="Value '{0}' is not encoded in HexBin "/>
             <Message Id="VALUE_GT_maxLen" Text="Value '{0}' with length '{1}' exceeds maximum length facet of '{2}' "/>
             <Message Id="VALUE_LT_minLen" Text="Value '{0}' with length '{1}' is less than minimum length facet of '{2}' "/>
             <Message Id="VALUE_NE_Len" Text="Value '{0}' with length '{1}' is not equal to length facet of '{2}' "/>
             <Message Id="VALUE_NotIn_Enumeration" Text="Value '{0}' is not in enumeration "/>
+            <Message Id="VALUE_exceed_totalDigit" Text="Value '{0}' with total digits '{1}' exceeds total digit facet of '{2}' "/>
+            <Message Id="VALUE_exceed_fractDigit" Text="Value '{0}' with fraction digits '{1}' exceeds fraction digit facet of '{2}' "/>
+            <Message Id="VALUE_exceed_maxIncl" Text="Value '{0}' must be less than or equal to MaxInclusive '{1}' "/>
+            <Message Id="VALUE_exceed_maxExcl" Text="Value '{0}' must be less than MaxExclusive '{1}' "/>
+            <Message Id="VALUE_exceed_minIncl" Text="Value '{0}' must be greater than or equal to MinInclusive '{1}' "/>
+            <Message Id="VALUE_exceed_minExcl" Text="Value '{0}' must be greater than MinExclusive '{1}' "/>
             <Message Id="Regex_Result_Not_Set" Text="A result is not set."/>
             <Message Id="Regex_CompactRangesError" Text="CompactRanges - Internal Error"/>
             <Message Id="Regex_MergeRangesTypeMismatch" Text="Merge Ranges - Mismatched type"/>
@@ -504,6 +541,7 @@
             <Message Id="Regex_NotSupported" Text="Not supported"/>
             <Message Id="Regex_InvalidChildIndex" Text="Invalid child index"/>
             <Message Id="NEL_RepeatedCalls" Text="Enabling the NEL option can only be called once per process."/>
+            <Message Id="RethrowError" Text="{0}"/>
         </Error>
     </MsgDomain>
     <MsgDomain Domain="http://apache.org/xml/messages/XML4JErrors">
diff --git a/src/util/MsgLoaders/InMemory/CppErrMsgs_EN_US.hpp b/src/util/MsgLoaders/InMemory/CppErrMsgs_EN_US.hpp
index f15b703f8bcdedd7a0612239ff7fca7c45663753..ce36f5f26a56e33997adbbb0f214dd1bfcbb65f2 100644
--- a/src/util/MsgLoaders/InMemory/CppErrMsgs_EN_US.hpp
+++ b/src/util/MsgLoaders/InMemory/CppErrMsgs_EN_US.hpp
@@ -473,12 +473,6 @@ const XMLCh gXMLExceptArray[][128] =
   , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0073,0x0020,0x006F,0x0066,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0073,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0068,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
   , { 0x004F,0x006E,0x006C,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0069,0x006E,0x0067,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x0069,0x006E,0x0020,0x0062,0x006F,0x006F,0x006C,0x0065,0x0061,0x006E,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x0050,0x0041,0x0054,0x0054,0x0045,0x0052,0x004E,0x00 }
-  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x00 }
-  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x00 }
-  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x003E,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
-  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x003E,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
-  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x003E,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
-  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x003E,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
   , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x0054,0x0061,0x0067,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
@@ -489,12 +483,55 @@ const XMLCh gXMLExceptArray[][128] =
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006F,0x006E,0x0065,0x0020,0x006F,0x0066,0x0020,0x0027,0x0070,0x0072,0x0065,0x0073,0x0065,0x0072,0x0076,0x0065,0x0027,0x002C,0x0020,0x0027,0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x0027,0x002C,0x0020,0x0027,0x0063,0x006F,0x006C,0x006C,0x0061,0x0070,0x0073,0x0065,0x0027,0x00 }
   , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0069,0x0066,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0070,0x0072,0x0065,0x0073,0x0065,0x0072,0x0076,0x0065,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0062,0x0061,0x0073,0x0065,0x002E,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0063,0x006F,0x006C,0x006C,0x0061,0x0070,0x0073,0x0065,0x0027,0x002E,0x00 }
   , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0069,0x0066,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0070,0x0072,0x0065,0x0073,0x0065,0x0072,0x0076,0x0065,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0062,0x0061,0x0073,0x0065,0x002E,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x0027,0x002E,0x00 }
+  , { 0x004D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x004D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x004D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x004D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0054,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0046,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0054,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x006E,0x006F,0x006E,0x004E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x00 }
+  , { 0x0046,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x006E,0x006F,0x006E,0x004E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x005B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0054,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x005B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0046,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0074,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0072,0x0065,0x0067,0x0075,0x006C,0x0061,0x0072,0x0020,0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0042,0x0061,0x0073,0x0065,0x0036,0x0034,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0048,0x0065,0x0078,0x0042,0x0069,0x006E,0x0020,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0073,0x0020,0x006D,0x0061,0x0078,0x0069,0x006D,0x0075,0x006D,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0069,0x006D,0x0075,0x006D,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
   , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0069,0x006E,0x0020,0x0065,0x006E,0x0075,0x006D,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0073,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0073,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0066,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0073,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0073,0x0020,0x0066,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x004D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x004D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x004D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x004D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
   , { 0x0041,0x0020,0x0072,0x0065,0x0073,0x0075,0x006C,0x0074,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0065,0x0074,0x002E,0x00 }
   , { 0x0043,0x006F,0x006D,0x0070,0x0061,0x0063,0x0074,0x0052,0x0061,0x006E,0x0067,0x0065,0x0073,0x0020,0x002D,0x0020,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0045,0x0072,0x0072,0x006F,0x0072,0x00 }
   , { 0x004D,0x0065,0x0072,0x0067,0x0065,0x0020,0x0052,0x0061,0x006E,0x0067,0x0065,0x0073,0x0020,0x002D,0x0020,0x004D,0x0069,0x0073,0x006D,0x0061,0x0074,0x0063,0x0068,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
@@ -510,8 +547,9 @@ const XMLCh gXMLExceptArray[][128] =
   , { 0x004E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x00 }
   , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x00 }
   , { 0x0045,0x006E,0x0061,0x0062,0x006C,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x004E,0x0045,0x004C,0x0020,0x006F,0x0070,0x0074,0x0069,0x006F,0x006E,0x0020,0x0063,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0062,0x0065,0x0020,0x0063,0x0061,0x006C,0x006C,0x0065,0x0064,0x0020,0x006F,0x006E,0x0063,0x0065,0x0020,0x0070,0x0065,0x0072,0x0020,0x0070,0x0072,0x006F,0x0063,0x0065,0x0073,0x0073,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x00 }
   , { 0x0045,0x005F,0x0045,0x006E,0x0064,0x00 }
 
 };
-const unsigned int gXMLExceptArraySize = 193;
+const unsigned int gXMLExceptArraySize = 231;
 
diff --git a/src/util/MsgLoaders/MsgCatalog/XMLMsgCat_EN_US.Msg b/src/util/MsgLoaders/MsgCatalog/XMLMsgCat_EN_US.Msg
index b061e6083132f4adc873785a5dd028fa159cb929..f5b637812db426345918bb09a3a87ead0a5ef98c 100644
--- a/src/util/MsgLoaders/MsgCatalog/XMLMsgCat_EN_US.Msg
+++ b/src/util/MsgLoaders/MsgCatalog/XMLMsgCat_EN_US.Msg
@@ -453,42 +453,80 @@ $set 3
 148  It is an error for both length and minLength to be members of facets
 149  Value of maxLenght '{0}' must be greater than the value of minLength '{1}'
 150  Only constraining facet in boolean datatype is PATTERN
-151  It is an error for both maxInclusive and maxExclusive to be specified for the same datatype
-152  It is an error for both minInclusive and minExclusive to be specified for the same datatype
-153  maxExclusive value must be > than minExclusive value
-154  maxExclusive value must be > than minInclusive value
-155  maxInclusive value must be > than minExclusive value
-156  maxInclusive value must be > than minInclusive value
-157  Invalid Facet Tag
-158  Value of Length '{0}' must be equal to the base Length '{1}'
-159  Value of minLength '{0}' must be greater than or equal to the base minLength '{1}'
-160  Value of minLength '{0}' must be less than or equal to the base maxLength '{1}'
-161  Value of maxLength '{0}' must be less than or equal to the base maxLength '{1}'
-162  Value of maxLength '{0}' must be greater than or equal to the base minLength '{1}'
-163  Value of enumeration = '{0}' must be from the value space of base
-164  Value of whitespace '{0}' must be one of 'preserve', 'replace', 'collapse'
-165  It is an error if whiteSpace = 'preserve' or 'replace' and base.whiteSpace = 'collapse'.
-166  It is an error if whiteSpace = 'preserve' and base.whiteSpace = 'replace'.
-167  Value '{0}' does not match regular expression facet '{1}'
-168  Value '{0}' is not encoded in Base64 
-169  Value '{0}' with length '{1}' exceeds maximum length facet of '{2}' 
-170  Value '{0}' with length '{1}' is less than minimum length facet of '{2}' 
-171  Value '{0}' with length '{1}' is not equal to length facet of '{2}' 
-172  Value '{0}' is not in enumeration 
-173  A result is not set.
-174  CompactRanges - Internal Error
-175  Merge Ranges - Mismatched type
-176  SubtractRanges - Internal Error
-177  IntersectRanges - Internal Error
-178  ComplementRanges - Argument must be a RangeToken
-179  Invalid category name: {0}
-180  Keyword '{0}' not found
-181  Reference no must be more than zero
-182  Unknown option: {0}
-183  Unknown token type
-184  Failed to get RangeToken for: {0}
-185  Not supported
-186  Invalid child index
-187  Enabling the NEL option can only be called once per process.
+151  Invalid Facet Tag
+152  Value of Length '{0}' must be equal to the base Length '{1}'
+153  Value of minLength '{0}' must be greater than or equal to the base minLength '{1}'
+154  Value of minLength '{0}' must be less than or equal to the base maxLength '{1}'
+155  Value of maxLength '{0}' must be less than or equal to the base maxLength '{1}'
+156  Value of maxLength '{0}' must be greater than or equal to the base minLength '{1}'
+157  Value of enumeration = '{0}' must be from the value space of base
+158  Value of whitespace '{0}' must be one of 'preserve', 'replace', 'collapse'
+159  It is an error if whiteSpace = 'preserve' or 'replace' and base.whiteSpace = 'collapse'.
+160  It is an error if whiteSpace = 'preserve' and base.whiteSpace = 'replace'.
+161  MaxInclusive '{0}' is invalid
+162  MaxExclusive '{0}' is invalid
+163  MinInclusive '{0}' is invalid
+164  MinExclusive '{0}' is invalid
+165  TotalDigit Value '{0}' is invalid
+166  FractionDigit Value '{0}' is invalid
+167  TotalDigit Value '{0}' must be a nonNegativeInteger
+168  FractionDigit Value '{0}' must be a nonNegativeInteger
+169  It is an error for both maxInclusive and maxExclusive to be specified for the same datatype
+170  It is an error for both minInclusive and minExclusive to be specified for the same datatype
+171  maxExclusive value '{0}' must be greater than minExclusive value '{1}'
+172  maxExclusive value '{0}' must be greater than minInclusive value '{1}'
+173  maxInclusive value '{0}' must be greater than minExclusive value '{1}'
+174  maxInclusive value '[0}' must be greater than minInclusive value '{1}'
+175  TotalDigit value '[0}' must be greater than FractionDigit value '{1}'
+176  maxInclusive value '{0}' must be less than base's maxExclusive value '{1}'
+177  maxInclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'
+178  maxInclusive value '{0}' must be greater than or equal to base's minInclusive value '{1}'
+179  maxInclusive value '{0}' must be greater than base's minExclusive value '{1}'
+180  maxExclusive value '{0}' must be less than or equal to base's maxExclusive value '{1}'
+181  maxExclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'
+182  maxExclusive value '{0}' must be greater than base's minInclusive value '{1}'
+183  maxExclusive value '{0}' must be greater than base's minExclusive value '{1}'
+184  minExclusive value '{0}' must be less than base's maxExclusive value '{1}'
+185  minExclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'
+186  minExclusive value '{0}' must be greater than base's minInclusive value '{1}'
+187  minExclusive value '{0}' must be greater than base's minExclusive value '{1}'
+188  minInclusive value '{0}' must be less than base's maxExclusive value '{1}'
+189  minInclusive value '{0}' must be less than or equal to base's maxInclusive value '{1}'
+190  minInclusive value '{0}' must be greater than or equal to base's minInclusive value '{1}'
+191  minInclusive value '{0}' must be greater than base's minExclusive value '{1}'
+192  totalDigit value '{0}' must be less than or equal to base's totalDigit value '{1}'
+193  maxInclusive value '{0}' must be from the base's value space
+194  maxExclusive value '{0}' must be from the base's value space
+195  minInclusive value '{0}' must be from the base's value space
+196  minExclusive value '{0}' must be from the base's value space
+197  Value '{0}' does not match regular expression facet '{1}'
+198  Value '{0}' is not encoded in Base64 
+199  Value '{0}' is not encoded in HexBin 
+200  Value '{0}' with length '{1}' exceeds maximum length facet of '{2}' 
+201  Value '{0}' with length '{1}' is less than minimum length facet of '{2}' 
+202  Value '{0}' with length '{1}' is not equal to length facet of '{2}' 
+203  Value '{0}' is not in enumeration 
+204  Value '{0}' with total digits '{1}' exceeds total digit facet of '{2}' 
+205  Value '{0}' with fraction digits '{1}' exceeds fraction digit facet of '{2}' 
+206  Value '{0}' must be less than or equal to MaxInclusive '{1}' 
+207  Value '{0}' must be less than MaxExclusive '{1}' 
+208  Value '{0}' must be greater than or equal to MinInclusive '{1}' 
+209  Value '{0}' must be greater than MinExclusive '{1}' 
+210  A result is not set.
+211  CompactRanges - Internal Error
+212  Merge Ranges - Mismatched type
+213  SubtractRanges - Internal Error
+214  IntersectRanges - Internal Error
+215  ComplementRanges - Argument must be a RangeToken
+216  Invalid category name: {0}
+217  Keyword '{0}' not found
+218  Reference no must be more than zero
+219  Unknown option: {0}
+220  Unknown token type
+221  Failed to get RangeToken for: {0}
+222  Not supported
+223  Invalid child index
+224  Enabling the NEL option can only be called once per process.
+225  {0}
 
 
diff --git a/src/util/Platforms/Win32/Version.rc b/src/util/Platforms/Win32/Version.rc
index e31208df980a5ddfbe0acf3ee92d14f585a96218..93c03fcd3d621c57023427c5d1bb6523ada8db03 100644
--- a/src/util/Platforms/Win32/Version.rc
+++ b/src/util/Platforms/Win32/Version.rc
@@ -103,6 +103,7 @@ END
 //  so do not edit this file directly!!
 // ----------------------------------------------------------------
 
+
 STRINGTABLE DISCARDABLE
 BEGIN
     2                 L"\x004E\x006F\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0062\x0065\x0065\x006E\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
@@ -558,43 +559,81 @@ BEGIN
     8340              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0066\x006F\x0072\x0020\x0062\x006F\x0074\x0068\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0061\x006E\x0064\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0074\x006F\x0020\x0062\x0065\x0020\x006D\x0065\x006D\x0062\x0065\x0072\x0073\x0020\x006F\x0066\x0020\x0066\x0061\x0063\x0065\x0074\x0073\x00"
     8341              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0068\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0074\x0068\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
     8342              L"\x004F\x006E\x006C\x0079\x0020\x0063\x006F\x006E\x0073\x0074\x0072\x0061\x0069\x006E\x0069\x006E\x0067\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x0069\x006E\x0020\x0062\x006F\x006F\x006C\x0065\x0061\x006E\x0020\x0064\x0061\x0074\x0061\x0074\x0079\x0070\x0065\x0020\x0069\x0073\x0020\x0050\x0041\x0054\x0054\x0045\x0052\x004E\x00"
-    8343              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0066\x006F\x0072\x0020\x0062\x006F\x0074\x0068\x0020\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0061\x006E\x0064\x0020\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0074\x006F\x0020\x0062\x0065\x0020\x0073\x0070\x0065\x0063\x0069\x0066\x0069\x0065\x0064\x0020\x0066\x006F\x0072\x0020\x0074\x0068\x0065\x0020\x0073\x0061\x006D\x0065\x0020\x0064\x0061\x0074\x0061\x0074\x0079\x0070\x0065\x00"
-    8344              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0066\x006F\x0072\x0020\x0062\x006F\x0074\x0068\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0061\x006E\x0064\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0074\x006F\x0020\x0062\x0065\x0020\x0073\x0070\x0065\x0063\x0069\x0066\x0069\x0065\x0064\x0020\x0066\x006F\x0072\x0020\x0074\x0068\x0065\x0020\x0073\x0061\x006D\x0065\x0020\x0064\x0061\x0074\x0061\x0074\x0079\x0070\x0065\x00"
-    8345              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x003E\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    8346              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x003E\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    8347              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x003E\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    8348              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x003E\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    8349              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0046\x0061\x0063\x0065\x0074\x0020\x0054\x0061\x0067\x00"
-    8350              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    8351              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    8352              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    8353              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    8354              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    8355              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x003D\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0066\x0072\x006F\x006D\x0020\x0074\x0068\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0073\x0070\x0061\x0063\x0065\x0020\x006F\x0066\x0020\x0062\x0061\x0073\x0065\x00"
-    8356              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x0077\x0068\x0069\x0074\x0065\x0073\x0070\x0061\x0063\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006F\x006E\x0065\x0020\x006F\x0066\x0020\x0027\x0070\x0072\x0065\x0073\x0065\x0072\x0076\x0065\x0027\x002C\x0020\x0027\x0072\x0065\x0070\x006C\x0061\x0063\x0065\x0027\x002C\x0020\x0027\x0063\x006F\x006C\x006C\x0061\x0070\x0073\x0065\x0027\x00"
-    8357              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0069\x0066\x0020\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0070\x0072\x0065\x0073\x0065\x0072\x0076\x0065\x0027\x0020\x006F\x0072\x0020\x0027\x0072\x0065\x0070\x006C\x0061\x0063\x0065\x0027\x0020\x0061\x006E\x0064\x0020\x0062\x0061\x0073\x0065\x002E\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0063\x006F\x006C\x006C\x0061\x0070\x0073\x0065\x0027\x002E\x00"
-    8358              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0069\x0066\x0020\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0070\x0072\x0065\x0073\x0065\x0072\x0076\x0065\x0027\x0020\x0061\x006E\x0064\x0020\x0062\x0061\x0073\x0065\x002E\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0072\x0065\x0070\x006C\x0061\x0063\x0065\x0027\x002E\x00"
-    8359              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0064\x006F\x0065\x0073\x0020\x006E\x006F\x0074\x0020\x006D\x0061\x0074\x0063\x0068\x0020\x0072\x0065\x0067\x0075\x006C\x0061\x0072\x0020\x0065\x0078\x0070\x0072\x0065\x0073\x0073\x0069\x006F\x006E\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    8360              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0065\x006E\x0063\x006F\x0064\x0065\x0064\x0020\x0069\x006E\x0020\x0042\x0061\x0073\x0065\x0036\x0034\x0020\x00"
-    8361              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0065\x0078\x0063\x0065\x0065\x0064\x0073\x0020\x006D\x0061\x0078\x0069\x006D\x0075\x006D\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
-    8362              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0069\x0073\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0069\x006D\x0075\x006D\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
-    8363              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
-    8364              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0069\x006E\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x00"
-    8365              L"\x0041\x0020\x0072\x0065\x0073\x0075\x006C\x0074\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0073\x0065\x0074\x002E\x00"
-    8366              L"\x0043\x006F\x006D\x0070\x0061\x0063\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0049\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0045\x0072\x0072\x006F\x0072\x00"
-    8367              L"\x004D\x0065\x0072\x0067\x0065\x0020\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x004D\x0069\x0073\x006D\x0061\x0074\x0063\x0068\x0065\x0064\x0020\x0074\x0079\x0070\x0065\x00"
-    8368              L"\x0053\x0075\x0062\x0074\x0072\x0061\x0063\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0049\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0045\x0072\x0072\x006F\x0072\x00"
-    8369              L"\x0049\x006E\x0074\x0065\x0072\x0073\x0065\x0063\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0049\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0045\x0072\x0072\x006F\x0072\x00"
-    8370              L"\x0043\x006F\x006D\x0070\x006C\x0065\x006D\x0065\x006E\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0041\x0072\x0067\x0075\x006D\x0065\x006E\x0074\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0061\x0020\x0052\x0061\x006E\x0067\x0065\x0054\x006F\x006B\x0065\x006E\x00"
-    8371              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0061\x0074\x0065\x0067\x006F\x0072\x0079\x0020\x006E\x0061\x006D\x0065\x003A\x0020\x007B\x0030\x007D\x00"
-    8372              L"\x004B\x0065\x0079\x0077\x006F\x0072\x0064\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006E\x006F\x0074\x0020\x0066\x006F\x0075\x006E\x0064\x00"
-    8373              L"\x0052\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0020\x006E\x006F\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006D\x006F\x0072\x0065\x0020\x0074\x0068\x0061\x006E\x0020\x007A\x0065\x0072\x006F\x00"
-    8374              L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x006F\x0070\x0074\x0069\x006F\x006E\x003A\x0020\x007B\x0030\x007D\x00"
-    8375              L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0074\x006F\x006B\x0065\x006E\x0020\x0074\x0079\x0070\x0065\x00"
-    8376              L"\x0046\x0061\x0069\x006C\x0065\x0064\x0020\x0074\x006F\x0020\x0067\x0065\x0074\x0020\x0052\x0061\x006E\x0067\x0065\x0054\x006F\x006B\x0065\x006E\x0020\x0066\x006F\x0072\x003A\x0020\x007B\x0030\x007D\x00"
-    8377              L"\x004E\x006F\x0074\x0020\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0065\x0064\x00"
-    8378              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0068\x0069\x006C\x0064\x0020\x0069\x006E\x0064\x0065\x0078\x00"
-    8379              L"\x0045\x006E\x0061\x0062\x006C\x0069\x006E\x0067\x0020\x0074\x0068\x0065\x0020\x004E\x0045\x004C\x0020\x006F\x0070\x0074\x0069\x006F\x006E\x0020\x0063\x0061\x006E\x0020\x006F\x006E\x006C\x0079\x0020\x0062\x0065\x0020\x0063\x0061\x006C\x006C\x0065\x0064\x0020\x006F\x006E\x0063\x0065\x0020\x0070\x0065\x0072\x0020\x0070\x0072\x006F\x0063\x0065\x0073\x0073\x002E\x00"
+    8343              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0046\x0061\x0063\x0065\x0074\x0020\x0054\x0061\x0067\x00"
+    8344              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8345              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8346              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8347              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8348              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x006D\x0061\x0078\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x006D\x0069\x006E\x004C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8349              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x003D\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0066\x0072\x006F\x006D\x0020\x0074\x0068\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0073\x0070\x0061\x0063\x0065\x0020\x006F\x0066\x0020\x0062\x0061\x0073\x0065\x00"
+    8350              L"\x0056\x0061\x006C\x0075\x0065\x0020\x006F\x0066\x0020\x0077\x0068\x0069\x0074\x0065\x0073\x0070\x0061\x0063\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006F\x006E\x0065\x0020\x006F\x0066\x0020\x0027\x0070\x0072\x0065\x0073\x0065\x0072\x0076\x0065\x0027\x002C\x0020\x0027\x0072\x0065\x0070\x006C\x0061\x0063\x0065\x0027\x002C\x0020\x0027\x0063\x006F\x006C\x006C\x0061\x0070\x0073\x0065\x0027\x00"
+    8351              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0069\x0066\x0020\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0070\x0072\x0065\x0073\x0065\x0072\x0076\x0065\x0027\x0020\x006F\x0072\x0020\x0027\x0072\x0065\x0070\x006C\x0061\x0063\x0065\x0027\x0020\x0061\x006E\x0064\x0020\x0062\x0061\x0073\x0065\x002E\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0063\x006F\x006C\x006C\x0061\x0070\x0073\x0065\x0027\x002E\x00"
+    8352              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0069\x0066\x0020\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0070\x0072\x0065\x0073\x0065\x0072\x0076\x0065\x0027\x0020\x0061\x006E\x0064\x0020\x0062\x0061\x0073\x0065\x002E\x0077\x0068\x0069\x0074\x0065\x0053\x0070\x0061\x0063\x0065\x0020\x003D\x0020\x0027\x0072\x0065\x0070\x006C\x0061\x0063\x0065\x0027\x002E\x00"
+    8353              L"\x004D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x00"
+    8354              L"\x004D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x00"
+    8355              L"\x004D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x00"
+    8356              L"\x004D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x00"
+    8357              L"\x0054\x006F\x0074\x0061\x006C\x0044\x0069\x0067\x0069\x0074\x0020\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x00"
+    8358              L"\x0046\x0072\x0061\x0063\x0074\x0069\x006F\x006E\x0044\x0069\x0067\x0069\x0074\x0020\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x00"
+    8359              L"\x0054\x006F\x0074\x0061\x006C\x0044\x0069\x0067\x0069\x0074\x0020\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0061\x0020\x006E\x006F\x006E\x004E\x0065\x0067\x0061\x0074\x0069\x0076\x0065\x0049\x006E\x0074\x0065\x0067\x0065\x0072\x00"
+    8360              L"\x0046\x0072\x0061\x0063\x0074\x0069\x006F\x006E\x0044\x0069\x0067\x0069\x0074\x0020\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0061\x0020\x006E\x006F\x006E\x004E\x0065\x0067\x0061\x0074\x0069\x0076\x0065\x0049\x006E\x0074\x0065\x0067\x0065\x0072\x00"
+    8361              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0066\x006F\x0072\x0020\x0062\x006F\x0074\x0068\x0020\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0061\x006E\x0064\x0020\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0074\x006F\x0020\x0062\x0065\x0020\x0073\x0070\x0065\x0063\x0069\x0066\x0069\x0065\x0064\x0020\x0066\x006F\x0072\x0020\x0074\x0068\x0065\x0020\x0073\x0061\x006D\x0065\x0020\x0064\x0061\x0074\x0061\x0074\x0079\x0070\x0065\x00"
+    8362              L"\x0049\x0074\x0020\x0069\x0073\x0020\x0061\x006E\x0020\x0065\x0072\x0072\x006F\x0072\x0020\x0066\x006F\x0072\x0020\x0062\x006F\x0074\x0068\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0061\x006E\x0064\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0074\x006F\x0020\x0062\x0065\x0020\x0073\x0070\x0065\x0063\x0069\x0066\x0069\x0065\x0064\x0020\x0066\x006F\x0072\x0020\x0074\x0068\x0065\x0020\x0073\x0061\x006D\x0065\x0020\x0064\x0061\x0074\x0061\x0074\x0079\x0070\x0065\x00"
+    8363              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8364              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8365              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8366              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x005B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8367              L"\x0054\x006F\x0074\x0061\x006C\x0044\x0069\x0067\x0069\x0074\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x005B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0046\x0072\x0061\x0063\x0074\x0069\x006F\x006E\x0044\x0069\x0067\x0069\x0074\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8368              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8369              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8370              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8371              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8372              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8373              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8374              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8375              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8376              L"\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8377              L"\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8378              L"\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8379              L"\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8380              L"\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8381              L"\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8382              L"\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8383              L"\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8384              L"\x0074\x006F\x0074\x0061\x006C\x0044\x0069\x0067\x0069\x0074\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x0074\x006F\x0074\x0061\x006C\x0044\x0069\x0067\x0069\x0074\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8385              L"\x006D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0066\x0072\x006F\x006D\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0073\x0070\x0061\x0063\x0065\x00"
+    8386              L"\x006D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0066\x0072\x006F\x006D\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0073\x0070\x0061\x0063\x0065\x00"
+    8387              L"\x006D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0066\x0072\x006F\x006D\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0073\x0070\x0061\x0063\x0065\x00"
+    8388              L"\x006D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0066\x0072\x006F\x006D\x0020\x0074\x0068\x0065\x0020\x0062\x0061\x0073\x0065\x0027\x0073\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0073\x0070\x0061\x0063\x0065\x00"
+    8389              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0064\x006F\x0065\x0073\x0020\x006E\x006F\x0074\x0020\x006D\x0061\x0074\x0063\x0068\x0020\x0072\x0065\x0067\x0075\x006C\x0061\x0072\x0020\x0065\x0078\x0070\x0072\x0065\x0073\x0073\x0069\x006F\x006E\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x0027\x007B\x0031\x007D\x0027\x00"
+    8390              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0065\x006E\x0063\x006F\x0064\x0065\x0064\x0020\x0069\x006E\x0020\x0042\x0061\x0073\x0065\x0036\x0034\x0020\x00"
+    8391              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0065\x006E\x0063\x006F\x0064\x0065\x0064\x0020\x0069\x006E\x0020\x0048\x0065\x0078\x0042\x0069\x006E\x0020\x00"
+    8392              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0065\x0078\x0063\x0065\x0065\x0064\x0073\x0020\x006D\x0061\x0078\x0069\x006D\x0075\x006D\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
+    8393              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0069\x0073\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006D\x0069\x006E\x0069\x006D\x0075\x006D\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
+    8394              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x006C\x0065\x006E\x0067\x0074\x0068\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
+    8395              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0069\x006E\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x00"
+    8396              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x0074\x006F\x0074\x0061\x006C\x0020\x0064\x0069\x0067\x0069\x0074\x0073\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0065\x0078\x0063\x0065\x0065\x0064\x0073\x0020\x0074\x006F\x0074\x0061\x006C\x0020\x0064\x0069\x0067\x0069\x0074\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
+    8397              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0069\x0074\x0068\x0020\x0066\x0072\x0061\x0063\x0074\x0069\x006F\x006E\x0020\x0064\x0069\x0067\x0069\x0074\x0073\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x0065\x0078\x0063\x0065\x0065\x0064\x0073\x0020\x0066\x0072\x0061\x0063\x0074\x0069\x006F\x006E\x0020\x0064\x0069\x0067\x0069\x0074\x0020\x0066\x0061\x0063\x0065\x0074\x0020\x006F\x0066\x0020\x0027\x007B\x0032\x007D\x0027\x0020\x00"
+    8398              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x004D\x0061\x0078\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x00"
+    8399              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x004D\x0061\x0078\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x00"
+    8400              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x0072\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0074\x006F\x0020\x004D\x0069\x006E\x0049\x006E\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x00"
+    8401              L"\x0056\x0061\x006C\x0075\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0067\x0072\x0065\x0061\x0074\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x004D\x0069\x006E\x0045\x0078\x0063\x006C\x0075\x0073\x0069\x0076\x0065\x0020\x0027\x007B\x0031\x007D\x0027\x0020\x00"
+    8402              L"\x0041\x0020\x0072\x0065\x0073\x0075\x006C\x0074\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0073\x0065\x0074\x002E\x00"
+    8403              L"\x0043\x006F\x006D\x0070\x0061\x0063\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0049\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0045\x0072\x0072\x006F\x0072\x00"
+    8404              L"\x004D\x0065\x0072\x0067\x0065\x0020\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x004D\x0069\x0073\x006D\x0061\x0074\x0063\x0068\x0065\x0064\x0020\x0074\x0079\x0070\x0065\x00"
+    8405              L"\x0053\x0075\x0062\x0074\x0072\x0061\x0063\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0049\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0045\x0072\x0072\x006F\x0072\x00"
+    8406              L"\x0049\x006E\x0074\x0065\x0072\x0073\x0065\x0063\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0049\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0045\x0072\x0072\x006F\x0072\x00"
+    8407              L"\x0043\x006F\x006D\x0070\x006C\x0065\x006D\x0065\x006E\x0074\x0052\x0061\x006E\x0067\x0065\x0073\x0020\x002D\x0020\x0041\x0072\x0067\x0075\x006D\x0065\x006E\x0074\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0061\x0020\x0052\x0061\x006E\x0067\x0065\x0054\x006F\x006B\x0065\x006E\x00"
+    8408              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0061\x0074\x0065\x0067\x006F\x0072\x0079\x0020\x006E\x0061\x006D\x0065\x003A\x0020\x007B\x0030\x007D\x00"
+    8409              L"\x004B\x0065\x0079\x0077\x006F\x0072\x0064\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006E\x006F\x0074\x0020\x0066\x006F\x0075\x006E\x0064\x00"
+    8410              L"\x0052\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0020\x006E\x006F\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006D\x006F\x0072\x0065\x0020\x0074\x0068\x0061\x006E\x0020\x007A\x0065\x0072\x006F\x00"
+    8411              L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x006F\x0070\x0074\x0069\x006F\x006E\x003A\x0020\x007B\x0030\x007D\x00"
+    8412              L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0074\x006F\x006B\x0065\x006E\x0020\x0074\x0079\x0070\x0065\x00"
+    8413              L"\x0046\x0061\x0069\x006C\x0065\x0064\x0020\x0074\x006F\x0020\x0067\x0065\x0074\x0020\x0052\x0061\x006E\x0067\x0065\x0054\x006F\x006B\x0065\x006E\x0020\x0066\x006F\x0072\x003A\x0020\x007B\x0030\x007D\x00"
+    8414              L"\x004E\x006F\x0074\x0020\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0065\x0064\x00"
+    8415              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0068\x0069\x006C\x0064\x0020\x0069\x006E\x0064\x0065\x0078\x00"
+    8416              L"\x0045\x006E\x0061\x0062\x006C\x0069\x006E\x0067\x0020\x0074\x0068\x0065\x0020\x004E\x0045\x004C\x0020\x006F\x0070\x0074\x0069\x006F\x006E\x0020\x0063\x0061\x006E\x0020\x006F\x006E\x006C\x0079\x0020\x0062\x0065\x0020\x0063\x0061\x006C\x006C\x0065\x0064\x0020\x006F\x006E\x0063\x0065\x0020\x0070\x0065\x0072\x0020\x0070\x0072\x006F\x0063\x0065\x0073\x0073\x002E\x00"
+    8417              L"\x007B\x0030\x007D\x00"
 END
 
 
diff --git a/src/util/XMLBigDecimal.cpp b/src/util/XMLBigDecimal.cpp
index 8a60de93df04b83a4400c9abe7c5350f652d861e..2f61557c56c98986c7d854edf26a7b5c1e92a6de 100644
--- a/src/util/XMLBigDecimal.cpp
+++ b/src/util/XMLBigDecimal.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2001/05/18 13:22:54  tng
+ * Schema: Exception messages in DatatypeValidator.  By Pei Yong Zhang.
+ *
  * Revision 1.2  2001/05/11 13:26:30  tng
  * Copyright update.
  *
@@ -310,4 +313,41 @@ void XMLBigDecimal::dumpData() const
     cout<<"scale="<<"<"<<fScale<<">"<<endl;
     fIntVal->dumpData();
     cout<<endl;
+}
+
+//
+// Add the decimal point as necessary
+// The caller needs to de-allocate the memory allocated by this function
+// Deallocate the memory allocated by XMLBigInteger
+//
+XMLCh*  XMLBigDecimal::toString() const
+{
+    // Retrieve a string (representing the value) from XMLBigInteger
+    // the returned buffer --ALWAYS-- contain a leading sign (+|-)
+    XMLCh* tmpBuf = fIntVal->toString();
+
+    // if no decimal point
+    if ( fScale == 0 )
+        return tmpBuf;
+
+    unsigned int strLen = XMLString::stringLen(tmpBuf);
+
+    //
+    // Sanity check here, internal error
+    // fScale = strLen -> .(+|-)1234 invalid
+    // for now, do not insert decimal point and return
+    //
+    if ( fScale >= strLen )
+        return tmpBuf;
+
+    // Add decimal point as needed
+    XMLCh* retBuf = new XMLCh[strLen+2];
+    XMLString::moveChars(&(retBuf[0]), &(tmpBuf[0]), strLen - fScale);
+    retBuf[strLen-fScale] = chPeriod;
+    XMLString::moveChars(&(retBuf[strLen-fScale+1]), &(tmpBuf[strLen-fScale]), fScale);
+    retBuf[strLen+1] = chNull;
+
+    // De-allocate the memory allocated by XMLBigInteger
+    delete[] tmpBuf;
+    return retBuf;
 }
\ No newline at end of file
diff --git a/src/util/XMLBigDecimal.hpp b/src/util/XMLBigDecimal.hpp
index 8baf0dc8436fe143aa4276c05ab85d9e2050c26a..37458276de1fd6dbc0b8e5eac0aab559e1c4c0fe 100644
--- a/src/util/XMLBigDecimal.hpp
+++ b/src/util/XMLBigDecimal.hpp
@@ -112,6 +112,14 @@ public:
 
     void                  dumpData() const;
 
+	/**
+	 *  Return string representation of the decimal value.
+     *  A decimal point will be included as necessary, 
+     *  the caller of this method is responsible for the 
+     *  de-allocation of the memory.
+	 */
+    XMLCh*                toString() const;
+
 	/**
 	 * Compares this object to the specified object.
 	 * The result is <code>true</code> if and only if the argument is not
diff --git a/src/util/XMLBigInteger.cpp b/src/util/XMLBigInteger.cpp
index cd68490545da61e46d18f75e449f2dc889a1d6f6..95cbf70e99ee80ecfad44f02e7d61f072d775241 100644
--- a/src/util/XMLBigInteger.cpp
+++ b/src/util/XMLBigInteger.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2001/05/18 13:23:01  tng
+ * Schema: Exception messages in DatatypeValidator.  By Pei Yong Zhang.
+ *
  * Revision 1.2  2001/05/11 13:26:31  tng
  * Copyright update.
  *
@@ -338,3 +341,29 @@ void XMLBigInteger::dumpData() const
     delete[] p;
 
 }
+
+//
+// The caller needs to de-allocate the memory allocated by this function
+// return buffer ALWAYS has a leading sign
+//
+XMLCh*  XMLBigInteger::toString() const
+{
+
+    if ( fSign == 0 )
+    {
+        XMLCh* retBuf = new XMLCh[3];
+        retBuf[0] = chPlus;
+        retBuf[1] = chDigit_0;
+        retBuf[2] = chNull;
+        return retBuf;
+    }
+ 
+    // Add the leading sign here    
+    int strLen = XMLString::stringLen(fMagnitude);
+    XMLCh* retBuf = new XMLCh[strLen+2];
+    (fSign == 1)? retBuf[0] = chPlus : retBuf[0] = chDash;
+    XMLString::moveChars(&(retBuf[1]), &(fMagnitude[0]), strLen);
+    retBuf[strLen+1] = chNull;
+
+    return retBuf;
+}
diff --git a/src/util/XMLBigInteger.hpp b/src/util/XMLBigInteger.hpp
index 974d24ad753504eceb45bd9f14ff5a121d602022..3763291242ebc4373c8fccbadbff10372607199a 100644
--- a/src/util/XMLBigInteger.hpp
+++ b/src/util/XMLBigInteger.hpp
@@ -93,13 +93,20 @@ public:
                              ,const XMLBigInteger* const rValue);
 
 
-    void multiply(const unsigned int byteToShift);
+    void        multiply(const unsigned int byteToShift);
 
-    void divide(const unsigned int byteToShift);
+    void        divide(const unsigned int byteToShift);
 
-    int  getTotalDigit() const;
+    int         getTotalDigit() const;
 
-    void dumpData() const;
+    void        dumpData() const;
+
+	/**
+	 *  Return a copy of the fMagnitue.
+     *  A leading sign is ALWAYS in place and the caller of this method
+     *  is responsible for the de-allocation of the memory.
+	 */
+    XMLCh*      toString() const;
 
 	/**
 	 * Compares this object to the specified object.
diff --git a/src/util/XMLExceptMsgs.hpp b/src/util/XMLExceptMsgs.hpp
index ddb4dc04e31c55411f285b50563c29acf08ffa13..7937bb9a7cb86887efb73cc909c3bcf4d5dbdce0 100644
--- a/src/util/XMLExceptMsgs.hpp
+++ b/src/util/XMLExceptMsgs.hpp
@@ -159,48 +159,86 @@ public :
       , FACET_Len_minLen                   = 148
       , FACET_maxLen_minLen                = 149
       , FACET_bool_Pattern                 = 150
-      , FACET_max_Incl_Excl                = 151
-      , FACET_min_Incl_Excl                = 152
-      , FACET_maxExcl_minExcl              = 153
-      , FACET_maxExcl_minIncl              = 154
-      , FACET_maxIncl_minExcl              = 155
-      , FACET_maxIncl_minIncl              = 156
-      , FACET_Invalid_Tag                  = 157
-      , FACET_Len_baseLen                  = 158
-      , FACET_minLen_baseminLen            = 159
-      , FACET_minLen_basemaxLen            = 160
-      , FACET_maxLen_basemaxLen            = 161
-      , FACET_maxLen_baseminLen            = 162
-      , FACET_enum_base                    = 163
-      , FACET_Invalid_WS                   = 164
-      , FACET_WS_collapse                  = 165
-      , FACET_WS_replace                   = 166
-      , VALUE_NotMatch_Pattern             = 167
-      , VALUE_Not_Base64                   = 168
-      , VALUE_GT_maxLen                    = 169
-      , VALUE_LT_minLen                    = 170
-      , VALUE_NE_Len                       = 171
-      , VALUE_NotIn_Enumeration            = 172
-      , Regex_Result_Not_Set               = 173
-      , Regex_CompactRangesError           = 174
-      , Regex_MergeRangesTypeMismatch      = 175
-      , Regex_SubtractRangesError          = 176
-      , Regex_IntersectRangesError         = 177
-      , Regex_ComplementRangesInvalidArg   = 178
-      , Regex_InvalidCategoryName          = 179
-      , Regex_KeywordNotFound              = 180
-      , Regex_BadRefNo                     = 181
-      , Regex_UnknownOption                = 182
-      , Regex_UnknownTokenType             = 183
-      , Regex_RangeTokenGetError           = 184
-      , Regex_NotSupported                 = 185
-      , Regex_InvalidChildIndex            = 186
-      , NEL_RepeatedCalls                  = 187
-      , E_HighBounds                       = 188
-      , W_LowBounds                        = 189
-      , W_HighBounds                       = 190
-      , F_LowBounds                        = 191
-      , F_HighBounds                       = 192
+      , FACET_Invalid_Tag                  = 151
+      , FACET_Len_baseLen                  = 152
+      , FACET_minLen_baseminLen            = 153
+      , FACET_minLen_basemaxLen            = 154
+      , FACET_maxLen_basemaxLen            = 155
+      , FACET_maxLen_baseminLen            = 156
+      , FACET_enum_base                    = 157
+      , FACET_Invalid_WS                   = 158
+      , FACET_WS_collapse                  = 159
+      , FACET_WS_replace                   = 160
+      , FACET_Invalid_MaxIncl              = 161
+      , FACET_Invalid_MaxExcl              = 162
+      , FACET_Invalid_MinIncl              = 163
+      , FACET_Invalid_MinExcl              = 164
+      , FACET_Invalid_TotalDigit           = 165
+      , FACET_Invalid_FractDigit           = 166
+      , FACET_NonNeg_TotalDigit            = 167
+      , FACET_NonNeg_FractDigit            = 168
+      , FACET_max_Incl_Excl                = 169
+      , FACET_min_Incl_Excl                = 170
+      , FACET_maxExcl_minExcl              = 171
+      , FACET_maxExcl_minIncl              = 172
+      , FACET_maxIncl_minExcl              = 173
+      , FACET_maxIncl_minIncl              = 174
+      , FACET_TotDigit_FractDigit          = 175
+      , FACET_maxIncl_base_maxExcl         = 176
+      , FACET_maxIncl_base_maxIncl         = 177
+      , FACET_maxIncl_base_minIncl         = 178
+      , FACET_maxIncl_base_minExcl         = 179
+      , FACET_maxExcl_base_maxExcl         = 180
+      , FACET_maxExcl_base_maxIncl         = 181
+      , FACET_maxExcl_base_minIncl         = 182
+      , FACET_maxExcl_base_minExcl         = 183
+      , FACET_minExcl_base_maxExcl         = 184
+      , FACET_minExcl_base_maxIncl         = 185
+      , FACET_minExcl_base_minIncl         = 186
+      , FACET_minExcl_base_minExcl         = 187
+      , FACET_minIncl_base_maxExcl         = 188
+      , FACET_minIncl_base_maxIncl         = 189
+      , FACET_minIncl_base_minIncl         = 190
+      , FACET_minIncl_base_minExcl         = 191
+      , FACET_totDigit_base_totalDigit     = 192
+      , FACET_maxIncl_notFromBase          = 193
+      , FACET_maxExcl_notFromBase          = 194
+      , FACET_minIncl_notFromBase          = 195
+      , FACET_minExcl_notFromBase          = 196
+      , VALUE_NotMatch_Pattern             = 197
+      , VALUE_Not_Base64                   = 198
+      , VALUE_Not_HexBin                   = 199
+      , VALUE_GT_maxLen                    = 200
+      , VALUE_LT_minLen                    = 201
+      , VALUE_NE_Len                       = 202
+      , VALUE_NotIn_Enumeration            = 203
+      , VALUE_exceed_totalDigit            = 204
+      , VALUE_exceed_fractDigit            = 205
+      , VALUE_exceed_maxIncl               = 206
+      , VALUE_exceed_maxExcl               = 207
+      , VALUE_exceed_minIncl               = 208
+      , VALUE_exceed_minExcl               = 209
+      , Regex_Result_Not_Set               = 210
+      , Regex_CompactRangesError           = 211
+      , Regex_MergeRangesTypeMismatch      = 212
+      , Regex_SubtractRangesError          = 213
+      , Regex_IntersectRangesError         = 214
+      , Regex_ComplementRangesInvalidArg   = 215
+      , Regex_InvalidCategoryName          = 216
+      , Regex_KeywordNotFound              = 217
+      , Regex_BadRefNo                     = 218
+      , Regex_UnknownOption                = 219
+      , Regex_UnknownTokenType             = 220
+      , Regex_RangeTokenGetError           = 221
+      , Regex_NotSupported                 = 222
+      , Regex_InvalidChildIndex            = 223
+      , NEL_RepeatedCalls                  = 224
+      , RethrowError                       = 225
+      , E_HighBounds                       = 226
+      , W_LowBounds                        = 227
+      , W_HighBounds                       = 228
+      , F_LowBounds                        = 229
+      , F_HighBounds                       = 230
     };
 
 };
diff --git a/src/validators/datatype/Base64BinaryDatatypeValidator.cpp b/src/validators/datatype/Base64BinaryDatatypeValidator.cpp
index 9559ab9ac646993e25f86f928bd3cc96110af181..a8042bf4d96a1e3d7c7b7c59413d09ad1776697b 100644
--- a/src/validators/datatype/Base64BinaryDatatypeValidator.cpp
+++ b/src/validators/datatype/Base64BinaryDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2001/05/18 13:23:43  tng
+ * Schema: Exception messages in DatatypeValidator.  By Pei Yong Zhang.
+ *
  * Revision 1.2  2001/05/17 18:13:46  tng
  * Schema Fix: issue error message when binary data is invalid.
  *
@@ -121,50 +124,56 @@ void Base64BinaryDatatypeValidator::init(DatatypeValidator*            const bas
 
             if (XMLString::compareString(key, SchemaSymbols::fgELT_LENGTH)==0) 
             {        
+                int val;
                 try
                 {
-                    setLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_Len, value);
                 }
 
-                if (getLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_Len, value);
 
+                setLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_LENGTH);
             } 
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_MINLENGTH)==0)
             {
+                int val;
                 try
                 {
-                    setMinLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_minLen, value);
                 }
 
-                if (getMinLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_minLen, value);
 
+                setMinLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_MINLENGTH);            
             } 
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_MAXLENGTH)==0)
             {
+                int val;
                 try
                 {
-                    setMaxLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_maxLen, value);
                 }
 
-                if (getMaxLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_maxLen, value);
 
+                setMaxLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_MAXLENGTH);            
             } 
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_PATTERN)==0)
@@ -471,9 +480,9 @@ void Base64BinaryDatatypeValidator::checkContent( const XMLCh* const content, bo
     int base64Lentemp = Base64::getDataLength(content);
     if (base64Lentemp <= 0) 
     {
-        ThrowXML(InvalidDatatypeValueException, XMLExcepts::CM_UnaryOpHadBinType);
-        //ThrowXML1(InvalidDatatypeValueException, XMLExcepts::VALUE_Not_Base64, content);
-        // "Value '"+content+"' is not encoded in Base64" );
+        ThrowXML1(InvalidDatatypeValueException
+                , XMLExcepts::VALUE_Not_Base64
+                , content);
     }
 
     unsigned int base64Len = base64Lentemp;
diff --git a/src/validators/datatype/DecimalDatatypeValidator.cpp b/src/validators/datatype/DecimalDatatypeValidator.cpp
index 7d375da9e0b464f07162d02a43e5a0abd0ddd454..aa32cb2bb19893b82977fced1cddd12ac166edc8 100644
--- a/src/validators/datatype/DecimalDatatypeValidator.cpp
+++ b/src/validators/datatype/DecimalDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.4  2001/05/18 13:23:46  tng
+ * Schema: Exception messages in DatatypeValidator.  By Pei Yong Zhang.
+ *
  * Revision 1.3  2001/05/11 17:17:23  tng
  * Schema: DatatypeValidator fixes.  By Pei Yong Zhang.
  *
@@ -76,6 +79,10 @@
 #include <validators/datatype/InvalidDatatypeValueException.hpp>
 #include <util/NumberFormatException.hpp>
 
+static const int BUF_LEN = 64;
+static XMLCh value1[BUF_LEN+1];
+static XMLCh value2[BUF_LEN+1];
+
 // ---------------------------------------------------------------------------
 //  Constructors and Destructor
 // ---------------------------------------------------------------------------
@@ -147,8 +154,7 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 }
                 catch (NumberFormatException)
                 {
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Inv_MaxInc);
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_MaxIncl, value);
                 }
                 setFacetsDefined(DatatypeValidator::FACET_MAXINCLUSIVE);
             }
@@ -160,8 +166,7 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 }
                 catch (NumberFormatException)
                 {
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Inv_MaxExc);
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_MaxExcl, value);
                 }
                 setFacetsDefined(DatatypeValidator::FACET_MAXEXCLUSIVE);
             }
@@ -173,8 +178,7 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 }
                 catch (NumberFormatException)
                 {
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Inv_MinInc);
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_MinIncl, value);
                 }
                 setFacetsDefined(DatatypeValidator::FACET_MININCLUSIVE);
             }
@@ -186,49 +190,46 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 }
                 catch (NumberFormatException)
                 {
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Inv_MinExc);
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_MinExcl, value);
                 }
                 setFacetsDefined(DatatypeValidator::FACET_MINEXCLUSIVE);
             }
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_TOTALDIGITS)==0)
             {
+                int val;
                 try
                 {
-                    setTotalDigits(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException)
                 {
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Inv_Precision);
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_TotalDigit, value);
                 }
 
                 // check 4.3.11.c0 must: totalDigits > 0
-                if ( fTotalDigits <= 0 )
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Neg_Precision);
-                    //InvalidDatatypeFacetException("totalDigits value '"+fTotalDigits+"' must be a positiveInteger.");
+                if ( val <= 0 )
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_TotalDigit, value);
 
+                setTotalDigits(val);
                 setFacetsDefined(DatatypeValidator::FACET_PRECISSION);
             }
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_FRACTIONDIGITS)==0)
             {
+                int val;
                 try
                 {
-                    setFractionDigits(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException)
                 {
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Inv_Precision);
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_FractDigit, value);
                 }
 
                 // check 4.3.12.c0 must: fractionDigits > 0
-                if ( fFractionDigits < 0 )
-                     ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Neg_Fraction);
-                    //InvalidDatatypeFacetException("fractionDigits value '"+fFractionDigits+"' must be a positiveInteger.");
+                if ( val < 0 )
+                    ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_FractDigit, value);
 
+                setFractionDigits(val);
                 setFacetsDefined(DatatypeValidator::FACET_SCALE);
             }
             else
@@ -247,23 +248,13 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
             // check 4.3.8.c1 error: maxInclusive + maxExclusive
             if ( ((getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0) &&
                  ((getFacetsDefined() & DatatypeValidator::FACET_MAXINCLUSIVE) != 0) )
-            {
-                 ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                 // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_max_inc_exc);
-                 // "It is an error for both maxInclusive and maxExclusive to be specified
-                 // for the same datatype." );
-            }
+                 ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_max_Incl_Excl);
 
             // non co-existence checking
             // check 4.3.9.c1 error: minInclusive + minExclusive
             if ( ((getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0) &&
                  ((getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0) )
-            {
-                 ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                 // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_min_inc_exc);
-                 // "It is an error for both minInclusive and minExclusive to be specified
-                 // for the same datatype." );
-            }
+                 ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_min_Incl_Excl);
 
             //
             // minExclusive < minInclusive <= maxInclusive < maxExclusive
@@ -273,10 +264,16 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                  ((getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0) )
             {
                 if ( XMLBigDecimal::compareValues(getMinInclusive(), getMaxInclusive()) == 1 )
-                    ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_inc_min_max);
-                    // "minInclusive value ='" + getMinInclusive(false) + "'must be <=
-                    // maxInclusive value ='" + getMaxInclusive(false) + "'. " );
+                {
+                    XMLCh* value1 = getMinInclusive()->toString();
+                    ArrayJanitor<XMLCh> jan1(value1);
+                    XMLCh* value2 = getMaxInclusive()->toString();
+                    ArrayJanitor<XMLCh> jan2(value2);
+                    ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxIncl_minIncl
+                            , value2
+                            , value1);           
+                }
             }
 
             // check 4.3.8.c2 must: minExclusive <= maxExclusive ??? minExclusive < maxExclusive
@@ -284,10 +281,16 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                  ((getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0) )
             {
                 if ( XMLBigDecimal::compareValues(getMinExclusive(), getMaxExclusive()) == 1 )
-                    ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_exc_min_max);
-                    // "minExclusive value ='" + getMinExclusive(false) + "'must be <=
-                    // maxExclusive value ='" + getMaxExclusive(false) + "'. " );
+                {
+                    XMLCh* value1 = getMinExclusive()->toString();
+                    ArrayJanitor<XMLCh> jan1(value1);
+                    XMLCh* value2 = getMaxExclusive()->toString();
+                    ArrayJanitor<XMLCh> jan2(value2);
+                    ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxExcl_minExcl
+                            , value2
+                            , value1);           
+                }
             }
 
             // check 4.3.9.c2 must: minExclusive < maxInclusive
@@ -295,21 +298,33 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                  ((getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0) )
             {
                 if ( XMLBigDecimal::compareValues(getMinExclusive(), getMaxInclusive()) != -1 )
-                    ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxinc_minexc);
-                    // "minExclusive value ='" + getMinExclusive(false) + "'must be >
-                    // maxInclusive value ='" + getMaxInclusive(false) + "'. " );
+                {
+                    XMLCh* value1 = getMinExclusive()->toString();
+                    ArrayJanitor<XMLCh> jan1(value1);
+                    XMLCh* value2 = getMaxInclusive()->toString();
+                    ArrayJanitor<XMLCh> jan2(value2);
+                    ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxIncl_minExcl
+                            , value2
+                            , value1);           
+                }
             }
 
             // check 4.3.10.c1 must: minInclusive < maxExclusive
             if ( ((getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0) &&
                  ((getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0) )
             {
-                if ( XMLBigDecimal::compareValues(getMinInclusive(), getMaxExclusive()) != -1 )
-                    ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    // ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_maxexc);
-                   // "minInclusive value ='" + getMinInclusive(false) + "'must be <
-                   // maxExclusive value ='" + getMaxExclusive(false) + "'. " );
+                if ( XMLBigDecimal::compareValues(getMinInclusive(), getMaxExclusive()) != -1 )              
+                {
+                    XMLCh* value1 = getMinInclusive()->toString();
+                    ArrayJanitor<XMLCh> jan1(value1);
+                    XMLCh* value2 = getMaxExclusive()->toString();
+                    ArrayJanitor<XMLCh> jan2(value2);
+                    ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxExcl_minIncl
+                            , value2
+                            , value1);           
+                }
              }
 
             // check 4.3.12.c1 must: fractionDigits <= totalDigits
@@ -317,10 +332,15 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                  ((getFacetsDefined() & DatatypeValidator::FACET_PRECISSION) != 0) )
             {
                 if ( fFractionDigits > fTotalDigits )
-                    ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                    //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_scale_precision);
-                    // "fractionDigits value ='" + this.fFractionDigits + "'must be <=
-                    // totalDigits value ='" + this.fTotalDigits + "'. " );
+                {
+                     XMLString::binToText(getFractionDigits(), value1, BUF_LEN, 10);
+                     XMLString::binToText(getTotalDigits(), value2, BUF_LEN, 10);
+
+                     ThrowXML2(InvalidDatatypeFacetException
+                             , XMLExcepts::FACET_TotDigit_FractDigit
+                             , value2
+                             , value1);
+                }
             }
 
         } // if getFacetsDefined
@@ -353,31 +373,55 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 {
                     if ( ((numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXINCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxInclusive(), numBase->getMaxInclusive()) == 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxinc_base_maxinc);
-                        // "maxInclusive value ='" + getMaxInclusive(false) + "' must be <=
-                        // base.maxInclusive value ='" + getMaxInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxIncl_base_maxIncl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( ((numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxInclusive(), numBase->getMaxExclusive()) != -1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxinc_base_maxexc);
-                        // "maxInclusive value ='" + getMaxInclusive(false) + "' must be <
-                        // base.maxExclusive value ='" + getMaxExclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxIncl_base_maxExcl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxInclusive(), numBase->getMinInclusive()) == -1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxinc_base_mininc);
-                        // "maxInclusive value ='" + getMaxInclusive(false) + "' must be >=
-                        // base.minInclusive value ='" + getMinInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxIncl_base_minIncl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxInclusive(), numBase->getMinExclusive() ) != 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxinc_base_minexc);
-                        // "maxInclusive value ='" + getMaxInclusive(false) + "' must be >
-                        // base.minExclusive value ='" + getMinExclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxIncl_base_minExcl
+                            , value1
+                            , value2);           
+                    }
                 }
 
                 // check 4.3.8.c3 error:
@@ -389,31 +433,55 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 {
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxExclusive(), numBase->getMaxExclusive()) == 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxexc_base_maxexc);
-                        // "maxExclusive value ='" + getMaxExclusive(false) + "' must be
-                        // <= base.maxExclusive value ='" + getMaxExclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxExcl_base_maxExcl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXINCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxExclusive(), numBase->getMaxInclusive()) == 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxexc_base_maxinc);
-                        // "maxExclusive value ='" + getMaxExclusive(false) + "' must be
-                        // <= base.maxInclusive value ='" + getMaxInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxExcl_base_maxIncl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxExclusive(), numBase->getMinExclusive() ) != 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxexc_base_mininc);
-                        // "maxExclusive value ='" + getMaxExclusive(false) + "' must be
-                        // > base.minExclusive value ='" + getMinExclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxExcl_base_minExcl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMaxExclusive(), numBase->getMinInclusive()) != 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_maxexc_base_minexc);
-                        // "maxExclusive value ='" + getMaxExclusive(false) + "' must be
-                        // > base.minInclusive value ='" + getMinInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMaxExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_maxExcl_base_minExcl
+                            , value1
+                            , value2);           
+                    }
                 }
 
                 // check 4.3.9.c3 error:
@@ -425,32 +493,55 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 {
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinExclusive(), numBase->getMinExclusive() ) == -1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_minexc);
-                        // "minExclusive value ='" + getMinExclusive(false) + "' must be
-                        // >= base.minExclusive value ='" + getMinExclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMinExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minExcl_base_minExcl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXINCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinExclusive(), numBase->getMaxInclusive()) == 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_maxinc);
-                        // "minExclusive value ='" + getMinExclusive(false) + "' must be
-                        // <= base.maxInclusive value ='" + getMaxInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMinExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minExcl_base_maxIncl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinExclusive(), numBase->getMinInclusive()) == -1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_mininc);
-                        // "minExclusive value ='" + getMinExclusive(false) + "' must be
-                        // >= base.minInclusive value ='" + getMinInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMinExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minExcl_base_minIncl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinExclusive(), numBase->getMaxExclusive()) != -1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_maxexc);
-                        // "minExclusive value ='" + getMinExclusive(false) + "' must be
-                        // < base.maxExclusive value ='" + getMaxExclusive(true) + "'." );
-
+                    {
+                        XMLCh* value1 = getMinExclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minExcl_base_maxExcl
+                            , value1
+                            , value2);           
+                    }
                 }
 
                 // check 4.3.10.c2 error:
@@ -462,31 +553,55 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 {
                     if ( ((numBase->getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinInclusive(), numBase->getMinInclusive()) == -1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_mininc);
-                        // "minInclusive value ='" + getMinInclusive(false) + "' must be
-                        // >= base.minInclusive value ='" + getMinInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMinInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minIncl_base_minIncl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXINCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinInclusive(), numBase->getMaxInclusive()) == 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_maxinc);
-                        // "minInclusive value ='" + getMinInclusive(false) + "' must be
-                        // <= base.maxInclusive value ='" + getMaxInclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMinInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minIncl_base_maxIncl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinInclusive(), numBase->getMinExclusive() ) != 1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_minexc);
-                        // "minInclusive value ='" + getMinInclusive(false) + "' must be
-                        // > base.minExclusive value ='" + getMinExclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMinInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMinExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minIncl_base_minExcl
+                            , value1
+                            , value2);           
+                    }
 
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0) &&
                          ( XMLBigDecimal::compareValues(getMinInclusive(), numBase->getMaxExclusive()) != -1 ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_mininc_base_maxexc);
-                        // "minInclusive value ='" + getMinInclusive(false) + "' must be
-                        // < base.maxExclusive value ='" + getMaxExclusive(true) + "'." );
+                    {
+                        XMLCh* value1 = getMinInclusive()->toString();                   
+                        ArrayJanitor<XMLCh> jan1(value1);
+                        XMLCh* value2 = numBase->getMaxExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan2(value2);
+                        ThrowXML2(InvalidDatatypeFacetException
+                            , XMLExcepts::FACET_minIncl_base_maxExcl
+                            , value1
+                            , value2);           
+                    }
 
                 }
 
@@ -495,11 +610,14 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
                 {
                     if ( (( numBase->getFacetsDefined() & DatatypeValidator::FACET_PRECISSION) != 0) &&
                          ( fTotalDigits > numBase->fTotalDigits ))
-                        ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_Len_maxLen);
-                        //ThrowXML(InvalidDatatypeFacetException, XMLExcepts::FACET_totdigit_base_totdigit);
-                        // "totalDigits value ='" + fTotalDigits + "' must be
-                        // <= base.totalDigits value ='" + numBase.fTotalDigits + "'." );
-
+                    {
+                        XMLString::binToText(fTotalDigits, value1, BUF_LEN, 10);
+                        XMLString::binToText(numBase->fTotalDigits, value2, BUF_LEN, 10);
+                        ThrowXML2(InvalidDatatypeFacetException
+                             , XMLExcepts::FACET_TotDigit_FractDigit
+                             , value2
+                             , value1);
+                    }
                 }
 
                 // check question error: fractionDigits > base.fractionDigits ???
@@ -549,6 +667,85 @@ void DecimalDatatypeValidator::init(DatatypeValidator*            const baseVali
 
                 }
 
+                //
+                // maxInclusive
+                // maxExclusive
+                // minInclusive
+                // minExclusive
+                // shall come from the base's value space as well
+                //
+                if ((getFacetsDefined() & DatatypeValidator::FACET_MAXINCLUSIVE) != 0)
+                {
+                    try
+                    {
+                         // ask parent do a complete check
+                         numBase->checkContent(getMaxInclusive()->toString(), false);
+                    }
+                    catch ( XMLException& )
+                    {
+                        XMLCh* value1 = getMaxInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan(value1);
+                        ThrowXML1(InvalidDatatypeFacetException
+                                , XMLExcepts::FACET_maxIncl_notFromBase
+                                , value1
+                                );
+                    }
+                }
+
+                if ((getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0)
+                {
+                    try
+                    {
+                         // ask parent do a complete check
+                         numBase->checkContent(getMaxExclusive()->toString(), false);
+                    }
+                    catch ( XMLException& )
+                    {
+                        XMLCh* value1 = getMaxExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan(value1);
+                        ThrowXML1(InvalidDatatypeFacetException
+                                , XMLExcepts::FACET_maxExcl_notFromBase
+                                , value1
+                                );
+                    }
+                }
+
+                if ((getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0)
+                {
+                    try
+                    {
+                         // ask parent do a complete check
+                         numBase->checkContent(getMinInclusive()->toString(), false);
+                    }
+                    catch ( XMLException& )
+                    {
+                        XMLCh* value1 = getMinInclusive()->toString();
+                        ArrayJanitor<XMLCh> jan(value1);
+                        ThrowXML1(InvalidDatatypeFacetException
+                                , XMLExcepts::FACET_minIncl_notFromBase
+                                , value1
+                                );
+                    }
+                }
+               
+                if ((getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0)
+                {
+                    try
+                    {
+                         // ask parent do a complete check
+                         numBase->checkContent(getMinExclusive()->toString(), false);
+                    }
+                    catch ( XMLException& )
+                    {
+                        XMLCh* value1 = getMinExclusive()->toString();
+                        ArrayJanitor<XMLCh> jan(value1);
+                        ThrowXML1(InvalidDatatypeFacetException
+                                , XMLExcepts::FACET_minExcl_notFromBase
+                                , value1
+                                );
+                    }
+                }
+
             }
 
             /***
@@ -678,51 +875,97 @@ void DecimalDatatypeValidator::checkContent( const XMLCh* const content, bool as
     if ( (getFacetsDefined() & DatatypeValidator::FACET_SCALE) != 0 )
     {
         if ( theData->getScale() > fFractionDigits )
-            ThrowXML(InvalidDatatypeValueException, XMLExcepts::FACET_Len_maxLen);
-            //ThrowXML(InvalidDatatypeValueException, XMLExcepts::VALUE_exceed_scale);
-            // "'" + content + "'" + " with totalDigits = '"+ totalDigits +"'"
-            // "'" + fTotalDigits + "'"} ));
+        {
+            XMLCh* value = theData->toString();
+            XMLString::binToText(theData->getScale(), value1, BUF_LEN, 10);
+            XMLString::binToText(fFractionDigits, value2, BUF_LEN, 10);
+            ThrowXML3(InvalidDatatypeFacetException
+                             , XMLExcepts::VALUE_exceed_fractDigit
+                             , value
+                             , value1
+                             , value2);           
+        }       
     }
 
     if ( (getFacetsDefined() & DatatypeValidator::FACET_PRECISSION) != 0 )
     {
         if ( theData->getTotalDigit() > fTotalDigits )
-            ThrowXML(InvalidDatatypeValueException, XMLExcepts::FACET_Len_maxLen);
-            //ThrowXML(InvalidDatatypeValueException, XMLExcepts::VALUE_exceed_precision);
-            // "'" + content + "'" + " with totalDigits = '"+ totalDigits +"'"
-            // "'" + fTotalDigits + "'"} ));
+        {
+            XMLCh* value = theData->toString();
+            ArrayJanitor<XMLCh> jan(value);
+            XMLString::binToText(theData->getTotalDigit(), value1, BUF_LEN, 10);
+            XMLString::binToText(fTotalDigits, value2, BUF_LEN, 10);
+            ThrowXML3(InvalidDatatypeFacetException
+                             , XMLExcepts::VALUE_exceed_totalDigit
+                             , value
+                             , value1
+                             , value2);           
+        }
     }
 
     if ( (getFacetsDefined() & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0 )
     {
         // must be < MaxExclusive
         if (XMLBigDecimal::compareValues(theData, getMaxExclusive()) != -1)
-            ThrowXML(InvalidDatatypeValueException, XMLExcepts::FACET_Len_maxLen);
-            //ThrowXML(InvalidDatatypeValueException, XMLExcepts::VALUE_exceed_maxexc);
+        {
+            XMLCh* value1 = theData->toString();
+            ArrayJanitor<XMLCh> jan1(value1);
+            XMLCh* value2 = getMaxExclusive()->toString();
+            ArrayJanitor<XMLCh> jan2(value2);
+            ThrowXML2(InvalidDatatypeFacetException
+                             , XMLExcepts::VALUE_exceed_maxExcl
+                             , value1
+                             , value2);           
+        }
     }
 
     if ( (getFacetsDefined() & DatatypeValidator::FACET_MAXINCLUSIVE) != 0 )
     {
         // must be <= MaxInclusive
         if (XMLBigDecimal::compareValues(theData, getMaxInclusive()) == 1)
-            ThrowXML(InvalidDatatypeValueException, XMLExcepts::FACET_Len_maxLen);
-            //ThrowXML(InvalidDatatypeValueException, XMLExcepts::VALUE_exceed_maxinc);
+        {
+            XMLCh* value1 = theData->toString();
+            ArrayJanitor<XMLCh> jan1(value1);
+            XMLCh* value2 = getMaxInclusive()->toString();
+            ArrayJanitor<XMLCh> jan2(value2);
+            ThrowXML2(InvalidDatatypeFacetException
+                             , XMLExcepts::VALUE_exceed_maxIncl
+                             , value1
+                             , value2);           
+
+        }
     }
 
     if ( (getFacetsDefined() & DatatypeValidator::FACET_MININCLUSIVE) != 0 )
     {
         // must be >= MinInclusive
         if (XMLBigDecimal::compareValues(theData, getMinInclusive()) == -1)
-            ThrowXML(InvalidDatatypeValueException, XMLExcepts::FACET_Len_maxLen);
-            //ThrowXML(InvalidDatatypeValueException, XMLExcepts::VALUE_exceed_mininc);
+        {
+            XMLCh* value1 = theData->toString();
+            ArrayJanitor<XMLCh> jan1(value1);
+            XMLCh* value2 = getMinInclusive()->toString();
+            ArrayJanitor<XMLCh> jan2(value2);
+            ThrowXML2(InvalidDatatypeFacetException
+                             , XMLExcepts::VALUE_exceed_minIncl
+                             , value1
+                             , value2);           
+        }
     }
 
     if ( (getFacetsDefined() & DatatypeValidator::FACET_MINEXCLUSIVE) != 0 )
     {
         // must be > MinExclusive
         if (XMLBigDecimal::compareValues(theData, getMinExclusive()) != 1)
-            ThrowXML(InvalidDatatypeValueException, XMLExcepts::FACET_Len_maxLen);
-            //ThrowXML(InvalidDatatypeValueException, XMLExcepts::VALUE_exceed_mininc);
+        {
+            XMLCh* value1 = theData->toString();
+            ArrayJanitor<XMLCh> jan1(value1);
+            XMLCh* value2 = getMinExclusive()->toString();
+            ArrayJanitor<XMLCh> jan2(value2);
+            ThrowXML2(InvalidDatatypeFacetException
+                             , XMLExcepts::VALUE_exceed_minExcl
+                             , value1
+                             , value2);           
+        }
     }
 
 }
diff --git a/src/validators/datatype/HexBinaryDatatypeValidator.cpp b/src/validators/datatype/HexBinaryDatatypeValidator.cpp
index 9e2289b43b5ae3db7ffa8345036b7ceaf41cf4ae..f05f5f0344efdc833a477bd1c32ab3aa411946ce 100644
--- a/src/validators/datatype/HexBinaryDatatypeValidator.cpp
+++ b/src/validators/datatype/HexBinaryDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2001/05/18 13:23:49  tng
+ * Schema: Exception messages in DatatypeValidator.  By Pei Yong Zhang.
+ *
  * Revision 1.2  2001/05/17 18:13:47  tng
  * Schema Fix: issue error message when binary data is invalid.
  *
@@ -119,51 +122,57 @@ void HexBinaryDatatypeValidator::init(DatatypeValidator*            const baseVa
             value = pair.getValue();
 
             if (XMLString::compareString(key, SchemaSymbols::fgELT_LENGTH)==0) 
-            {        
+            {      
+                int val;
                 try
                 {
-                    setLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_Len, value);
                 }
 
-                if (getLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_Len, value);
 
+                setLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_LENGTH);
             } 
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_MINLENGTH)==0)
             {
+                int val;
                 try
                 {
-                    setMinLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_minLen, value);
                 }
 
-                if (getMinLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_minLen, value);
 
+                setMinLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_MINLENGTH);            
             } 
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_MAXLENGTH)==0)
             {
+                int val;
                 try
                 {
-                    setMaxLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_maxLen, value);
                 }
 
-                if (getMaxLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_maxLen, value);
 
+                setMaxLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_MAXLENGTH);            
             } 
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_PATTERN)==0)
@@ -470,9 +479,9 @@ void HexBinaryDatatypeValidator::checkContent( const XMLCh* const content, bool
     int hexBinLentemp = HexBin::getDataLength(content);
     if (hexBinLentemp <= 0) 
     {
-        ThrowXML(InvalidDatatypeValueException, XMLExcepts::CM_UnaryOpHadBinType);
-        //ThrowXML1(InvalidDatatypeValueException, XMLExcepts::VALUE_Not_Base64, content);
-        // "Value '"+content+"' is not encoded in HexBin" );
+        ThrowXML1(InvalidDatatypeValueException
+                , XMLExcepts::VALUE_Not_HexBin
+                , content);
     }
 
     unsigned int hexBinLen = hexBinLentemp;
diff --git a/src/validators/datatype/StringDatatypeValidator.cpp b/src/validators/datatype/StringDatatypeValidator.cpp
index 2d3c721ec9ebd905eb7e63240961ffa2fdc52dbb..e30a981cd7a27e2ee752e19c7d9b24e6ecad3150 100644
--- a/src/validators/datatype/StringDatatypeValidator.cpp
+++ b/src/validators/datatype/StringDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.5  2001/05/18 13:23:51  tng
+ * Schema: Exception messages in DatatypeValidator.  By Pei Yong Zhang.
+ *
  * Revision 1.4  2001/05/16 14:33:40  tng
  * Schema Constraint checking fix.
  *
@@ -125,50 +128,56 @@ void StringDatatypeValidator::init(DatatypeValidator*            const baseValid
 
             if (XMLString::compareString(key, SchemaSymbols::fgELT_LENGTH)==0)
             {
+                int val;
                 try
                 {
-                    setLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_Len, value);
                 }
 
-                if (getLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_Len, value);
 
+                setLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_LENGTH);
             }
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_MINLENGTH)==0)
             {
+                int val;
                 try
                 {
-                    setMinLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_minLen, value);
                 }
 
-                if (getMinLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_minLen, value);
 
+                setMinLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_MINLENGTH);
             }
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_MAXLENGTH)==0)
             {
+                int val;
                 try
                 {
-                    setMaxLength(XMLString::parseInt(value));
+                    val = XMLString::parseInt(value);
                 }
                 catch (NumberFormatException nfe)
                 {
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_maxLen, value);
                 }
 
-                if (getMaxLength() < 0)
+                if ( val < 0 )
                     ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_NonNeg_maxLen, value);
 
+                setMaxLength(val);
                 setFacetsDefined(DatatypeValidator::FACET_MAXLENGTH);
             }
             else if (XMLString::compareString(key, SchemaSymbols::fgELT_PATTERN)==0)