Merge
authorprr
Fri, 02 Feb 2018 09:04:45 -0800
changeset 48735 7c63eefd620a
parent 48734 e8e8391f7a1a (current diff)
parent 48721 ef3557eb4306 (diff)
child 48736 0454688cc319
Merge
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionCategory.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptor.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptors.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionKey.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionType.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionValues.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/package-info.java
--- a/.hgtags	Fri Feb 02 17:02:45 2018 +0530
+++ b/.hgtags	Fri Feb 02 09:04:45 2018 -0800
@@ -466,3 +466,4 @@
 e569e83139fdfbecfeb3cd9014d560917787f158 jdk-10+38
 5b834ec962366e00d4445352a999a3ac14e26f64 jdk-10+39
 860326263d1f6a83996d7da0f4c66806ae4aa1eb jdk-10+40
+3eae36c6baa5f916a3024cf1513e22357e00185d jdk-10+41
--- a/make/common/SetupJavaCompilers.gmk	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/common/SetupJavaCompilers.gmk	Fri Feb 02 09:04:45 2018 -0800
@@ -26,13 +26,16 @@
 ifndef _SETUP_GMK
 _SETUP_GMK := 1
 
+# Include custom extension hook
+$(eval $(call IncludeCustomExtension, common/SetupJavaCompilers.gmk))
+
 include JavaCompilation.gmk
 
-DISABLE_WARNINGS := -Xlint:all,-deprecation,-removal,-unchecked,-rawtypes,-cast,-serial,-dep-ann,-static,-fallthrough,-try,-varargs,-empty,-finally
+DISABLE_WARNINGS ?= -Xlint:all,-deprecation,-removal,-unchecked,-rawtypes,-cast,-serial,-dep-ann,-static,-fallthrough,-try,-varargs,-empty,-finally
 
 # If warnings needs to be non-fatal for testing purposes use a command like:
 # make JAVAC_WARNINGS="-Xlint:all -Xmaxwarns 10000"
-JAVAC_WARNINGS := -Xlint:all -Werror
+JAVAC_WARNINGS ?= -Xlint:all -Werror
 
 # The BOOT_JAVAC setup uses the boot jdk compiler to compile the tools
 # and the interim javac, to be run by the boot jdk.
--- a/make/data/characterdata/CharacterDataLatin1.java.template	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/characterdata/CharacterDataLatin1.java.template	Fri Feb 02 09:04:45 2018 -0800
@@ -25,6 +25,8 @@
 
 package java.lang;
 
+import java.util.Arrays;
+
 /** The CharacterData class encapsulates the large tables found in
     Java.lang.Character. */
 
@@ -159,20 +161,39 @@
         return toUpperCase(ch);
     }
 
+    // Digit values for codePoints in the 0-255 range. Contents generated using:
+    // for (char i = 0; i < 256; i++) {
+    //     int v = -1;
+    //     if (i >= '0' && i <= '9') { v = i - '0'; } 
+    //     else if (i >= 'A' && i <= 'Z') { v = i - 'A' + 10; }
+    //     else if (i >= 'a' && i <= 'z') { v = i - 'a' + 10; }
+    //     if (i % 20 == 0) System.out.println();
+    //     System.out.printf("%2d, ", v);
+    // }
+    //
+    // Analysis has shown that generating the whole array allows the JIT to generate
+    // better code compared to a slimmed down array, such as one cutting off after 'z'
+    private static final byte[] DIGITS = new byte[] {
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, -1, -1,
+        -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+        25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1, 10, 11, 12,
+        13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+        33, 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
+
     int digit(int ch, int radix) {
-        int value = -1;
-        if (radix >= Character.MIN_RADIX && radix <= Character.MAX_RADIX) {
-            int val = getProperties(ch);
-            int kind = val & $$maskType;
-            if (kind == Character.DECIMAL_DIGIT_NUMBER) {
-                value = ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit;
-            }
-            else if ((val & $$maskNumericType) == $$valueJavaSupradecimal) {
-                // Java supradecimal digit
-                value = (ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit) + 10;
-            }
+        int value = DIGITS[ch];
+        if (value >= 0 && radix >= Character.MIN_RADIX && radix <= Character.MAX_RADIX) {
+            value = (value < radix) ? value : -1;
         }
-        return (value < radix) ? value : -1;
+        return value;
     }
 
     int getNumericValue(int ch) {
--- a/make/data/tzdata/VERSION	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/VERSION	Fri Feb 02 09:04:45 2018 -0800
@@ -21,4 +21,4 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
-tzdata2017c
+tzdata2018c
--- a/make/data/tzdata/africa	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/africa	Fri Feb 02 09:04:45 2018 -0800
@@ -181,7 +181,6 @@
 Link Africa/Abidjan Africa/Lome		# Togo
 Link Africa/Abidjan Africa/Nouakchott	# Mauritania
 Link Africa/Abidjan Africa/Ouagadougou	# Burkina Faso
-Link Africa/Abidjan Africa/Sao_Tome	# São Tomé and Príncipe
 Link Africa/Abidjan Atlantic/St_Helena	# St Helena
 
 # Djibouti
@@ -448,7 +447,7 @@
 #
 # The Nautical Almanac for the Year 1970, p 264, is the source for -0:44:30.
 #
-# In 1972 Liberia was the last country to switch from a UTC offset
+# In 1972 Liberia was the last country to switch from a UT offset
 # that was not a multiple of 15 or 20 minutes.  The 1972 change was on
 # 1972-01-07, according to an entry dated 1972-01-04 on p 330 of:
 # Presidential Papers: First year of the administration of
@@ -1060,6 +1059,19 @@
 #	Inaccessible, Nightingale: uninhabited
 
 # São Tomé and Príncipe
+
+# From Steffen Thorsen (2018-01-08):
+# Multiple sources tell that São Tomé changed from UTC to UTC+1 as
+# they entered the year 2018.
+# From Michael Deckers (2018-01-08):
+# the switch is from 01:00 to 02:00 ... [Decree No. 25/2017]
+# http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017
+
+Zone	Africa/Sao_Tome	 0:26:56 -	LMT	1884
+			-0:36:45 -	LMT	1912 # Lisbon Mean Time
+			 0:00	-	GMT	2018 Jan  1 01:00
+			 1:00	-	WAT
+
 # Senegal
 # See Africa/Abidjan.
 
--- a/make/data/tzdata/asia	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/asia	Fri Feb 02 09:04:45 2018 -0800
@@ -73,7 +73,7 @@
 #	9:00 KST  KDT	Korea when at +09
 #	9:30 ACST	Australian Central Standard Time
 # Otherwise, these tables typically use numeric abbreviations like +03
-# and +0330 for integer hour and minute UTC offsets.  Although earlier
+# and +0330 for integer hour and minute UT offsets.  Although earlier
 # editions invented alphabetic time zone abbreviations for every
 # offset, this did not reflect common practice.
 #
@@ -670,17 +670,17 @@
 # time", in which abolished the adoption of Western Standard Time in
 # western islands (listed above), which means the whole Japan
 # territory, including later occupations, adopt Japan Central Time
-# (UTC+9). The adoption began on Oct 1, 1937. The original text can
+# (UT+9). The adoption began on Oct 1, 1937. The original text can
 # be found on Wikisource:
 # https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件
 #
-# That is, the time zone of Taipei switched to UTC+9 on Oct 1, 1937.
+# That is, the time zone of Taipei switched to UT+9 on Oct 1, 1937.
 
 # From Yu-Cheng Chuang (2014-07-02):
-# I've found more evidence about when the time zone was switched from UTC+9
-# back to UTC+8 after WW2.  I believe it was on Sep 21, 1945.  In a document
+# I've found more evidence about when the time zone was switched from UT+9
+# back to UT+8 after WW2.  I believe it was on Sep 21, 1945.  In a document
 # during Japanese era [1] in which the officer told the staff to change time
-# zone back to Western Standard Time (UTC+8) on Sep 21.  And in another
+# zone back to Western Standard Time (UT+8) on Sep 21.  And in another
 # history page of National Cheng Kung University [2], on Sep 21 there is a
 # note "from today, switch back to Western Standard Time".  From these two
 # materials, I believe that the time zone change happened on Sep 21.  And
@@ -1487,17 +1487,17 @@
 # of the Japanese wanted to scrap daylight-saving time, as opposed to 30% who
 # wanted to keep it.)
 
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that DST in Japan during those years was as follows:
+# From Takayuki Nikai (2018-01-19):
+# The source of information is Japanese law.
+# http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00219480428029.htm
+# http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00719500331039.htm
+# ... In summary, it is written as follows.  From 24:00 on the first Saturday
+# in May, until 0:00 on the day after the second Saturday in September.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Japan	1948	only	-	May	Sun>=1	2:00	1:00	D
-Rule	Japan	1948	1951	-	Sep	Sat>=8	2:00	0	S
-Rule	Japan	1949	only	-	Apr	Sun>=1	2:00	1:00	D
-Rule	Japan	1950	1951	-	May	Sun>=1	2:00	1:00	D
-# but the only locations using it (for birth certificates, presumably, since
-# their audience is astrologers) were US military bases.  For now, assume
-# that for most purposes daylight-saving time was observed; otherwise, what
-# would have been the point of the 1951 poll?
+Rule	Japan	1948	only	-	May	Sat>=1	24:00	1:00	D
+Rule	Japan	1948	1951	-	Sep	Sun>=9	 0:00	0	S
+Rule	Japan	1949	only	-	Apr	Sat>=1	24:00	1:00	D
+Rule	Japan	1950	1951	-	May	Sat>=1	24:00	1:00	D
 
 # From Hideyuki Suzuki (1998-11-09):
 # 'Tokyo' usually stands for the former location of Tokyo Astronomical
@@ -1528,7 +1528,7 @@
 #
 # ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which
 # means the whole Japan territory, including later occupations, adopt Japan
-# Central Time (UTC+9). The adoption began on Oct 1, 1937.
+# Central Time (UT+9). The adoption began on Oct 1, 1937.
 # https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2089,8 +2089,8 @@
 
 # Maldives
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Maldives	4:54:00 -	LMT	1880 # Male
-			4:54:00	-	MMT	1960 # Male Mean Time
+Zone	Indian/Maldives	4:54:00 -	LMT	1880 # Malé
+			4:54:00	-	MMT	1960 # Malé Mean Time
 			5:00	-	+05
 
 # Mongolia
--- a/make/data/tzdata/australasia	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/australasia	Fri Feb 02 09:04:45 2018 -0800
@@ -706,8 +706,8 @@
 # From Steffen Thorsen (2012-07-25)
 # ... we double checked by calling hotels and offices based in Tokelau asking
 # about the time there, and they all told a time that agrees with UTC+13....
-# Shanks says UTC-10 from 1901 [but] ... there is a good chance the change
-# actually was to UTC-11 back then.
+# Shanks says UT-10 from 1901 [but] ... there is a good chance the change
+# actually was to UT-11 back then.
 #
 # From Paul Eggert (2012-07-25)
 # A Google Books snippet of Appendix to the Journals of the House of
@@ -1473,7 +1473,7 @@
 #
 # From Paul Eggert (2006-03-22):
 # The Department of Internal Affairs (DIA) maintains a brief history,
-# as does Carol Squires; see tz-link.htm for the full references.
+# as does Carol Squires; see tz-link.html for the full references.
 # Use these sources in preference to Shanks & Pottenger.
 #
 # For Chatham, IATA SSIM (1991/1999) gives the NZ rules but with
--- a/make/data/tzdata/europe	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/europe	Fri Feb 02 09:04:45 2018 -0800
@@ -91,14 +91,15 @@
 #        0:00       WET  WEST WEMT  Western Europe
 #        0:19:32.13 AMT* NST*       Amsterdam, Netherlands Summer (1835-1937)
 #        1:00       BST             British Standard (1968-1971)
+#        1:00       IST  GMT        Irish Standard (1968-) with winter DST
 #        1:00       CET  CEST CEMT  Central Europe
 #        1:00:14    SET             Swedish (1879-1899)
 #        1:36:34    RMT* LST*       Riga, Latvian Summer (1880-1926)*
 #        2:00       EET  EEST       Eastern Europe
 #        3:00       MSK  MSD  MDST* Moscow
 
-# From Peter Ilieve (1994-12-04),
-# The original six [EU members]: Belgium, France, (West) Germany, Italy,
+# From Peter Ilieve (1994-12-04), re EEC/EC/EU members:
+# The original six: Belgium, France, (West) Germany, Italy,
 # Luxembourg, the Netherlands.
 # Plus, from 1 Jan 73: Denmark, Ireland, United Kingdom.
 # Plus, from 1 Jan 81: Greece.
@@ -301,16 +302,31 @@
 # The following claim by Shanks & Pottenger is possible though doubtful;
 # we'll ignore it for now.
 #     * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00.
-#
+
+# From Paul Eggert (2017-12-04):
 #
-# Whitman says Dublin Mean Time was -0:25:21, which is more precise than
-# Shanks & Pottenger.
-# Perhaps this was Dunsink Observatory Time, as Dunsink Observatory
-# (8 km NW of Dublin's center) seemingly was to Dublin as Greenwich was
-# to London.  For example:
+# Dunsink Observatory (8 km NW of Dublin's center) was to Dublin as
+# Greenwich was to London.  For example:
 #
 #   "Timeball on the ballast office is down.  Dunsink time."
 #   -- James Joyce, Ulysses
+#
+# The abbreviation DMT stood for "Dublin Mean Time" or "Dunsink Mean Time";
+# this being Ireland, opinions differed.
+#
+# Whitman says Dublin/Dunsink Mean Time was UT-00:25:21, which agrees
+# with measurements of recent visitors to the Meridian Room of Dunsink
+# Observatory; see Malone D. Dunsink and timekeeping. 2016-01-24.
+# <https://www.maths.tcd.ie/~dwmalone/time/dunsink.html>.  Malone
+# writes that the Nautical Almanac listed UT-00:25:22 until 1896, when
+# it moved to UT-00:25:21.1 (I confirmed that the 1893 edition used
+# the former and the 1896 edition used the latter).  Evidently the
+# news of this change propagated slowly, as Milne 1899 still lists
+# UT-00:25:22 and cites the International Telegraph Bureau.  As it is
+# not clear that there was any practical significance to the change
+# from UT-00:25:22 to UT-00:25:21.1 in civil timekeeping, omit this
+# transition for now and just use the latter value, omitting its
+# fraction since our format cannot represent fractions.
 
 # "Countess Markievicz ... claimed that the [1916] abolition of Dublin Mean Time
 # was among various actions undertaken by the 'English' government that
@@ -370,12 +386,28 @@
 # regulations. I spoke this morning with the Secretary of the Department of
 # Justice (tel +353 1 678 9711) who confirmed to me that the correct name is
 # "Irish Summer Time", abbreviated to "IST".
+#
+# From Paul Eggert (2017-12-07):
+# The 1996 anonymous contributor's goal was to determine the correct
+# abbreviation for summer time in Dublin and so the contributor
+# focused on the "IST", not on the "Irish Summer Time".  Though the
+# "IST" was correct, the "Irish Summer Time" appears to have been an
+# error, as Ireland's Standard Time (Amendment) Act, 1971 states that
+# standard time in Ireland remains at UT +01 and is observed in
+# summer, and that Greenwich mean time is observed in winter.  (Thanks
+# to Derick Rethans for pointing out the error.)  That is, when
+# Ireland amended the 1968 act that established UT +01 as Irish
+# Standard Time, it left standard time unchanged and established GMT
+# as a negative daylight saving time in winter.  So, in this database
+# IST stands for Irish Summer Time for timestamps before 1968, and for
+# Irish Standard Time after that.  See:
+# http://www.irishstatutebook.ie/eli/1971/act/17/enacted/en/print
 
 # Michael Deckers (2017-06-01) gave the following URLs for Ireland's
 # Summer Time Act, 1925 and Summer Time Orders, 1926 and 1947:
-# http://www.irishstatutebook.ie/eli/1925/act/8/enacted/en/print.html
-# http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print.html
-# http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print.html
+# http://www.irishstatutebook.ie/eli/1925/act/8/enacted/en/print
+# http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print
+# http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # Summer Time Act, 1916
@@ -499,9 +531,23 @@
 Link	Europe/London	Europe/Guernsey
 Link	Europe/London	Europe/Isle_of_Man
 
+# From Paul Eggert (2018-01-19):
+# The following is like GB-Eire and EU, except with standard time in
+# summer and negative daylight saving time in winter.
+# Although currently commented out, this will need to become uncommented
+# once the ICU/OpenJDK workaround is removed; see below.
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+#Rule	Eire	1971	only	-	Oct	31	 2:00u	-1:00	GMT
+#Rule	Eire	1972	1980	-	Mar	Sun>=16	 2:00u	0	IST
+#Rule	Eire	1972	1980	-	Oct	Sun>=23	 2:00u	-1:00	GMT
+#Rule	Eire	1981	max	-	Mar	lastSun	 1:00u	0	IST
+#Rule	Eire	1981	1989	-	Oct	Sun>=23	 1:00u	-1:00	GMT
+#Rule	Eire	1990	1995	-	Oct	Sun>=22	 1:00u	-1:00	GMT
+#Rule	Eire	1996	max	-	Oct	lastSun	 1:00u	-1:00	GMT
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Dublin	-0:25:00 -	LMT	1880 Aug  2
-			-0:25:21 -	DMT	1916 May 21  2:00s # Dublin MT
+			-0:25:21 -	DMT	1916 May 21  2:00s
 			-0:25:21 1:00	IST	1916 Oct  1  2:00s
 			 0:00	GB-Eire	%s	1921 Dec  6 # independence
 			 0:00	GB-Eire	GMT/IST	1940 Feb 25  2:00s
@@ -510,16 +556,33 @@
 			 0:00	1:00	IST	1947 Nov  2  2:00s
 			 0:00	-	GMT	1948 Apr 18  2:00s
 			 0:00	GB-Eire	GMT/IST	1968 Oct 27
+# From Paul Eggert (2018-01-18):
+# The next line should look like this:
+#			 1:00	Eire	IST/GMT
+# However, in January 2018 we discovered that the Eire rules cause
+# problems with tests for ICU:
+# https://mm.icann.org/pipermail/tz/2018-January/025825.html
+# and with tests for OpenJDK:
+# https://mm.icann.org/pipermail/tz/2018-January/025822.html
+# To work around this problem, use a traditional approximation for
+# time stamps after 1971-10-31 02:00 UTC, to give ICU and OpenJDK
+# developers breathing room to fix bugs.  This approximation has
+# correct UTC offsets, but results in tm_isdst flags are the reverse
+# of what they should be.  This workaround is temporary and should be
+# removed reasonably soon.
 			 1:00	-	IST	1971 Oct 31  2:00u
 			 0:00	GB-Eire	GMT/IST	1996
 			 0:00	EU	GMT/IST
+# End of workaround for ICU and OpenJDK bugs.
+
 
 ###############################################################################
 
 # Europe
 
-# EU rules are for the European Union, previously known as the EC, EEC,
-# Common Market, etc.
+# The following rules are for the European Union and for its
+# predecessor organization, the European Communities.
+# For brevity they are called "EU rules" elsewhere in this file.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	EU	1977	1980	-	Apr	Sun>=1	 1:00u	1:00	S
@@ -952,7 +1015,7 @@
 # The page http://www.retsinfo.dk/_GETDOCI_/ACCN/A18930008330-REGL
 # confirms this, and states that the law was put forth 1893-03-29.
 #
-# The EU treaty with effect from 1973:
+# The EU [actually, EEC and Euratom] treaty with effect from 1973:
 # http://www.retsinfo.dk/_GETDOCI_/ACCN/A19722110030-REGL
 #
 # This provoked a new law from 1974 to make possible summer time changes
@@ -1008,9 +1071,10 @@
 # East Greenland and Franz Josef Land, but we don't know their time zones.
 # My source for this is Wilhelm Dege's book mentioned under Svalbard.
 #
-# From Paul Eggert (2006-03-22):
-# Greenland joined the EU as part of Denmark, obtained home rule on 1979-05-01,
-# and left the EU on 1985-02-01.  It therefore should have been using EU
+# From Paul Eggert (2017-12-10):
+# Greenland joined the European Communities as part of Denmark,
+# obtained home rule on 1979-05-01, and left the European Communities
+# on 1985-02-01.  It therefore should have been using EU
 # rules at least through 1984.  Shanks & Pottenger say Scoresbysund and Godthåb
 # used C-Eur rules after 1980, but IATA SSIM (1991/1996) says they use EU
 # rules since at least 1991.  Assume EU rules since 1980.
@@ -1324,7 +1388,7 @@
 # From Markus Kuhn (1998-09-29):
 # The German time zone web site by the Physikalisch-Technische
 # Bundesanstalt contains DST information back to 1916.
-# [See tz-link.htm for the URL.]
+# [See tz-link.html for the URL.]
 
 # From Jörg Schilling (2002-10-23):
 # In 1945, Berlin was switched to Moscow Summer time (GMT+4) by
@@ -1421,7 +1485,7 @@
 			1:00	Greece	CE%sT	1944 Apr  4
 			2:00	Greece	EE%sT	1981
 			# Shanks & Pottenger say it switched to C-Eur in 1981;
-			# go with EU instead, since Greece joined it on Jan 1.
+			# go with EU rules instead, since Greece joined Jan 1.
 			2:00	EU	EE%sT
 
 # Hungary
@@ -2120,7 +2184,7 @@
 # IATA SSIM (1991/1992) reports that the Azores were at -1:00.
 # IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00.
 # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
-# harmonized with the EU), and that they stayed +0:00 that winter.
+# harmonized with EU rules), and that they stayed +0:00 that winter.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
@@ -2795,9 +2859,9 @@
 #
 # https://regnum.ru/news/society/1957270.html
 # has some historical data for Altai Krai:
-# before 1957: west part on UTC+6, east on UTC+7
-# after 1957: UTC+7
-# since 1995: UTC+6
+# before 1957: west part on UT+6, east on UT+7
+# after 1957: UT+7
+# since 1995: UT+6
 # http://barnaul.rusplt.ru/index/pochemu_altajskij_kraj_okazalsja_v_neprivychnom_chasovom_pojase-17648.html
 # confirms that and provides more details including 1995-05-28 transition date.
 
@@ -3605,6 +3669,17 @@
 # The change is permanent, so this is the new standard time in Turkey.
 # It takes effect today, which is not much notice.
 
+# From Kıvanç Yazan (2017-10-28):
+# Turkey will go back to Daylight Saving Time starting 2018-10.
+# http://www.resmigazete.gov.tr/eskiler/2017/10/20171028-5.pdf
+#
+# From Even Scharning (2017-11-08):
+# ... today it was announced that the DST will become "continuous":
+# http://www.hurriyet.com.tr/son-dakika-yaz-saati-uygulamasi-surekli-hale-geldi-40637482
+# From Paul Eggert (2017-11-08):
+# Although Google Translate misfires on that source, it looks like
+# Turkey reversed last month's decision, and so will stay at +03.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Turkey	1916	only	-	May	 1	0:00	1:00	S
 Rule	Turkey	1916	only	-	Oct	 1	0:00	0	-
--- a/make/data/tzdata/leapseconds	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/leapseconds	Fri Feb 02 09:04:45 2018 -0800
@@ -80,5 +80,5 @@
 Leap	2015	Jun	30	23:59:60	+	S
 Leap	2016	Dec	31	23:59:60	+	S
 
-#	Updated through IERS Bulletin C54
-#	File expires on:  28 June 2018
+#	Updated through IERS Bulletin C55
+#	File expires on:  28 December 2018
--- a/make/data/tzdata/northamerica	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/northamerica	Fri Feb 02 09:04:45 2018 -0800
@@ -371,6 +371,18 @@
 # Nebraska, eastern North Dakota, Oklahoma, eastern South Dakota,
 # western Tennessee, most of Texas, Wisconsin
 
+# From Paul Eggert (2018-01-07):
+# In 1869 the Chicago Astronomical Society contracted with the city to keep
+# time.  Though delayed by the Great Fire, by 1880 a wire ran from the
+# Dearborn Observatory (on the University of Chicago campus) to City Hall,
+# which then sent signals to police and fire stations.  However, railroads got
+# their time signals from the Allegheny Observatory, the Madison Observatory,
+# the Ann Arbor Observatory, etc., so their clocks did not agree with each
+# other or with the city's official time.  The confusion took some years to
+# clear up.  See:
+# Moser M. How Chicago gave America its time zones. Chicago. 2018-01-04.
+# http://www.chicagomag.com/city-life/January-2018/How-Chicago-Gave-America-Its-Time-Zones/
+
 # From Larry M. Smith (2006-04-26) re Wisconsin:
 # https://docs.legis.wisconsin.gov/statutes/statutes/175.pdf
 # is currently enforced at the 01:00 time of change.  Because the local
@@ -1919,7 +1931,7 @@
 # manager of the Creston & District Museum. The article was written in May 2009.
 # http://www.ilovecreston.com/?p=articles&t=spec&ar=260
 # According to the article, Creston has not changed its clocks since June 1918.
-# i.e. Creston has been stuck on UTC-7 for 93 years.
+# i.e. Creston has been stuck on UT-7 for 93 years.
 # Dawson Creek, on the other hand, changed its clocks as recently as April 1972.
 
 # Unfortunately the exact date for the time change in June 1918 remains
--- a/make/data/tzdata/southamerica	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/southamerica	Fri Feb 02 09:04:45 2018 -0800
@@ -48,7 +48,7 @@
 # https://www.jstor.org/stable/1774359
 #
 # These tables use numeric abbreviations like -03 and -0330 for
-# integer hour and minute UTC offsets.  Although earlier editions used
+# integer hour and minute UT offsets.  Although earlier editions used
 # alphabetic time zone abbreviations, these abbreviations were
 # invented and did not reflect common practice.
 
@@ -602,7 +602,7 @@
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/La_Paz	-4:32:36 -	LMT	1890
 			-4:32:36 -	CMT	1931 Oct 15 # Calamarca MT
-			-4:32:36 1:00	BOST	1932 Mar 21 # Bolivia ST
+			-4:32:36 1:00	BST	1932 Mar 21 # Bolivia ST
 			-4:00	-	-04
 
 # Brazil
@@ -931,12 +931,25 @@
 # [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the
 # 3rd Feb Sunday. There is an exception on the return date when this is
 # the Carnival Sunday then the return date will be the next Sunday...
-Rule	Brazil	2008	max	-	Oct	Sun>=15	0:00	1:00	S
+Rule	Brazil	2008	2017	-	Oct	Sun>=15	0:00	1:00	S
 Rule	Brazil	2008	2011	-	Feb	Sun>=15	0:00	0	-
+# Decree 7,584 <http://pcdsh01.on.br/HVdecreto7584_20111013.jpg> (2011-10-13)
+# added Bahia.
 Rule	Brazil	2012	only	-	Feb	Sun>=22	0:00	0	-
+# Decree 7,826 <http://pcdsh01.on.br/HVdecreto7826_20121015.jpg> (2012-10-15)
+# removed Bahia and added Tocantins.
+# Decree 8,112 <http://pcdsh01.on.br/HVdecreto8112_20130930.JPG> (2013-09-30)
+# removed Tocantins.
 Rule	Brazil	2013	2014	-	Feb	Sun>=15	0:00	0	-
 Rule	Brazil	2015	only	-	Feb	Sun>=22	0:00	0	-
 Rule	Brazil	2016	2022	-	Feb	Sun>=15	0:00	0	-
+# From Steffen Thorsen (2017-12-18):
+# According to many media sources, next year's DST start in Brazil will move to
+# the first Sunday of November, and it will stay like that for the years after.
+# ... https://www.timeanddate.com/news/time/brazil-delays-dst-2018.html
+# From Steffen Thorsen (2017-12-20):
+# http://www.planalto.gov.br/ccivil_03/_ato2015-2018/2017/decreto/D9242.htm
+Rule	Brazil	2018	max	-	Nov	Sun>=1	0:00	1:00	S
 Rule	Brazil	2023	only	-	Feb	Sun>=22	0:00	0	-
 Rule	Brazil	2024	2025	-	Feb	Sun>=15	0:00	0	-
 Rule	Brazil	2026	only	-	Feb	Sun>=22	0:00	0	-
@@ -1091,7 +1104,7 @@
 
 # From Paul Eggert (2015-04-03):
 # Shanks & Pottenger says America/Santiago introduced standard time in
-# 1890 and rounds its UTC offset to 70W40; guess that in practice this
+# 1890 and rounds its UT offset to 70W40; guess that in practice this
 # was the same offset as in 1916-1919.  It also says Pacific/Easter
 # standardized on 109W22 in 1890; assume this didn't change the clocks.
 #
--- a/make/data/tzdata/zone.tab	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/data/tzdata/zone.tab	Fri Feb 02 09:04:45 2018 -0800
@@ -395,7 +395,7 @@
 SN	+1440-01726	Africa/Dakar
 SO	+0204+04522	Africa/Mogadishu
 SR	+0550-05510	America/Paramaribo
-SS	+0451+03136	Africa/Juba
+SS	+0451+03137	Africa/Juba
 ST	+0020+00644	Africa/Sao_Tome
 SV	+1342-08912	America/El_Salvador
 SX	+180305-0630250	America/Lower_Princes
--- a/make/gensrc/GensrcVarHandles.gmk	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/gensrc/GensrcVarHandles.gmk	Fri Feb 02 09:04:45 2018 -0800
@@ -168,3 +168,7 @@
   $(eval $(call GenerateVarHandleByteArray,VAR_HANDLE_BYTE_ARRAY_$t,$t)))
 
 GENSRC_JAVA_BASE += $(GENSRC_VARHANDLES)
+
+# Include custom extension post hook
+$(eval $(call IncludeCustomExtension, gensrc/GensrcVarHandles-post.gmk))
+
--- a/make/lib/Lib-java.management.gmk	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/lib/Lib-java.management.gmk	Fri Feb 02 09:04:45 2018 -0800
@@ -70,3 +70,7 @@
 TARGETS += $(BUILD_LIBMANAGEMENT)
 
 ################################################################################
+
+# Include custom extension post hook
+$(eval $(call IncludeCustomExtension, lib/Lib-java.management-post.gmk))
+
--- a/make/lib/Lib-jdk.management.gmk	Fri Feb 02 17:02:45 2018 +0530
+++ b/make/lib/Lib-jdk.management.gmk	Fri Feb 02 09:04:45 2018 -0800
@@ -80,3 +80,7 @@
 TARGETS += $(BUILD_LIBMANAGEMENT_EXT)
 
 ################################################################################
+
+# Include custom extension post hook
+$(eval $(call IncludeCustomExtension, lib/Lib-jdk.management-post.gmk))
+
--- a/src/hotspot/cpu/ppc/vtableStubs_ppc_64.cpp	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/hotspot/cpu/ppc/vtableStubs_ppc_64.cpp	Fri Feb 02 09:04:45 2018 -0800
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2017 SAP SE. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -104,7 +104,7 @@
 
   int v_off = entry_offset + vtableEntry::method_offset_in_bytes();
 
-  __ ld(R19_method, v_off, rcvr_klass);
+  __ ld(R19_method, (RegisterOrConstant)v_off, rcvr_klass);
 
 #ifndef PRODUCT
   if (DebugVtables) {
--- a/src/hotspot/cpu/zero/methodHandles_zero.cpp	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/hotspot/cpu/zero/methodHandles_zero.cpp	Fri Feb 02 09:04:45 2018 -0800
@@ -183,3 +183,9 @@
     return NULL;
   }
 }
+
+#ifndef PRODUCT
+void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) {
+  // This is just a stub.
+}
+#endif //PRODUCT
--- a/src/hotspot/share/interpreter/bytecodeInterpreter.cpp	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.cpp	Fri Feb 02 09:04:45 2018 -0800
@@ -2535,13 +2535,35 @@
 
         // this could definitely be cleaned up QQQ
         Method* callee;
-        Klass* iclass = cache->f1_as_klass();
-        // InstanceKlass* interface = (InstanceKlass*) iclass;
+        Method *interface_method = cache->f2_as_interface_method();
+        InstanceKlass* iclass = interface_method->method_holder();
+
         // get receiver
         int parms = cache->parameter_size();
         oop rcvr = STACK_OBJECT(-parms);
         CHECK_NULL(rcvr);
         InstanceKlass* int2 = (InstanceKlass*) rcvr->klass();
+
+        // Receiver subtype check against resolved interface klass (REFC).
+        {
+          Klass* refc = cache->f1_as_klass();
+          itableOffsetEntry* scan;
+          for (scan = (itableOffsetEntry*) int2->start_of_itable();
+               scan->interface_klass() != NULL;
+               scan++) {
+            if (scan->interface_klass() == refc) {
+              break;
+            }
+          }
+          // Check that the entry is non-null.  A null entry means
+          // that the receiver class doesn't implement the
+          // interface, and wasn't the same as when the caller was
+          // compiled.
+          if (scan->interface_klass() == NULL) {
+            VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), "", note_no_trap);
+          }
+        }
+
         itableOffsetEntry* ki = (itableOffsetEntry*) int2->start_of_itable();
         int i;
         for ( i = 0 ; i < int2->itable_length() ; i++, ki++ ) {
@@ -2553,7 +2575,8 @@
         if (i == int2->itable_length()) {
           VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), "", note_no_trap);
         }
-        int mindex = cache->f2_as_index();
+        int mindex = interface_method->itable_index();
+
         itableMethodEntry* im = ki->first_method_entry(rcvr->klass());
         callee = im[mindex].method();
         if (callee == NULL) {
--- a/src/hotspot/share/opto/loopnode.cpp	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/hotspot/share/opto/loopnode.cpp	Fri Feb 02 09:04:45 2018 -0800
@@ -1260,6 +1260,10 @@
   assert(inner_cl->is_strip_mined(), "inner loop should be strip mined");
   Node* inner_iv_phi = inner_cl->phi();
   if (inner_iv_phi == NULL) {
+    IfNode* outer_le = outer_loop_end();
+    Node* iff = igvn->transform(new IfNode(outer_le->in(0), outer_le->in(1), outer_le->_prob, outer_le->_fcnt));
+    igvn->replace_node(outer_le, iff);
+    inner_cl->clear_strip_mined();
     return;
   }
   CountedLoopEndNode* inner_cle = inner_cl->loopexit();
--- a/src/hotspot/share/opto/loopopts.cpp	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/hotspot/share/opto/loopopts.cpp	Fri Feb 02 09:04:45 2018 -0800
@@ -1036,7 +1036,7 @@
 
 
 bool PhaseIdealLoop::identical_backtoback_ifs(Node *n) {
-  if (!n->is_If()) {
+  if (!n->is_If() || n->is_CountedLoopEnd()) {
     return false;
   }
   if (!n->in(0)->is_Region()) {
--- a/src/hotspot/share/opto/mathexactnode.cpp	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/hotspot/share/opto/mathexactnode.cpp	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -117,23 +117,33 @@
   return SubHelper<OverflowSubLNode>::will_overflow(v1, v2);
 }
 
-bool OverflowMulLNode::will_overflow(jlong val1, jlong val2) const {
-    jlong result = val1 * val2;
-    jlong ax = (val1 < 0 ? -val1 : val1);
-    jlong ay = (val2 < 0 ? -val2 : val2);
+bool OverflowMulLNode::is_overflow(jlong val1, jlong val2) {
+    // x * { 0, 1 } will never overflow. Even for x = min_jlong
+    if (val1 == 0 || val2 == 0 || val1 == 1 || val2 == 1) {
+      return false;
+    }
 
-    bool overflow = false;
-    if ((ax | ay) & CONST64(0xFFFFFFFF00000000)) {
-      // potential overflow if any bit in upper 32 bits are set
-      if ((val1 == min_jlong && val2 == -1) || (val2 == min_jlong && val1 == -1)) {
-        // -1 * Long.MIN_VALUE will overflow
-        overflow = true;
-      } else if (val2 != 0 && (result / val2 != val1)) {
-        overflow = true;
-      }
+    // x * min_jlong for x not in { 0, 1 } overflows
+    // even -1 as -1 * min_jlong is an overflow
+    if (val1 == min_jlong || val2 == min_jlong) {
+      return true;
     }
 
-    return overflow;
+    // if (x * y) / y == x there is no overflow
+    //
+    // the multiplication here is done as unsigned to avoid undefined behaviour which
+    // can be used by the compiler to assume that the check further down (result / val2 != val1)
+    // is always false and breaks the overflow check
+    julong v1 = (julong) val1;
+    julong v2 = (julong) val2;
+    julong tmp = v1 * v2;
+    jlong result = (jlong) tmp;
+
+    if (result / val2 != val1) {
+      return true;
+    }
+
+    return false;
 }
 
 bool OverflowAddINode::can_overflow(const Type* t1, const Type* t2) const {
--- a/src/hotspot/share/opto/mathexactnode.hpp	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/hotspot/share/opto/mathexactnode.hpp	Fri Feb 02 09:04:45 2018 -0800
@@ -129,8 +129,10 @@
   OverflowMulLNode(Node* in1, Node* in2) : OverflowLNode(in1, in2) {}
   virtual int Opcode() const;
 
-  virtual bool will_overflow(jlong v1, jlong v2) const;
+  virtual bool will_overflow(jlong v1, jlong v2) const { return is_overflow(v1, v2); }
   virtual bool can_overflow(const Type* t1, const Type* t2) const;
+
+  static bool is_overflow(jlong v1, jlong v2);
 };
 
 #endif
--- a/src/java.base/share/classes/java/io/InputStream.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/java/io/InputStream.java	Fri Feb 02 09:04:45 2018 -0800
@@ -63,7 +63,8 @@
      *
      * <p> While the stream is open, the {@code available()}, {@code read()},
      * {@code read(byte[])}, {@code read(byte[], int, int)},
-     * {@code readAllBytes()}, {@code readNBytes()}, {@code skip()}, and
+     * {@code readAllBytes()}, {@code readNBytes(byte[], int, int)},
+     * {@code readNBytes(int)}, {@code skip(long)}, and
      * {@code transferTo()} methods all behave as if end of stream has been
      * reached.  After the stream has been closed, these methods all throw
      * {@code IOException}.
@@ -123,6 +124,15 @@
             }
 
             @Override
+            public byte[] readNBytes(int len) throws IOException {
+                if (len < 0) {
+                    throw new IllegalArgumentException("len < 0");
+                }
+                ensureOpen();
+                return new byte[0];
+            }
+
+            @Override
             public long skip(long n) throws IOException {
                 ensureOpen();
                 return 0L;
@@ -233,8 +243,8 @@
      * <code>b</code> and the number of bytes read before the exception
      * occurred is returned. The default implementation of this method blocks
      * until the requested amount of input data <code>len</code> has been read,
-     * end of file is detected, or an exception is thrown. Subclasses are encouraged
-     * to provide a more efficient implementation of this method.
+     * end of file is detected, or an exception is thrown. Subclasses are
+     * encouraged to provide a more efficient implementation of this method.
      *
      * @param      b     the buffer into which the data is read.
      * @param      off   the start offset in array <code>b</code>
@@ -308,26 +318,85 @@
      * It is strongly recommended that the stream be promptly closed if an I/O
      * error occurs.
      *
+     * @implSpec
+     * This method invokes {@link #readNBytes(int)} with a length of
+     * {@link Integer#MAX_VALUE}.
+     *
      * @return a byte array containing the bytes read from this input stream
      * @throws IOException if an I/O error occurs
      * @throws OutOfMemoryError if an array of the required size cannot be
-     *         allocated. For example, if an array larger than {@code 2GB} would
-     *         be required to store the bytes.
+     *         allocated.
      *
      * @since 9
      */
     public byte[] readAllBytes() throws IOException {
+        return readNBytes(Integer.MAX_VALUE);
+    }
+
+    /**
+     * Reads up to a specified number of bytes from the input stream. This
+     * method blocks until the requested number of bytes have been read, end
+     * of stream is detected, or an exception is thrown. This method does not
+     * close the input stream.
+     *
+     * <p> The length of the returned array equals the number of bytes read
+     * from the stream. If {@code len} is zero, then no bytes are read and
+     * an empty byte array is returned. Otherwise, up to {@code len} bytes
+     * are read from the stream. Fewer than {@code len} bytes may be read if
+     * end of stream is encountered.
+     *
+     * <p> When this stream reaches end of stream, further invocations of this
+     * method will return an empty byte array.
+     *
+     * <p> Note that this method is intended for simple cases where it is
+     * convenient to read the specified number of bytes into a byte array. The
+     * total amount of memory allocated by this method is proportional to the
+     * number of bytes read from the stream which is bounded by {@code len}.
+     * Therefore, the method may be safely called with very large values of
+     * {@code len} provided sufficient memory is available.
+     *
+     * <p> The behavior for the case where the input stream is <i>asynchronously
+     * closed</i>, or the thread interrupted during the read, is highly input
+     * stream specific, and therefore not specified.
+     *
+     * <p> If an I/O error occurs reading from the input stream, then it may do
+     * so after some, but not all, bytes have been read. Consequently the input
+     * stream may not be at end of stream and may be in an inconsistent state.
+     * It is strongly recommended that the stream be promptly closed if an I/O
+     * error occurs.
+     *
+     * @implNote
+     * The number of bytes allocated to read data from this stream and return
+     * the result is bounded by {@code 2*(long)len}, inclusive.
+     *
+     * @param len the maximum number of bytes to read
+     * @return a byte array containing the bytes read from this input stream
+     * @throws IllegalArgumentException if {@code length} is negative
+     * @throws IOException if an I/O error occurs
+     * @throws OutOfMemoryError if an array of the required size cannot be
+     *         allocated.
+     *
+     * @since 11
+     */
+    public byte[] readNBytes(int len) throws IOException {
+        if (len < 0) {
+            throw new IllegalArgumentException("len < 0");
+        }
+
         List<byte[]> bufs = null;
         byte[] result = null;
         int total = 0;
+        int remaining = len;
         int n;
         do {
-            byte[] buf = new byte[DEFAULT_BUFFER_SIZE];
+            byte[] buf = new byte[Math.min(remaining, DEFAULT_BUFFER_SIZE)];
             int nread = 0;
 
             // read to EOF which may read more or less than buffer size
-            while ((n = read(buf, nread, buf.length - nread)) > 0) {
+            while ((n = read(buf, nread,
+                    Math.min(buf.length - nread, remaining))) > 0) {
                 nread += n;
+                remaining -= n;
             }
 
             if (nread > 0) {
@@ -345,7 +414,9 @@
                     bufs.add(buf);
                 }
             }
-        } while (n >= 0); // if the last call to read returned -1, then break
+            // if the last call to read returned -1 or the number of bytes
+            // requested have been read then break
+        } while (n >= 0 && remaining > 0);
 
         if (bufs == null) {
             if (result == null) {
@@ -357,12 +428,12 @@
 
         result = new byte[total];
         int offset = 0;
-        int remaining = total;
+        remaining = total;
         for (byte[] b : bufs) {
-            int len = Math.min(b.length, remaining);
-            System.arraycopy(b, 0, result, offset, len);
-            offset += len;
-            remaining -= len;
+            int count = Math.min(b.length, remaining);
+            System.arraycopy(b, 0, result, offset, count);
+            offset += count;
+            remaining -= count;
         }
 
         return result;
--- a/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -534,7 +534,7 @@
 
         @ForceInline
         static $type$ get(ByteBufferHandle handle, Object obb, int index) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
 #if[floatingPoint]
             $rawType$ rawValue = UNSAFE.get$RawType$Unaligned(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -551,7 +551,7 @@
 
         @ForceInline
         static void set(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
 #if[floatingPoint]
             UNSAFE.put$RawType$Unaligned(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -569,7 +569,7 @@
 
         @ForceInline
         static $type$ getVolatile(ByteBufferHandle handle, Object obb, int index) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.get$RawType$Volatile(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -578,7 +578,7 @@
 
         @ForceInline
         static void setVolatile(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             UNSAFE.put$RawType$Volatile(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -587,7 +587,7 @@
 
         @ForceInline
         static $type$ getAcquire(ByteBufferHandle handle, Object obb, int index) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.get$RawType$Acquire(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -596,7 +596,7 @@
 
         @ForceInline
         static void setRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             UNSAFE.put$RawType$Release(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -605,7 +605,7 @@
 
         @ForceInline
         static $type$ getOpaque(ByteBufferHandle handle, Object obb, int index) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.get$RawType$Opaque(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -614,7 +614,7 @@
 
         @ForceInline
         static void setOpaque(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             UNSAFE.put$RawType$Opaque(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -624,7 +624,7 @@
 
         @ForceInline
         static boolean compareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.compareAndSet$RawType$(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -633,7 +633,7 @@
 
         @ForceInline
         static $type$ compareAndExchange(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.compareAndExchange$RawType$(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -643,7 +643,7 @@
 
         @ForceInline
         static $type$ compareAndExchangeAcquire(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.compareAndExchange$RawType$Acquire(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -653,7 +653,7 @@
 
         @ForceInline
         static $type$ compareAndExchangeRelease(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.compareAndExchange$RawType$Release(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -663,7 +663,7 @@
 
         @ForceInline
         static boolean weakCompareAndSetPlain(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$Plain(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -672,7 +672,7 @@
 
         @ForceInline
         static boolean weakCompareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -681,7 +681,7 @@
 
         @ForceInline
         static boolean weakCompareAndSetAcquire(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$Acquire(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -690,7 +690,7 @@
 
         @ForceInline
         static boolean weakCompareAndSetRelease(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$Release(
                     UNSAFE.getObject(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
@@ -699,7 +699,7 @@
 
         @ForceInline
         static $type$ getAndSet(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.getAndSet$RawType$(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -709,7 +709,7 @@
 
         @ForceInline
         static $type$ getAndSetAcquire(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.getAndSet$RawType$Acquire(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -719,7 +719,7 @@
 
         @ForceInline
         static $type$ getAndSetRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.getAndSet$RawType$Release(
                                       UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -731,7 +731,7 @@
 
         @ForceInline
         static $type$ getAndAdd(ByteBufferHandle handle, Object obb, int index, $type$ delta) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndAdd$RawType$(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -744,7 +744,7 @@
 
         @ForceInline
         static $type$ getAndAddAcquire(ByteBufferHandle handle, Object obb, int index, $type$ delta) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndAdd$RawType$Acquire(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -757,7 +757,7 @@
 
         @ForceInline
         static $type$ getAndAddRelease(ByteBufferHandle handle, Object obb, int index, $type$ delta) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndAdd$RawType$Release(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -785,7 +785,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseOr(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseOr$RawType$(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -798,7 +798,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseOrRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseOr$RawType$Release(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -811,7 +811,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseOrAcquire(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseOr$RawType$Acquire(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -837,7 +837,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseAnd(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseAnd$RawType$(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -850,7 +850,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseAndRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseAnd$RawType$Release(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -863,7 +863,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseAndAcquire(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseAnd$RawType$Acquire(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -890,7 +890,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseXor(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseXor$RawType$(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -903,7 +903,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseXorRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseXor$RawType$Release(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
@@ -916,7 +916,7 @@
 
         @ForceInline
         static $type$ getAndBitwiseXorAcquire(ByteBufferHandle handle, Object obb, int index, $type$ value) {
-            ByteBuffer bb = (ByteBuffer) obb;
+            ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseXor$RawType$Acquire(
                         UNSAFE.getObject(bb, BYTE_BUFFER_HB),
--- a/src/java.base/share/classes/java/security/KeyStore.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/java/security/KeyStore.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1802,11 +1802,11 @@
 
             // Load the keystore data
             if (keystore != null) {
+                dataStream.reset(); // prepare the stream for loading
                 if (hasPassword) {
-                    dataStream.reset(); // prepare the stream for loading
                     keystore.load(dataStream, password);
                 } else {
-                    keystore.load(param);
+                    keystore.keyStoreSpi.engineLoad(dataStream, param);
                 }
                 return keystore;
             }
--- a/src/java.base/share/classes/java/security/KeyStoreSpi.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/java/security/KeyStoreSpi.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -395,6 +395,12 @@
     public void engineLoad(KeyStore.LoadStoreParameter param)
                 throws IOException, NoSuchAlgorithmException,
                 CertificateException {
+        engineLoad(null, param);
+    }
+
+    void engineLoad(InputStream stream, KeyStore.LoadStoreParameter param)
+                throws IOException, NoSuchAlgorithmException,
+                CertificateException {
 
         if (param == null) {
             engineLoad((InputStream)null, (char[])null);
@@ -425,7 +431,7 @@
             throw new NoSuchAlgorithmException("ProtectionParameter must"
                 + " be PasswordProtection or CallbackHandlerProtection");
         }
-        engineLoad(null, password);
+        engineLoad(stream, password);
         return;
     }
 
--- a/src/java.base/share/classes/java/time/format/ZoneName.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/java/time/format/ZoneName.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -411,7 +411,7 @@
         "Pacific/Wake", "Wake", "Pacific/Wake",
         "Pacific/Pago_Pago", "Samoa", "Pacific/Apia",
         "America/Moncton", "Atlantic", "America/Halifax",
-        "Africa/Sao_Tome", "GMT", "Atlantic/Reykjavik",
+        "Africa/Sao_Tome", "Africa_Western", "Africa/Lagos",
         "America/Glace_Bay", "Atlantic", "America/Halifax",
         "Asia/Jakarta", "Indonesia_Western", "Asia/Jakarta",
         "Africa/Asmera", "Africa_Eastern", "Africa/Nairobi",
@@ -494,7 +494,6 @@
         "America/Kralendijk", "Atlantic", "America/Halifax",
     };
     private static final String[] mzoneMap = new String[] {
-        "GMT", "ST", "Africa/Sao_Tome",
         "GMT", "ML", "Africa/Bamako",
         "GMT", "IE", "Europe/Dublin",
         "GMT", "SN", "Africa/Dakar",
@@ -509,6 +508,7 @@
         "GMT", "GB", "Europe/London",
         "GMT", "LR", "Africa/Monrovia",
         "GMT", "TG", "Africa/Lome",
+        "Africa_Western", "ST", "Africa/Sao_Tome",
         "Africa_Western", "CF", "Africa/Bangui",
         "Africa_Western", "NE", "Africa/Niamey",
         "Africa_Western", "CM", "Africa/Douala",
--- a/src/java.base/share/classes/java/util/ArrayList.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/java/util/ArrayList.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1143,6 +1143,23 @@
             return modified;
         }
 
+        public Object[] toArray() {
+            checkForComodification();
+            return Arrays.copyOfRange(root.elementData, offset, offset + size);
+        }
+
+        @SuppressWarnings("unchecked")
+        public <T> T[] toArray(T[] a) {
+            checkForComodification();
+            if (a.length < size)
+                return (T[]) Arrays.copyOfRange(
+                        root.elementData, offset, offset + size, a.getClass());
+            System.arraycopy(root.elementData, offset, a, 0, size);
+            if (a.length > size)
+                a[size] = null;
+            return a;
+        }
+
         public Iterator<E> iterator() {
             return listIterator();
         }
--- a/src/java.base/share/classes/java/util/Base64.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/java/util/Base64.java	Fri Feb 02 09:04:45 2018 -0800
@@ -116,8 +116,8 @@
      *
      * @param   lineLength
      *          the length of each output line (rounded down to nearest multiple
-     *          of 4). If {@code lineLength <= 0} the output will not be separated
-     *          in lines
+     *          of 4). If the rounded down line length is not a positive value,
+     *          the output will not be separated in lines
      * @param   lineSeparator
      *          the line separator for each output line
      *
@@ -135,10 +135,12 @@
                  throw new IllegalArgumentException(
                      "Illegal base64 line separator character 0x" + Integer.toString(b, 16));
          }
+         // round down to nearest multiple of 4
+         lineLength &= ~0b11;
          if (lineLength <= 0) {
              return Encoder.RFC4648;
          }
-         return new Encoder(false, lineSeparator, lineLength >> 2 << 2, true);
+         return new Encoder(false, lineSeparator, lineLength, true);
     }
 
     /**
--- a/src/java.base/share/classes/sun/nio/cs/DoubleByte.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/cs/DoubleByte.java	Fri Feb 02 09:04:45 2018 -0800
@@ -236,10 +236,8 @@
                         int b2 = src[sp++] & 0xff;
                         if (b2 < b2Min || b2 > b2Max ||
                             (c = b2c[b1][b2 - b2Min]) == UNMAPPABLE_DECODING) {
-                            if (b2c[b1] == B2C_UNMAPPABLE ||  // isNotLeadingByte
-                                b2c[b2] != B2C_UNMAPPABLE ||  // isLeadingByte
-                                decodeSingle(b2) != UNMAPPABLE_DECODING) {
-                               sp--;
+                            if (crMalformedOrUnmappable(b1, b2).length() == 1) {
+                                sp--;
                             }
                         }
                     }
@@ -472,6 +470,13 @@
             b2cSB_UNMAPPABLE = new char[0x100];
             Arrays.fill(b2cSB_UNMAPPABLE, UNMAPPABLE_DECODING);
         }
+
+        // always returns unmappableForLenth(2) for doublebyte_only
+        @Override
+        protected CoderResult crMalformedOrUnmappable(int b1, int b2) {
+            return CoderResult.unmappableForLength(2);
+        }
+
         public Decoder_DBCSONLY(Charset cs, char[][] b2c, char[] b2cSB, int b2Min, int b2Max,
                                 boolean isASCIICompatible) {
             super(cs, 0.5f, 1.0f, b2c, b2cSB_UNMAPPABLE, b2Min, b2Max, isASCIICompatible);
--- a/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -370,7 +370,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/java.desktop/share/classes/java/awt/Desktop.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.desktop/share/classes/java/awt/Desktop.java	Fri Feb 02 09:04:45 2018 -0800
@@ -83,6 +83,10 @@
  * application is executed, it will be executed on the same system as
  * the one on which the Java application was launched.
  *
+ * <p> Note: the methods in the {@code Desktop} class may require
+ * platform-dependent permissions in addition to those described in the
+ * specification.
+ *
  * @see Action
  *
  * @since 1.6
--- a/src/java.desktop/share/legal/libpng.md	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.desktop/share/legal/libpng.md	Fri Feb 02 09:04:45 2018 -0800
@@ -1,4 +1,4 @@
-## libpng v1.6.23
+## libpng v1.6.34
 
 ### libpng License
 <pre>
@@ -14,8 +14,8 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.0.7, July 1, 2000 through 1.6.23, June 9, 2016 are
-Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
+libpng versions 1.0.7, July 1, 2000 through 1.6.34, September 29, 2017 are
+Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are
 derived from libpng-1.0.6, and are distributed according to the same
 disclaimer and license as libpng-1.0.6 with the following individuals
 added to the list of Contributing Authors:
@@ -26,6 +26,9 @@
    Cosmin Truta
    Gilles Vollant
    James Yu
+   Mandar Sahastrabuddhe
+   Google Inc.
+   Vadim Barkov
 
 and with the following additions to the disclaimer:
 
--- a/src/java.desktop/unix/classes/sun/awt/X11/XTextAreaPeer.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.desktop/unix/classes/sun/awt/X11/XTextAreaPeer.java	Fri Feb 02 09:04:45 2018 -0800
@@ -630,19 +630,6 @@
             super.focusLost(e);
             getComponent().repaint();
         }
-
-        // Fix for 5100950: textarea.getSelectedText() returns the de-selected text, on XToolkit
-        // Restoring Motif behaviour
-        // If the text is unhighlighted then we should sets the selection range to zero
-        @Override
-        public void setSelectionVisible(boolean vis) {
-            if (vis){
-                super.setSelectionVisible(vis);
-            }else{
-                // In order to de-select the selection
-                setDot(getDot());
-            }
-        }
     }
 
     @SuppressWarnings("serial") // JDK-implementation class
--- a/src/java.scripting/share/classes/javax/script/ScriptEngineManager.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.scripting/share/classes/javax/script/ScriptEngineManager.java	Fri Feb 02 09:04:45 2018 -0800
@@ -77,7 +77,7 @@
 
     private void init(final ClassLoader loader) {
         globalScope = new SimpleBindings();
-        engineSpis = new HashSet<ScriptEngineFactory>();
+        engineSpis = new TreeSet<ScriptEngineFactory>(Comparator.comparing(ScriptEngineFactory::getEngineName));
         nameAssociations = new HashMap<String, ScriptEngineFactory>();
         extensionAssociations = new HashMap<String, ScriptEngineFactory>();
         mimeTypeAssociations = new HashMap<String, ScriptEngineFactory>();
@@ -400,7 +400,7 @@
     }
 
     /** Set of script engine factories discovered. */
-    private HashSet<ScriptEngineFactory> engineSpis;
+    private TreeSet<ScriptEngineFactory> engineSpis;
 
     /** Map of engine name to script engine factory. */
     private HashMap<String, ScriptEngineFactory> nameAssociations;
--- a/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java	Fri Feb 02 09:04:45 2018 -0800
@@ -97,7 +97,6 @@
      * the specified method is found in the specifed class.
      */
     private boolean hasMethods() {
-        LiteralExpr arg = (LiteralExpr)_arg;
 
         // Get the class name from the namespace uri
         String className = getClassNameFromUri(_namespaceOfFunct);
@@ -110,7 +109,7 @@
           int lastDotIndex = functionName.lastIndexOf('.');
           if (lastDotIndex > 0) {
             methodName = functionName.substring(lastDotIndex+1);
-            if (className != null && !className.equals(""))
+            if (className != null && className.length() != 0)
               className = className + "." + functionName.substring(0, lastDotIndex);
             else
               className = functionName.substring(0, lastDotIndex);
--- a/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java	Fri Feb 02 09:04:45 2018 -0800
@@ -66,7 +66,7 @@
     private AttributeValue _order;
     private AttributeValue _caseOrder;
     private AttributeValue _dataType;
-    private String         _lang; // bug! see 26869
+    private AttributeValue _lang; // bug! see 26869, see XALANJ-2546
 
     private String _className = null;
     private List<VariableRefBase> _closureVars = null;
@@ -154,13 +154,11 @@
         }
         _dataType = AttributeValue.create(this, val, parser);
 
-         _lang =  getAttribute("lang"); // bug! see 26869
-  // val =  getAttribute("lang");
-  // _lang = AttributeValue.create(this, val, parser);
+        val =  getAttribute("lang");
+        _lang = AttributeValue.create(this, val, parser);
         // Get the case order; default is language dependant
-    val = getAttribute("case-order");
-    _caseOrder = AttributeValue.create(this, val, parser);
-
+        val = getAttribute("case-order");
+        _caseOrder = AttributeValue.create(this, val, parser);
     }
 
     /**
@@ -179,6 +177,7 @@
         _order.typeCheck(stable);
         _caseOrder.typeCheck(stable);
         _dataType.typeCheck(stable);
+        _lang.typeCheck(stable);
         return Type.Void;
     }
 
@@ -196,16 +195,14 @@
         _order.translate(classGen, methodGen);
     }
 
-     public void translateCaseOrder(ClassGenerator classGen,
+    public void translateCaseOrder(ClassGenerator classGen,
                    MethodGenerator methodGen) {
-    _caseOrder.translate(classGen, methodGen);
+        _caseOrder.translate(classGen, methodGen);
     }
 
     public void translateLang(ClassGenerator classGen,
                    MethodGenerator methodGen) {
-    final ConstantPoolGen cpg = classGen.getConstantPool();
-    final InstructionList il = methodGen.getInstructionList();
-    il.append(new PUSH(cpg, _lang)); // bug! see 26869
+        _lang.translate(classGen, methodGen);
     }
 
     /**
--- a/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java	Fri Feb 02 09:04:45 2018 -0800
@@ -570,7 +570,7 @@
         if (_openElementName != null) {
 
            int index;
-           if ((index =_openElementName.indexOf(":")) < 0)
+           if ((index =_openElementName.indexOf(':')) < 0)
                _dom.startElement(null, _openElementName, _openElementName, _attributes);
            else {
                 String uri =_dom.getNamespaceURI(_openElementName.substring(0,index));
@@ -682,7 +682,7 @@
     public void addAttribute(String qName, String value)
     {
         // "prefix:localpart" or "localpart"
-        int colonpos = qName.indexOf(":");
+        int colonpos = qName.indexOf(':');
         String uri = EMPTY_STRING;
         String localName = qName;
         if (colonpos >0)
--- a/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1425,8 +1425,8 @@
      * This method should only be invoked if the name attribute is an AVT
      */
     public static void checkAttribQName(String name) {
-        final int firstOccur = name.indexOf(":");
-        final int lastOccur = name.lastIndexOf(":");
+        final int firstOccur = name.indexOf(':');
+        final int lastOccur = name.lastIndexOf(':');
         final String localName = name.substring(lastOccur + 1);
 
         if (firstOccur > 0) {
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java	Fri Feb 02 09:04:45 2018 -0800
@@ -354,7 +354,7 @@
 
     while (low <= high)
     {
-      int mid = (low + high) / 2;
+      int mid = (low + high) >>> 1;
       int c = list[mid];
 
       if (c > value)
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/NodeVector.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/NodeVector.java	Fri Feb 02 09:04:45 2018 -0800
@@ -669,9 +669,10 @@
     /*
      *  Pick a pivot and move it out of the way
      */
-    int pivot = a[(lo + hi) / 2];
+    int mid = (lo + hi) >>> 1;
+    int pivot = a[mid];
 
-    a[(lo + hi) / 2] = a[hi];
+    a[mid] = a[hi];
     a[hi] = pivot;
 
     while (lo < hi)
--- a/src/java.xml/share/legal/xalan.md	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/java.xml/share/legal/xalan.md	Fri Feb 02 09:04:45 2018 -0800
@@ -1,4 +1,4 @@
-## Apache Xalan v2.7.1
+## Apache Xalan v2.7.2
 
 ### Apache Xalan Notice
 <pre>
@@ -11,6 +11,11 @@
    This product includes software developed by
    The Apache Software Foundation (http://www.apache.org/).
 
+   Specifically, we only include the XSLTC portion of the source from the Xalan distribution. 
+   The Xalan project has two processors: an interpretive one (Xalan Interpretive) and a 
+   compiled one (The XSLT Compiler (XSLTC)). We *only* use the XSLTC part of Xalan; We use
+   the source from the packages that are part of the XSLTC sources.
+
    Portions of this software was originally based on the following:
 
      - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com.
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Fri Feb 02 09:04:45 2018 -0800
@@ -59,7 +59,9 @@
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.DefinedBy.Api;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+import com.sun.tools.javac.util.JCDiagnostic.Error;
 import com.sun.tools.javac.util.JCDiagnostic.Fragment;
+import com.sun.tools.javac.util.JCDiagnostic.Warning;
 import com.sun.tools.javac.util.List;
 
 import static com.sun.tools.javac.code.Flags.*;
@@ -1417,7 +1419,7 @@
                         if (!pattype.hasTag(ERROR)) {
                             if (pattype.constValue() == null) {
                                 log.error(c.pat.pos(),
-                                          (stringSwitch ? "string.const.req" : "const.expr.req"));
+                                          (stringSwitch ? Errors.StringConstReq : Errors.ConstExprReq));
                             } else if (!labels.add(pattype.constValue())) {
                                 log.error(c.pos(), Errors.DuplicateCaseLabel);
                             }
@@ -3675,8 +3677,7 @@
                    sym.name != names._class) {
             // If the qualified item is not a type and the selected item is static, report
             // a warning. Make allowance for the class of an array type e.g. Object[].class)
-            chk.warnStatic(tree, "static.not.qualified.by.type",
-                           sym.kind.kindName(), sym.owner);
+            chk.warnStatic(tree, Warnings.StaticNotQualifiedByType(sym.kind.kindName(), sym.owner));
         }
 
         // If we are selecting an instance member via a `super', ...
@@ -3925,9 +3926,7 @@
                     if (s != null &&
                         s.isRaw() &&
                         !types.isSameType(v.type, v.erasure(types))) {
-                        chk.warnUnchecked(tree.pos(),
-                                          "unchecked.assign.to.var",
-                                          v, s);
+                        chk.warnUnchecked(tree.pos(), Warnings.UncheckedAssignToVar(v, s));
                     }
                 }
                 // The computed type of a variable is the type of the
@@ -4002,12 +4001,14 @@
                 ((v.flags() & STATIC) != 0) == Resolve.isStatic(env) &&
                 (!env.tree.hasTag(ASSIGN) ||
                  TreeInfo.skipParens(((JCAssign) env.tree).lhs) != tree)) {
-                String suffix = (initEnv.info.enclVar == v) ?
-                                "self.ref" : "forward.ref";
                 if (!onlyWarning || isStaticEnumField(v)) {
-                    log.error(tree.pos(), "illegal." + suffix);
+                    Error errkey = (initEnv.info.enclVar == v) ?
+                                Errors.IllegalSelfRef : Errors.IllegalForwardRef;
+                    log.error(tree.pos(), errkey);
                 } else if (useBeforeDeclarationWarning) {
-                    log.warning(tree.pos(), suffix, v);
+                    Warning warnkey = (initEnv.info.enclVar == v) ?
+                                Warnings.SelfRef(v) : Warnings.ForwardRef(v);
+                    log.warning(tree.pos(), warnkey);
                 }
             }
 
@@ -4117,9 +4118,7 @@
             if (s != null && s.isRaw() &&
                 !types.isSameTypes(sym.type.getParameterTypes(),
                                    sym.erasure(types).getParameterTypes())) {
-                chk.warnUnchecked(env.tree.pos(),
-                                  "unchecked.call.mbr.of.raw.type",
-                                  sym, s);
+                chk.warnUnchecked(env.tree.pos(), Warnings.UncheckedCallMbrOfRawType(sym, s));
             }
         }
 
@@ -4169,14 +4168,12 @@
             argtypes = argtypes.map(checkDeferredMap);
 
             if (noteWarner.hasNonSilentLint(LintCategory.UNCHECKED)) {
-                chk.warnUnchecked(env.tree.pos(),
-                        "unchecked.meth.invocation.applied",
-                        kindName(sym),
+                chk.warnUnchecked(env.tree.pos(), Warnings.UncheckedMethInvocationApplied(kindName(sym),
                         sym.name,
                         rs.methodArguments(sym.type.getParameterTypes()),
                         rs.methodArguments(argtypes.map(checkDeferredMap)),
                         kindName(sym.location()),
-                        sym.location());
+                        sym.location()));
                 if (resultInfo.pt != Infer.anyPoly ||
                         !owntype.hasTag(METHOD) ||
                         !owntype.isPartial()) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,9 @@
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+import com.sun.tools.javac.util.JCDiagnostic.Error;
 import com.sun.tools.javac.util.JCDiagnostic.Fragment;
+import com.sun.tools.javac.util.JCDiagnostic.Warning;
 import com.sun.tools.javac.util.List;
 
 import com.sun.tools.javac.code.Lint;
@@ -205,16 +207,16 @@
         if (sym.isDeprecatedForRemoval()) {
             if (!lint.isSuppressed(LintCategory.REMOVAL)) {
                 if (sym.kind == MDL) {
-                    removalHandler.report(pos, "has.been.deprecated.for.removal.module", sym);
+                    removalHandler.report(pos, Warnings.HasBeenDeprecatedForRemovalModule(sym));
                 } else {
-                    removalHandler.report(pos, "has.been.deprecated.for.removal", sym, sym.location());
+                    removalHandler.report(pos, Warnings.HasBeenDeprecatedForRemoval(sym, sym.location()));
                 }
             }
         } else if (!lint.isSuppressed(LintCategory.DEPRECATION)) {
             if (sym.kind == MDL) {
-                deprecationHandler.report(pos, "has.been.deprecated.module", sym);
+                deprecationHandler.report(pos, Warnings.HasBeenDeprecatedModule(sym));
             } else {
-                deprecationHandler.report(pos, "has.been.deprecated", sym, sym.location());
+                deprecationHandler.report(pos, Warnings.HasBeenDeprecated(sym, sym.location()));
             }
         }
     }
@@ -223,22 +225,22 @@
      *  @param pos        Position to be used for error reporting.
      *  @param msg        A string describing the problem.
      */
-    public void warnUnchecked(DiagnosticPosition pos, String msg, Object... args) {
+    public void warnUnchecked(DiagnosticPosition pos, Warning warnKey) {
         if (!lint.isSuppressed(LintCategory.UNCHECKED))
-            uncheckedHandler.report(pos, msg, args);
+            uncheckedHandler.report(pos, warnKey);
     }
 
     /** Warn about unsafe vararg method decl.
      *  @param pos        Position to be used for error reporting.
      */
-    void warnUnsafeVararg(DiagnosticPosition pos, String key, Object... args) {
+    void warnUnsafeVararg(DiagnosticPosition pos, Warning warnKey) {
         if (lint.isEnabled(LintCategory.VARARGS) && Feature.SIMPLIFIED_VARARGS.allowedInSource(source))
-            log.warning(LintCategory.VARARGS, pos, key, args);
+            log.warning(LintCategory.VARARGS, pos, warnKey);
     }
 
-    public void warnStatic(DiagnosticPosition pos, String msg, Object... args) {
+    public void warnStatic(DiagnosticPosition pos, Warning warnKey) {
         if (lint.isEnabled(LintCategory.STATIC))
-            log.warning(LintCategory.STATIC, pos, msg, args);
+            log.warning(LintCategory.STATIC, pos, warnKey);
     }
 
     /** Warn about division by integer constant zero.
@@ -903,14 +905,13 @@
             }
         } else if (hasTrustMeAnno && varargElemType != null &&
                             types.isReifiable(varargElemType)) {
-            warnUnsafeVararg(tree,
-                            "varargs.redundant.trustme.anno",
-                            syms.trustMeType.tsym,
-                            diags.fragment(Fragments.VarargsTrustmeOnReifiableVarargs(varargElemType)));
+            warnUnsafeVararg(tree, Warnings.VarargsRedundantTrustmeAnno(
+                                syms.trustMeType.tsym,
+                                diags.fragment(Fragments.VarargsTrustmeOnReifiableVarargs(varargElemType))));
         }
         else if (!hasTrustMeAnno && varargElemType != null &&
                 !types.isReifiable(varargElemType)) {
-            warnUnchecked(tree.params.head.pos(), "unchecked.varargs.non.reifiable.type", varargElemType);
+            warnUnchecked(tree.params.head.pos(), Warnings.UncheckedVarargsNonReifiableType(varargElemType));
         }
     }
     //where
@@ -998,9 +999,7 @@
                 (!Feature.SIMPLIFIED_VARARGS.allowedInSource(source) ||
                  sym.baseSymbol().attribute(syms.trustMeType.tsym) == null ||
                  !isTrustMeAllowedOnMethod(sym))) {
-                warnUnchecked(env.tree.pos(),
-                                  "unchecked.generic.array.creation",
-                                  argtype);
+                warnUnchecked(env.tree.pos(), Warnings.UncheckedGenericArrayCreation(argtype));
             }
             if ((sym.baseSymbol().flags() & SIGNATURE_POLYMORPHIC) == 0) {
                 TreeInfo.setVarargsElement(env.tree, types.elemtype(argtype));
@@ -1761,9 +1760,7 @@
             return;
         } else if (overrideWarner.hasNonSilentLint(LintCategory.UNCHECKED)) {
             warnUnchecked(TreeInfo.diagnosticPositionFor(m, tree),
-                    "override.unchecked.ret",
-                    uncheckedOverrides(m, other),
-                    mtres, otres);
+                    Warnings.OverrideUncheckedRet(uncheckedOverrides(m, other), mtres, otres));
         }
 
         // Error if overriding method throws an exception not reported
@@ -1779,9 +1776,7 @@
         }
         else if (unhandledUnerased.nonEmpty()) {
             warnUnchecked(TreeInfo.diagnosticPositionFor(m, tree),
-                          "override.unchecked.thrown",
-                         cannotOverride(m, other),
-                         unhandledUnerased.head);
+                          Warnings.OverrideUncheckedThrown(cannotOverride(m, other), unhandledUnerased.head));
             return;
         }
 
@@ -3237,10 +3232,10 @@
         missingDefaults = missingDefaults.reverse();
         if (missingDefaults.nonEmpty()) {
             isValid = false;
-            String key = (missingDefaults.size() > 1)
-                    ? "annotation.missing.default.value.1"
-                    : "annotation.missing.default.value";
-            log.error(a.pos(), key, a.type, missingDefaults);
+            Error errorKey = (missingDefaults.size() > 1)
+                    ? Errors.AnnotationMissingDefaultValue1(a.type, missingDefaults)
+                    : Errors.AnnotationMissingDefaultValue(a.type, missingDefaults);
+            log.error(a.pos(), errorKey);
         }
 
         return isValid && validateTargetAnnotationValue(a);
@@ -3605,14 +3600,14 @@
             if (warned) return; // suppress redundant diagnostics
             switch (lint) {
                 case UNCHECKED:
-                    Check.this.warnUnchecked(pos(), "prob.found.req", diags.fragment(uncheckedKey), found, expected);
+                    Check.this.warnUnchecked(pos(), Warnings.ProbFoundReq(diags.fragment(uncheckedKey), found, expected));
                     break;
                 case VARARGS:
                     if (method != null &&
                             method.attribute(syms.trustMeType.tsym) != null &&
                             isTrustMeAllowedOnMethod(method) &&
                             !types.isReifiable(method.type.getParameterTypes().last())) {
-                        Check.this.warnUnsafeVararg(pos(), "varargs.unsafe.use.varargs.param", method.params.last());
+                        Check.this.warnUnsafeVararg(pos(), Warnings.VarargsUnsafeUseVarargsParam(method.params.last()));
                     }
                     break;
                 default:
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,8 @@
 import com.sun.tools.javac.tree.*;
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+import com.sun.tools.javac.util.JCDiagnostic.Error;
+import com.sun.tools.javac.util.JCDiagnostic.Warning;
 
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.tree.JCTree.*;
@@ -1183,10 +1185,10 @@
                 // exception, that would have been covered in the branch above
                 if (chk.diff(catchableThrownTypes, caughtInTry).isEmpty() &&
                         !isExceptionOrThrowable(exc)) {
-                    String key = catchableThrownTypes.length() == 1 ?
-                            "unreachable.catch" :
-                            "unreachable.catch.1";
-                    log.warning(pos, key, catchableThrownTypes);
+                    Warning key = catchableThrownTypes.length() == 1 ?
+                            Warnings.UnreachableCatch(catchableThrownTypes) :
+                            Warnings.UnreachableCatch1(catchableThrownTypes);
+                    log.warning(pos, key);
                 }
             }
         }
@@ -1617,7 +1619,7 @@
                                       Errors.FinalParameterMayNotBeAssigned(sym));
                         }
                     } else if (!uninits.isMember(sym.adr)) {
-                        log.error(pos, flowKind.errKey, sym);
+                        log.error(pos, diags.errorKey(flowKind.errKey, sym));
                     } else {
                         uninit(sym);
                     }
@@ -1656,14 +1658,14 @@
         /** Check that trackable variable is initialized.
          */
         void checkInit(DiagnosticPosition pos, VarSymbol sym) {
-            checkInit(pos, sym, "var.might.not.have.been.initialized");
+            checkInit(pos, sym, Errors.VarMightNotHaveBeenInitialized(sym));
         }
 
-        void checkInit(DiagnosticPosition pos, VarSymbol sym, String errkey) {
+        void checkInit(DiagnosticPosition pos, VarSymbol sym, Error errkey) {
             if ((sym.adr >= firstadr || sym.owner.kind != TYP) &&
                 trackable(sym) &&
                 !inits.isMember(sym.adr)) {
-                log.error(pos, errkey, sym);
+                log.error(pos, errkey);
                 inits.incl(sym.adr);
             }
         }
@@ -1894,7 +1896,7 @@
                                 // the ctor is default(synthesized) or not
                                 if (isSynthesized) {
                                     checkInit(TreeInfo.diagnosticPositionFor(var, vardecl),
-                                        var, "var.not.initialized.in.default.constructor");
+                                        var, Errors.VarNotInitializedInDefaultConstructor(var));
                                 } else {
                                     checkInit(TreeInfo.diagEndPos(tree.body), var);
                                 }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1410,7 +1410,7 @@
                 super.visitLambda(tree);
                 context.complete();
                 if (dumpLambdaToMethodStats) {
-                    log.note(tree, statKey, context.needsAltMetafactory(), context.translatedSym);
+                    log.note(tree, diags.noteKey(statKey, context.needsAltMetafactory(), context.translatedSym));
                 }
                 return context;
             }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@
 import com.sun.tools.javac.tree.*;
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+import com.sun.tools.javac.util.JCDiagnostic.Error;
 
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.Type.*;
@@ -305,9 +306,9 @@
         v.pos = tree.pos;
     }
     // where
-    void checkType(JCTree tree, Type type, String diag) {
+    void checkType(JCTree tree, Type type, Error errorKey) {
         if (!tree.type.isErroneous() && !types.isSameType(tree.type, type)) {
-            log.error(tree, diag, type, tree.type);
+            log.error(tree, errorKey);
         }
     }
     void checkReceiver(JCVariableDecl tree, Env<AttrContext> localEnv) {
@@ -320,14 +321,14 @@
                 outertype = m.owner.owner.owner.type;
             }
             if (outertype.hasTag(TypeTag.CLASS)) {
-                checkType(tree.vartype, outertype, "incorrect.constructor.receiver.type");
-                checkType(tree.nameexpr, outertype, "incorrect.constructor.receiver.name");
+                checkType(tree.vartype, outertype, Errors.IncorrectConstructorReceiverType(outertype, tree.vartype.type));
+                checkType(tree.nameexpr, outertype, Errors.IncorrectConstructorReceiverName(outertype, tree.nameexpr.type));
             } else {
                 log.error(tree, Errors.ReceiverParameterNotApplicableConstructorToplevelClass);
             }
         } else {
-            checkType(tree.vartype, m.owner.type, "incorrect.receiver.type");
-            checkType(tree.nameexpr, m.owner.type, "incorrect.receiver.name");
+            checkType(tree.vartype, m.owner.type, Errors.IncorrectReceiverType(m.owner.type, tree.vartype.type));
+            checkType(tree.nameexpr, m.owner.type, Errors.IncorrectReceiverName(m.owner.type, tree.nameexpr.type));
         }
     }
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java	Fri Feb 02 09:04:45 2018 -0800
@@ -86,6 +86,7 @@
 import com.sun.tools.javac.resources.CompilerProperties.Warnings;
 import com.sun.tools.javac.util.DefinedBy;
 import com.sun.tools.javac.util.DefinedBy.Api;
+import com.sun.tools.javac.util.JCDiagnostic.Warning;
 import com.sun.tools.javac.util.ListBuffer;
 import com.sun.tools.javac.util.Log;
 import com.sun.tools.javac.jvm.ModuleNameReader;
@@ -1600,10 +1601,10 @@
         void add(Map<String, List<Path>> map, Path prefix, Path suffix) {
             if (!Files.isDirectory(prefix)) {
                 if (warn) {
-                    String key = Files.exists(prefix)
-                            ? "dir.path.element.not.directory"
-                            : "dir.path.element.not.found";
-                    log.warning(Lint.LintCategory.PATH, key, prefix);
+                    Warning key = Files.exists(prefix)
+                            ? Warnings.DirPathElementNotDirectory(prefix)
+                            : Warnings.DirPathElementNotFound(prefix);
+                    log.warning(Lint.LintCategory.PATH, key);
                 }
                 return;
             }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Fri Feb 02 09:04:45 2018 -0800
@@ -26,8 +26,6 @@
 package com.sun.tools.javac.parser;
 
 import java.util.*;
-import java.util.function.Function;
-import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 import com.sun.source.tree.MemberReferenceTree.ReferenceMode;
@@ -39,12 +37,16 @@
 import com.sun.tools.javac.parser.Tokens.Comment.CommentStyle;
 import com.sun.tools.javac.resources.CompilerProperties;
 import com.sun.tools.javac.resources.CompilerProperties.Errors;
+import com.sun.tools.javac.resources.CompilerProperties.Fragments;
+import com.sun.tools.javac.resources.CompilerProperties.Warnings;
 import com.sun.tools.javac.tree.*;
 import com.sun.tools.javac.tree.JCTree.*;
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
 import com.sun.tools.javac.util.JCDiagnostic.Error;
+import com.sun.tools.javac.util.JCDiagnostic.Warning;
+import com.sun.tools.javac.util.JCDiagnostic.Fragment;
 import com.sun.tools.javac.util.List;
 
 import static com.sun.tools.javac.parser.Tokens.TokenKind.*;
@@ -365,14 +367,14 @@
         }
     }
 
-    protected JCErroneous syntaxError(int pos, String key, TokenKind... args) {
-        return syntaxError(pos, List.nil(), key, args);
+    protected JCErroneous syntaxError(int pos, Error errorKey) {
+        return syntaxError(pos, List.nil(), errorKey);
     }
 
-    protected JCErroneous syntaxError(int pos, List<JCTree> errs, String key, TokenKind... args) {
+    protected JCErroneous syntaxError(int pos, List<JCTree> errs, Error errorKey) {
         setErrorEndPos(pos);
         JCErroneous err = F.at(pos).Erroneous(errs);
-        reportSyntaxError(err, key, (Object[])args);
+        reportSyntaxError(err, errorKey);
         if (errs != null) {
             JCTree last = errs.last();
             if (last != null)
@@ -389,22 +391,22 @@
      * Report a syntax using the given the position parameter and arguments,
      * unless one was already reported at the same position.
      */
-    protected void reportSyntaxError(int pos, String key, Object... args) {
+    protected void reportSyntaxError(int pos, Error errorKey) {
         JCDiagnostic.DiagnosticPosition diag = new JCDiagnostic.SimpleDiagnosticPosition(pos);
-        reportSyntaxError(diag, key, args);
+        reportSyntaxError(diag, errorKey);
     }
 
     /**
      * Report a syntax error using the given DiagnosticPosition object and
      * arguments, unless one was already reported at the same position.
      */
-    protected void reportSyntaxError(JCDiagnostic.DiagnosticPosition diagPos, String key, Object... args) {
+    protected void reportSyntaxError(JCDiagnostic.DiagnosticPosition diagPos, Error errorKey) {
         int pos = diagPos.getPreferredPosition();
         if (pos > S.errPos() || pos == Position.NOPOS) {
             if (token.kind == EOF) {
-                error(diagPos, "premature.eof");
+                log.error(DiagnosticFlag.SYNTAX, diagPos, Errors.PrematureEof);
             } else {
-                error(diagPos, key, args);
+                log.error(DiagnosticFlag.SYNTAX, diagPos, errorKey);
             }
         }
         S.errPos(pos);
@@ -417,21 +419,6 @@
         }
     }
 
-
-    /** Generate a syntax error at current position unless one was already
-     *  reported at the same position.
-     */
-    protected JCErroneous syntaxError(String key) {
-        return syntaxError(token.pos, key);
-    }
-
-    /** Generate a syntax error at current position unless one was
-     *  already reported at the same position.
-     */
-    protected JCErroneous syntaxError(String key, TokenKind arg) {
-        return syntaxError(token.pos, key, arg);
-    }
-
     /** If next input token matches given token, skip it, otherwise report
      *  an error.
      */
@@ -440,7 +427,7 @@
             nextToken();
         } else {
             setErrorEndPos(token.pos);
-            reportSyntaxError(S.prevToken().endPos, "expected", tk);
+            reportSyntaxError(S.prevToken().endPos, Errors.Expected(tk));
         }
     }
 
@@ -449,9 +436,9 @@
     JCExpression illegal(int pos) {
         setErrorEndPos(pos);
         if ((mode & EXPR) != 0)
-            return syntaxError(pos, "illegal.start.of.expr");
+            return syntaxError(pos, Errors.IllegalStartOfExpr);
         else
-            return syntaxError(pos, "illegal.start.of.type");
+            return syntaxError(pos, Errors.IllegalStartOfType);
 
     }
 
@@ -465,8 +452,7 @@
     protected void checkNoMods(long mods) {
         if (mods != 0) {
             long lowestMod = mods & -mods;
-            error(token.pos, "mod.not.allowed.here",
-                    Flags.asFlagSet(lowestMod));
+            log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.ModNotAllowedHere(Flags.asFlagSet(lowestMod)));
         }
     }
 
@@ -546,11 +532,11 @@
             nextToken();
             return name;
         } else if (token.kind == ASSERT) {
-            error(token.pos, "assert.as.identifier");
+            log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.AssertAsIdentifier);
             nextToken();
             return names.error;
         } else if (token.kind == ENUM) {
-            error(token.pos, "enum.as.identifier");
+            log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.EnumAsIdentifier);
             nextToken();
             return names.error;
         } else if (token.kind == THIS) {
@@ -561,15 +547,15 @@
                 nextToken();
                 return name;
             } else {
-                error(token.pos, "this.as.identifier");
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.ThisAsIdentifier);
                 nextToken();
                 return names.error;
             }
         } else if (token.kind == UNDERSCORE) {
             if (Feature.UNDERSCORE_IDENTIFIER.allowedInSource(source)) {
-                warning(token.pos, "underscore.as.identifier");
+                log.warning(token.pos, Warnings.UnderscoreAsIdentifier);
             } else {
-                error(token.pos, "underscore.as.identifier");
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.UnderscoreAsIdentifier);
             }
             Name name = token.name();
             nextToken();
@@ -628,7 +614,7 @@
                     TypeTag.INT,
                     Convert.string2int(strval(prefix), token.radix()));
             } catch (NumberFormatException ex) {
-                error(token.pos, "int.number.too.large", strval(prefix));
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.IntNumberTooLarge(strval(prefix)));
             }
             break;
         case LONGLITERAL:
@@ -637,7 +623,7 @@
                     TypeTag.LONG,
                     Long.valueOf(Convert.string2long(strval(prefix), token.radix())));
             } catch (NumberFormatException ex) {
-                error(token.pos, "int.number.too.large", strval(prefix));
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.IntNumberTooLarge(strval(prefix)));
             }
             break;
         case FLOATLITERAL: {
@@ -652,9 +638,9 @@
                 n = Float.NaN;
             }
             if (n.floatValue() == 0.0f && !isZero(proper))
-                error(token.pos, "fp.number.too.small");
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.FpNumberTooSmall);
             else if (n.floatValue() == Float.POSITIVE_INFINITY)
-                error(token.pos, "fp.number.too.large");
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.FpNumberTooLarge);
             else
                 t = F.at(pos).Literal(TypeTag.FLOAT, n);
             break;
@@ -671,9 +657,9 @@
                 n = Double.NaN;
             }
             if (n.doubleValue() == 0.0d && !isZero(proper))
-                error(token.pos, "fp.number.too.small");
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.FpNumberTooSmall);
             else if (n.doubleValue() == Double.POSITIVE_INFINITY)
-                error(token.pos, "fp.number.too.large");
+                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.FpNumberTooLarge);
             else
                 t = F.at(pos).Literal(TypeTag.DOUBLE, n);
             break;
@@ -762,7 +748,7 @@
         JCExpression result = term(TYPE);
 
         if (!allowVar && isRestrictedLocalVarTypeName(result)) {
-            syntaxError(result.pos, "var.not.allowed.here");
+            syntaxError(result.pos, Errors.VarNotAllowedHere);
         }
 
         return result;
@@ -1770,7 +1756,7 @@
             }
             accept(RPAREN);
         } else {
-            syntaxError(token.pos, "expected", LPAREN);
+            syntaxError(token.pos, Errors.Expected(LPAREN));
         }
         return args.toList();
     }
@@ -1839,13 +1825,13 @@
                     nextToken();
                     break;
                 default:
-                    args.append(syntaxError(token.pos, "expected", GT));
+                    args.append(syntaxError(token.pos, Errors.Expected(GT)));
                     break;
                 }
                 return args.toList();
             }
         } else {
-            return List.of(syntaxError(token.pos, "expected", LT));
+            return List.of(syntaxError(token.pos, Errors.Expected(LT)));
         }
     }
 
@@ -1879,7 +1865,7 @@
             JCExpression wc = toP(F.at(pos).Wildcard(t, null));
             JCIdent id = toP(F.at(token.pos).Ident(ident()));
             JCErroneous err = F.at(pos).Erroneous(List.<JCTree>of(wc, id));
-            reportSyntaxError(err, "expected3", GT, EXTENDS, SUPER);
+            reportSyntaxError(err, Errors.Expected3(GT, EXTENDS, SUPER));
             result = err;
         } else {
             TypeBoundKind t = toP(F.at(pos).TypeBoundKind(BoundKind.UNBOUND));
@@ -1969,7 +1955,7 @@
                 // are complained about directly in term3(), Here check for type annotations on dimensions
                 // taking care to handle some interior dimension(s) being annotated.
                 if ((tag == TYPEARRAY && TreeInfo.containsTypeAnnotation(t)) || tag == ANNOTATED_TYPE)
-                    syntaxError("no.annotations.on.dot.class");
+                    syntaxError(token.pos, Errors.NoAnnotationsOnDotClass);
                 t = toP(F.at(pos).Select(t, names._class));
             }
         } else if ((mode & TYPE) != 0) {
@@ -1977,7 +1963,7 @@
                 mode = TYPE;
             }
         } else if (token.kind != COLCOL) {
-            syntaxError(token.pos, "dot.class.expected");
+            syntaxError(token.pos, Errors.DotClassExpected);
         }
         return t;
     }
@@ -2070,7 +2056,7 @@
 
             JCExpression e = arrayCreatorRest(newpos, t);
             if (diamondFound) {
-                reportSyntaxError(lastTypeargsPos, "cannot.create.array.with.diamond");
+                reportSyntaxError(lastTypeargsPos, Errors.CannotCreateArrayWithDiamond);
                 return toP(F.at(newpos).Erroneous(List.of(e)));
             }
             else if (typeArgs != null) {
@@ -2083,7 +2069,7 @@
                 }
                 setErrorEndPos(S.prevToken().endPos);
                 JCErroneous err = F.at(pos).Erroneous(typeArgs.prepend(e));
-                reportSyntaxError(err, "cannot.create.array.with.type.arguments");
+                reportSyntaxError(err, Errors.CannotCreateArrayWithTypeArguments);
                 return toP(err);
             }
             return e;
@@ -2109,7 +2095,7 @@
             return newClass;
         } else {
             setErrorEndPos(token.pos);
-            reportSyntaxError(token.pos, "expected2", LPAREN, LBRACKET);
+            reportSyntaxError(token.pos, Errors.Expected2(LPAREN, LBRACKET));
             t = toP(F.at(newpos).NewClass(null, typeArgs, t, List.nil(), null));
             return toP(F.at(newpos).Erroneous(List.<JCTree>of(t)));
         }
@@ -2161,7 +2147,7 @@
                 return na;
             } else {
                 JCExpression t = toP(F.at(newpos).NewArray(elemtype, List.nil(), null));
-                return syntaxError(token.pos, List.of(t), "array.dimension.missing");
+                return syntaxError(token.pos, List.of(t), Errors.ArrayDimensionMissing);
             }
         } else {
             ListBuffer<JCExpression> dims = new ListBuffer<>();
@@ -2201,7 +2187,7 @@
             na.dimAnnotations = dimAnnotations.toList();
 
             if (elems != null) {
-                return syntaxError(errpos, List.of(na), "illegal.array.creation.both.dimension.and.initialization");
+                return syntaxError(errpos, List.of(na), Errors.IllegalArrayCreationBothDimensionAndInitialization);
             }
 
             return na;
@@ -2273,7 +2259,7 @@
         List<JCStatement> stats = blockStatements();
         JCBlock t = F.at(pos).Block(flags, stats);
         while (token.kind == CASE || token.kind == DEFAULT) {
-            syntaxError("orphaned", token.kind);
+            syntaxError(token.pos, Errors.Orphaned(token.kind));
             switchBlockStatementGroups();
         }
         // the Block node has a field "endpos" for first char of last token, which is
@@ -2327,21 +2313,21 @@
         int pos = token.pos;
         List<JCStatement> stats = blockStatement();
         if (stats.isEmpty()) {
-            JCErroneous e = syntaxError(pos, "illegal.start.of.stmt");
+            JCErroneous e = syntaxError(pos, Errors.IllegalStartOfStmt);
             return toP(F.at(pos).Exec(e));
         } else {
             JCStatement first = stats.head;
-            String error = null;
+            Error error = null;
             switch (first.getTag()) {
             case CLASSDEF:
-                error = "class.not.allowed";
+                error = Errors.ClassNotAllowed;
                 break;
             case VARDEF:
-                error = "variable.not.allowed";
+                error = Errors.VariableNotAllowed;
                 break;
             }
             if (error != null) {
-                error(first, error);
+                log.error(DiagnosticFlag.SYNTAX, first, error);
                 List<JCBlock> blist = List.of(F.at(first.pos).Block(0, stats));
                 return toP(F.at(pos).Exec(F.at(first.pos).Erroneous(blist)));
             }
@@ -2385,7 +2371,7 @@
             Comment dc = token.comment(CommentStyle.JAVADOC);
             return List.of(classOrInterfaceOrEnumDeclaration(modifiersOpt(), dc));
         case ENUM:
-            error(token.pos, "local.enum");
+            log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.LocalEnum);
             dc = token.comment(CommentStyle.JAVADOC);
             return List.of(classOrInterfaceOrEnumDeclaration(modifiersOpt(), dc));
         default:
@@ -2513,9 +2499,9 @@
             } else {
                 if (resources.isEmpty()) {
                     if (Feature.TRY_WITH_RESOURCES.allowedInSource(source)) {
-                        error(pos, "try.without.catch.finally.or.resource.decls");
+                        log.error(DiagnosticFlag.SYNTAX, pos, Errors.TryWithoutCatchFinallyOrResourceDecls);
                     } else {
-                        error(pos, "try.without.catch.or.finally");
+                        log.error(DiagnosticFlag.SYNTAX, pos, Errors.TryWithoutCatchOrFinally);
                     }
                 }
             }
@@ -2570,13 +2556,13 @@
         case ELSE:
             int elsePos = token.pos;
             nextToken();
-            return doRecover(elsePos, BasicErrorRecoveryAction.BLOCK_STMT, "else.without.if");
+            return doRecover(elsePos, BasicErrorRecoveryAction.BLOCK_STMT, Errors.ElseWithoutIf);
         case FINALLY:
             int finallyPos = token.pos;
             nextToken();
-            return doRecover(finallyPos, BasicErrorRecoveryAction.BLOCK_STMT, "finally.without.try");
+            return doRecover(finallyPos, BasicErrorRecoveryAction.BLOCK_STMT, Errors.FinallyWithoutTry);
         case CATCH:
-            return doRecover(token.pos, BasicErrorRecoveryAction.CATCH_CLAUSE, "catch.without.try");
+            return doRecover(token.pos, BasicErrorRecoveryAction.CATCH_CLAUSE, Errors.CatchWithoutTry);
         case ASSERT: {
             nextToken();
             JCExpression assertion = parseExpression();
@@ -2600,11 +2586,11 @@
         return parseStatementAsBlock();
     }
 
-    private JCStatement doRecover(int startPos, ErrorRecoveryAction action, String key) {
+    private JCStatement doRecover(int startPos, ErrorRecoveryAction action, Error errorKey) {
         int errPos = S.errPos();
         JCTree stm = action.doRecover(this);
         S.errPos(errPos);
-        return toP(F.Exec(syntaxError(startPos, List.of(stm), key)));
+        return toP(F.Exec(syntaxError(startPos, List.of(stm), errorKey)));
     }
 
     /** CatchClause     = CATCH "(" FormalParameter ")" Block
@@ -2655,8 +2641,7 @@
                 return cases.toList();
             default:
                 nextToken(); // to ensure progress
-                syntaxError(pos, "expected3",
-                    CASE, DEFAULT, RBRACE);
+                syntaxError(pos, Errors.Expected3(CASE, DEFAULT, RBRACE));
             }
         }
     }
@@ -2717,7 +2702,7 @@
             if ((lastmode & TYPE) != 0 && LAX_IDENTIFIER.accepts(token.kind)) {
                 return variableDeclarators(modifiersOpt(), t, stats, true).toList();
             } else if ((lastmode & TYPE) != 0 && token.kind == COLON) {
-                error(pos, "bad.initializer", "for-loop");
+                log.error(DiagnosticFlag.SYNTAX, pos, Errors.BadInitializer("for-loop"));
                 return List.of((JCStatement)F.at(pos).VarDef(null, null, t, null));
             } else {
                 return moreStatementExpressions(pos, t, stats).toList();
@@ -2802,7 +2787,7 @@
             case ERROR       : flag = 0; nextToken(); break;
             default: break loop;
             }
-            if ((flags & flag) != 0) error(token.pos, "repeated.modifier");
+            if ((flags & flag) != 0) log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.RepeatedModifier);
             lastPos = token.pos;
             nextToken();
             if (flag == Flags.ANNOTATION) {
@@ -2960,7 +2945,7 @@
         vdefs.append(head);
         while (token.kind == COMMA) {
             if (implicit) {
-                reportSyntaxError(pos, "var.not.allowed.compound");
+                reportSyntaxError(pos, Errors.VarNotAllowedCompound);
             }
             // All but last of multiple declarators subsume a comma
             storeEnd((JCTree)vdefs.last(), token.endPos);
@@ -2991,7 +2976,7 @@
             nextToken();
             init = variableInitializer();
         }
-        else if (reqInit) syntaxError(token.pos, "expected", EQ);
+        else if (reqInit) syntaxError(token.pos, Errors.Expected(EQ));
         JCTree elemType = TreeInfo.innermostType(type, true);
         int startPos = Position.NOPOS;
         if (Feature.LOCAL_VARIABLE_TYPE_INFERENCE.allowedInSource(source) && elemType.hasTag(IDENT)) {
@@ -2999,7 +2984,7 @@
             if (isRestrictedLocalVarTypeName(typeName)) {
                 if (type.hasTag(TYPEARRAY)) {
                     //error - 'var' and arrays
-                    reportSyntaxError(pos, "var.not.allowed.array");
+                    reportSyntaxError(pos, Errors.VarNotAllowedArray);
                 } else {
                     startPos = TreeInfo.getStartPos(mods);
                     if (startPos == Position.NOPOS)
@@ -3177,7 +3162,7 @@
                         consumedToplevelDoc = true;
                         break;
                     } else if (kind != ModuleKind.STRONG) {
-                        reportSyntaxError(token.pos, "expected.module");
+                        reportSyntaxError(token.pos, Errors.ExpectedModule);
                     }
                 }
                 JCTree def = typeDeclaration(mods, docComment);
@@ -3246,7 +3231,7 @@
                             }
                         case STATIC:
                             if (isStaticPhase) {
-                                error(token.pos, "repeated.modifier");
+                                log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.RepeatedModifier);
                             }
                             isStaticPhase = true;
                             break;
@@ -3284,7 +3269,7 @@
                     accept(SEMI);
                     defs.append(toP(F.at(pos).Provides(serviceName, implNames)));
                 } else {
-                    error(token.pos, "expected", "'" + names.with + "'");
+                    log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.ExpectedStr("'" + names.with + "'"));
                     skip(false, false, false, false);
                 }
             } else if (token.name() == names.uses) {
@@ -3294,7 +3279,7 @@
                 defs.append(toP(F.at(pos).Uses(service)));
             } else {
                 setErrorEndPos(pos);
-                reportSyntaxError(pos, "invalid.module.directive");
+                reportSyntaxError(pos, Errors.InvalidModuleDirective);
                 break;
             }
         }
@@ -3363,9 +3348,9 @@
             }
             final JCErroneous erroneousTree;
             if (parseModuleInfo) {
-                erroneousTree = syntaxError(pos, errs, "expected.module.or.open");
+                erroneousTree = syntaxError(pos, errs, Errors.ExpectedModuleOrOpen);
             } else {
-                erroneousTree = syntaxError(pos, errs, "expected3", CLASS, INTERFACE, ENUM);
+                erroneousTree = syntaxError(pos, errs, Errors.Expected3(CLASS, INTERFACE, ENUM));
             }
             return toP(F.Exec(erroneousTree));
         }
@@ -3405,9 +3390,9 @@
         Name name = ident();
         if (name == names.var) {
             if (Feature.LOCAL_VARIABLE_TYPE_INFERENCE.allowedInSource(source)) {
-                reportSyntaxError(pos, "var.not.allowed", name);
+                reportSyntaxError(pos, Errors.VarNotAllowed(name));
             } else {
-                warning(pos, "var.not.allowed");
+                log.warning(pos, Warnings.VarNotAllowed);
             }
         }
         return name;
@@ -3479,8 +3464,7 @@
                 defs.append(enumeratorDeclaration(enumName));
             }
             if (token.kind != SEMI && token.kind != RBRACE) {
-                defs.append(syntaxError(token.pos, "expected3",
-                                COMMA, RBRACE, SEMI));
+                defs.append(syntaxError(token.pos, Errors.Expected3(COMMA, RBRACE, SEMI)));
                 nextToken();
             }
         }
@@ -3614,7 +3598,7 @@
                        (mods.flags & Flags.StandardFlags & ~Flags.STATIC) == 0 &&
                        mods.annotations.isEmpty()) {
                 if (isInterface) {
-                    error(token.pos, "initializer.not.allowed");
+                    log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.InitializerNotAllowed);
                 }
                 return List.of(block(pos, mods.flags));
             } else {
@@ -3648,7 +3632,7 @@
                 }
                 if (token.kind == LPAREN && !isInterface && type.hasTag(IDENT)) {
                     if (isInterface || tk.name() != className)
-                        error(pos, "invalid.meth.decl.ret.type.req");
+                        log.error(DiagnosticFlag.SYNTAX, pos, Errors.InvalidMethDeclRetTypeReq);
                     else if (annosAfterParams.nonEmpty())
                         illegal(annosAfterParams.head.pos);
                     return List.of(methodDeclaratorRest(
@@ -3674,7 +3658,7 @@
                             ? List.of(toP(F.at(pos).MethodDef(mods, name, type, typarams,
                                 List.nil(), List.nil(), null, null)))
                             : null;
-                        return List.of(syntaxError(token.pos, err, "expected", LPAREN));
+                        return List.of(syntaxError(token.pos, err, Errors.Expected(LPAREN)));
                     }
                 }
             }
@@ -3841,7 +3825,7 @@
             this.allowThisIdent = false;
             while (token.kind == COMMA) {
                 if ((lastParam.mods.flags & Flags.VARARGS) != 0) {
-                    error(lastParam, "varargs.must.be.last");
+                    log.error(DiagnosticFlag.SYNTAX, lastParam, Errors.VarargsMustBeLast);
                 }
                 nextToken();
                 params.append(lastParam = formalParameter(lambdaParameters));
@@ -3851,7 +3835,7 @@
             nextToken();
         } else {
             setErrorEndPos(token.pos);
-            reportSyntaxError(S.prevToken().endPos, "expected3", COMMA, RPAREN, LBRACKET);
+            reportSyntaxError(S.prevToken().endPos, Errors.Expected3(COMMA, RPAREN, LBRACKET));
         }
         return params.toList();
     }
@@ -3976,8 +3960,7 @@
         } else {
             // if not a var arg, then typeAnnotationsPushedBack should be null
             if (typeAnnotationsPushedBack.nonEmpty()) {
-                reportSyntaxError(typeAnnotationsPushedBack.head.pos,
-                        "illegal.start.of.type");
+                reportSyntaxError(typeAnnotationsPushedBack.head.pos, Errors.IllegalStartOfType);
             }
             typeAnnotationsPushedBack = List.nil();
         }
@@ -3990,25 +3973,12 @@
     }
 
 /* ---------- auxiliary methods -------------- */
-
-    void error(int pos, String key, Object ... args) {
-        log.error(DiagnosticFlag.SYNTAX, pos, key, args);
-    }
-
-    void error(DiagnosticPosition pos, String key, Object ... args) {
-        log.error(DiagnosticFlag.SYNTAX, pos, key, args);
-    }
-
-    void warning(int pos, String key, Object ... args) {
-        log.warning(pos, key, args);
-    }
-
     /** Check that given tree is a legal expression statement.
      */
     protected JCExpression checkExprStat(JCExpression t) {
         if (!TreeInfo.isExpressionStatement(t)) {
             JCExpression ret = F.at(t.pos).Erroneous(List.<JCTree>of(t));
-            error(ret, "not.stmt");
+            log.error(DiagnosticFlag.SYNTAX, ret, Errors.NotStmt);
             return ret;
         } else {
             return t;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/ParserFactory.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/ParserFactory.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
 import com.sun.tools.javac.tree.DocTreeMaker;
 import com.sun.tools.javac.tree.TreeMaker;
 import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.JCDiagnostic;
 import com.sun.tools.javac.util.Log;
 import com.sun.tools.javac.util.Names;
 import com.sun.tools.javac.util.Options;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacFiler.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacFiler.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -724,7 +724,7 @@
             throw new FilerException("Attempt to recreate a file for type " + typename);
         }
         if (lint && existing != null) {
-            log.warning("proc.type.already.exists", typename);
+            log.warning(Warnings.ProcTypeAlreadyExists(typename));
         }
         if (!mod.isUnnamed() && !typename.contains(".")) {
             throw new FilerException("Attempt to create a type in unnamed package of a named module: " + typename);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Fri Feb 02 09:04:45 2018 -0800
@@ -624,9 +624,9 @@
 compiler.err.incomparable.types=\
     incomparable types: {0} and {1}
 
-# 0: number
+# 0: string
 compiler.err.int.number.too.large=\
-    integer number too large: {0}
+    integer number too large
 
 compiler.err.intf.annotation.members.cant.have.params=\
     elements in annotation type declarations cannot declare formal parameters
@@ -1207,7 +1207,7 @@
 compiler.err.illegal.ref.to.var.type=\
     illegal reference to restricted type ''{0}''
 
-# 0: token
+# 0: name
 compiler.err.var.not.allowed=\
     ''{0}'' not allowed here\n\
     as of release 10, ''{0}'' is a restricted local variable type and cannot be used for type declarations
@@ -1734,7 +1734,7 @@
     {0}: major version {1} is newer than {2}, the highest major version supported by this compiler.\n\
     It is recommended that the compiler be upgraded.
 
-# 0: symbol kind, 1: symbol
+# 0: kind name, 1: symbol
 compiler.warn.static.not.qualified.by.type=\
     static {0} should be qualified by type name, {1}, instead of by an expression
 
@@ -1780,7 +1780,7 @@
 compiler.warn.proc.file.reopening=\
     Attempt to create a file for ''{0}'' multiple times
 
-# 0: name
+# 0: string
 compiler.warn.proc.type.already.exists=\
     A file for type ''{0}'' already exists on the sourcepath or classpath
 
@@ -1861,7 +1861,7 @@
 compiler.warn.unchecked.cast.to.type=\
     unchecked cast to type {0}
 
-# 0: symbol kind, 1: name, 2: list of type, 3: list of type, 4: symbol kind, 5: symbol
+# 0: kind name, 1: name, 2: object, 3: object, 4: kind name, 5: symbol
 compiler.warn.unchecked.meth.invocation.applied=\
     unchecked method invocation: {0} {1} in {4} {5} is applied to given types\n\
     required: {2}\n\
@@ -1998,6 +1998,10 @@
 compiler.err.expected=\
     {0} expected
 
+# 0: string
+compiler.err.expected.str=\
+    {0} expected
+
 # 0: token, 1: token
 compiler.err.expected2=\
     {0} or {1} expected
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/AbstractLog.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/AbstractLog.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -110,16 +110,6 @@
     /** Report an error, unless another error was already reported at same
      *  source position.
      *  @param pos    The source position at which to report the error.
-     *  @param key    The key for the localized error message.
-     *  @param args   Fields of the error message.
-     */
-    public void error(DiagnosticPosition pos, String key, Object... args) {
-        error(pos, diags.errorKey(key, args));
-    }
-
-    /** Report an error, unless another error was already reported at same
-     *  source position.
-     *  @param pos    The source position at which to report the error.
      *  @param errorKey    The key for the localized error message.
      */
     public void error(DiagnosticPosition pos, Error errorKey) {
@@ -130,17 +120,6 @@
      *  source position.
      *  @param flag   A flag to set on the diagnostic
      *  @param pos    The source position at which to report the error.
-     *  @param key    The key for the localized error message.
-     *  @param args   Fields of the error message.
-     */
-    public void error(DiagnosticFlag flag, DiagnosticPosition pos, String key, Object ... args) {
-        error(flag, pos, diags.errorKey(key, args));
-    }
-
-    /** Report an error, unless another error was already reported at same
-     *  source position.
-     *  @param flag   A flag to set on the diagnostic
-     *  @param pos    The source position at which to report the error.
      *  @param errorKey    The key for the localized error message.
      */
     public void error(DiagnosticFlag flag, DiagnosticPosition pos, Error errorKey) {
@@ -170,17 +149,6 @@
      *  source position.
      *  @param flag   A flag to set on the diagnostic
      *  @param pos    The source position at which to report the error.
-     *  @param key    The key for the localized error message.
-     *  @param args   Fields of the error message.
-     */
-    public void error(DiagnosticFlag flag, int pos, String key, Object ... args) {
-        error(flag, pos, diags.errorKey(key, args));
-    }
-
-    /** Report an error, unless another error was already reported at same
-     *  source position.
-     *  @param flag   A flag to set on the diagnostic
-     *  @param pos    The source position at which to report the error.
      *  @param errorKey    The key for the localized error message.
      */
     public void error(DiagnosticFlag flag, int pos, Error errorKey) {
@@ -189,15 +157,6 @@
 
     /** Report a warning, unless suppressed by the  -nowarn option or the
      *  maximum number of warnings has been reached.
-     *  @param key    The key for the localized warning message.
-     *  @param args   Fields of the warning message.
-     */
-    public void warning(String key, Object ... args) {
-        warning(diags.warningKey(key, args));
-    }
-
-    /** Report a warning, unless suppressed by the  -nowarn option or the
-     *  maximum number of warnings has been reached.
      *  @param warningKey    The key for the localized warning message.
      */
     public void warning(Warning warningKey) {
@@ -207,16 +166,6 @@
     /** Report a lint warning, unless suppressed by the  -nowarn option or the
      *  maximum number of warnings has been reached.
      *  @param lc     The lint category for the diagnostic
-     *  @param key    The key for the localized warning message.
-     *  @param args   Fields of the warning message.
-     */
-    public void warning(LintCategory lc, String key, Object ... args) {
-        warning(lc, diags.warningKey(key, args));
-    }
-
-    /** Report a lint warning, unless suppressed by the  -nowarn option or the
-     *  maximum number of warnings has been reached.
-     *  @param lc     The lint category for the diagnostic
      *  @param warningKey    The key for the localized warning message.
      */
     public void warning(LintCategory lc, Warning warningKey) {
@@ -226,16 +175,6 @@
     /** Report a warning, unless suppressed by the  -nowarn option or the
      *  maximum number of warnings has been reached.
      *  @param pos    The source position at which to report the warning.
-     *  @param key    The key for the localized warning message.
-     *  @param args   Fields of the warning message.
-     */
-    public void warning(DiagnosticPosition pos, String key, Object ... args) {
-        warning(pos, diags.warningKey(key, args));
-    }
-
-    /** Report a warning, unless suppressed by the  -nowarn option or the
-     *  maximum number of warnings has been reached.
-     *  @param pos    The source position at which to report the warning.
      *  @param warningKey    The key for the localized warning message.
      */
     public void warning(DiagnosticPosition pos, Warning warningKey) {
@@ -246,17 +185,6 @@
      *  maximum number of warnings has been reached.
      *  @param lc     The lint category for the diagnostic
      *  @param pos    The source position at which to report the warning.
-     *  @param key    The key for the localized warning message.
-     *  @param args   Fields of the warning message.
-     */
-    public void warning(LintCategory lc, DiagnosticPosition pos, String key, Object ... args) {
-        warning(lc, pos, diags.warningKey(key, args));
-    }
-
-    /** Report a lint warning, unless suppressed by the  -nowarn option or the
-     *  maximum number of warnings has been reached.
-     *  @param lc     The lint category for the diagnostic
-     *  @param pos    The source position at which to report the warning.
      *  @param warningKey    The key for the localized warning message.
      */
     public void warning(LintCategory lc, DiagnosticPosition pos, Warning warningKey) {
@@ -266,16 +194,6 @@
     /** Report a warning, unless suppressed by the  -nowarn option or the
      *  maximum number of warnings has been reached.
      *  @param pos    The source position at which to report the warning.
-     *  @param key    The key for the localized warning message.
-     *  @param args   Fields of the warning message.
-     */
-    public void warning(int pos, String key, Object ... args) {
-        warning(pos, diags.warningKey(key, args));
-    }
-
-    /** Report a warning, unless suppressed by the  -nowarn option or the
-     *  maximum number of warnings has been reached.
-     *  @param pos    The source position at which to report the warning.
      *  @param warningKey    The key for the localized warning message.
      */
     public void warning(int pos, Warning warningKey) {
@@ -284,15 +202,6 @@
 
     /** Report a warning.
      *  @param pos    The source position at which to report the warning.
-     *  @param key    The key for the localized warning message.
-     *  @param args   Fields of the warning message.
-     */
-    public void mandatoryWarning(DiagnosticPosition pos, String key, Object ... args) {
-        mandatoryWarning(pos, diags.warningKey(key, args));
-    }
-
-    /** Report a warning.
-     *  @param pos    The source position at which to report the warning.
      *  @param warningKey    The key for the localized warning message.
      */
     public void mandatoryWarning(DiagnosticPosition pos, Warning warningKey) {
@@ -302,16 +211,6 @@
     /** Report a warning.
      *  @param lc     The lint category for the diagnostic
      *  @param pos    The source position at which to report the warning.
-     *  @param key    The key for the localized warning message.
-     *  @param args   Fields of the warning message.
-     */
-    public void mandatoryWarning(LintCategory lc, DiagnosticPosition pos, String key, Object ... args) {
-        mandatoryWarning(lc, pos, diags.warningKey(key, args));
-    }
-
-    /** Report a warning.
-     *  @param lc     The lint category for the diagnostic
-     *  @param pos    The source position at which to report the warning.
      *  @param warningKey    The key for the localized warning message.
      */
     public void mandatoryWarning(LintCategory lc, DiagnosticPosition pos, Warning warningKey) {
@@ -319,14 +218,6 @@
     }
 
     /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
-     *  @param key    The key for the localized notification message.
-     *  @param args   Fields of the notint an error or warning message:
-     */
-    public void note(String key, Object ... args) {
-        note(diags.noteKey(key, args));
-    }
-
-    /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
      *  @param noteKey    The key for the localized notification message.
      */
     public void note(Note noteKey) {
@@ -334,14 +225,6 @@
     }
 
     /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
-     *  @param key    The key for the localized notification message.
-     *  @param args   Fields of the notification message.
-     */
-    public void note(DiagnosticPosition pos, String key, Object ... args) {
-        note(pos, diags.noteKey(key, args));
-    }
-
-    /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
      *  @param noteKey    The key for the localized notification message.
      */
     public void note(DiagnosticPosition pos, Note noteKey) {
@@ -349,14 +232,6 @@
     }
 
     /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
-     *  @param key    The key for the localized notification message.
-     *  @param args   Fields of the notification message.
-     */
-    public void note(int pos, String key, Object ... args) {
-        note(pos, diags.noteKey(key, args));
-    }
-
-    /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
      *  @param noteKey    The key for the localized notification message.
      */
     public void note(int pos, Note noteKey) {
@@ -364,14 +239,6 @@
     }
 
     /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
-     *  @param key    The key for the localized notification message.
-     *  @param args   Fields of the notification message.
-     */
-    public void note(JavaFileObject file, String key, Object ... args) {
-        note(file, diags.noteKey(key, args));
-    }
-
-    /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
      *  @param noteKey    The key for the localized notification message.
      */
     public void note(JavaFileObject file, Note noteKey) {
@@ -379,14 +246,6 @@
     }
 
     /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
-     *  @param key    The key for the localized notification message.
-     *  @param args   Fields of the notification message.
-     */
-    public void mandatoryNote(final JavaFileObject file, String key, Object ... args) {
-        mandatoryNote(file, diags.noteKey(key, args));
-    }
-
-    /** Provide a non-fatal notification, unless suppressed by the -nowarn option.
      *  @param noteKey    The key for the localized notification message.
      */
     public void mandatoryNote(final JavaFileObject file, Note noteKey) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/JCDiagnostic.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/JCDiagnostic.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -295,7 +295,7 @@
         /**
          * Create a new error key.
          */
-        Error errorKey(String code, Object... args) {
+        public Error errorKey(String code, Object... args) {
             return (Error)DiagnosticInfo.of(ERROR, prefix, code, args);
         }
 
@@ -309,7 +309,7 @@
         /**
          * Create a new note key.
          */
-        Note noteKey(String code, Object... args) {
+        public Note noteKey(String code, Object... args) {
             return (Note)DiagnosticInfo.of(NOTE, prefix, code, args);
         }
 
@@ -527,6 +527,23 @@
             }
         }
 
+        /**
+         * Returns the code for this diagnostic info, provided mainly for backward compatibility
+         */
+        public String getCode() {
+            return code;
+        }
+
+        /**
+         * Returns the arguments for this diagnostic info, provided mainly for backward compatibility
+         */
+        public Object[] getArgs() {
+            return args;
+        }
+
+        public void setArgs(Object[] args) {
+            this.args = args;
+        }
     }
 
     /**
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,8 @@
 
 import com.sun.tools.javac.code.Lint.LintCategory;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+import com.sun.tools.javac.util.JCDiagnostic.Note;
+import com.sun.tools.javac.util.JCDiagnostic.Warning;
 
 
 /**
@@ -121,7 +123,7 @@
     /**
      * Report a mandatory warning.
      */
-    public void report(DiagnosticPosition pos, String msg, Object... args) {
+    public void report(DiagnosticPosition pos, Warning warnKey) {
         JavaFileObject currentSource = log.currentSourceFile();
 
         if (verbose) {
@@ -130,7 +132,7 @@
 
             if (log.nwarnings < log.MaxWarnings) {
                 // generate message and remember the source file
-                logMandatoryWarning(pos, msg, args);
+                logMandatoryWarning(pos, warnKey);
                 sourcesWithReportedWarnings.add(currentSource);
             } else if (deferredDiagnosticKind == null) {
                 // set up deferred message
@@ -248,13 +250,12 @@
      * Reports a mandatory warning to the log.  If mandatory warnings
      * are not being enforced, treat this as an ordinary warning.
      */
-    private void logMandatoryWarning(DiagnosticPosition pos, String msg,
-                                     Object... args) {
+    private void logMandatoryWarning(DiagnosticPosition pos, Warning warnKey) {
         // Note: the following log methods are safe if lintCategory is null.
         if (enforceMandatory)
-            log.mandatoryWarning(lintCategory, pos, msg, args);
+            log.mandatoryWarning(lintCategory, pos, warnKey);
         else
-            log.warning(lintCategory, pos, msg, args);
+            log.warning(lintCategory, pos, warnKey);
     }
 
     /**
@@ -263,8 +264,8 @@
      */
     private void logMandatoryNote(JavaFileObject file, String msg, Object... args) {
         if (enforceMandatory)
-            log.mandatoryNote(file, msg, args);
+            log.mandatoryNote(file, new Note("compiler", msg, args));
         else
-            log.note(file, msg, args);
+            log.note(file, new Note("compiler", msg, args));
     }
 }
--- a/src/jdk.compiler/share/classes/module-info.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.compiler/share/classes/module-info.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -85,6 +85,8 @@
     exports com.sun.tools.javac.api to
         jdk.javadoc,
         jdk.jshell;
+    exports com.sun.tools.javac.resources to
+        jdk.jshell;
     exports com.sun.tools.javac.code to
         jdk.javadoc,
         jdk.jshell;
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/ResponseContent.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/ResponseContent.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -307,7 +307,7 @@
 
                 int bytes2return = Math.min(bytesread, unfulfilled);
                 debug.log(Level.DEBUG,  "Returning chunk bytes: %d", bytes2return);
-                returnBuffer = Utils.slice(chunk, bytes2return);
+                returnBuffer = Utils.sliceWithLimitedCapacity(chunk, bytes2return);
                 unfulfilled = bytesremaining -= bytes2return;
                 if (unfulfilled == 0) bytesToConsume = 2;
             }
@@ -439,7 +439,7 @@
                     assert hasDemand;
                     int amount = Math.min(b.remaining(), unfulfilled);
                     unfulfilled = remaining -= amount;
-                    ByteBuffer buffer = Utils.slice(b, amount);
+                    ByteBuffer buffer = Utils.sliceWithLimitedCapacity(b, amount);
                     pusher.onNext(List.of(buffer));
                 }
                 if (unfulfilled == 0) {
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Stream.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Stream.java	Fri Feb 02 09:04:45 2018 -0800
@@ -767,7 +767,7 @@
         // blocks waiting for stream send window, if exhausted
         int actualAmount = windowController.tryAcquire(requestAmount, streamid, this);
         if (actualAmount <= 0) return null;
-        ByteBuffer outBuf = Utils.slice(buffer,  actualAmount);
+        ByteBuffer outBuf = Utils.sliceWithLimitedCapacity(buffer,  actualAmount);
         DataFrame df = new DataFrame(streamid, 0 , outBuf);
         return df;
     }
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/common/Utils.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/common/Utils.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -464,10 +464,28 @@
     public static final List<ByteBuffer> EMPTY_BB_LIST = List.of();
     public static final ByteBufferReference[] EMPTY_BBR_ARRAY = new ByteBufferReference[0];
 
-    public static ByteBuffer slice(ByteBuffer buffer, int amount) {
+    /**
+     * Returns a slice of size {@code amount} from the given buffer. If the
+     * buffer contains more data than {@code amount}, then the slice's capacity
+     * ( and, but not just, its limit ) is set to {@code amount}. If the buffer
+     * does not contain more data than {@code amount}, then the slice's capacity
+     * will be the same as the given buffer's capacity.
+     */
+    public static ByteBuffer sliceWithLimitedCapacity(ByteBuffer buffer, int amount) {
+        final int index = buffer.position() + amount;
+        final int limit = buffer.limit();
+        if (index != limit) {
+            // additional data in the buffer
+            buffer.limit(index);  // ensures that the slice does not go beyond
+        } else {
+            // no additional data in the buffer
+            buffer.limit(buffer.capacity());  // allows the slice full capacity
+        }
+
         ByteBuffer newb = buffer.slice();
-        newb.limit(amount);
-        buffer.position(buffer.position() + amount);
+        buffer.position(index);
+        buffer.limit(limit);    // restore the original buffer's limit
+        newb.limit(amount);     // slices limit to amount (capacity may be greater)
         return newb;
     }
 
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/frame/FramesDecoder.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/frame/FramesDecoder.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -281,14 +281,14 @@
             int extract = Math.min(remaining, bytecount);
             ByteBuffer extractedBuf;
             if (isDataFrame) {
-                extractedBuf = Utils.slice(currentBuffer, extract);
+                extractedBuf = Utils.sliceWithLimitedCapacity(currentBuffer, extract);
                 slicedToDataFrame = true;
             } else {
                 // Header frames here
                 // HPACK decoding should performed under lock and immediately after frame decoding.
                 // in that case it is safe to release original buffer,
                 // because of sliced buffer has a very short life
-                extractedBuf = Utils.slice(currentBuffer, extract);
+                extractedBuf = Utils.sliceWithLimitedCapacity(currentBuffer, extract);
             }
             res.add(extractedBuf);
             bytecount -= extract;
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionCategory.java	Fri Feb 02 17:02:45 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.options;
-
-/**
- * Categorizes options according to user relevance.
- *
- * @since 1.0
- */
-public enum OptionCategory {
-
-    /**
-     * An option common for users to apply.
-     *
-     * @since 1.0
-     */
-    USER,
-
-    /**
-     * An option only relevant in corner cases and for fine-tuning.
-     *
-     * @since 1.0
-     */
-    EXPERT,
-
-    /**
-     * An option only relevant when debugging language or instrument implementations.
-     *
-     * @since 1.0
-     */
-    DEBUG
-
-}
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptor.java	Fri Feb 02 17:02:45 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.options;
-
-import java.util.Objects;
-
-/**
- * Represents metadata for a single option.
- *
- * @since 1.0
- */
-public final class OptionDescriptor {
-
-    private final OptionKey<?> key;
-    private final String name;
-    private final String help;
-    private final OptionCategory kind;
-    private final boolean deprecated;
-
-    OptionDescriptor(OptionKey<?> key, String name, String help, OptionCategory kind, boolean deprecated) {
-        this.key = key;
-        this.name = name;
-        this.help = help;
-        this.kind = kind;
-        this.deprecated = deprecated;
-    }
-
-    /**
-     * Returns the name of the option that this descriptor represents.
-     *
-     * @since 1.0
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the key for this option.
-     *
-     * @since 1.0
-     */
-    public OptionKey<?> getKey() {
-        return key;
-    }
-
-    /**
-     * Returns <code>true</code> if this option was marked deprecated. This indicates that the
-     * option is going to be removed in a future release or its use is not recommended.
-     *
-     * @since 1.0
-     */
-    public boolean isDeprecated() {
-        return deprecated;
-    }
-
-    /**
-     * Returns the user category of this option.
-     *
-     * @since 1.0
-     */
-    public OptionCategory getCategory() {
-        return kind;
-    }
-
-    /**
-     * Returns a human-readable description on how to use the option.
-     *
-     * @since 1.0
-     */
-    public String getHelp() {
-        return help;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @since 1.0
-     */
-    @Override
-    public String toString() {
-        return "OptionDescriptor [key=" + key + ", help=" + help + ", kind=" + kind + ", deprecated=" + deprecated + "]";
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @since 1.0
-     */
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + (deprecated ? 1231 : 1237);
-        result = prime * result + ((help == null) ? 0 : help.hashCode());
-        result = prime * result + ((key == null) ? 0 : key.hashCode());
-        result = prime * result + ((kind == null) ? 0 : kind.hashCode());
-        result = prime * result + ((name == null) ? 0 : name.hashCode());
-        return result;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @since 1.0
-     */
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        } else if (obj == null) {
-            return false;
-        } else if (getClass() != obj.getClass()) {
-            return false;
-        }
-        OptionDescriptor other = (OptionDescriptor) obj;
-        return Objects.equals(name, other.name) &&
-                        Objects.equals(deprecated, other.deprecated) &&
-                        Objects.equals(help, other.help) &&
-                        Objects.equals(key, other.key) &&
-                        Objects.equals(kind, other.kind);
-    }
-
-    /**
-     * Creates a new option descriptor builder by key. The option group and name is inferred by the
-     * key.
-     *
-     * @since 1.0
-     */
-    public static <T> Builder newBuilder(OptionKey<T> key, String name) {
-        Objects.requireNonNull(key);
-        Objects.requireNonNull(name);
-        return EMPTY.new Builder(key, name);
-    }
-
-    private static final OptionDescriptor EMPTY = new OptionDescriptor(null, null, null, null, false);
-
-    /**
-     * Represents an option descriptor builder.
-     *
-     * @since 1.0
-     */
-    public final class Builder {
-
-        private final OptionKey<?> key;
-        private final String name;
-        private boolean deprecated;
-        private OptionCategory category;
-        private String help;
-
-        Builder(OptionKey<?> key, String name) {
-            this.key = key;
-            this.name = name;
-        }
-
-        /**
-         * Defines the user category for this option. The default value is
-         * {@link OptionCategory#DEBUG}.
-         *
-         * @since 1.0
-         */
-        public Builder category(@SuppressWarnings("hiding") OptionCategory category) {
-            Objects.requireNonNull(category);
-            this.category = category;
-            return this;
-        }
-
-        /**
-         * Defines if this option is deprecated. The default value for deprecated is
-         * <code>false</code>. This can be used to evolve options between releases.
-         *
-         * @since 1.0
-         */
-        public Builder deprecated(@SuppressWarnings("hiding") boolean deprecated) {
-            this.deprecated = deprecated;
-            return this;
-        }
-
-        /**
-         * Specifies a human-readable description on how to use the option.
-         *
-         * @since 1.0
-         */
-        public Builder help(@SuppressWarnings("hiding") String help) {
-            Objects.requireNonNull(help);
-            this.help = help;
-            return this;
-        }
-
-        /**
-         * Builds and returns a new option descriptor.
-         *
-         * @since 1.0
-         */
-        public OptionDescriptor build() {
-            return new OptionDescriptor(key, name, help == null ? "" : help, category == null ? OptionCategory.DEBUG : category, deprecated);
-        }
-
-    }
-
-}
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptors.java	Fri Feb 02 17:02:45 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.options;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-
-/**
- * An interface to a set of {@link OptionDescriptor}s.
- *
- * @since 1.0
- */
-public interface OptionDescriptors extends Iterable<OptionDescriptor> {
-
-    /**
-     * An empty set of option descriptors.
-     *
-     * @since 1.0
-     */
-    OptionDescriptors EMPTY = new OptionDescriptors() {
-
-        public Iterator<OptionDescriptor> iterator() {
-            return Collections.<OptionDescriptor> emptyList().iterator();
-        }
-
-        public OptionDescriptor get(String key) {
-            return null;
-        }
-    };
-
-    /**
-     * Gets the {@link OptionDescriptor} matching a given option name or {@code null} if this option
-     * descriptor set does not contain a matching option name.
-     *
-     * @since 1.0
-     */
-    OptionDescriptor get(String optionName);
-
-    /**
-     * Creates a union options descriptor out of multiple given descriptors. The operation
-     * descriptors are not checked for duplicate keys. The option descriptors are iterated in
-     * declaration order.
-     *
-     * @since 1.0
-     */
-    static OptionDescriptors createUnion(OptionDescriptors... descriptors) {
-        if (descriptors.length == 0) {
-            return EMPTY;
-        } else if (descriptors.length == 1) {
-            return descriptors[0];
-        } else {
-            return new UnionOptionDescriptors(descriptors);
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @since 1.0
-     */
-    @Override
-    Iterator<OptionDescriptor> iterator();
-
-    /**
-     * Creates an {@link OptionDescriptors} instance from a list. The option descriptors
-     * implementation is backed by a {@link LinkedHashMap} that preserves ordering.
-     *
-     * @since 1.0
-     */
-    static OptionDescriptors create(List<OptionDescriptor> descriptors) {
-        if (descriptors == null || descriptors.isEmpty()) {
-            return EMPTY;
-        }
-        return new OptionDescriptorsMap(descriptors);
-    }
-}
-
-class OptionDescriptorsMap implements OptionDescriptors {
-
-    final Map<String, OptionDescriptor> descriptors = new LinkedHashMap<>();
-
-    OptionDescriptorsMap(List<OptionDescriptor> descriptorList) {
-        for (OptionDescriptor descriptor : descriptorList) {
-            descriptors.put(descriptor.getName(), descriptor);
-        }
-    }
-
-    @Override
-    public OptionDescriptor get(String optionName) {
-        return descriptors.get(optionName);
-    }
-
-    @Override
-    public Iterator<OptionDescriptor> iterator() {
-        return descriptors.values().iterator();
-    }
-
-}
-
-final class UnionOptionDescriptors implements OptionDescriptors {
-
-    final OptionDescriptors[] descriptorsList;
-
-    UnionOptionDescriptors(OptionDescriptors[] descriptors) {
-        // defensive copy
-        this.descriptorsList = Arrays.copyOf(descriptors, descriptors.length);
-    }
-
-    public Iterator<OptionDescriptor> iterator() {
-        return new Iterator<OptionDescriptor>() {
-
-            Iterator<OptionDescriptor> descriptors = descriptorsList[0].iterator();
-            int descriptorsIndex = 0;
-            OptionDescriptor next = null;
-
-            public boolean hasNext() {
-                return fetchNext() != null;
-            }
-
-            private OptionDescriptor fetchNext() {
-                if (next != null) {
-                    return next;
-                }
-                if (descriptors.hasNext()) {
-                    next = descriptors.next();
-                    return next;
-                } else if (descriptorsIndex < descriptorsList.length - 1) {
-                    descriptorsIndex++;
-                    descriptors = descriptorsList[descriptorsIndex].iterator();
-                    return fetchNext();
-                } else {
-                    return null;
-                }
-            }
-
-            public OptionDescriptor next() {
-                OptionDescriptor fetchedNext = fetchNext();
-                if (fetchedNext != null) {
-                    // consume next
-                    this.next = null;
-                    return fetchedNext;
-                } else {
-                    throw new NoSuchElementException();
-                }
-            }
-        };
-    }
-
-    public OptionDescriptor get(String value) {
-        for (OptionDescriptors descriptors : descriptorsList) {
-            OptionDescriptor descriptor = descriptors.get(value);
-            if (descriptor != null) {
-                return descriptor;
-            }
-        }
-        return null;
-    }
-
-}
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionKey.java	Fri Feb 02 17:02:45 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.options;
-
-import java.util.Objects;
-
-/**
- * Represents the option key for an option specification.
- *
- * @since 1.0
- */
-public final class OptionKey<T> {
-
-    private final OptionType<T> type;
-    private final T defaultValue;
-
-    /**
-     * Constructs a new option key given a default value. Throws {@link IllegalArgumentException} if
-     * no default {@link OptionType} could be {@link OptionType#defaultType(Object) resolved} for
-     * the given type. The default value must not be <code>null</code>.
-     *
-     * @since 1.0
-     */
-    public OptionKey(T defaultValue) {
-        Objects.requireNonNull(defaultValue);
-        this.defaultValue = defaultValue;
-        this.type = OptionType.defaultType(defaultValue);
-        if (type == null) {
-            throw new IllegalArgumentException("No default type specified for type " + defaultValue.getClass().getName() + ". Specify the option type explicitly to resolve this.");
-        }
-    }
-
-    /**
-     * Constructs a new option key given a default value and option key.
-     *
-     * @since 1.0
-     */
-    public OptionKey(T defaultValue, OptionType<T> type) {
-        Objects.requireNonNull(type);
-        this.defaultValue = defaultValue;
-        this.type = type;
-    }
-
-    /**
-     * Returns the option type of this key.
-     *
-     * @since 1.0
-     */
-    public OptionType<T> getType() {
-        return type;
-    }
-
-    /**
-     * Returns the default value for this option.
-     *
-     * @since 1.0
-     */
-    public T getDefaultValue() {
-        return defaultValue;
-    }
-
-    /**
-     * Returns the value of this key given the {@link OptionValues values}.
-     *
-     * @since 1.0
-     */
-    public T getValue(OptionValues values) {
-        return values.get(this);
-    }
-
-    /**
-     * Returns <code>true</code> if a value for this key has been set for the given option values or
-     * <code>false</code> if no value has been set.
-     *
-     * @since 1.0
-     */
-    public boolean hasBeenSet(OptionValues values) {
-        return values.hasBeenSet(this);
-    }
-
-}
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionType.java	Fri Feb 02 17:02:45 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.options;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Consumer;
-import java.util.function.Function;
-
-/**
- * Represents a type of an option that allows to convert string values to Java values.
- *
- * @since 1.0
- */
-public final class OptionType<T> {
-
-    private final String name;
-    private final Function<String, T> stringConverter;
-    private final Consumer<T> validator;
-    private final T defaultValue;
-
-    /**
-     * Constructs a new option type with name, defaultValue, and function that allows to convert a
-     * string to the option type.
-     *
-     * @param name the name of the type.
-     * @param defaultValue the default value to use if no value is given.
-     * @param stringConverter a function that converts a string value to the option value. Can throw
-     *            {@link IllegalArgumentException} to indicate an invalid string.
-     * @param validator used for validating the option value. Throws
-     *            {@link IllegalArgumentException} if the value is invalid.
-     *
-     * @since 1.0
-     */
-    public OptionType(String name, T defaultValue, Function<String, T> stringConverter, Consumer<T> validator) {
-        Objects.requireNonNull(name);
-        Objects.requireNonNull(stringConverter);
-        Objects.requireNonNull(validator);
-        this.name = name;
-        this.stringConverter = stringConverter;
-        this.defaultValue = defaultValue;
-        this.validator = validator;
-    }
-
-    /**
-     * Constructs a new option type with name, defaultValue, and function that allows to convert a
-     * string to the option type.
-     *
-     * @param name the name of the type.
-     * @param defaultValue the default value to use if no value is given.
-     * @param stringConverter a function that converts a string value to the option value. Can throw
-     *            {@link IllegalArgumentException} to indicate an invalid string.
-     *
-     * @since 1.0
-     */
-    public OptionType(String name, T defaultValue, Function<String, T> stringConverter) {
-        this(name, defaultValue, stringConverter, new Consumer<T>() {
-            public void accept(T t) {
-            }
-        });
-    }
-
-    /**
-     * Returns the default value of this type. Used if no value is available.
-     *
-     * @since 1.0
-     */
-    public T getDefaultValue() {
-        return defaultValue;
-    }
-
-    /**
-     * Returns the name of this type.
-     *
-     * @since 1.0
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Converts a string value, validates it, and converts it to an object of this type.
-     *
-     * @throws IllegalArgumentException if the value is invalid or cannot be converted.
-     * @since 1.0
-     */
-    public T convert(String value) {
-        T v = stringConverter.apply(value);
-        validate(v);
-        return v;
-    }
-
-    /**
-     * Validates an option value and throws an {@link IllegalArgumentException} if the value is
-     * invalid.
-     *
-     * @throws IllegalArgumentException if the value is invalid or cannot be converted.
-     * @since 1.0
-     */
-    public void validate(T value) {
-        validator.accept(value);
-    }
-
-    /**
-     * @since 1.0
-     */
-    @Override
-    public String toString() {
-        return "OptionType[name=" + name + ", defaultValue=" + defaultValue + "]";
-    }
-
-    private static final Map<Class<?>, OptionType<?>> DEFAULTTYPES = new HashMap<>();
-    static {
-        DEFAULTTYPES.put(Boolean.class, new OptionType<>("Boolean", false, new Function<String, Boolean>() {
-            public Boolean apply(String t) {
-                if ("true".equals(t)) {
-                    return Boolean.TRUE;
-                } else if ("false".equals(t)) {
-                    return Boolean.FALSE;
-                } else {
-                    throw new IllegalArgumentException(String.format("Invalid boolean option value '%s'. The value of the option must be '%s' or '%s'.", t, "true", "false"));
-                }
-            }
-        }));
-        DEFAULTTYPES.put(Byte.class, new OptionType<>("Byte", (byte) 0, new Function<String, Byte>() {
-            public Byte apply(String t) {
-                try {
-                    return Byte.parseByte(t);
-                } catch (NumberFormatException e) {
-                    throw new IllegalArgumentException(e.getMessage(), e);
-                }
-            }
-        }));
-        DEFAULTTYPES.put(Integer.class, new OptionType<>("Integer", 0, new Function<String, Integer>() {
-            public Integer apply(String t) {
-                try {
-                    return Integer.parseInt(t);
-                } catch (NumberFormatException e) {
-                    throw new IllegalArgumentException(e.getMessage(), e);
-                }
-            }
-        }));
-        DEFAULTTYPES.put(Long.class, new OptionType<>("Long", 0L, new Function<String, Long>() {
-            public Long apply(String t) {
-                try {
-                    return Long.parseLong(t);
-                } catch (NumberFormatException e) {
-                    throw new IllegalArgumentException(e.getMessage(), e);
-                }
-            }
-        }));
-        DEFAULTTYPES.put(Float.class, new OptionType<>("Float", 0.0f, new Function<String, Float>() {
-            public Float apply(String t) {
-                try {
-                    return Float.parseFloat(t);
-                } catch (NumberFormatException e) {
-                    throw new IllegalArgumentException(e.getMessage(), e);
-                }
-            }
-        }));
-        DEFAULTTYPES.put(Double.class, new OptionType<>("Double", 0.0d, new Function<String, Double>() {
-            public Double apply(String t) {
-                try {
-                    return Double.parseDouble(t);
-                } catch (NumberFormatException e) {
-                    throw new IllegalArgumentException(e.getMessage(), e);
-                }
-            }
-        }));
-        DEFAULTTYPES.put(String.class, new OptionType<>("String", "0", new Function<String, String>() {
-            public String apply(String t) {
-                return t;
-            }
-        }));
-    }
-
-    /**
-     * Returns the default option type for a given value. Returns <code>null</code> if no default
-     * option type is available for the Java type of this value.
-     *
-     * @since 1.0
-     */
-    @SuppressWarnings("unchecked")
-    public static <T> OptionType<T> defaultType(T value) {
-        return defaultType((Class<T>) value.getClass());
-    }
-
-    /**
-     * Returns the default option type for a class. Returns <code>null</code> if no default option
-     * type is available for this Java type.
-     *
-     * @since 1.0
-     */
-    @SuppressWarnings("unchecked")
-    public static <T> OptionType<T> defaultType(Class<T> clazz) {
-        return (OptionType<T>) DEFAULTTYPES.get(clazz);
-    }
-
-}
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionValues.java	Fri Feb 02 17:02:45 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.options;
-
-/**
- * Represents a set of option values based on an {@link OptionDescriptor}.
- *
- * @since 1.0
- */
-public interface OptionValues {
-
-    /**
-     * Returns all available options.
-     *
-     * @since 1.0
-     */
-    OptionDescriptors getDescriptors();
-
-    /**
-     * Sets the value of {@code optionKey} to {@code value}.
-     *
-     * @throws IllegalArgumentException if the given value is not {@link OptionType#validate(Object)
-     *             validated} by the {@link OptionKey#getType() option type} of the key. Note that
-     *             the operation succeeds if the option key is not described by any of the
-     *             associated {@link #getDescriptors() descriptors}.
-     *
-     * @since 1.0
-     */
-    <T> void set(OptionKey<T> optionKey, T value);
-
-    /**
-     * Returns the value of a given option. If no value is set or the key is not described by any
-     * {@link #getDescriptors() descriptors} the {@link OptionType#getDefaultValue() default value}
-     * of the given key is returned.
-     *
-     * @since 1.0
-     */
-    <T> T get(OptionKey<T> optionKey);
-
-    /**
-     * Determines if a value for {@code optionKey} has been {@link #set} in this set of option
-     * values.
-     *
-     * @since 1.0
-     */
-    boolean hasBeenSet(OptionKey<?> optionKey);
-
-}
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/package-info.java	Fri Feb 02 17:02:45 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/**
- * The Graal-SDK options package contains reusable collection classes for options.
- *
- * @see org.graalvm.options.OptionDescriptor
- * @see org.graalvm.options.OptionValues
- *
- * @since 1.0
- */
-package org.graalvm.options;
\ No newline at end of file
--- a/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java	Fri Feb 02 09:04:45 2018 -0800
@@ -43,8 +43,6 @@
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
@@ -231,7 +229,8 @@
         try {
             List<String> remaining = optionsHelper.handleOptions(this, args);
             if (remaining.size() > 0 && !options.suggestProviders) {
-                throw taskHelper.newBadArgs("err.orphan.arguments", toString(remaining))
+                throw taskHelper.newBadArgs("err.orphan.arguments",
+                                            remaining.stream().collect(Collectors.joining(" ")))
                                 .showUsage(true);
             }
             if (options.help) {
@@ -659,9 +658,12 @@
         throws BadArgs
     {
         if (args.size() > 1) {
-            throw taskHelper.newBadArgs("err.orphan.argument",
-                                        toString(args.subList(1, args.size())))
-                            .showUsage(true);
+            List<String> arguments = args.get(0).startsWith("-")
+                                        ? args
+                                        : args.subList(1, args.size());
+            throw taskHelper.newBadArgs("err.invalid.arg.for.option",
+                                        "--suggest-providers",
+                                        arguments.stream().collect(Collectors.joining(" ")));
         }
 
         if (options.bindServices) {
@@ -714,7 +716,7 @@
                  .forEach(names::remove);
             if (!names.isEmpty()) {
                 log.println(taskHelper.getMessage("warn.provider.notfound",
-                                                  toString(names)));
+                    names.stream().sorted().collect(Collectors.joining(","))));
             }
 
             String msg = String.format("%n%s:", taskHelper.getMessage("suggested.providers.header"));
@@ -722,11 +724,6 @@
         }
     }
 
-    private static String toString(Collection<String> collection) {
-        return collection.stream().sorted()
-                         .collect(Collectors.joining(","));
-    }
-
     private String getSaveOpts() {
         StringBuilder sb = new StringBuilder();
         sb.append('#').append(new Date()).append("\n");
--- a/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink.properties	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink.properties	Fri Feb 02 09:04:45 2018 -0800
@@ -128,7 +128,7 @@
 err.unknown.option=unknown option: {0}
 err.missing.arg=no value given for {0}
 err.internal.error=internal error: {0} {1} {2}
-err.invalid.arg.for.option=invalid argument for option: {0}
+err.invalid.arg.for.option={0} does not accept \"{1}\" argument
 err.option.after.class=option must be specified before classes: {0}
 err.option.unsupported={0} not supported: {1}
 err.orphan.arguments=invalid argument: {0}
--- a/src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -129,16 +129,6 @@
         }
 
         @Override
-        public void error(DiagnosticPosition pos, String key, Object... args) {
-            die();
-        }
-
-        @Override
-        public void error(DiagnosticFlag flag, DiagnosticPosition pos, String key, Object... args) {
-            die();
-        }
-
-        @Override
         public void error(int pos, Error errorKey) {
             die();
         }
@@ -149,11 +139,6 @@
         }
 
         @Override
-        public void error(DiagnosticFlag flag, int pos, String key, Object... args) {
-            die();
-        }
-
-        @Override
         public void report(JCDiagnostic diagnostic) {
             // Ignore
         }
--- a/src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,8 @@
 import com.sun.tools.javac.parser.Tokens.Comment;
 import com.sun.tools.javac.parser.Tokens.Comment.CommentStyle;
 import com.sun.tools.javac.parser.Tokens.Token;
+import com.sun.tools.javac.resources.CompilerProperties;
+import com.sun.tools.javac.resources.CompilerProperties.Errors;
 import static com.sun.tools.javac.parser.Tokens.TokenKind.CLASS;
 import static com.sun.tools.javac.parser.Tokens.TokenKind.COLON;
 import static com.sun.tools.javac.parser.Tokens.TokenKind.ENUM;
@@ -244,11 +246,11 @@
                                     ? List.of(toP(F.at(pos).MethodDef(mods, name, t, typarams,
                                                             List.nil(), List.nil(), null, null)))
                                     : null;
-                            return List.<JCTree>of(syntaxError(token.pos, err, "expected", LPAREN));
+                            return List.<JCTree>of(syntaxError(token.pos, err, Errors.Expected(LPAREN)));
                         }
                     } else if (!typarams.isEmpty()) {
                         // type parameters on non-variable non-method -- error
-                        return List.<JCTree>of(syntaxError(token.pos, "illegal.start.of.type"));
+                        return List.<JCTree>of(syntaxError(token.pos, Errors.IllegalStartOfType));
                     } else {
                         // expression-statement or expression to evaluate
                         JCExpressionStatement expr = toP(F.at(pos).Exec(t));
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,7 +371,7 @@
             {"Africa/Nouakchott", GMT},
             {"Africa/Ouagadougou", GMT},
             {"Africa/Porto-Novo", WAT},
-            {"Africa/Sao_Tome", GMT},
+            {"Africa/Sao_Tome", WAT},
             {"Africa/Timbuktu", GMT},
             {"Africa/Tripoli", EET},
             {"Africa/Tunis", CET},
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -109,7 +109,9 @@
      */
     private Function<byte[],byte[]> createVersionedLinks(int version) {
         HashMap<IndexNode,byte[]> aliasMap = new HashMap<>();
-        getVersionMap(version, getInode(getBytes("/META-INF/versions"))).values()
+        IndexNode verdir = getInode(getBytes("/META-INF/versions"));
+        if (verdir != null) {
+            getVersionMap(version, verdir).values()
                 .forEach(versionNode -> {   // for each META-INF/versions/{n} directory
                     // put all the leaf inodes, i.e. entries, into the alias map
                     // possibly shadowing lower versioned entries
@@ -124,6 +126,7 @@
                         }
                     });
                 });
+        }
         return path -> aliasMap.get(IndexNode.keyOf(path));
     }
 
--- a/test/TestCommon.gmk	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/TestCommon.gmk	Fri Feb 02 09:04:45 2018 -0800
@@ -358,7 +358,7 @@
 endif
 
 # Concurrency based on min(cores / 2, 12) * CONCURRENCY_FACTOR
-CONCURRENCY := $(shell awk \
+CONCURRENCY := $(shell $(AWK) \
   'BEGIN { \
     c = $(NUM_CORES) / 2; \
     if (c > 12) c = 12; \
@@ -368,8 +368,10 @@
   }')
 JTREG_BASIC_OPTIONS += -concurrency:$(CONCURRENCY)
 
-# Make sure MaxRAMPercentage is high enough to not cause OOM or swapping since we may end up with a lot of JVM's
-JTREG_BASIC_OPTIONS += -vmoption:-XX:MaxRAMPercentage=$(shell expr 25 / $(CONCURRENCY))
+# Make sure MaxRAMPercentage is low enough to not cause OOM or swapping since
+# we may end up with a lot of JVM's
+MAX_RAM_PERCENTAGE := $(shell expr 25 / $(CONCURRENCY))
+JTREG_BASIC_OPTIONS += -vmoption:-XX:MaxRAMPercentage=$(MAX_RAM_PERCENTAGE)
 
 ifdef EXTRA_JTREG_OPTIONS
   JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/gtest/opto/test_mathexact.cpp	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "opto/mulnode.hpp"
+#include "opto/mathexactnode.hpp"
+#include "unittest.hpp"
+
+TEST_VM(opto, mathexact) {
+  ASSERT_FALSE(OverflowMulLNode::is_overflow(1, 1));
+  ASSERT_FALSE(OverflowMulLNode::is_overflow(1, min_jlong));
+  ASSERT_TRUE(OverflowMulLNode::is_overflow(-1, min_jlong));
+  ASSERT_FALSE(OverflowMulLNode::is_overflow(-1, max_jlong));
+  ASSERT_TRUE(OverflowMulLNode::is_overflow(max_jlong / 2 + 1, 2));
+  ASSERT_FALSE(OverflowMulLNode::is_overflow(min_jlong, 0));
+  ASSERT_FALSE(OverflowMulLNode::is_overflow(min_jlong + 1, -1));
+  ASSERT_TRUE(OverflowMulLNode::is_overflow(min_jlong + 1, 2));
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/intrinsics/mathexact/LongMulOverflowTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8191915
+ * @summary Regression test for multiplyExact intrinsic
+ * @library /test/lib /
+ * @modules java.base/jdk.internal.misc
+ *          java.management
+ *
+ * @run main/othervm -Xcomp -XX:-TieredCompilation compiler.intrinsics.mathexact.LongMulOverflowTest
+ */
+
+package compiler.intrinsics.mathexact;
+
+public class LongMulOverflowTest {
+    public static void main(String[] args) {
+        LongMulOverflowTest test = new LongMulOverflowTest();
+        for (int i = 0; i < 10; ++i) {
+            try {
+                test.runTest();
+                throw new RuntimeException("Error, runTest() did not overflow!");
+            } catch (ArithmeticException e) {
+                // success
+            }
+
+            try {
+                test.runTestOverflow();
+                throw new RuntimeException("Error, runTestOverflow() did not overflow!");
+            } catch (ArithmeticException e) {
+                // success
+            }
+        }
+    }
+
+    public void runTest() {
+        java.lang.Math.multiplyExact(Long.MIN_VALUE, 7);
+    }
+
+    public void runTestOverflow() {
+      java.lang.Math.multiplyExact((Long.MAX_VALUE / 2) + 1, 2);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/loopopts/TestStripMinedBackToBackIfs.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8196296
+ * @summary Bad graph when unrolled loop bounds conflicts with range checks
+ *
+ * @run main/othervm -XX:-BackgroundCompilation -XX:+IgnoreUnrecognizedVMOptions -XX:LoopUnrollLimit=0 TestStripMinedBackToBackIfs
+ *
+ */
+
+
+public class TestStripMinedBackToBackIfs {
+    public static void main(String[] args) {
+        for (int i = 0; i < 20_000; i++) {
+            test(100);
+        }
+    }
+
+    private static double test(int limit) {
+        double v = 1;
+        for (int i = 0; i < limit; i++) {
+            v = v * 4;
+            // We don't want this test to be merged with identical
+            // loop end test
+            if (i+1 < limit) {
+                v = v * 2;
+            }
+        }
+        return v;
+    }
+}
--- a/test/hotspot/jtreg/serviceability/dcmd/jvmti/DataDumpDcmdTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/dcmd/jvmti/DataDumpDcmdTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,11 @@
 import jdk.test.lib.dcmd.PidJcmdExecutor;
 import org.testng.annotations.Test;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 /*
  * @test
  * @bug 8054890
@@ -43,9 +48,19 @@
  */
 public class DataDumpDcmdTest {
     public void run(CommandExecutor executor) {
-        OutputAnalyzer output = executor.execute("JVMTI.data_dump");
+        OutputAnalyzer out = executor.execute("JVMTI.data_dump");
 
-        output.stderrShouldBeEmpty();
+        // stderr should be empty except for VM warnings.
+        if (!out.getStderr().isEmpty()) {
+            List<String> lines = Arrays.asList(out.getStderr().split("(\\r\\n|\\n|\\r)"));
+            Pattern p = Pattern.compile(".*VM warning.*");
+            for (String line : lines) {
+                Matcher m = p.matcher(line);
+                if (!m.matches()) {
+                    throw new RuntimeException("Stderr has output other than VM warnings");
+                }
+            }
+        }
     }
 
     @Test
--- a/test/hotspot/jtreg/serviceability/dcmd/jvmti/LoadAgentDcmdTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/dcmd/jvmti/LoadAgentDcmdTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,10 +22,14 @@
  */
 import java.io.*;
 import java.nio.file.*;
+import java.util.Arrays;
 import java.util.jar.Attributes;
 import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import jdk.test.lib.Platform;
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.dcmd.*;
@@ -97,6 +101,20 @@
         }
     }
 
+    static void checkWarningsOnly(OutputAnalyzer out) {
+        // stderr should be empty except for VM warnings.
+        if (!out.getStderr().isEmpty()) {
+            List<String> lines = Arrays.asList(out.getStderr().split("(\\r\\n|\\n|\\r)"));
+            Pattern p = Pattern.compile(".*VM warning.*");
+            for (String line : lines) {
+                Matcher m = p.matcher(line);
+                if (!m.matches()) {
+                    throw new RuntimeException("Stderr has output other than VM warnings");
+                }
+            }
+        }
+    }
+
     public void run(CommandExecutor executor)  {
         try{
 
@@ -108,22 +126,22 @@
             // Test 1: Native agent, no arguments
             output = executor.execute("JVMTI.agent_load " +
                                           libpath + " agent.jar");
-            output.stderrShouldBeEmpty();
+            checkWarningsOnly(output);
 
             // Test 2: Native agent, with arguments
             output = executor.execute("JVMTI.agent_load " +
                                           libpath + " \"agent.jar=foo=bar\"");
-            output.stderrShouldBeEmpty();
+            checkWarningsOnly(output);
 
             // Test 3: Java agent, no arguments
             output = executor.execute("JVMTI.agent_load " +
                                           "agent.jar");
-            output.stderrShouldBeEmpty();
+            checkWarningsOnly(output);
 
             // Test 4: Java agent, with arguments
             output = executor.execute("JVMTI.agent_load " +
                                           "\"agent.jar=foo=bar\"");
-            output.stderrShouldBeEmpty();
+            checkWarningsOnly(output);
 
         } catch (Exception e) {
             throw new RuntimeException(e);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/SortTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package transform.sort;
+
+import static jaxp.library.JAXPTestUtilities.getSystemProperty;
+import java.io.StringWriter;
+import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Templates;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+
+/*
+ * @test
+ * @bug 8193830
+ * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
+ * @run testng/othervm -DrunSecMngr=true transform.sort.SortTest
+ * @run testng/othervm transform.sort.SortTest
+ * @summary verify xsl:sort lang attribute
+ */
+@Listeners({jaxp.library.FilePolicy.class})
+public class SortTest {
+
+    static final String LAND_EN = "en";
+    static final String LAND_PL = "pl";
+    static final String LAND_RU = "ru";
+
+    String filepath;
+    String slash = "";
+
+    @BeforeClass
+    public void setUpClass() throws Exception {
+        String file1 = getClass().getResource("sort-alphabet-english.xml").getFile();
+        if (getSystemProperty("os.name").contains("Windows")) {
+            filepath = file1.substring(1, file1.lastIndexOf("/") + 1);
+            slash = "/";
+        } else {
+            filepath = file1.substring(0, file1.lastIndexOf("/") + 1);
+        }
+    }
+
+    /*
+     * DataProvider fields:
+     * lang, xml, xsl, gold file
+     */
+    @DataProvider(name = "parameters")
+    public Object[][] getParameters() {
+
+        return new Object[][]{
+            {LAND_EN, "sort-alphabet-english.xml", "sort-alphabet-english.xsl", "sort-alphabet-english.out"},
+            {LAND_PL, "sort-alphabet-polish.xml", "sort-alphabet-polish.xsl", "sort-alphabet-polish.out"},
+            {LAND_RU, "sort-alphabet-russian.xml", "sort-alphabet-russian.xsl", "sort-alphabet-russian.out"},};
+    }
+
+    @Test(dataProvider = "parameters")
+    public final void testTransform(String lang, String xml, String xsl, String gold)
+            throws Exception {
+
+        StringWriter sw = new StringWriter();
+        // Create transformer factory
+        TransformerFactory factory = TransformerFactory.newInstance();
+
+        // Use the factory to create a template containing the xsl file
+        Templates template = factory.newTemplates(new StreamSource(getClass().getResourceAsStream(xsl)));
+        // Use the template to create a transformer
+        Transformer xformer = template.newTransformer();
+        xformer.setParameter("lang", lang);
+        // Prepare the input and output files
+        Source source = new StreamSource(getClass().getResourceAsStream(xml));
+
+        /*
+             * The following may be used to produce gold files.
+             * Using however the original gold files, and compare without considering
+             * the format
+         */
+        //String output = getClass().getResource(gold).getPath();
+        //Result result = new StreamResult(new FileOutputStream(output));
+        // use the following to verify the output against the pre-generated one
+        Result result = new StreamResult(sw);
+
+        // Apply the xsl file to the source file and write the result to the
+        // output file
+        xformer.transform(source, result);
+
+        String out = sw.toString();
+
+        List<String> lines = Files.readAllLines(Paths.get(filepath + gold));
+        String[] resultLines = out.split("\n");
+        int i = 0;
+
+        // the purpose is to test sort, so ignore the format of the output
+        for (String line : lines) {
+            Assert.assertEquals(resultLines[i++].trim(), line.trim());
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-english.out	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?><root>
+<p>lang: en</p>
+<ul>
+<li>A</li>
+<li>C</li>
+<li>D</li>
+<li>E</li>
+<li>F</li>
+<li>G</li>
+<li>H</li>
+<li>I</li>
+<li>J</li>
+<li>K</li>
+<li>L</li>
+<li>M</li>
+<li>N</li>
+<li>O</li>
+<li>P</li>
+<li>Q</li>
+<li>R</li>
+<li>S</li>
+<li>T</li>
+<li>U</li>
+<li>V</li>
+<li>W</li>
+<li>X</li>
+<li>Y</li>
+<li>Z</li>
+</ul>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-english.xml	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+  <!--
+   * Licensed to the Apache Software Foundation (ASF) under one
+   * or more contributor license agreements. See the NOTICE file
+   * distributed with this work for additional information
+   * regarding copyright ownership. The ASF licenses this file
+   * to you under the Apache License, Version 2.0 (the  "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+  -->
+<alphabet language="en">
+  <character>A</character>
+  <character>E</character>
+  <character>C</character>
+  <character>D</character>
+  <character>F</character>
+  <character>G</character>
+  <character>H</character>
+  <character>I</character>
+  <character>J</character>
+  <character>K</character>
+  <character>L</character>
+  <character>M</character>
+  <character>N</character>
+  <character>Y</character>
+  <character>O</character>
+  <character>P</character>
+  <character>Q</character>
+  <character>U</character>
+  <character>R</character>
+  <character>S</character>
+  <character>V</character>
+  <character>W</character>
+  <character>T</character>
+  <character>X</character>
+  <character>Z</character>
+</alphabet>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-english.xsl	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+  <!--
+   * Licensed to the Apache Software Foundation (ASF) under one
+   * or more contributor license agreements. See the NOTICE file
+   * distributed with this work for additional information
+   * regarding copyright ownership. The ASF licenses this file
+   * to you under the Apache License, Version 2.0 (the  "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+  -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml" version="1.0" omit-xml-declaration="no" encoding="UTF-8" indent="yes" xml:space="preserve" />
+  <!-- <xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/strict.dtd" doctype-public="-//W3C//DTD HTML 
+    4.01//EN" version="4.0" encoding="UTF-8" indent="yes" xml:lang="$lang" omit-xml-declaration="no"/> -->
+  <xsl:param name="lang" />
+  <xsl:template match="alphabet">
+    <root>
+      <p>lang: <xsl:value-of select="$lang" /></p>
+      <ul>
+        <xsl:apply-templates select="character">
+          <xsl:sort select="." lang="{$lang}" order="ascending" />
+        </xsl:apply-templates>
+      </ul>
+    </root>
+  </xsl:template>
+  <xsl:template match="character">
+    <li>
+      <xsl:value-of select="text()" />
+    </li>
+  </xsl:template>
+</xsl:stylesheet>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-polish.out	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?><root>
+<p>lang: pl</p>
+<ul>
+<li>A</li>
+<li>Ą</li>
+<li>B</li>
+<li>C</li>
+<li>Ć</li>
+<li>D</li>
+<li>E</li>
+<li>Ę</li>
+<li>F</li>
+<li>G</li>
+<li>H</li>
+<li>I</li>
+<li>J</li>
+<li>K</li>
+<li>L</li>
+<li>Ł</li>
+<li>M</li>
+<li>N</li>
+<li>Ń</li>
+<li>O</li>
+<li>Ó</li>
+<li>P</li>
+<li>R</li>
+<li>S</li>
+<li>Ś</li>
+<li>T</li>
+<li>U</li>
+<li>W</li>
+<li>Y</li>
+<li>Z</li>
+<li>Ź</li>
+<li>Ż</li>
+</ul>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-polish.xml	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+  <!--
+   * Licensed to the Apache Software Foundation (ASF) under one
+   * or more contributor license agreements. See the NOTICE file
+   * distributed with this work for additional information
+   * regarding copyright ownership. The ASF licenses this file
+   * to you under the Apache License, Version 2.0 (the  "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+  -->
+<alphabet language="pl">
+  <character>A</character>
+  <character>Ż</character>
+  <character>B</character>
+  <character>C</character>
+  <character>Ć</character>
+  <character>D</character>
+  <character>Ł</character>
+  <character>E</character>
+  <character>Ę</character>
+  <character>F</character>
+  <character>G</character>
+  <character>H</character>
+  <character>I</character>
+  <character>J</character>
+  <character>K</character>
+  <character>L</character>
+  <character>Z</character>
+  <character>Ź</character>
+  <character>M</character>
+  <character>N</character>
+  <character>Ń</character>
+  <character>O</character>
+  <character>Ó</character>
+  <character>P</character>
+  <character>R</character>
+  <character>S</character>
+  <character>Ś</character>
+  <character>T</character>
+  <character>U</character>
+  <character>W</character>
+  <character>Ą</character>
+  <character>Y</character>
+</alphabet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-polish.xsl	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+  <!--
+   * Licensed to the Apache Software Foundation (ASF) under one
+   * or more contributor license agreements. See the NOTICE file
+   * distributed with this work for additional information
+   * regarding copyright ownership. The ASF licenses this file
+   * to you under the Apache License, Version 2.0 (the  "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+  -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml" version="1.0" omit-xml-declaration="no" encoding="UTF-8" indent="yes" xml:space="preserve" />
+  <!-- <xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/strict.dtd" doctype-public="-//W3C//DTD HTML 
+    4.01//EN" version="4.0" encoding="UTF-8" indent="yes" xml:lang="$lang" omit-xml-declaration="no"/> -->
+  <xsl:param name="lang" />
+  <xsl:template match="alphabet">
+    <root>
+      <p>lang: <xsl:value-of select="$lang" /></p>
+      <ul>
+        <xsl:apply-templates select="character">
+          <xsl:sort select="." lang="{$lang}" order="ascending" />
+        </xsl:apply-templates>
+      </ul>
+    </root>
+  </xsl:template>
+  <xsl:template match="character">
+    <li>
+      <xsl:value-of select="text()" />
+    </li>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-russian.out	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?><root>
+<p>lang: ru</p>
+<ul>
+<li>А</li>
+<li>Б</li>
+<li>В</li>
+<li>Г</li>
+<li>Д</li>
+<li>Е</li>
+<li>Ё</li>
+<li>Ж</li>
+<li>З</li>
+<li>И</li>
+<li>Й</li>
+<li>К</li>
+<li>Л</li>
+<li>М</li>
+<li>Н</li>
+<li>О</li>
+<li>П</li>
+<li>Р</li>
+<li>С</li>
+<li>Т</li>
+<li>У</li>
+<li>Ф</li>
+<li>Х</li>
+<li>Ц</li>
+<li>Ч</li>
+<li>Ш</li>
+<li>Щ</li>
+<li>Ъ</li>
+<li>Ы</li>
+<li>Ь</li>
+<li>Э</li>
+<li>Ю</li>
+<li>Я</li>
+</ul>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-russian.xml	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+  <!--
+   * Licensed to the Apache Software Foundation (ASF) under one
+   * or more contributor license agreements. See the NOTICE file
+   * distributed with this work for additional information
+   * regarding copyright ownership. The ASF licenses this file
+   * to you under the Apache License, Version 2.0 (the  "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+  -->
+<alphabet language="ru">
+  <character>А</character>
+  <character>Б</character>
+  <character>В</character>
+  <character>Г</character>
+  <character>Д</character>
+  <character>Е</character>
+  <character>Ё</character>
+  <character>Ж</character>
+  <character>З</character>
+  <character>Й</character>
+  <character>П</character>
+  <character>Я</character>
+  <character>К</character>
+  <character>Л</character>
+  <character>С</character>
+  <character>М</character>
+  <character>Н</character>
+  <character>О</character>
+  <character>Р</character>
+  <character>И</character>
+  <character>Т</character>
+  <character>Ф</character>
+  <character>Х</character>
+  <character>Ц</character>
+  <character>У</character>
+  <character>Ш</character>
+  <character>Щ</character>
+  <character>Ъ</character>
+  <character>Ы</character>
+  <character>Ч</character>
+  <character>Ь</character>
+  <character>Э</character>
+  <character>Ю</character>
+</alphabet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/sort/sort-alphabet-russian.xsl	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+  <!--
+   * Licensed to the Apache Software Foundation (ASF) under one
+   * or more contributor license agreements. See the NOTICE file
+   * distributed with this work for additional information
+   * regarding copyright ownership. The ASF licenses this file
+   * to you under the Apache License, Version 2.0 (the  "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+  -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml" version="1.0" omit-xml-declaration="no" encoding="UTF-8" indent="yes" xml:space="preserve" />
+  <!-- <xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/strict.dtd" doctype-public="-//W3C//DTD HTML 
+    4.01//EN" version="4.0" encoding="UTF-8" indent="yes" xml:lang="$lang" omit-xml-declaration="no"/> -->
+  <xsl:param name="lang" />
+  <xsl:template match="alphabet">
+    <root>
+      <p>lang: <xsl:value-of select="$lang" /></p>
+      <ul>
+        <xsl:apply-templates select="character">
+          <xsl:sort select="." lang="{$lang}" order="ascending" />
+        </xsl:apply-templates>
+      </ul>
+    </root>
+  </xsl:template>
+  <xsl:template match="character">
+    <li>
+      <xsl:value-of select="text()" />
+    </li>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- a/test/jdk/java/io/InputStream/NullInputStream.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/io/InputStream/NullInputStream.java	Fri Feb 02 09:04:45 2018 -0800
@@ -31,7 +31,7 @@
 
 /*
  * @test
- * @bug 4358774
+ * @bug 4358774 8139206
  * @run testng NullInputStream
  * @summary Check for expected behavior of InputStream.nullInputStream().
  */
@@ -107,7 +107,7 @@
     }
 
     @Test(groups = "open")
-    public static void testreadNBytes() {
+    public static void testReadNBytes() {
         try {
             assertEquals(0, openStream.readNBytes(new byte[1], 0, 1),
                 "readNBytes(byte[],int,int) != 0");
@@ -117,6 +117,26 @@
     }
 
     @Test(groups = "open")
+    public static void testReadNBytesWithLength() {
+        try {
+            assertEquals(0, openStream.readNBytes(-1).length,
+                "readNBytes(-1) != 0");
+            fail("Expected IllegalArgumentException not thrown");
+        } catch (IllegalArgumentException iae) {
+        } catch (IOException ioe) {
+            fail("Unexpected IOException");
+        }
+        try {
+            assertEquals(0, openStream.readNBytes(0).length,
+                "readNBytes(0, false) != 0");
+            assertEquals(0, openStream.readNBytes(1).length,
+                "readNBytes(1, false) != 0");
+        } catch (IOException ioe) {
+            fail("Unexpected IOException");
+        }
+    }
+
+    @Test(groups = "open")
     public static void testSkip() {
         try {
             assertEquals(0, openStream.skip(1), "skip() != 0");
@@ -181,6 +201,15 @@
     }
 
     @Test(groups = "closed")
+    public static void testReadNBytesWithLengthClosed() {
+        try {
+            closedStream.readNBytes(1);
+            fail("Expected IOException not thrown");
+        } catch (IOException e) {
+        }
+    }
+
+    @Test(groups = "closed")
     public static void testSkipClosed() {
         try {
             closedStream.skip(1);
--- a/test/jdk/java/io/InputStream/ReadNBytes.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/io/InputStream/ReadNBytes.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
 
 /*
  * @test
- * @bug 8080835
+ * @bug 8080835 8139206
  * @library /test/lib
  * @build jdk.test.lib.RandomFactory
  * @run main ReadNBytes
@@ -46,15 +46,19 @@
     public static void main(String[] args) throws IOException {
         test(new byte[]{1, 2, 3});
         test(createRandomBytes(1024));
-        test(createRandomBytes((1 << 13) - 1));
-        test(createRandomBytes((1 << 13)));
-        test(createRandomBytes((1 << 13) + 1));
-        test(createRandomBytes((1 << 15) - 1));
-        test(createRandomBytes((1 << 15)));
-        test(createRandomBytes((1 << 15) + 1));
-        test(createRandomBytes((1 << 17) - 1));
-        test(createRandomBytes((1 << 17)));
-        test(createRandomBytes((1 << 17) + 1));
+        for (int shift : new int[] {13, 15, 17}) {
+            for (int offset : new int[] {-1, 0, 1}) {
+                test(createRandomBytes((1 << shift) + offset));
+            }
+        }
+
+        test(-1);
+        test(0);
+        for (int shift : new int[] {13, 15, 17}) {
+            for (int offset : new int[] {-1, 0, 1}) {
+                test((1 << shift) + offset);
+            }
+        }
     }
 
     static void test(byte[] inputBytes) throws IOException {
@@ -91,6 +95,46 @@
         check(!in.isClosed(), "Stream unexpectedly closed");
     }
 
+    static void test(int max) throws IOException {
+        byte[] inputBytes = max <= 0 ? new byte[0] : createRandomBytes(max);
+        WrapperInputStream in =
+            new WrapperInputStream(new ByteArrayInputStream(inputBytes));
+
+        if (max < 0) {
+            try {
+                in.readNBytes(max);
+                check(false, "Expected IllegalArgumentException not thrown");
+            } catch (IllegalArgumentException iae) {
+                return;
+            }
+        } else if (max == 0) {
+            int x;
+            check((x = in.readNBytes(max).length) == 0,
+                  "Expected zero bytes, got " + x);
+            return;
+        }
+
+        int off = Math.toIntExact(in.skip(generator.nextInt(max/2)));
+        int len = generator.nextInt(max - 1 - off);
+        byte[] readBytes = in.readNBytes(len);
+        check(readBytes.length == len,
+              "Expected " + len + " bytes, got " + readBytes.length);
+        check(Arrays.equals(inputBytes, off, off + len, readBytes, 0, len),
+              "Expected[" + Arrays.copyOfRange(inputBytes, off, off + len) +
+              "], got:[" + readBytes + "]");
+
+        int remaining = max - (off + len);
+        readBytes = in.readNBytes(remaining);
+        check(readBytes.length == remaining,
+              "Expected " + remaining + "bytes, got " + readBytes.length);
+        check(Arrays.equals(inputBytes, off + len, max,
+              readBytes, 0, remaining),
+          "Expected[" + Arrays.copyOfRange(inputBytes, off + len, max) +
+          "], got:[" + readBytes + "]");
+
+        check(!in.isClosed(), "Stream unexpectedly closed");
+    }
+
     static byte[] createRandomBytes(int size) {
         byte[] bytes = new byte[size];
         generator.nextBytes(bytes);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsChar.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsChar.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,6 +139,9 @@
                                 "read write", bav, vh, h -> testArrayReadWrite(bas, h),
                                 true));
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null array", bav, vh, h -> testArrayNPE(bas, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bas, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -163,6 +166,9 @@
                         }
 
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null buffer", bav, vh, h -> testArrayNPE(bbs, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bbs, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -192,6 +198,88 @@
     }
 
 
+    static void testArrayNPE(ByteArraySource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        byte[] array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            char x = (char) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            char x = (char) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            char x = (char) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            char x = (char) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+
+
+    }
+
+    static void testArrayNPE(ByteBufferSource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        ByteBuffer array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            char x = (char) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            char x = (char) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            char x = (char) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            char x = (char) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+
+
+    }
+
     static void testArrayUnsupported(ByteArraySource bs, VarHandleSource vhs) {
         VarHandle vh = vhs.s;
         byte[] array = bs.s;
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsDouble.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsDouble.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,6 +139,9 @@
                                 "read write", bav, vh, h -> testArrayReadWrite(bas, h),
                                 true));
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null array", bav, vh, h -> testArrayNPE(bas, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bas, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -163,6 +166,9 @@
                         }
 
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null buffer", bav, vh, h -> testArrayNPE(bbs, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bbs, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -192,6 +198,174 @@
     }
 
 
+    static void testArrayNPE(ByteArraySource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        byte[] array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            double x = (double) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double x = (double) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            double x = (double) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            double x = (double) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            double r = (double) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double r = (double) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double r = (double) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            double o = (double) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double o = (double) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double o = (double) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+
+    }
+
+    static void testArrayNPE(ByteBufferSource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        ByteBuffer array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            double x = (double) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double x = (double) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            double x = (double) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            double x = (double) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            double r = (double) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double r = (double) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double r = (double) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            double o = (double) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double o = (double) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            double o = (double) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+
+    }
+
     static void testArrayUnsupported(ByteArraySource bs, VarHandleSource vhs) {
         VarHandle vh = vhs.s;
         byte[] array = bs.s;
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsFloat.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsFloat.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,6 +139,9 @@
                                 "read write", bav, vh, h -> testArrayReadWrite(bas, h),
                                 true));
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null array", bav, vh, h -> testArrayNPE(bas, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bas, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -163,6 +166,9 @@
                         }
 
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null buffer", bav, vh, h -> testArrayNPE(bbs, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bbs, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -192,6 +198,174 @@
     }
 
 
+    static void testArrayNPE(ByteArraySource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        byte[] array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            float x = (float) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float x = (float) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            float x = (float) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            float x = (float) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            float r = (float) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float r = (float) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float r = (float) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            float o = (float) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float o = (float) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float o = (float) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+
+    }
+
+    static void testArrayNPE(ByteBufferSource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        ByteBuffer array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            float x = (float) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float x = (float) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            float x = (float) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            float x = (float) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            float r = (float) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float r = (float) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float r = (float) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            float o = (float) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float o = (float) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            float o = (float) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+
+    }
+
     static void testArrayUnsupported(ByteArraySource bs, VarHandleSource vhs) {
         VarHandle vh = vhs.s;
         byte[] array = bs.s;
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsInt.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsInt.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,6 +139,9 @@
                                 "read write", bav, vh, h -> testArrayReadWrite(bas, h),
                                 true));
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null array", bav, vh, h -> testArrayNPE(bas, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bas, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -163,6 +166,9 @@
                         }
 
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null buffer", bav, vh, h -> testArrayNPE(bbs, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bbs, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -192,6 +198,266 @@
     }
 
 
+    static void testArrayNPE(ByteArraySource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        byte[] array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            int x = (int) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int x = (int) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            int x = (int) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            int x = (int) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            int r = (int) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int r = (int) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int r = (int) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndAdd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndAddAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndAddRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseOr(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseAnd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseXor(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
+        });
+    }
+
+    static void testArrayNPE(ByteBufferSource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        ByteBuffer array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            int x = (int) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int x = (int) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            int x = (int) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            int x = (int) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            int r = (int) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int r = (int) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int r = (int) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndAdd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndAddAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndAddRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseOr(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseAnd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseXor(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            int o = (int) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
+        });
+    }
+
     static void testArrayUnsupported(ByteArraySource bs, VarHandleSource vhs) {
         VarHandle vh = vhs.s;
         byte[] array = bs.s;
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsLong.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsLong.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,6 +139,9 @@
                                 "read write", bav, vh, h -> testArrayReadWrite(bas, h),
                                 true));
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null array", bav, vh, h -> testArrayNPE(bas, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bas, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -163,6 +166,9 @@
                         }
 
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null buffer", bav, vh, h -> testArrayNPE(bbs, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bbs, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -192,6 +198,266 @@
     }
 
 
+    static void testArrayNPE(ByteArraySource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        byte[] array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            long x = (long) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long x = (long) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            long x = (long) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            long x = (long) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            long r = (long) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long r = (long) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long r = (long) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndAdd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndAddAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndAddRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseOr(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseAnd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseXor(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
+        });
+    }
+
+    static void testArrayNPE(ByteBufferSource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        ByteBuffer array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            long x = (long) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long x = (long) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            long x = (long) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            long x = (long) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            long r = (long) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long r = (long) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long r = (long) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndAdd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndAddAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndAddRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseOr(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseAnd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseXor(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            long o = (long) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
+        });
+    }
+
     static void testArrayUnsupported(ByteArraySource bs, VarHandleSource vhs) {
         VarHandle vh = vhs.s;
         byte[] array = bs.s;
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsShort.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsShort.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,6 +139,9 @@
                                 "read write", bav, vh, h -> testArrayReadWrite(bas, h),
                                 true));
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null array", bav, vh, h -> testArrayNPE(bas, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bas, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -163,6 +166,9 @@
                         }
 
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null buffer", bav, vh, h -> testArrayNPE(bbs, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bbs, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -192,6 +198,88 @@
     }
 
 
+    static void testArrayNPE(ByteArraySource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        byte[] array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            short x = (short) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            short x = (short) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            short x = (short) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            short x = (short) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+
+
+    }
+
+    static void testArrayNPE(ByteBufferSource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        ByteBuffer array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            short x = (short) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            short x = (short) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            short x = (short) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            short x = (short) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+
+
+    }
+
     static void testArrayUnsupported(ByteArraySource bs, VarHandleSource vhs) {
         VarHandle vh = vhs.s;
         byte[] array = bs.s;
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeBoolean.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeBoolean.java	Fri Feb 02 09:04:45 2018 -0800
@@ -2906,4 +2906,3 @@
         }
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeByte.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeByte.java	Fri Feb 02 09:04:45 2018 -0800
@@ -3252,4 +3252,3 @@
         }
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeChar.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeChar.java	Fri Feb 02 09:04:45 2018 -0800
@@ -3252,4 +3252,3 @@
         }
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeDouble.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeDouble.java	Fri Feb 02 09:04:45 2018 -0800
@@ -2400,4 +2400,3 @@
 
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeFloat.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeFloat.java	Fri Feb 02 09:04:45 2018 -0800
@@ -2400,4 +2400,3 @@
 
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeInt.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeInt.java	Fri Feb 02 09:04:45 2018 -0800
@@ -3252,4 +3252,3 @@
         }
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeLong.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeLong.java	Fri Feb 02 09:04:45 2018 -0800
@@ -3252,4 +3252,3 @@
         }
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeShort.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeShort.java	Fri Feb 02 09:04:45 2018 -0800
@@ -3252,4 +3252,3 @@
         }
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeString.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodTypeString.java	Fri Feb 02 09:04:45 2018 -0800
@@ -2054,4 +2054,3 @@
 
     }
 }
-
--- a/test/jdk/java/lang/invoke/VarHandles/X-VarHandleTestByteArrayView.java.template	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/X-VarHandleTestByteArrayView.java.template	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -171,6 +171,9 @@
                                 "read write", bav, vh, h -> testArrayReadWrite(bas, h),
                                 true));
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null array", bav, vh, h -> testArrayNPE(bas, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bas, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -195,6 +198,9 @@
                         }
 
                         cases.add(new VarHandleSourceAccessTestCase(
+                                "null buffer", bav, vh, h -> testArrayNPE(bbs, h),
+                                false));
+                        cases.add(new VarHandleSourceAccessTestCase(
                                 "unsupported", bav, vh, h -> testArrayUnsupported(bbs, h),
                                 false));
                         cases.add(new VarHandleSourceAccessTestCase(
@@ -224,6 +230,278 @@
     }
 
 
+    static void testArrayNPE(ByteArraySource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        byte[] array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+#if[CAS]
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            $type$ r = ($type$) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ r = ($type$) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ r = ($type$) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+#end[CAS]
+
+#if[AtomicAdd]
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndAdd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndAddAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndAddRelease(array, ci, VALUE_1);
+        });
+#end[AtomicAdd]
+
+#if[Bitwise]
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseOr(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseAnd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseXor(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
+        });
+#end[Bitwise]
+    }
+
+    static void testArrayNPE(ByteBufferSource bs, VarHandleSource vhs) {
+        VarHandle vh = vhs.s;
+        ByteBuffer array = null;
+        int ci = 1;
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.get(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.set(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.getVolatile(array, ci);
+        });
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.getAcquire(array, ci);
+        });
+
+        checkNPE(() -> {
+            $type$ x = ($type$) vh.getOpaque(array, ci);
+        });
+
+        checkNPE(() -> {
+            vh.setVolatile(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            vh.setOpaque(array, ci, VALUE_1);
+        });
+
+#if[CAS]
+        checkNPE(() -> {
+            boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            $type$ r = ($type$) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ r = ($type$) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ r = ($type$) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndSet(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndSetAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndSetRelease(array, ci, VALUE_1);
+        });
+#end[CAS]
+
+#if[AtomicAdd]
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndAdd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndAddAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndAddRelease(array, ci, VALUE_1);
+        });
+#end[AtomicAdd]
+
+#if[Bitwise]
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseOr(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseAnd(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseXor(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
+        });
+
+        checkNPE(() -> {
+            $type$ o = ($type$) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
+        });
+#end[Bitwise]
+    }
+
     static void testArrayUnsupported(ByteArraySource bs, VarHandleSource vhs) {
         VarHandle vh = vhs.s;
         byte[] array = bs.s;
--- a/test/jdk/java/lang/invoke/VarHandles/generate-vh-tests.sh	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/lang/invoke/VarHandles/generate-vh-tests.sh	Fri Feb 02 09:04:45 2018 -0800
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-javac -d . ../../../../../make/src/classes/build/tools/spp/Spp.java
+javac -d . ../../../../../../make/jdk/src/classes/build/tools/spp/Spp.java
 
 SPP=build.tools.spp.Spp
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/ConcurrentResponses.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,377 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8195823
+ * @summary Buffers given to response body subscribers should not contain
+ *          unprocessed HTTP data
+ * @modules java.base/sun.net.www.http
+ *          jdk.incubator.httpclient/jdk.incubator.http.internal.common
+ *          jdk.incubator.httpclient/jdk.incubator.http.internal.frame
+ *          jdk.incubator.httpclient/jdk.incubator.http.internal.hpack
+ *          java.logging
+ *          jdk.httpserver
+ * @library /lib/testlibrary http2/server
+ * @build Http2TestServer
+ * @build jdk.testlibrary.SimpleSSLContext
+ * @run testng/othervm -Djdk.internal.httpclient.debug=true ConcurrentResponses
+ */
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetSocketAddress;
+import java.net.URI;
+import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionStage;
+import java.util.concurrent.Flow;
+import java.util.stream.IntStream;
+import javax.net.ssl.SSLContext;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpServer;
+import com.sun.net.httpserver.HttpsConfigurator;
+import com.sun.net.httpserver.HttpsServer;
+import jdk.incubator.http.HttpClient;
+import jdk.incubator.http.HttpRequest;
+import jdk.incubator.http.HttpResponse;
+import jdk.incubator.http.HttpResponse.BodyHandler;
+import jdk.incubator.http.HttpResponse.BodySubscriber;
+import jdk.testlibrary.SimpleSSLContext;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static jdk.incubator.http.HttpResponse.BodyHandler.asString;
+import static jdk.incubator.http.HttpResponse.BodyHandler.discard;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.fail;
+
+public class ConcurrentResponses {
+
+    SSLContext sslContext;
+    HttpServer httpTestServer;         // HTTP/1.1    [ 4 servers ]
+    HttpsServer httpsTestServer;       // HTTPS/1.1
+    Http2TestServer http2TestServer;   // HTTP/2 ( h2c )
+    Http2TestServer https2TestServer;  // HTTP/2 ( h2  )
+    String httpFixedURI, httpsFixedURI, httpChunkedURI, httpsChunkedURI;
+    String http2FixedURI, https2FixedURI, http2VariableURI, https2VariableURI;
+
+    static final int CONCURRENT_REQUESTS = 13;
+
+    static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+    static final int ALPHABET_LENGTH = ALPHABET.length();
+
+    static final String stringOfLength(int requiredLength) {
+        StringBuilder sb = new StringBuilder(requiredLength);
+        IntStream.range(0, requiredLength)
+                 .mapToObj(i -> ALPHABET.charAt(i % ALPHABET_LENGTH))
+                 .forEach(c -> sb.append(c));
+        return sb.toString();
+    }
+
+    /** An array of different Strings, to be used as bodies. */
+    static final String[] BODIES = bodies();
+
+    static String[] bodies() {
+        String[] bodies = new String[CONCURRENT_REQUESTS];
+        for (int i=0;i<CONCURRENT_REQUESTS; i++) {
+            // slightly, but still, different bodies
+            bodies[i] = "Request-" + i + "-body-" + stringOfLength((1024) + i);
+        }
+        return bodies;
+    }
+
+    /**
+     * Asserts the given response's status code is 200.
+     * Returns a CF that completes with the given response.
+     */
+    static final <T> CompletionStage<HttpResponse<T>>
+    assert200ResponseCode(HttpResponse<T> response) {
+        assertEquals(response.statusCode(), 200);
+        return CompletableFuture.completedFuture(response);
+    }
+
+    /**
+     * Asserts that the given response's body is equal to the given body.
+     * Returns a CF that completes with the given response.
+     */
+    static final <T> CompletionStage<HttpResponse<T>>
+    assertbody(HttpResponse<T> response, T body) {
+        assertEquals(response.body(), body);
+        return CompletableFuture.completedFuture(response);
+    }
+
+    @DataProvider(name = "uris")
+    public Object[][] variants() {
+        return new Object[][]{
+                { httpFixedURI },
+                { httpsFixedURI },
+                { httpChunkedURI },
+                { httpsChunkedURI },
+                { http2FixedURI },
+                { https2FixedURI },
+                { http2VariableURI },
+                { https2VariableURI }
+        };
+    }
+
+
+    // The asString implementation accumulates data, below a certain threshold
+    // into the byte buffers it is given.
+    @Test(dataProvider = "uris")
+    void testAsString(String uri) throws Exception {
+        HttpClient client = HttpClient.newBuilder().sslContext(sslContext).build();
+
+        Map<HttpRequest, String> requests = new HashMap<>();
+        for (int i=0;i<CONCURRENT_REQUESTS; i++) {
+            HttpRequest request = HttpRequest.newBuilder(URI.create(uri + "?" + i))
+                                             .build();
+            requests.put(request, BODIES[i]);
+        }
+
+        // initial connection to seed the cache so next parallel connections reuse it
+        client.sendAsync(HttpRequest.newBuilder(URI.create(uri)).build(), discard(null)).join();
+
+        // will reuse connection cached from the previous request ( when HTTP/2 )
+        CompletableFuture.allOf(requests.keySet().parallelStream()
+                .map(request -> client.sendAsync(request, asString()))
+                .map(cf -> cf.thenCompose(ConcurrentResponses::assert200ResponseCode))
+                .map(cf -> cf.thenCompose(response -> assertbody(response, requests.get(response.request()))))
+                .toArray(CompletableFuture<?>[]::new))
+                .join();
+    }
+
+    // The custom subscriber aggressively attacks any area, between the limit
+    // and the capacity, in the byte buffers it is given, by writing 'X' into it.
+    @Test(dataProvider = "uris")
+    void testWithCustomSubscriber(String uri) throws Exception {
+        HttpClient client = HttpClient.newBuilder().sslContext(sslContext).build();
+
+        Map<HttpRequest, String> requests = new HashMap<>();
+        for (int i=0;i<CONCURRENT_REQUESTS; i++) {
+            HttpRequest request = HttpRequest.newBuilder(URI.create(uri + "?" + i))
+                    .build();
+            requests.put(request, BODIES[i]);
+        }
+
+        // initial connection to seed the cache so next parallel connections reuse it
+        client.sendAsync(HttpRequest.newBuilder(URI.create(uri)).build(), discard(null)).join();
+
+        // will reuse connection cached from the previous request ( when HTTP/2 )
+        CompletableFuture.allOf(requests.keySet().parallelStream()
+                .map(request -> client.sendAsync(request, CustomSubscriber.handler))
+                .map(cf -> cf.thenCompose(ConcurrentResponses::assert200ResponseCode))
+                .map(cf -> cf.thenCompose(response -> assertbody(response, requests.get(response.request()))))
+                .toArray(CompletableFuture<?>[]::new))
+                .join();
+    }
+
+    /**
+     * A subscriber that wraps asString, but mucks with any data between limit
+     * and capacity, if the client mistakenly passes it any that is should not.
+     */
+    static class CustomSubscriber implements BodySubscriber<String> {
+        static final BodyHandler<String> handler = (r,h) -> new CustomSubscriber();
+        private final BodySubscriber<String> asString = BodySubscriber.asString(UTF_8);
+
+        @Override
+        public CompletionStage<String> getBody() {
+            return asString.getBody();
+        }
+
+        @Override
+        public void onSubscribe(Flow.Subscription subscription) {
+            asString.onSubscribe(subscription);
+        }
+
+        @Override
+        public void onNext(List<ByteBuffer> buffers) {
+            // Muck any data beyond the give limit, since there shouldn't
+            // be any of interest to the HTTP Client.
+            for (ByteBuffer buffer : buffers) {
+                if (buffer.limit() != buffer.capacity()) {
+                    final int limit = buffer.limit();
+                    final int position = buffer.position();
+                    buffer.position(buffer.limit());
+                    buffer.limit(buffer.capacity());
+                    while (buffer.hasRemaining())
+                        buffer.put((byte)'X');
+                    buffer.position(position); // restore original position
+                    buffer.limit(limit);       // restore original limit
+                }
+            }
+            asString.onNext(buffers);
+        }
+
+        @Override
+        public void onError(Throwable throwable) {
+            asString.onError(throwable);
+            throwable.printStackTrace();
+            fail("UNEXPECTED:" + throwable);
+        }
+
+        @Override
+        public void onComplete() {
+            asString.onComplete();
+        }
+    }
+
+
+    @BeforeTest
+    public void setup() throws Exception {
+        sslContext = new SimpleSSLContext().get();
+        if (sslContext == null)
+            throw new AssertionError("Unexpected null sslContext");
+
+        InetSocketAddress sa = new InetSocketAddress("localhost", 0);
+        httpTestServer = HttpServer.create(sa, 0);
+        httpTestServer.createContext("/http1/fixed", new Http1FixedHandler());
+        httpFixedURI = "http://127.0.0.1:" + httpTestServer.getAddress().getPort() + "/http1/fixed";
+        httpTestServer.createContext("/http1/chunked", new Http1ChunkedHandler());
+        httpChunkedURI = "http://127.0.0.1:" + httpTestServer.getAddress().getPort() + "/http1/chunked";
+
+        httpsTestServer = HttpsServer.create(sa, 0);
+        httpsTestServer.setHttpsConfigurator(new HttpsConfigurator(sslContext));
+        httpsTestServer.createContext("/https1/fixed", new Http1FixedHandler());
+        httpsFixedURI = "https://127.0.0.1:" + httpsTestServer.getAddress().getPort() + "/https1/fixed";
+        httpsTestServer.createContext("/https1/chunked", new Http1ChunkedHandler());
+        httpsChunkedURI = "https://127.0.0.1:" + httpsTestServer.getAddress().getPort() + "/https1/chunked";
+
+        http2TestServer = new Http2TestServer("127.0.0.1", false, 0);
+        http2TestServer.addHandler(new Http2FixedHandler(), "/http2/fixed");
+        http2FixedURI = "http://127.0.0.1:" + http2TestServer.getAddress().getPort() + "/http2/fixed";
+        http2TestServer.addHandler(new Http2VariableHandler(), "/http2/variable");
+        http2VariableURI = "http://127.0.0.1:" + http2TestServer.getAddress().getPort() + "/http2/variable";
+
+        https2TestServer = new Http2TestServer("127.0.0.1", true, 0);
+        https2TestServer.addHandler(new Http2FixedHandler(), "/https2/fixed");
+        https2FixedURI = "https://127.0.0.1:" + https2TestServer.getAddress().getPort() + "/https2/fixed";
+        https2TestServer.addHandler(new Http2VariableHandler(), "/https2/variable");
+        https2VariableURI = "https://127.0.0.1:" + https2TestServer.getAddress().getPort() + "/https2/variable";
+
+        httpTestServer.start();
+        httpsTestServer.start();
+        http2TestServer.start();
+        https2TestServer.start();
+    }
+
+    @AfterTest
+    public void teardown() throws Exception {
+        httpTestServer.stop(0);
+        httpsTestServer.stop(0);
+        http2TestServer.stop();
+        https2TestServer.stop();
+    }
+
+    interface SendResponseHeadersFunction {
+        void apply(int responseCode, long responseLength) throws IOException;
+    }
+
+    // A handler implementation that replies with 200 OK. If the exchange's uri
+    // has a query, then it must be an integer, which is used as an index to
+    // select the particular response body, e.g. /http2/x?5 -> BODIES[5]
+    static void serverHandlerImpl(InputStream inputStream,
+                                  OutputStream outputStream,
+                                  URI uri,
+                                  SendResponseHeadersFunction sendResponseHeadersFunction)
+        throws IOException
+    {
+        try (InputStream is = inputStream;
+             OutputStream os = outputStream) {
+            is.readAllBytes();
+
+            String magicQuery = uri.getQuery();
+            if (magicQuery != null) {
+                int bodyIndex = Integer.valueOf(magicQuery);
+                String body = BODIES[bodyIndex];
+                byte[] bytes = body.getBytes(UTF_8);
+                sendResponseHeadersFunction.apply(200, bytes.length);
+                int offset = 0;
+                // Deliberately attempt to reply with several relatively
+                // small data frames ( each write corresponds to its own
+                // data frame ). Additionally, yield, to encourage other
+                // handlers to execute, therefore increasing the likelihood
+                // of multiple different-stream related frames in the
+                // client's read buffer.
+                while (offset < bytes.length) {
+                    int length = Math.min(bytes.length - offset, 64);
+                    os.write(bytes, offset, length);
+                    os.flush();
+                    offset += length;
+                    Thread.yield();
+                }
+            } else {
+                sendResponseHeadersFunction.apply(200, 1);
+                os.write('A');
+            }
+        }
+    }
+
+    static class Http1FixedHandler implements HttpHandler {
+        @Override
+        public void handle(HttpExchange t) throws IOException {
+            serverHandlerImpl(t.getRequestBody(),
+                              t.getResponseBody(),
+                              t.getRequestURI(),
+                              (rcode, length) -> t.sendResponseHeaders(rcode, length));
+        }
+    }
+
+    static class Http1ChunkedHandler implements HttpHandler {
+        @Override
+        public void handle(HttpExchange t) throws IOException {
+            serverHandlerImpl(t.getRequestBody(),
+                              t.getResponseBody(),
+                              t.getRequestURI(),
+                              (rcode, ignored) -> t.sendResponseHeaders(rcode, 0 /*chunked*/));
+        }
+    }
+
+    static class Http2FixedHandler implements Http2Handler {
+        @Override
+        public void handle(Http2TestExchange t) throws IOException {
+            serverHandlerImpl(t.getRequestBody(),
+                              t.getResponseBody(),
+                              t.getRequestURI(),
+                              (rcode, length) -> t.sendResponseHeaders(rcode, length));
+        }
+    }
+
+    static class Http2VariableHandler implements Http2Handler {
+        @Override
+        public void handle(Http2TestExchange t) throws IOException {
+            serverHandlerImpl(t.getRequestBody(),
+                              t.getResponseBody(),
+                              t.getRequestURI(),
+                              (rcode, ignored) -> t.sendResponseHeaders(rcode, 0 /* no Content-Length */));
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/whitebox/FramesDecoderTestDriver.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8195823
+ * @modules jdk.incubator.httpclient/jdk.incubator.http.internal.frame
+ * @run testng/othervm -Djdk.internal.httpclient.debug=true jdk.incubator.httpclient/jdk.incubator.http.internal.frame.FramesDecoderTest
+ */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/whitebox/jdk.incubator.httpclient/jdk/incubator/http/internal/frame/FramesDecoderTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.incubator.http.internal.frame;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import static java.lang.System.out;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.testng.Assert.*;
+
+public class FramesDecoderTest {
+
+    abstract class TestFrameProcessor implements FramesDecoder.FrameProcessor {
+        protected volatile int count;
+        public int numberOfFramesDecoded() { return count; }
+    }
+
+    /**
+     * Verifies that a ByteBuffer containing more that one frame, destined
+     * to be returned to the user's subscriber, i.e. a data frame, does not
+     * inadvertently expose the following frame ( between its limit and
+     * capacity ).
+     */
+    @Test
+    public void decodeDataFrameFollowedByAnother() throws Exception {
+        // input frames for to the decoder
+        List<ByteBuffer> data1 = List.of(ByteBuffer.wrap("XXXX".getBytes(UTF_8)));
+        DataFrame dataFrame1 = new DataFrame(1, 0, data1);
+        List<ByteBuffer> data2 = List.of(ByteBuffer.wrap("YYYY".getBytes(UTF_8)));
+        DataFrame dataFrame2 = new DataFrame(1, 0, data2);
+
+        List<ByteBuffer> buffers = new ArrayList<>();
+        FramesEncoder encoder = new FramesEncoder();
+        buffers.addAll(encoder.encodeFrame(dataFrame1));
+        buffers.addAll(encoder.encodeFrame(dataFrame2));
+
+        ByteBuffer combined = ByteBuffer.allocate(1024);
+        buffers.stream().forEach(combined::put);
+        combined.flip();
+
+        TestFrameProcessor testFrameProcessor = new TestFrameProcessor() {
+            @Override
+            public void processFrame(Http2Frame frame) throws IOException {
+                assertTrue(frame instanceof DataFrame);
+                DataFrame dataFrame = (DataFrame) frame;
+                List<ByteBuffer> list = dataFrame.getData();
+                assertEquals(list.size(), 1);
+                ByteBuffer data = list.get(0);
+                byte[] bytes = new byte[data.remaining()];
+                data.get(bytes);
+                if (count == 0) {
+                    assertEquals(new String(bytes, UTF_8), "XXXX");
+                    out.println("First data received:" + data);
+                    assertEquals(data.position(), data.limit());  // since bytes read
+                    assertEquals(data.limit(), data.capacity());
+                } else {
+                    assertEquals(new String(bytes, UTF_8), "YYYY");
+                    out.println("Second data received:" + data);
+                }
+                count++;
+            }
+        };
+        FramesDecoder decoder = new FramesDecoder(testFrameProcessor);
+
+        out.println("Sending " + combined + " to decoder: ");
+        decoder.decode(combined);
+        Assert.assertEquals(testFrameProcessor.numberOfFramesDecoded(), 2);
+    }
+
+
+    /**
+     * Verifies that a ByteBuffer containing ONLY data one frame, destined
+     * to be returned to the user's subscriber, does not restrict the capacity.
+     * The complete buffer ( all its capacity ), since no longer used by the
+     * HTTP Client, should be returned to the user.
+     */
+    @Test
+    public void decodeDataFrameEnsureNotCapped() throws Exception {
+        // input frames for to the decoder
+        List<ByteBuffer> data1 = List.of(ByteBuffer.wrap("XXXX".getBytes(UTF_8)));
+        DataFrame dataFrame1 = new DataFrame(1, 0, data1);
+
+        List<ByteBuffer> buffers = new ArrayList<>();
+        FramesEncoder encoder = new FramesEncoder();
+        buffers.addAll(encoder.encodeFrame(dataFrame1));
+
+        ByteBuffer combined = ByteBuffer.allocate(1024);
+        buffers.stream().forEach(combined::put);
+        combined.flip();
+
+        TestFrameProcessor testFrameProcessor = new TestFrameProcessor() {
+            @Override
+            public void processFrame(Http2Frame frame) throws IOException {
+                assertTrue(frame instanceof DataFrame);
+                DataFrame dataFrame = (DataFrame) frame;
+                List<ByteBuffer> list = dataFrame.getData();
+                assertEquals(list.size(), 1);
+                ByteBuffer data = list.get(0);
+                byte[] bytes = new byte[data.remaining()];
+                data.get(bytes);
+                assertEquals(new String(bytes, UTF_8), "XXXX");
+                out.println("First data received:" + data);
+                assertEquals(data.position(), data.limit());  // since bytes read
+                //assertNotEquals(data.limit(), data.capacity());
+                assertEquals(data.capacity(), 1024 - 9 /*frame header*/);
+                count++;
+            }
+        };
+        FramesDecoder decoder = new FramesDecoder(testFrameProcessor);
+
+        out.println("Sending " + combined + " to decoder: ");
+        decoder.decode(combined);
+        Assert.assertEquals(testFrameProcessor.numberOfFramesDecoded(), 1);
+    }
+}
--- a/test/jdk/java/security/KeyStore/ProbeKeystores.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/security/KeyStore/ProbeKeystores.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8044445
+ * @bug 8044445 8194307
  * @summary test new methods from JEP-229: Create PKCS12 Keystores by Default
  */
 
@@ -37,9 +37,26 @@
 public class ProbeKeystores {
     private static final char[] PASSWORD = "changeit".toCharArray();
     private static final char[] BAD_PASSWORD = "badpasword".toCharArray();
+    private static final LoadStoreParameter LOAD_STORE_PARAM =
+        new MyLoadStoreParameter(new PasswordProtection(PASSWORD));
+    private static final LoadStoreParameter BAD_LOAD_STORE_PARAM =
+        new MyLoadStoreParameter(new PasswordProtection(BAD_PASSWORD));
     private static final String DIR = System.getProperty("test.src", ".");
     private static final String CERT_FILE = "trusted.pem";
 
+    private static class MyLoadStoreParameter implements LoadStoreParameter {
+
+        private ProtectionParameter protection;
+
+        MyLoadStoreParameter(ProtectionParameter protection) {
+            this.protection = protection;
+        }
+
+        public ProtectionParameter getProtectionParameter() {
+            return protection;
+        }
+    }
+
     public static final void main(String[] args) throws Exception {
 
         // Testing empty keystores
@@ -173,6 +190,23 @@
         } catch (IOException e) {
             System.out.println("Failed to load a " + type + " keystore named '" + file + "' (as expected)");
         }
+
+        // Now try with the correct password within a LoadStoreParameter
+        ks = KeyStore.getInstance(new File(file), LOAD_STORE_PARAM);
+        if (!type.equalsIgnoreCase(ks.getType())) {
+            throw new Exception("ERROR: expected a " + type + " keystore, " +
+                "got a " + ks.getType() + " keystore instead");
+        } else {
+            System.out.println("Probed a " + type + " keystore named '" + file + "'");
+        }
+
+        // Next try with an incorrect password within a LoadStoreParameter
+        try {
+            ks = KeyStore.getInstance(new File(file), BAD_LOAD_STORE_PARAM);
+            throw new Exception("ERROR: expected an exception but got success");
+        } catch (IOException e) {
+            System.out.println("Failed to load a " + type + " keystore named '" + file + "' (as expected)");
+        }
     }
 
     // Instantiate a keystore by probing the supplied file for the keystore type
--- a/test/jdk/java/security/Provider/ProviderVersionCheck.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/security/Provider/ProviderVersionCheck.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
 
 /*
  * @test
- * @bug 8030823 8130696
+ * @bug 8030823 8130696 8196414
  * @run main/othervm ProviderVersionCheck
  * @summary Verify all providers in the default Providers list have the proper
  * version for the release
@@ -42,7 +42,8 @@
 
         for (Provider p: Security.getProviders()) {
             System.out.print(p.getName() + " ");
-            if (p.getVersion() != 10.0d) {
+            String specVersion = System.getProperty("java.specification.version");
+            if (p.getVersion() != Double.parseDouble(specVersion)) {
                 System.out.println("failed. " + "Version received was " +
                         p.getVersion());
                 failure = true;
--- a/test/jdk/java/time/test/java/time/format/ZoneName.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/time/test/java/time/format/ZoneName.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -194,7 +194,7 @@
         "Pacific/Rarotonga", "Cook", "Pacific/Rarotonga",
         "America/Louisville", "America_Eastern", "America/New_York",
         "Africa/El_Aaiun", "Europe_Western", "Atlantic/Canary",
-        "Africa/Sao_Tome", "GMT", "Atlantic/Reykjavik",
+        "Africa/Sao_Tome", "Africa_Western", "Africa/Lagos",
         "Pacific/Fiji", "Fiji", "Pacific/Fiji",
         "Asia/Damascus", "Europe_Eastern", "Europe/Bucharest",
         "Asia/Ulaanbaatar", "Mongolia", "Asia/Ulaanbaatar",
@@ -508,6 +508,7 @@
         "Africa_Central", "CD", "Africa/Lubumbashi",
         "Africa_Central", "BI", "Africa/Bujumbura",
         "Africa_Central", "RW", "Africa/Kigali",
+        "Africa_Western", "ST", "Africa/Sao_Tome",
         "Africa_Western", "CF", "Africa/Bangui",
         "Africa_Western", "AO", "Africa/Luanda",
         "Africa_Western", "NE", "Africa/Niamey",
@@ -549,7 +550,6 @@
         "GMT", "GN", "Africa/Conakry",
         "GMT", "SL", "Africa/Freetown",
         "GMT", "BF", "Africa/Ouagadougou",
-        "GMT", "ST", "Africa/Sao_Tome",
         "GMT", "SN", "Africa/Dakar",
         "GMT", "CI", "Africa/Abidjan",
         "GMT", "IE", "Europe/Dublin",
--- a/test/jdk/java/util/ArrayList/IteratorMicroBenchmark.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/util/ArrayList/IteratorMicroBenchmark.java	Fri Feb 02 09:04:45 2018 -0800
@@ -642,6 +642,24 @@
                         for (Object o : a)
                             sum[0] += (Integer) o;
                         check.sum(sum[0]);}}},
+            new Job("ArrayList subList .toArray()") {
+                public void work() throws Throwable {
+                    int[] sum = new int[1];
+                    for (int i = 0; i < iterations; i++) {
+                        sum[0] = 0;
+                        for (Object o : asSubList(al).toArray())
+                            sum[0] += (Integer) o;
+                        check.sum(sum[0]);}}},
+            new Job("ArrayList subList .toArray(a)") {
+                public void work() throws Throwable {
+                    Integer[] a = new Integer[size];
+                    int[] sum = new int[1];
+                    for (int i = 0; i < iterations; i++) {
+                        sum[0] = 0;
+                        asSubList(al).toArray(a);
+                        for (Object o : a)
+                            sum[0] += (Integer) o;
+                        check.sum(sum[0]);}}},
             new Job("ArrayDeque.toArray()") {
                 public void work() throws Throwable {
                     int[] sum = new int[1];
--- a/test/jdk/java/util/Base64/Base64GetEncoderTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/util/Base64/Base64GetEncoderTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -34,23 +34,23 @@
 
 /**
  * @test
- * @bug 8007799
+ * @bug 8007799 8176379
  * @summary test Encoder with linemax == 0, line separator should not appear in encoded data
  */
 
 public class Base64GetEncoderTest {
 
     public static void main(String args[]) throws Throwable {
-        final Base64.Encoder encoder = Base64.getMimeEncoder(0, "$$$".getBytes(US_ASCII));
 
-        testEncodeToString(encoder);
+        for (int maxlen = -4; maxlen < 4; maxlen++) {
+
+            final Base64.Encoder encoder = Base64.getMimeEncoder(maxlen, "$$$".getBytes(US_ASCII));
 
-        testWrapEncode1(encoder);
-
-        testEncodeToStringWithLongInputData(encoder);
-
-        testWrapEncode2(encoder);
-
+            testEncodeToString(encoder);
+            testWrapEncode1(encoder);
+            testEncodeToStringWithLongInputData(encoder);
+            testWrapEncode2(encoder);
+        }
     }
 
     private static void testWrapEncode2(final Base64.Encoder encoder)
--- a/test/jdk/java/util/Base64/TestBase64.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/util/Base64/TestBase64.java	Fri Feb 02 09:04:45 2018 -0800
@@ -24,7 +24,7 @@
 /**
  * @test
  * @bug 4235519 8004212 8005394 8007298 8006295 8006315 8006530 8007379 8008925
- *      8014217 8025003 8026330 8028397 8129544 8165243
+ *      8014217 8025003 8026330 8028397 8129544 8165243 8176379
  * @summary tests java.util.Base64
  * @library /test/lib
  * @build jdk.test.lib.RandomFactory
@@ -78,6 +78,21 @@
                  numRuns, numBytes);
         }
 
+        // test mime case with < 4 length
+        for (int len = 0; len < 4; len++) {
+            test(Base64.getMimeEncoder(len, nl_1),
+                 Base64.getMimeDecoder(),
+                 numRuns, numBytes);
+
+            test(Base64.getMimeEncoder(len, nl_2),
+                 Base64.getMimeDecoder(),
+                 numRuns, numBytes);
+
+            test(Base64.getMimeEncoder(len, nl_3),
+                 Base64.getMimeDecoder(),
+                 numRuns, numBytes);
+        }
+
         testNull(Base64.getEncoder());
         testNull(Base64.getUrlEncoder());
         testNull(Base64.getMimeEncoder());
--- a/test/jdk/java/util/Collection/IteratorMicroBenchmark.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/util/Collection/IteratorMicroBenchmark.java	Fri Feb 02 09:04:45 2018 -0800
@@ -28,7 +28,7 @@
  */
 
 import static java.util.stream.Collectors.summingInt;
-import static java.util.stream.Collectors.toList;
+import static java.util.stream.Collectors.toCollection;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayDeque;
@@ -46,6 +46,7 @@
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.ConcurrentLinkedDeque;
 import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.LinkedTransferQueue;
@@ -55,6 +56,7 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.LongAdder;
 import java.util.regex.Pattern;
+import java.util.stream.Stream;
 
 /**
  * Usage: [iterations=N] [size=N] [filter=REGEXP] [warmup=SECONDS]
@@ -79,7 +81,7 @@
     final int size;             // number of elements in collections
     final double warmupSeconds;
     final long warmupNanos;
-    final Pattern filter;       // select subset of Jobs to run
+    final Pattern nameFilter;   // select subset of Jobs to run
     final boolean reverse;      // reverse order of Jobs
     final boolean shuffle;      // randomize order of Jobs
 
@@ -87,7 +89,7 @@
         iterations    = intArg(args, "iterations", 10_000);
         size          = intArg(args, "size", 1000);
         warmupSeconds = doubleArg(args, "warmup", 7.0);
-        filter        = patternArg(args, "filter");
+        nameFilter    = patternArg(args, "filter");
         reverse       = booleanArg(args, "reverse");
         shuffle       = booleanArg(args, "shuffle");
 
@@ -204,13 +206,6 @@
         throw new IllegalArgumentException(val);
     }
 
-    private static List<Job> filter(Pattern filter, List<Job> jobs) {
-        return (filter == null) ? jobs
-            : jobs.stream()
-            .filter(job -> filter.matcher(job.name()).find())
-            .collect(toList());
-    }
-
     private static void deoptimize(int sum) {
         if (sum == 42)
             System.out.println("the answer");
@@ -249,7 +244,7 @@
     void run() throws Throwable {
 //         System.out.printf(
 //             "iterations=%d size=%d, warmup=%1g, filter=\"%s\"%n",
-//             iterations, size, warmupSeconds, filter);
+//             iterations, size, warmupSeconds, nameFilter);
 
         final ArrayList<Integer> al = new ArrayList<>(size);
 
@@ -268,34 +263,48 @@
             abq.add(abq.remove());
         }
 
-        ArrayList<Job> jobs = new ArrayList<>();
-
-        List.<Collection<Integer>>of(
-            al, ad, abq,
-            new LinkedList<>(al),
-            new PriorityQueue<>(al),
-            new Vector<>(al),
-            new ConcurrentLinkedQueue<>(al),
-            new ConcurrentLinkedDeque<>(al),
-            new LinkedBlockingQueue<>(al),
-            new LinkedBlockingDeque<>(al),
-            new LinkedTransferQueue<>(al),
-            new PriorityBlockingQueue<>(al)).forEach(
-                x -> {
-                    jobs.addAll(collectionJobs(x));
-                    if (x instanceof Deque)
-                        jobs.addAll(dequeJobs((Deque<Integer>)x));
-                });
+        ArrayList<Job> jobs = Stream.<Collection<Integer>>of(
+                al, ad, abq,
+                new LinkedList<>(al),
+                new PriorityQueue<>(al),
+                new Vector<>(al),
+                new CopyOnWriteArrayList<>(al),
+                new ConcurrentLinkedQueue<>(al),
+                new ConcurrentLinkedDeque<>(al),
+                new LinkedBlockingQueue<>(al),
+                new LinkedBlockingDeque<>(al),
+                new LinkedTransferQueue<>(al),
+                new PriorityBlockingQueue<>(al))
+            .flatMap(x -> jobs(x))
+            .filter(job ->
+                nameFilter == null || nameFilter.matcher(job.name()).find())
+            .collect(toCollection(ArrayList::new));
 
         if (reverse) Collections.reverse(jobs);
         if (shuffle) Collections.shuffle(jobs);
 
-        time(filter(filter, jobs));
+        time(jobs);
+    }
+
+    @SafeVarargs @SuppressWarnings("varargs")
+    private <T> Stream<T> concatStreams(Stream<T> ... streams) {
+        return Stream.of(streams).flatMap(s -> s);
     }
 
-    List<Job> collectionJobs(Collection<Integer> x) {
+    Stream<Job> jobs(Collection<Integer> x) {
+        return concatStreams(
+            collectionJobs(x),
+            (x instanceof Deque)
+            ? dequeJobs((Deque<Integer>)x)
+            : Stream.empty(),
+            (x instanceof List)
+            ? listJobs((List<Integer>)x)
+            : Stream.empty());
+    }
+
+    Stream<Job> collectionJobs(Collection<Integer> x) {
         String klazz = x.getClass().getSimpleName();
-        return List.of(
+        return Stream.of(
             new Job(klazz + " iterate for loop") {
                 public void work() throws Throwable {
                     for (int i = 0; i < iterations; i++) {
@@ -436,9 +445,9 @@
                         check.sum(sum[0]);}}});
     }
 
-    List<Job> dequeJobs(Deque<Integer> x) {
+    Stream<Job> dequeJobs(Deque<Integer> x) {
         String klazz = x.getClass().getSimpleName();
-        return List.of(
+        return Stream.of(
             new Job(klazz + " descendingIterator() loop") {
                 public void work() throws Throwable {
                     for (int i = 0; i < iterations; i++) {
@@ -455,4 +464,50 @@
                         x.descendingIterator().forEachRemaining(n -> sum[0] += n);
                         check.sum(sum[0]);}}});
     }
+
+    Stream<Job> listJobs(List<Integer> x) {
+        String klazz = x.getClass().getSimpleName();
+        return Stream.of(
+            new Job(klazz + " subList toArray()") {
+                public void work() throws Throwable {
+                    int size = x.size();
+                    for (int i = 0; i < iterations; i++) {
+                        int total = Stream.of(x.subList(0, size / 2),
+                                              x.subList(size / 2, size))
+                            .mapToInt(subList -> {
+                                int sum = 0;
+                                for (Object o : subList.toArray())
+                                    sum += (Integer) o;
+                                return sum; })
+                            .sum();
+                        check.sum(total);}}},
+            new Job(klazz + " subList toArray(a)") {
+                public void work() throws Throwable {
+                    int size = x.size();
+                    for (int i = 0; i < iterations; i++) {
+                        int total = Stream.of(x.subList(0, size / 2),
+                                              x.subList(size / 2, size))
+                            .mapToInt(subList -> {
+                                int sum = 0;
+                                Integer[] a = new Integer[subList.size()];
+                                for (Object o : subList.toArray(a))
+                                    sum += (Integer) o;
+                                return sum; })
+                            .sum();
+                        check.sum(total);}}},
+            new Job(klazz + " subList toArray(empty)") {
+                public void work() throws Throwable {
+                    int size = x.size();
+                    Integer[] empty = new Integer[0];
+                    for (int i = 0; i < iterations; i++) {
+                        int total = Stream.of(x.subList(0, size / 2),
+                                              x.subList(size / 2, size))
+                            .mapToInt(subList -> {
+                                int sum = 0;
+                                for (Object o : subList.toArray(empty))
+                                    sum += (Integer) o;
+                                return sum; })
+                            .sum();
+                        check.sum(total);}}});
+    }
 }
--- a/test/jdk/java/util/jar/JarFile/mrjar/MultiReleaseJarHttpProperties.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/util/jar/JarFile/mrjar/MultiReleaseJarHttpProperties.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8132734
+ * @bug 8132734 8194070
  * @summary Test the System properties for JarFile that support multi-release jar files
  * @library /lib/testlibrary/java/util/jar
  * @modules jdk.jartool
@@ -31,17 +31,14 @@
  *          jdk.httpserver
  * @build Compiler JarBuilder CreateMultiReleaseTestJars SimpleHttpServer
  * @run testng MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=0 MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=8 MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=9 MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=10 MultiReleaseJarHttpProperties
+ * @run testng/othervm -Djdk.util.jar.version=0   MultiReleaseJarHttpProperties
+ * @run testng/othervm -Djdk.util.jar.version=8   MultiReleaseJarHttpProperties
+ * @run testng/othervm -Djdk.util.jar.version=9   MultiReleaseJarHttpProperties
  * @run testng/othervm -Djdk.util.jar.version=100 MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=8 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=9 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=10 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=8 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=9 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarHttpProperties
- * @run testng/othervm -Djdk.util.jar.version=10 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarHttpProperties
+ * @run testng/othervm -Djdk.util.jar.version=8   -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarHttpProperties
+ * @run testng/othervm -Djdk.util.jar.version=9   -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarHttpProperties
+ * @run testng/othervm -Djdk.util.jar.version=8   -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarHttpProperties
+ * @run testng/othervm -Djdk.util.jar.version=9   -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarHttpProperties
  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarHttpProperties
  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarHttpProperties
  */
--- a/test/jdk/java/util/jar/JarFile/mrjar/MultiReleaseJarProperties.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/java/util/jar/JarFile/mrjar/MultiReleaseJarProperties.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,22 +23,19 @@
 
 /*
  * @test
- * @bug 8132734 8144062
+ * @bug 8132734 8144062 8194070
  * @summary Test the System properties for JarFile that support multi-release jar files
  * @library /lib/testlibrary/java/util/jar
  * @build Compiler JarBuilder CreateMultiReleaseTestJars
  * @run testng MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=0 MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=8 MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=9 MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=10 MultiReleaseJarProperties
+ * @run testng/othervm -Djdk.util.jar.version=0   MultiReleaseJarProperties
+ * @run testng/othervm -Djdk.util.jar.version=8   MultiReleaseJarProperties
+ * @run testng/othervm -Djdk.util.jar.version=9   MultiReleaseJarProperties
  * @run testng/othervm -Djdk.util.jar.version=100 MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=8 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=9 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=10 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=8 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=9 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
- * @run testng/othervm -Djdk.util.jar.version=10 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
+ * @run testng/othervm -Djdk.util.jar.version=8   -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
+ * @run testng/othervm -Djdk.util.jar.version=9   -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
+ * @run testng/othervm -Djdk.util.jar.version=8   -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
+ * @run testng/othervm -Djdk.util.jar.version=9   -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/ScriptEngineOrder.sh	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# @test
+# @bug 8011697
+# @summary test to check consistency in discovering and returning script engine 
+# by ScriptEngineManager
+#
+# @run shell ScriptEngineOrder.sh
+
+set -x
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+. ${TESTSRC}/CommonSetup.sh
+
+echo "Building dummy script engine modules.."
+#test to check the consistency in returning engines by ScriptEngineManager
+$JAVAC --limit-modules java.base,java.logging,java.scripting,jdk.scripting.dummyNashorn,jdk.scripting.dummyRhino,jdk.scripting.testEngines -d ${TESTCLASSES}/mods --module-source-path ${TESTSRC}/multiEngines $(find ${TESTSRC}/multiEngines -name *.java)
+
+echo "Running script engine test.."
+$JAVA --limit-modules java.base,java.logging,java.scripting,jdk.scripting.dummyNashorn,jdk.scripting.dummyRhino,jdk.scripting.testEngines --module-path ${TESTCLASSES}/mods --module jdk.scripting.testEngines/jdk.test.engines.ScriptEngineTest
+
+ret=$?
+if [ $ret -ne 0 ]
+then
+  exit $ret
+fi
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.dummyNashorn/jdk/dummyNashorn/api/scripting/DummyNashornJSEngine.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ *
+ *
+ * This is a dummyNashorn script engine implementation
+ */
+package jdk.dummyNashorn.api.scripting;
+import javax.script.*;
+import java.io.*;
+
+public class DummyNashornJSEngine extends AbstractScriptEngine {
+    public Object eval(String str, ScriptContext ctx) {
+        return eval(new StringReader(str), ctx);
+    }
+
+    public Object eval(Reader reader, ScriptContext ctx) {
+        System.out.println("eval done!");
+        return null;
+    }
+
+    public ScriptEngineFactory getFactory() {
+        return new DummyNashornJSEngineFactory();
+    }
+
+    public Bindings createBindings() {
+        return new SimpleBindings();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.dummyNashorn/jdk/dummyNashorn/api/scripting/DummyNashornJSEngineFactory.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ *
+ *
+ * This is script engine factory for dummyNashorn engine.
+ */
+package jdk.dummyNashorn.api.scripting;
+import javax.script.*;
+import java.util.*;
+
+public class DummyNashornJSEngineFactory implements ScriptEngineFactory {
+    public String getEngineName() {
+        return "dummyNashorn";
+    }
+
+    public String getEngineVersion() {
+        return "-1.0";
+    }
+
+    public List<String> getExtensions() {
+        return extensions;
+    }
+
+    public String getLanguageName() {
+        return "dummyNashorn";
+    }
+
+    public String getLanguageVersion() {
+        return "-1.0";
+    }
+
+    public String getMethodCallSyntax(String obj, String m, String... args) {
+        StringBuffer buf = new StringBuffer();
+        buf.append("call " + m + " ");
+        buf.append(" on " + obj + " with ");
+        for (int i = 0; i < args.length; i++) {
+            buf.append(args[i] + ", ");
+        }
+        buf.append(";");
+        return buf.toString();
+    }
+
+    public List<String> getMimeTypes() {
+        return mimeTypes;
+    }
+
+    public List<String> getNames() {
+        return names;
+    }
+
+    public String getOutputStatement(String str) {
+        return "output " + str;
+    }
+
+    public String getParameter(String key) {
+        if (key.equals(ScriptEngine.ENGINE)) {
+            return getEngineName();
+        } else if (key.equals(ScriptEngine.ENGINE_VERSION)) {
+            return getEngineVersion();
+        } else if (key.equals(ScriptEngine.NAME)) {
+            return getEngineName();
+        } else if (key.equals(ScriptEngine.LANGUAGE)) {
+            return getLanguageName();
+        } else if (key.equals(ScriptEngine.LANGUAGE_VERSION)) {
+            return getLanguageVersion();
+        } else {
+            return null;
+        }
+    }
+
+    public String getProgram(String... statements) {
+        StringBuffer buf = new StringBuffer();
+        for (int i = 0; i < statements.length; i++) {
+            buf.append(statements[i]);
+        }
+        return buf.toString();
+    }
+
+    public ScriptEngine getScriptEngine() {
+        return new DummyNashornJSEngine();
+    }
+
+    private static List<String> names;
+    private static List<String> extensions;
+    private static List<String> mimeTypes;
+    static {
+        names = new ArrayList<String>(1);
+        names.add("dummyNashorn");
+        names.add("js");
+        names = Collections.unmodifiableList(names);
+        extensions = names;
+        mimeTypes = new ArrayList<String>(0);
+        mimeTypes = Collections.unmodifiableList(mimeTypes);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.dummyNashorn/module-info.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+module jdk.scripting.dummyNashorn {
+    requires java.scripting;
+    exports jdk.dummyNashorn.api.scripting;
+        provides javax.script.ScriptEngineFactory with
+            jdk.dummyNashorn.api.scripting.DummyNashornJSEngineFactory;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.dummyRhino/jdk/dummyRhino/api/scripting/DummyRhinoJSEngine.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ *
+ *
+ * This is a dummyRhino script engine implementation
+ */
+package jdk.dummyRhino.api.scripting;
+import javax.script.*;
+import java.io.*;
+
+public class DummyRhinoJSEngine extends AbstractScriptEngine {
+    public Object eval(String str, ScriptContext ctx) {
+        return eval(new StringReader(str), ctx);
+    }
+
+    public Object eval(Reader reader, ScriptContext ctx) {
+        System.out.println("eval done!");
+        return null;
+    }
+
+    public ScriptEngineFactory getFactory() {
+        return new DummyRhinoJSEngineFactory();
+    }
+
+    public Bindings createBindings() {
+        return new SimpleBindings();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.dummyRhino/jdk/dummyRhino/api/scripting/DummyRhinoJSEngineFactory.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ *
+ *
+ * This is script engine factory for dummyRhino engine.
+ */
+package jdk.dummyRhino.api.scripting;
+import javax.script.*;
+import java.util.*;
+
+public class DummyRhinoJSEngineFactory implements ScriptEngineFactory {
+    public String getEngineName() {
+        return "dummyRhino";
+    }
+
+    public String getEngineVersion() {
+        return "-1.0";
+    }
+
+    public List<String> getExtensions() {
+        return extensions;
+    }
+
+    public String getLanguageName() {
+        return "dummyRhino";
+    }
+
+    public String getLanguageVersion() {
+        return "-1.0";
+    }
+
+    public String getMethodCallSyntax(String obj, String m, String... args) {
+        StringBuffer buf = new StringBuffer();
+        buf.append("call " + m + " ");
+        buf.append(" on " + obj + " with ");
+        for (int i = 0; i < args.length; i++) {
+            buf.append(args[i] + ", ");
+        }
+        buf.append(";");
+        return buf.toString();
+    }
+
+    public List<String> getMimeTypes() {
+        return mimeTypes;
+    }
+
+    public List<String> getNames() {
+        return names;
+    }
+
+    public String getOutputStatement(String str) {
+        return "output " + str;
+    }
+
+    public String getParameter(String key) {
+        if (key.equals(ScriptEngine.ENGINE)) {
+            return getEngineName();
+        } else if (key.equals(ScriptEngine.ENGINE_VERSION)) {
+            return getEngineVersion();
+        } else if (key.equals(ScriptEngine.NAME)) {
+            return getEngineName();
+        } else if (key.equals(ScriptEngine.LANGUAGE)) {
+            return getLanguageName();
+        } else if (key.equals(ScriptEngine.LANGUAGE_VERSION)) {
+            return getLanguageVersion();
+        } else {
+            return null;
+        }
+    }
+
+    public String getProgram(String... statements) {
+        StringBuffer buf = new StringBuffer();
+        for (int i = 0; i < statements.length; i++) {
+            buf.append(statements[i]);
+        }
+        return buf.toString();
+    }
+
+    public ScriptEngine getScriptEngine() {
+        return new DummyRhinoJSEngine();
+    }
+
+    private static List<String> names;
+    private static List<String> extensions;
+    private static List<String> mimeTypes;
+    static {
+        names = new ArrayList<String>(1);
+        names.add("dummyRhino");
+        names.add("js");
+        names = Collections.unmodifiableList(names);
+        extensions = names;
+        mimeTypes = new ArrayList<String>(0);
+        mimeTypes = Collections.unmodifiableList(mimeTypes);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.dummyRhino/module-info.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+module jdk.scripting.dummyRhino {
+    requires java.scripting;
+    exports jdk.dummyRhino.api.scripting;
+        provides javax.script.ScriptEngineFactory with
+            jdk.dummyRhino.api.scripting.DummyRhinoJSEngineFactory;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.testEngines/jdk/test/engines/ScriptEngineTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.test.engines;
+import javax.script.*;
+public class ScriptEngineTest {
+
+        public static void main(String[] args) throws Exception {
+            for (int i = 0; i < 100; i++) {
+                ScriptEngineManager manager = new ScriptEngineManager();
+                ScriptEngine scriptEngine = manager.getEngineByName("js");
+                if(!(scriptEngine.toString().contains("jdk.dummyNashorn.api.scripting.DummyNashornJSEngine")))
+                    throw new RuntimeException("Script EngineOrder is inconsistent");
+            }
+        }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/script/multiEngines/jdk.scripting.testEngines/module-info.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+module jdk.scripting.testEngines{
+    requires java.scripting;
+}
+
--- a/test/jdk/jdk/nio/zipfs/MultiReleaseJarTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/jdk/nio/zipfs/MultiReleaseJarTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8144355 8144062 8176709
+ * @bug 8144355 8144062 8176709 8194070 8193802
  * @summary Test aliasing additions to ZipFileSystem for multi-release jar files
  * @library /lib/testlibrary/java/util/jar
  * @build Compiler JarBuilder CreateMultiReleaseTestJars
@@ -92,9 +92,9 @@
                 {"0", 8},
                 {"8", 8},
                 {"9", 9},
-                {"10", 10},
-                {"11", 10},
-                {"50", 10}
+                {Integer.toString(MAJOR_VERSION), MAJOR_VERSION},
+                {Integer.toString(MAJOR_VERSION+1), MAJOR_VERSION},
+                {"50", MAJOR_VERSION}
         };
     }
 
@@ -105,9 +105,9 @@
                 {new Integer(0), 8},
                 {new Integer(8), 8},
                 {new Integer(9), 9},
-                {new Integer(10), 10},
-                {new Integer(11), 10},
-                {new Integer(100), 10}
+                {new Integer(MAJOR_VERSION), MAJOR_VERSION},
+                {new Integer(MAJOR_VERSION + 1), MAJOR_VERSION},
+                {new Integer(100), MAJOR_VERSION}
         };
     }
 
@@ -116,9 +116,8 @@
         return new Object[][] {
                 {Version.parse("8"),    8},
                 {Version.parse("9"),    9},
-                {Version.parse("10"),  10},
-                {Version.parse("11"),  10},
-                {Version.parse("100"), 10}
+                {Version.parse("11"),  MAJOR_VERSION},
+                {Version.parse("100"), MAJOR_VERSION}
         };
     }
 
@@ -168,8 +167,8 @@
 
     @Test
     public void testShortJar() throws Throwable {
-        integerEnv.put("multi-release", Integer.valueOf(10));
-        runTest(smruri, integerEnv, 10);
+        integerEnv.put("multi-release", Integer.valueOf(MAJOR_VERSION));
+        runTest(smruri, integerEnv, MAJOR_VERSION);
         integerEnv.put("multi-release", Integer.valueOf(9));
         runTest(smruri, integerEnv, 8);
     }
@@ -205,6 +204,21 @@
         //testCustomMultiReleaseValue("true\r\n true", false);
     }
 
+    @Test
+    public void testMultiReleaseJarWithNonVersionDir() throws Exception {
+        String jfname = "multi-release-non-ver.jar";
+        Path jfpath = Paths.get(jfname);
+        URI uri = new URI("jar", jfpath.toUri().toString() , null);
+        JarBuilder jb = new JarBuilder(jfname);
+        jb.addAttribute("Multi-Release", "true");
+        jb.build();
+        Map<String,String> env = Map.of("multi-release", "runtime");
+        try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {
+            Assert.assertTrue(true);
+        }
+        Files.delete(jfpath);
+    }
+
     private static final AtomicInteger JAR_COUNT = new AtomicInteger(0);
 
     private void testCustomMultiReleaseValue(String value, boolean expected)
--- a/test/jdk/lib/testlibrary/java/util/jar/CreateMultiReleaseTestJars.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/lib/testlibrary/java/util/jar/CreateMultiReleaseTestJars.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -69,13 +69,15 @@
             + "        return 9;\n"
             + "    }\n"
             + "}\n";
-    final private String java10 = java8.replace("8", "10");
+    final int currentVersion = Runtime.version().major();
+    final String currentVersionStr = Integer.toString(currentVersion);
+    final private String javaCurrent = java8.replace("8", currentVersionStr);
     final String readme8 = "This is the root readme file";
     final String readme9 = "This is the version nine readme file";
-    final String readme10 = "This is the version ten readme file";
+    final String readmeCurrent = "This is the current version readme file";
     private Map<String,byte[]> rootClasses;
     private Map<String,byte[]> version9Classes;
-    private Map<String,byte[]> version10Classes;
+    private Map<String,byte[]> versionCurrentClasses;
 
     public void buildUnversionedJar() throws IOException {
         JarBuilder jb = new JarBuilder("unversioned.jar");
@@ -134,9 +136,9 @@
         jb.addEntry("META-INF/versions/9/version/Version.java", java9.getBytes());
         jb.addEntry("META-INF/versions/9/version/PackagePrivate.java", ppjava9.getBytes());
         jb.addEntry("META-INF/versions/9/version/PackagePrivate.class", version9Classes.get("version.PackagePrivate"));
-        jb.addEntry("META-INF/versions/10/README", readme10.getBytes());
-        jb.addEntry("META-INF/versions/10/version/Version.java", java10.getBytes());
-        jb.addEntry("META-INF/versions/10/version/Version.class", version10Classes.get("version.Version"));
+        jb.addEntry("META-INF/versions/" + currentVersionStr + "/README", readmeCurrent.getBytes());
+        jb.addEntry("META-INF/versions/" + currentVersionStr + "/version/Version.java", javaCurrent.getBytes());
+        jb.addEntry("META-INF/versions/" + currentVersionStr + "/version/Version.class", versionCurrentClasses.get("version.Version"));
     }
 
     public void buildSignedMultiReleaseJar() throws Exception {
@@ -186,7 +188,7 @@
         input.put("version.PackagePrivate", ppjava9);
         version9Classes = (new Compiler(input)).setRelease(9).compile();
         input.clear();
-        input.put("version.Version", java10);
-        version10Classes = (new Compiler(input)).setRelease(9).compile();  // fixme in JDK 10
+        input.put("version.Version", javaCurrent);
+        versionCurrentClasses = (new Compiler(input)).compile();  // Use default release
     }
 }
--- a/test/jdk/sun/net/www/protocol/jar/MultiReleaseJarURLConnection.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/net/www/protocol/jar/MultiReleaseJarURLConnection.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8132734 8144062 8159785
+ * @bug 8132734 8144062 8159785 8194070
  * @summary Test that URL connections to multi-release jars can be runtime versioned
  * @library /lib/testlibrary/java/util/jar
  * @modules jdk.compiler
@@ -108,7 +108,8 @@
         Assert.assertTrue(readAndCompare(new URL(baseUrlEntry), "return 8"));
 
         // the following tests will not work with unversioned jars
-        if (style.equals("unversioned")) return;
+        if (style.equals("unversioned"))
+            return;
 
         // direct access to versioned entry
         String versUrlEntry = urlFile + "META-INF/versions/" + Runtime.version().major()
@@ -117,12 +118,6 @@
         // adding any fragment does not change things
         Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#runtime"), rtreturn));
         Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#fragment"), rtreturn));
-
-        // it really doesn't change things
-        versUrlEntry = urlFile + "META-INF/versions/10/version/Version.java";
-        Assert.assertTrue(readAndCompare(new URL(versUrlEntry), "return 10"));
-        Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#runtime"), "return 10"));
-        Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#fragment"), "return 10"));
     }
 
     @Test(dataProvider = "data")
@@ -225,7 +220,6 @@
         cldr.close();
     }
 
-
     private boolean readAndCompare(URL url, String match) throws Exception {
         boolean result;
         // necessary to do it this way, instead of openStream(), so we can
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/nio/cs/EUCTWBufferBoundaryDecodeTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4734607 4767225 4863613
+ * @summary Decode a file using EUC-TW, test for decode errors
+ * @modules jdk.charsets
+ * @run main EUCTWBufferBoundaryDecodeTest
+ */
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+
+/*
+ * Tests for decode errors in NIO EUC-TW decoder. 4734607 details
+ * decoding errors which occur when the input file > 8k in size
+ * and contains numerous US-ASCII range chars
+ */
+public class EUCTWBufferBoundaryDecodeTest {
+
+    public static void main(String[] args) throws Exception {
+        final String inputFileName
+                = System.getProperty("os.name").startsWith("Windows")
+                ? "tradChinese.win.po"
+                : "tradChinese.po";
+
+        ByteArrayOutputStream bos = new ByteArrayOutputStream(1024 * 120);
+
+        File inputFile = new File(System.getProperty("test.src"), inputFileName);
+        FileInputStream fis = new FileInputStream(inputFile);
+
+        // Decode the EUC_TW source file, re-encode it -- (roundtrip)
+        // input and output files ought to be byte for byte identical
+        BufferedReader bin
+                = new BufferedReader(new InputStreamReader(fis, "EUC_TW"));
+        BufferedWriter bout
+                = new BufferedWriter(new OutputStreamWriter(bos, "EUC-TW"));
+
+        String line = bin.readLine();
+
+        while (line != null) {
+            bout.write(line);
+            bout.newLine();
+            line = bin.readLine();
+        }
+
+        bout.close();
+        bin.close();
+
+        // Compare the output with the expected output byte by byte
+        byte[] outputBytes = bos.toByteArray();
+        int i = 0;
+        FileInputStream fi = new FileInputStream(inputFile);
+
+        while (i < outputBytes.length) {
+            byte b = (byte) fi.read();
+            if (b != outputBytes[i++]) {
+                throw new Exception("bug 4734607: test failed");
+            }
+        }
+        fi.close();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/nio/cs/MalformedSurrogateStringTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4153987 6354525
+ * @summary Malformed surrogates should be handled by the converter in
+ * substitution mode.
+ */
+
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+
+public class MalformedSurrogateStringTest {
+
+    public static void main(String[] args) throws Exception {
+
+        String fe = System.getProperty("file.encoding");
+        if (  fe.equalsIgnoreCase("UTF8")
+              || fe.equalsIgnoreCase("UTF-8")
+              || fe.equalsIgnoreCase("UTF_8"))
+            // This test is meaningless if the default charset
+            // does handle surrogates
+            return;
+
+        System.out.println("Testing string conversion...");
+        /* Example with malformed surrogate, and an offset */
+        String t = "abc\uD800\uDB00efgh";
+        String t2 = t.substring(2);
+        byte[] b = t2.getBytes();
+        System.err.println(b.length);
+        for (int i = 0; i < b.length; i++)
+            System.err.println("[" + i + "]" + "=" + (char) b[i]
+                               + "=" + (int) b[i]);
+        if (b.length != 7) {
+            throw new Exception("Bad string conversion for bad surrogate");
+        }
+
+        /* Example with a proper surrogate, no offset. Always worked */
+        String t3 = "abc\uD800\uDC00efgh";
+        byte[] b2 = t3.getBytes();
+        System.out.println(b2.length);
+        for(int i = 0; i < b2.length; i++)
+            System.err.println("[" + i + "]" + "=" + (char) b2[i]);
+        if (b2.length != 8) {
+            throw new Exception("Bad string conversion for good surrogate");
+        }
+
+        OutputStream os = new ByteArrayOutputStream();
+        OutputStreamWriter osw = new OutputStreamWriter(os);
+        System.out.println("Testing flush....");
+        /* Check for the case where the converter has a left over
+           high surrogate when flush is called on the converter */
+        osw.flush();
+        String s = "abc\uD800"; // High surrogate
+        char[] c = s.toCharArray();
+        osw.write(s, 0, 4);
+        osw.flush();
+
+        System.out.println("Testing convert...");
+        /* Verify that all other characters go through */
+        for (int k = 1; k < 65535 ; k++) {
+            osw.write("Char[" + k + "]=\"" + ((char) k) + "\"");
+        }
+
+    }
+}
--- a/test/jdk/sun/nio/cs/TestCp834_SBCS.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/nio/cs/TestCp834_SBCS.java	Fri Feb 02 09:04:45 2018 -0800
@@ -22,7 +22,7 @@
  */
 
 /* @test
- * @bug 6379808
+ * @bug 6379808 8166339
  * @summary Check all Cp933 SBCS characters are not supported in Cp834
  * @modules jdk.charsets
  */
@@ -62,17 +62,34 @@
                 if ((c = cb.get()) != '\ufffd') {
                     // OK, this is a SBCS character in Cp933
                     if (dec834.decode(ByteBuffer.wrap(ba)).get() != '\ufffd')
-                        throw new Exception("SBCS is supported in IBM834 decoder");
+                        throw new RuntimeException("SBCS is supported in IBM834 decoder");
 
                     if (enc834.canEncode(c))
-                        throw new Exception("SBCS can be encoded in IBM834 encoder");
+                        throw new RuntimeException("SBCS can be encoded in IBM834 encoder");
 
                     ca[0] = c;
                     ByteBuffer bb = enc834.encode(CharBuffer.wrap(ca));
                     if (bb.get() != (byte)0xfe || bb.get() != (byte)0xfe)
-                        throw new Exception("SBCS is supported in IBM834 encoder");
+                        throw new RuntimeException("SBCS is supported in IBM834 encoder");
                 }
             }
         }
+
+        // 8166339: cp834 should handle unmappable bytes as dobule-byte pair.
+        if (! new String("\ufffd".getBytes("cp834"), "cp834").equals("\ufffd")) {
+            throw new RuntimeException("u+fffd roundtrip failed");
+        }
+
+        if (! new String("a".getBytes("cp834"), "cp834").equals("\ufffd") ||
+            ! new String(new byte[] { 0x41, 0x40}, "cp834").equals("\ufffd")) {
+            throw new RuntimeException("decoding unmappable don't return u+fffd");
+        }
+
+        CoderResult cr = Charset.forName("Cp834").newDecoder().decode(
+            ByteBuffer.wrap(new byte[] { 0x41, 0x40}), CharBuffer.wrap(new char[2]), true);
+        if (cr.isError() && cr.length() != 2) {
+            throw new RuntimeException("decoding unmappable don't return unmmappable(2)");
+        }
+
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/nio/cs/tradChinese.po	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,2380 @@
+domain "ES_SCRIPTS"
+#
+#==============================
+# <WS>/packages/Setup/es-inst
+#==============================
+msgid "You need to be root before running this program.\n"
+msgstr "ȢЩǿȩҳ root\n"
+msgid "Can not remove the directory /tmp/SunMC30Install\n"
+msgstr " /tmp/SunMC30Install\n"
+msgid "Can not create the directory /tmp/SunMC30Install/sbin\n"
+msgstr "ǡ /tmp/SunMC30Install/sbin\n"
+msgid "Can not copy the required files to /tmp/SunMC30Install\n"
+msgstr "̯ /tmp/SunMC30Install\n"
+msgid "Can not open the display. Either X server is not allowing\n"
+msgstr " Either X server is not allowing\n"
+msgid "the connection or you are running it from console login.\n"
+msgstr "ϯƺīơ\n"
+msgid "Please read Sun Management Center installation Readme and\n"
+msgstr " Sun Management Center  Readme \n"
+msgid "run installation as mentioned.\n"
+msgstr "ҡ\n"
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "  Space calculations will be wrong."
+msgstr "  Ϩȴ먡"
+msgid "Insufficient disk space to install the requested Sun Management Center components"
+msgstr "ȴϨƫ Sun Management Center ǵ"
+msgid "  - Respecify the components to install so it takes less space"
+msgstr "  - ģ́ŷϨ"
+msgid "  - Uninstall some existing packages to make room for Sun Management Center"
+msgstr "  - ġܢȴաϨ Sun Management Center"
+msgid "  - Make a soft link for $2 that points to more space"
+msgstr "  - ҳ $2 ܨġԶڰ̱Ϩ"
+msgid "  - Ask your system administrator for help"
+msgstr "  - ˷ܡɷ"
+msgid "Package $2 is already installed on this system."
+msgstr "Ⱥ˷ĸħ $2"
+msgid "Please verify the platform for package: $2"
+msgstr "ƺ$2"
+msgid "Found: $2"
+msgstr "̯$2"
+msgid "Skipping package $2"
+msgstr " $2"
+msgid "There appear to be some permission problems with the installation"
+msgstr "ĸƫȴġƫ"
+msgid "directory: $2"
+msgstr "$2"
+msgid "In order to install Sun Management Center, root must be able to write to the"
+msgstr " Sun Management Centerroot ϯ̦ȴ"
+msgid "installation directory and own the files in that directory."
+msgstr "īƫ⡢ȴĶ"
+msgid "Please check your configuration and try again."
+msgstr "ܡ"
+msgid "Exiting Sun Management Center installation."
+msgstr " Sun Management Center ʩ"
+msgid "Error: Cannot find pack key $2."
+msgstr "먡̯ $2"
+msgid "There are $2 layers for your selection:"
+msgstr "ȴ $2 Զȹ"
+msgid "No layers were selected for installation."
+msgstr "ȴ̽ȹ"
+msgid "No layers were found for installation."
+msgstr "̯ȹ"
+msgid "No packs are defined in the installation configuration file."
+msgstr "ա"
+msgid "Please select the packs to install:"
+msgstr "̽ա"
+msgid "No packs were selected for installation."
+msgstr "̽ա"
+msgid "Error: Cannot find component key $2."
+msgstr "먡̯ǵ $2"
+msgid "Error: Cannot find key $2."
+msgstr "먡̯ $2"
+msgid "    Component $2 has already been installed."
+msgstr "    ǵ $2"
+msgid "    The corresponding packages are: $2"
+msgstr "    ҳ$2"
+msgid "  Invalid source directory."
+msgstr "  硤"
+msgid "Source directory: $2"
+msgstr "硨$2"
+msgid "Invalid parameter for productExists\\\(\\\): $2"
+msgstr " productExists ٶ\\\(\\\)$2"
+msgid "Production Environment Installation"
+msgstr "ܨ"
+msgid "Developer Environment Installation"
+msgstr "ĩ"
+msgid "Cannot find $2."
+msgstr "̯ $2"
+msgid "Invalid License, please buy a valid license."
+msgstr "桢ȴ⡤"
+msgid "  Invalid entry."
+msgstr "  "
+msgid "  Installation configuration files not found."
+msgstr "  ̯"
+msgid "You can install only agent components on Solaris 2.5.1"
+msgstr "ƫƷ Solaris 2.5.1 ĸܡȢǵ"
+msgid "Select one of the following:"
+msgstr "̽Ķġ"
+msgid "\\\(1\\\) Production Environment \\\(PE\\\)"
+msgstr "\\\(1\\\) ܨ \\\(PE\\\)"
+msgid "\\\(2\\\) Developer Environment \\\(DE\\\)"
+msgstr "\\\(2\\\) ĩ \\\(DE\\\)"
+msgid "Some components have already been installed in $2"
+msgstr " $2 ħšǵ"
+msgid "The target directory will be set to $2"
+msgstr "ҳ $2"
+msgid "Cannot create the directory $2"
+msgstr "ǡ $2"
+msgid "Target directory: $2"
+msgstr "硨$2"
+msgid "Package $2 is already installed."
+msgstr " $2 ҡ"
+msgid "Package not found: $2"
+msgstr "̯ա$2"
+msgid "Error: Cannot find pack key $2."
+msgstr "먡̯ $2"
+msgid "Pack: $2"
+msgstr "ա$2"
+msgid "  Please select the components to install:"
+msgstr "  ̽ǵ"
+msgid "    Component $2 is essential and will be automatically installed."
+msgstr "    $2 ҳǵٯҡ"
+msgid "    Component $2 has already been installed."
+msgstr "    ǵ $2"
+msgid "    The corresponding packages are: $2"
+msgstr "    ҳ$2"
+msgid "    Component $2 is dependent on: $3"
+msgstr "    ǵ $2 ʡ$3"
+msgid "    The component\\\(s\\\) will be automatically installed."
+msgstr "    ǵٯҡ"
+msgid "  Selected Components: $2"
+msgstr "  ̽ǵ$2"
+msgid "  Selected Components: \\\<default\\\>"
+msgstr "  ̽ǵ\\\<\\\>"
+msgid "  Warning - Could not find pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Warning - Could not find the pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Warning - Could not find the pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Checking disk space..."
+msgstr "Ϩ..."
+msgid "Insufficient disk space to install Sun Management Center Database Software"
+msgstr "ȴϨƫ Sun Management Center ջ"
+msgid "Sun Management Center DB application software requires: $2 Kbytes"
+msgstr "Sun Management Center DB ȢϨ桨$2 KB"
+msgid "The installation directory \\\"$2\\\" has: $3 Kbytes"
+msgstr " \\\"$2\\\" ȴϨ桨$3 KB"
+msgid "Please supply a directory."
+msgstr "硤"
+msgid "Insufficient disk space to install Sun Management Center Database Dbfiles"
+msgstr "ȴϨƫ Sun Management Center ջ Db "
+msgid "Sun Management Center DB application software requires: $2 Kbytes"
+msgstr "Sun Management Center DB ȢϨ桨$2 KB"
+msgid "The installation directory \\\"$2\\\" has: $3 Kbytes"
+msgstr " \\\"$2\\\" ȴϨ桨$3 KB"
+msgid "Please supply a directory."
+msgstr "硤"
+msgid "Disk Space Requirements:"
+msgstr "Ϩ塨"
+msgid "Space required \\\(in $2\\\):  $3 blocks."
+msgstr "Ϩ \\\($2 \\\)$3 Զٴۡ"
+msgid "Space available \\\(in $2\\\): $3 blocks."
+msgstr "ƫϨ \\\($2 \\\)$3 Զٴۡ"
+msgid "Insufficient space available in $2"
+msgstr "$2 ƫϨ"
+msgid "Here are some possible fixes to alleviate the disk space problem:"
+msgstr "ĶҳƫϨΡ"
+msgid "\\\"$2\\\" resides on CD \\\#$3."
+msgstr "\\\"$2\\\"  \\\#$3 ĸ"
+msgid "New source directory: $2"
+msgstr "硨$2"
+msgid "Invalid directory."
+msgstr "硤"
+msgid "Installing the components..."
+msgstr "ǵ..."
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "The package $2 is already installed"
+msgstr " $2"
+msgid " Selection Summary"
+msgstr " "
+msgid "Looking for addon products on CD \\\#2..."
+msgstr " CD \\\#2 ĸܨ..."
+msgid "New source directory: $2"
+msgstr "硨$2"
+msgid "                Sun Management Center 3.0 Addons Product Selection:                 "
+msgstr "                Sun Management Center 3.0 ܨ塨                 "
+msgid "Installing the product: $2"
+msgstr "ܨ¡$2"
+msgid "Cannot find pkginfo file for package: $2"
+msgstr "̯ pkginfo $2"
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "Supports: $2 - $3"
+msgstr "Ρ$2 - $3"
+msgid "Supports: $2"
+msgstr "Ρ$2"
+msgid "Name: $2"
+msgstr "ꢡ$2"
+msgid "Description: $2"
+msgstr "$2"
+msgid "Unsupported OS version: $2"
+msgstr " OS ۡ$2"
+msgid "No components to install."
+msgstr "ȴǵ"
+msgid "A previous version of Sun Management Center exists."
+msgstr "ȴ Sun Management Center 㡤"
+msgid "Please uninstall it locally in \\\"$2\\\"."
+msgstr "ҡ \\\"$2\\\" 㡿"
+msgid "Cannot find $2"
+msgstr "̯ $2"
+msgid "Error copying the locale files to: $2"
+msgstr "̯Ķ먡$2"
+msgid "Setup script will use English."
+msgstr " script ơ"
+msgid "Please run setup locally in \\\"$2\\\"."
+msgstr " \\\"$2\\\" 㡿"
+msgid "ESROOT is not set."
+msgstr " ESROOT"
+msgid "Invalid directory: $2"
+msgstr "硨$2"
+msgid "Invalid file: $2"
+msgstr "$2"
+msgid "Both -S and -T options must be specified"
+msgstr "-S  -T ̥Զ"
+msgid "This script will help you to install the Sun Management Center software."
+msgstr " script ̶ɷ Sun Management Center ա"
+msgid "Do you want to install this package now?"
+msgstr "ǡɻȺա"
+msgid "    Do you want to proceed?"
+msgstr "    "
+msgid "  Do you want to install components in layer: $2?"
+msgstr "  Ķȹǵ$2?"
+msgid "  Do you want to install $2?"
+msgstr "   $2"
+msgid "Do you want to install the product: $2?"
+msgstr "Ⱥܨ¡$2?"
+msgid "Do you want to install this package now?"
+msgstr "ǡɻȺա"
+msgid "Would you like to uninstall it now?"
+msgstr "ǡɻá"
+msgid "Would you like to save your old data?"
+msgstr "á"
+msgid "Do you want to run setup now?"
+msgstr "ǡɻҡ"
+msgid "Please enter the source directory:"
+msgstr "ī硨"
+msgid "Enter the development system license: "
+msgstr "ī˷⡨ "
+msgid "Enter your choice: [1\\\|2]"
+msgstr "ī塨[1\\\|2]"
+msgid "Please enter the target directory [$2]:"
+msgstr "ī [$2]"
+msgid "Enter the directory to install the database: "
+msgstr "īջ硨 "
+msgid "Please insert the second CD or enter the source directory from disk 2 \\\[$2\\\]"
+msgstr "īĨگ CD ī 2  \\\[$2\\\]"
+msgid "Please enter the new source directory:"
+msgstr "ī硨"
+msgid "Please enter the OS version for \\\"$2\\\" \\\[$3\\\]: "
+msgstr "ī \\\"$2\\\"  OS  \\\[$3\\\] "
+msgid "Please enter the platform for \\\"$2\\\" \\\[$3\\\]: "
+msgstr "ī \\\"$2\\\" ƺ \\\[$3\\\] "
+msgid "Log file: $2"
+msgstr "$2"
+msgid "                         End of Installation                         "
+msgstr "                                                  "
+msgid "For installing Sun Management Center on $2, we need to know the"
+msgstr "ҳħ Sun Management Center  $2 ĸʼԯϡ"
+msgid "operating system on $2. This should be the output of the command"
+msgstr "$2 ĸɢ˷ӡ"
+msgid "/usr/bin/uname -r. The command must be executed on a machine booted with"
+msgstr "/usr/bin/uname -r Ϊ"
+msgid "disk mounted on $2"
+msgstr " $2 ٯĸ硤"
+msgid "For installing Sun Management Center on $2, we need to know the"
+msgstr "ҳħ Sun Management Center  $2 ĸʼԯϡ"
+msgid "machine type of machine whose root filesystem is or will be mounted on $2."
+msgstr "̧˷ɻ $2 ĸΡ"
+msgid "This should be the output of the following command"
+msgstr "ĶΪ"
+msgid "    /usr/platform/PLATFORM/sbin/prtdiag \\\| /usr/bin/head -1 \\\| /usr/bin/cut -f2 -d:"
+msgstr "    /usr/platform/PLATFORM/sbin/prtdiag \\\| /usr/bin/head -1 \\\| /usr/bin/cut -f2 -d:"
+msgid "Please note that the above commands must be executed on the target machine."
+msgstr "ĸĸ硤"
+msgid "Would you like to migrate your 2.x data?"
+msgstr " 2.x á"
+msgid "A previous version of Sun Management Center Data exists."
+msgstr "ȴ Sun Management Center 㡤"
+msgid "This will remove all files under $2. If you have any custom"
+msgstr " $2 ĶȴΪԶĶȴ"
+msgid "scripts under this directory, please move them to an alternate location"
+msgstr "Ƕ scriptsЩԯ"
+msgid "before proceeding."
+msgstr "̯"
+msgid "Do you wish to continue with the removal of the existing 2.x data"
+msgstr "ܢȴ 2.x "
+#
+#===============================
+# <WS>/packages/Setup/es-setup
+#===============================
+msgid "Setup of $2 component failed."
+msgstr " $2 ǵ"
+msgid "Exiting setup."
+msgstr ""
+msgid "The Sun Management Center Setup File \\\($2\\\)$3"
+msgstr "Sun Management Center  \\\($2\\\)$3"
+msgid "    is missing. Cannot Setup Sun Management Center $2."
+msgstr "    ¡ Sun Management Center $2"
+msgid "Initiating setup for Sun Management Center $2 Component."
+msgstr " Sun Management Center $2 ǵ "
+msgid "Please read the release notes to configure the device type."
+msgstr "Ρ"
+msgid "Using log file: $2."
+msgstr "$2."
+msgid "   Sun Management Center Setup Program"
+msgstr "   Sun Management Center Ȣ"
+msgid "This program does setup of Sun Management Center components that are installed on your system."
+msgstr "ȺȢ˷ĸ Sun Management Center ǵ"
+msgid "Checking for Sun Management Center components installed on your system."
+msgstr "˷ĸ Sun Management Center ǵ"
+msgid "You Do not have any Sun Management Center components installed."
+msgstr "Ƕ Sun Management Center ǵ"
+msgid "You may want to run setup after installing"
+msgstr " Sun Management Center ǵѥƫ"
+msgid "    the Sun Management Center components."
+msgstr "    Ȣ"
+msgid "You have the following Sun Management Center components installed"
+msgstr "ħĶ Sun Management Center ǵ"
+msgid "             Sun Management Center Server"
+msgstr "             Sun Management Center Τ"
+msgid "             Sun Management Center Agent"
+msgstr "             Sun Management Center ܡȢ"
+msgid "             Sun Management Center Console"
+msgstr "             Sun Management Center ƺ"
+msgid "This script will perform the setup for each of these components"
+msgstr " Script ҳǵʩ"
+msgid "Core Sun Management Center setup complete."
+msgstr " Sun Management Center ܫ"
+msgid "Setup of Sun Management Center addons incomplete. Exiting"
+msgstr " Sun Management Center ȩ Exiting"
+msgid "Sun Management Center setup complete."
+msgstr " Sun Management Center ܫ"
+msgid "Problems occured with setup of the following addons: $2"
+msgstr "Ķ$2"
+msgid "Setup log stored in $2"
+msgstr " $2 "
+msgid "A minimum of 256 MB RAM is required to run Sun Management Center."
+msgstr "ŷȴ 256 MB  RAM  Sun Management Center"
+msgid "Current system has $2 MB RAM."
+msgstr "Щ˷̦ȴ $2 MB  RAM"
+msgid "Can not continue to setup Sun Management Center DB."
+msgstr " Sun Management Center DB"
+msgid "Checking /etc/system file..."
+msgstr " /etc/system ..."
+msgid "Checking memory available..."
+msgstr "ƫش..."
+msgid "Checking /etc/system file error. It can not be updated."
+msgstr " /etc/system 먡 It can not be updated."
+msgid "The /etc/system file needs to be changed for Sun Management Center DB requirements."
+msgstr " /etc/system  Sun Management Center DB 塤"
+msgid "Backing up /etc/system to /etc/system.SunMCDB.backup"
+msgstr "ެǹ /etc/system to /etc/system.SunMCDB.backup"
+msgid "/etc/system file has not been changed."
+msgstr " /etc/system file "
+msgid "In order for kernel variable changes to take effect, this "
+msgstr "ҳ桢ٯ"
+msgid "machine must be rebooted.  You must reboot this machine now"
+msgstr "檡ǡɻٯ"
+msgid "and then run the setup again."
+msgstr "ѥԶʩ"
+msgid "Cannot create link $2 to directory $3"
+msgstr "ǡͻ $3  $2"
+msgid "Sun Management Center DB setup cannot continue."
+msgstr "Sun Management Center DB ʩ"
+msgid "Error changing ownership of $2 to root.  Installation cannot continue."
+msgstr " $2 ȴҳ root ɢ먡ҡ"
+msgid "Configuring Sun Management Center DB listener and service files..."
+msgstr " Sun Management Center DB Τ٭..."
+msgid "The default listener port $2 for Sun Management Center DB has already been used."
+msgstr "Sun Management Center DB  $2 ݷ"
+msgid "Please input another port number for Sun Management Center DB listener."
+msgstr "īƶġԶ Sun Management Center DB "
+msgid "Error in resetting the configuration files for Sun Management Center DB."
+msgstr " Sun Management Center DB 먡"
+msgid "Linking database, Please wait"
+msgstr "ջԷ"
+msgid "in the event of error, see /tmp/relink.log"
+msgstr "ǵ㡢ٶ /tmp/relink.log"
+msgid "Create ora passord file"
+msgstr "ǡ ora "
+msgid "/usr/bin/make is needed on Sun Management Center server machine. The current"
+msgstr "Sun Management Center Τĸȴ /usr/bin/makeЩ"
+msgid "failed to create internal user password file : $2"
+msgstr "ǡϯ$2"
+msgid "does not have it. Please make this file available and run setup again"
+msgstr "ȴԶҳƫѥʩ"
+msgid "execution of make -f ins_net_server.mk install failed"
+msgstr "make -f ins_net_server.mk install "
+msgid "see /tmp/make.log file for details"
+msgstr "ٶ /tmp/make.log ع"
+msgid "Database setup failed : $2 does not exist"
+msgstr "ջ$2 "
+msgid "Database setup failed : mkaggregatefiles.ksh failed"
+msgstr "ջmkaggregatefiles.ksh "
+msgid "Database setup failed : db-start failed"
+msgstr "ջdb-start "
+msgid "Please wait, Sun Management Center database setup in progress. It may take 15 to 20 minutes"
+msgstr "Է Sun Management Center ջƫĸ 15 ̯ 20 š"
+msgid "Database setup failed : build-smc-oracle-recovery.ksh failed"
+msgstr "ջbuild-smc-oracle-recovery.ksh "
+msgid "Please wait, Sun Management Center database setup in progress. It may take 15 to 20 minutes"
+msgstr "Է Sun Management Center ջƫĸ 15 ̯ 20 š"
+msgid "Database setup failed : build-smc-oracle-recovery.ksh failed"
+msgstr "ջbuild-smc-oracle-recovery.ksh "
+msgid "Found symon 2.x import data"
+msgstr "̯ symon 2.x ī"
+msgid "about to import symon 2.x data"
+msgstr "ī symon 2.x "
+msgid "cannot find the 2.x import script file $2"
+msgstr "̯ 2.x ī Script  $2"
+msgid "will not import symon 2.x data"
+msgstr "ī symon 2.x "
+msgid "Database setup failed : db-stop failed"
+msgstr "ջdb-stop "
+msgid "A problem occured with $2 setup.  Do you want to continue?"
+msgstr " $2 ܢ"
+msgid "    Do you wish to update /etc/system file?"
+msgstr "     /etc/system "
+msgid "A problem occured with $2 setup.  Do you want to continue?"
+msgstr " $2 ܢ"
+msgid "    Do you wish to keep any existing topology and event data"
+msgstr "    Ƕܢůǵ"
+msgid "    Do you want to perform a symon 2.x data import?"
+msgstr "     symon 2.x ī"
+msgid "Do you want to start Sun Management Center agent and server components now"
+msgstr "ǡɻٯ Sun Management Center ܡȢΤǵ"
+msgid "Do you want to start Sun Management Center agent now"
+msgstr "ǡɻٯ Sun Management Center ܡȢ"
+msgid "Error: It seems the file $2 is not writable, could not update the file."
+msgstr "먡 $2 ī"
+msgid "Configuring the system for setup, please wait."
+msgstr "˷Է"
+#
+#===============================
+# <WS>/packages/Setup/db-start
+#===============================
+msgid "Listener and Database are up and running\n"
+msgstr "ջɳɢ\n"
+msgid "the current sid \n"
+msgstr "Щ sid \n"
+msgid "the current orahome \n"
+msgstr "Щ orahome \n"
+msgid "unknown system type, exiting......................\n"
+msgstr "˷......................\n"
+msgid "getHostName: failed to obtain current host from hostname command\n"
+msgstr "getHostNameڷ hostname ̽ڵЩ\n"
+msgid "current host : $2\n"
+msgstr "Щ񢡨$2\n"
+msgid "getUserName: failed to obtain user name from id command\n"
+msgstr "getUserNameڷ id ̽ڵϯ\n"
+msgid "current user name : $2\n"
+msgstr "Щϯꢡ$2\n"
+msgid "getUserGroup: failed to obtain user group from id command\n"
+msgstr "getUserGroupڷ id ̽ڵ\n"
+msgid "current user group : $2\n"
+msgstr "Щϯڡ$2\n"
+msgid "path_app : $2\n"
+msgstr "path_app :$2\n"
+msgid "found $2 on path in $3\n"
+msgstr " $3 ̯ $2\n"
+msgid "can not find $2 on path, exiting.......................\n"
+msgstr "ĸ̯ $2.......................\n"
+msgid "verifyDatabaseUp: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseUpڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseUp: instance is executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseUp: instance is not executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseDown: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseDownڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseDown: instance is executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyDatabaseDown: instance is not executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyListenerUp: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerUpڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerUp: listener $2 is execution\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerUp: listener $2 is not execution\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerDown: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerDownڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerDown: listener $2 is execution\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyListenerDown: listener $2 is not execution\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from df\n"
+msgstr "verifyFilesystemPermڷ df ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from df\n"
+msgstr "verifyFilesystemPermڷ df ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from mount comma\n"
+msgstr "verifyFilesystemPermڷ comma ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: filesystem $2 is not mounted setuid\n"
+msgstr "verifyFilesystemPerm˷ $2  setuid\n"
+msgid " must re-mount the filesystem with setuid enabled\n"
+msgstr "  setuid ٯ˷\n"
+msgid "verifyFilesystemPerm: filesystem $2 is mounted setuid, OK\n"
+msgstr "verifyFilesystemPerm˷ $2  setuid\n"
+msgid "verifyListenerStatus: failed to obtain listener status for alias: $2\n"
+msgstr "verifyListenerStatusҳĶɱ̽ڵ表$2\n"
+msgid "verifyListenerStatus: listener status is good for alias: $2\n"
+msgstr "verifyListenerStatusĶɱ$2\n"
+msgid "verifyListenerStatus: listener status is not good for alias: $2\n"
+msgstr "verifyListenerStatusĶɱ$2\n"
+msgid "the specified path \\\($2\\\) does not exist\n"
+msgstr " \\\($2\\\) \n"
+msgid "tmpdir \n"
+msgstr "tmpdir \n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain accessperms from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵ̽$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain username from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵϯꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain groupname from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: access perms for \\\($2\\\) is not at least 755\n"
+msgstr "verifyGoodOraclePermOwnership \\\($2\\\) ̽޲ŷ 755\n"
+msgid "verifyGoodOraclePermOwnership: access perms ok\n"
+msgstr "verifyGoodOraclePermOwnership̽ڦ\n"
+msgid "verifyGoodOraclePermOwnership: owner \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3 ȴϯ \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: owner ok\n"
+msgstr "verifyGoodOraclePermOwnershipȴϯڦ\n"
+msgid "verifyGoodOraclePermOwnership: group \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3  \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: group ok\n"
+msgstr "verifyGoodOraclePermOwnershipڦ\n"
+msgid "**** directory : $2 does not exist\n"
+msgstr "**** 硨$2 \n"
+msgid "loop: current new $2\n"
+msgstr "Щ $2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain accessperms from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵ̽$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain username from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵϯꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain groupname from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: access perms for \\\($2\\\) is not at least 755\n"
+msgstr "verifyGoodOraclePermOwnership \\\($2\\\) ̽޲ŷ 755\n"
+msgid "verifyGoodOraclePermOwnership: access perms ok\n"
+msgstr "verifyGoodOraclePermOwnership̽ڦ\n"
+msgid "verifyGoodOraclePermOwnership: owner \\\($listuser\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3 ȴϯ \\\($listuser\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: owner ok\n"
+msgstr "verifyGoodOraclePermOwnershipȴϯڦ\n"
+msgid "verifyGoodOraclePermOwnership: group \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3  \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: group ok\n"
+msgstr "verifyGoodOraclePermOwnershipڦ\n"
+msgid "**** file : $2 does not exist\n"
+msgstr "**** $2 \n"
+msgid "verifySharedMemUsage: failed to obtain ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̽ڵ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifySharedMemUsage: found ipcs \\\(shared memory segment\\\) info user : $2, group : $3, \\\(shid\\\) : $4\n"
+msgstr "verifySharedMemUsage̯ ipcs \\\(شٴ\\\) عϯ$2ڡ$3, \\\(shid\\\)$4\n"
+msgid "verifySharedMemUsage: did find ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̯ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifySharedMemUsage: did not find any ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̯Ƕ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifyActiveSemaphoresUsage: failed to obtain ipcs \\\(active semaphores\\\) info user : $2, group : $3\n"
+msgstr "verifyActiveSemaphoresUsage̽ڵ ipcs \\\(ɢ\\\) عϯ$2ڡ$3\n"
+msgid "verifyActiveSemaphoresUsage: found ipcs \\\(active semaphores\\\) info user : $2, group : $3, \\\(semid\\\) : $4\n"
+msgstr "verifyActiveSemaphoresUsage̯ ipcs \\\(ɢ\\\) عϯ$2ڡ$3, \\\(semid\\\)$4\n"
+msgid "verifyActiveSemaphoresUsage: did find ipcs \\\(active semaphores\\\) info user : $2, group : \n"
+msgstr "verifyActiveSemaphoresUsage̯ ipcs \\\(ɢ\\\) عϯ$2ڡ\n"
+msgid "verifyActiveSemaphoresUsage: did not find any ipcs \\\(active semaphores\\\) info user : $2, group : $3\n"
+msgstr "verifyActiveSemaphoresUsage̯Ƕ ipcs \\\(ɢ\\\) عϯ$2ڡ$3\n"
+msgid "startListener: failed to start listener, alias: $2\n"
+msgstr "startListenerٯ¡ɱء$2\n"
+msgid "startListener: listener started, alias: $2\n"
+msgstr "startListenerٯɱء$2\n"
+msgid "stopListener: failed to stop listener, alias: $2\n"
+msgstr "stopListener¡ɱء$2\n"
+msgid "stopListener: listener stopped, alias: $2\n"
+msgstr "stopListenerϡɱء$2\n"
+msgid "removing existing listener log file $2"
+msgstr "ܢȴ $2"
+msgid "execution of verifySetuidFilesystemPerm $2 fail\n"
+msgstr "verifySetuidFilesystemPerm $2 \n"
+msgid "exiting........................\n"
+msgstr "........................\n"
+msgid "execution of $2 start $3 fail\n"
+msgstr "$2 ٯ $3 \n"
+msgid "execution of verifyListenerUp $2 fail\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "execution of verifyGoodListenerStatus $2 fail\n"
+msgstr " verifyGoodListenerStatus $2 \n"
+msgid "execution of sqlplus using @$2 fail\n"
+msgstr "ɳ @$2  sqlplus \n"
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "execution of verifyDatabaseUp $2 fail\n"
+msgstr "verifyDatabaseUp $2 \n"
+msgid "Listener and Database are up and running\n"
+msgstr "ջɳɢ\n"
+#
+#================================
+# <WS>/packages/Setup/es-device
+#================================
+msgid "Usage: $2 -ad Filename"
+msgstr "Ρ$2 -ad "
+msgid "   where the options represent:"
+msgstr "   ̧㡢"
+msgid "     a : Add new device"
+msgstr "     a"
+msgid "     d : Delete device"
+msgstr "     dɴ"
+msgid "This action is limited to superuser only."
+msgstr "Ⱥɢϯ"
+msgid "Exiting $2."
+msgstr " $2"
+msgid "create_node_family_file: Error! Invalid node object type $2"
+msgstr "create_node_family_file먡ǵ $2 "
+msgid "set_global_variable: Value not specified for $2"
+msgstr "set_global_variable $2 ԫ"
+msgid "set_global_variable: Invalid parameter $2"
+msgstr "set_global_variableٶ $2"
+msgid "delete_node: Invalid data in input file"
+msgstr "delete_nodeī"
+msgid "delete_node: $2 does not exist, verify input"
+msgstr "delete_node$2 㡢ī"
+msgid "delete_group: Invalid data in input file"
+msgstr "delete_groupī"
+msgid "delete_group: $2 does not exist, verify input"
+msgstr "delete_group$2 㡢ī"
+msgid "delete_group: Invalid group type $2"
+msgstr "delete_group $2 "
+msgid "delete_segment: Invalid data in input file"
+msgstr "delete_segmentī"
+msgid "delete_segment: $2 does not exist, verify input"
+msgstr "delete_segment$2 㡢ī"
+msgid "delete_segment: Invalid segment type $2"
+msgstr "delete_segmentٴ $2 "
+msgid "delete_composite: Invalid data in input file"
+msgstr "delete_compositeī"
+msgid "delete_composite: $2 does not exist, verify input"
+msgstr "delete_composite$2 㡢ī"
+msgid "validate_node_object_type: $2 or $3 exists"
+msgstr "validate_node_object_type$2  $3 "
+msgid "validate_i18n_key: Node object type exists in $2 line $3"
+msgstr "validate_i18n_keyǵ $2  $3"
+msgid "validate_i18n_key: Invalid i18n key: $2"
+msgstr "validate_i18n_keyi18n 桨$2"
+msgid "validate_group_i18n_type: $2 is invalid group type"
+msgstr "validate_group_i18n_type$2 "
+msgid "validate_group_i18n_key: Group object type exists in $2 line $3"
+msgstr "validate_group_i18n_keyǵ $2  $3"
+msgid "validate_segment_i18n_type: $2 is invalid segment type"
+msgstr "validate_segment_i18n_type$2 ٴ"
+msgid "validate_segment_i18n_key: Segment object type exists in $2 line $3"
+msgstr "validate_segment_i18n_keyٴǵ $2  $3"
+msgid "validate_composite_i18n_key: Composite object type exists in $2 line $3"
+msgstr "validate_composite_i18n_keyǵ $2  $3"
+msgid "validate_properties_file: Invalid property file name. Must be $2"
+msgstr "validate_properties_file桤 $2"
+msgid "validate_search_parameter: Invalid sysoid value $2"
+msgstr "validate_search_parametersysoid ԫ $2 "
+msgid "validate_icon_file: Check if file exists and permissions"
+msgstr "validate_icon_fileů"
+msgid "validate_hardware_module: Hardware Module name does not exist"
+msgstr "validate_hardware_module"
+msgid "validate_group_object_type: Invalid object type $2"
+msgstr "validate_group_object_typeǵ $2 "
+msgid "validate_group_object_type: Group object type exists in $2 line $3"
+msgstr "validate_group_object_typeǵ $2  $3"
+msgid "validate_segment_object_type: Invalid object type $2"
+msgstr "validate_segment_object_typeǵ $2 "
+msgid "validate_segment_object_type: Segment object type exists in $2 line $3"
+msgstr "validate_segment_object_typeٴǵ $2  $3"
+msgid "add_node: Invalid node type $2"
+msgstr "add_node $2 "
+msgid "add_node: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_node $2 ů"
+msgid "add_group: Invalid group type $2"
+msgstr "add_group $2 "
+msgid "add_group: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_group $2 ů"
+msgid "add_segment: Invalid segment type $2"
+msgstr "add_segmentٴ $2 "
+msgid "add_segment: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_segment $2 ů"
+msgid "add_composite: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_composite $2 ů"
+msgid "Package SUNWessrv is not installed on this system"
+msgstr "Ⱥ˷ SUNWessrv "
+msgid "Unable to create logfile $2"
+msgstr "ǡ $2"
+msgid "$2 file does not exist"
+msgstr "$2 "
+msgid "$2 file does not have read permissions"
+msgstr "$2 ̦̽"
+msgid "Invalid Operation: Operation not supported"
+msgstr "ɢ桨ɢ̿"
+msgid "process_delete_data: Object type $2 missing in data file"
+msgstr "process_delete_dataŷǵ $2"
+msgid "validate_monitor_via : $2 is invalid type"
+msgstr "validate_monitor_via$2 "
+msgid "validate_node_type:$2 is invalid node type"
+msgstr "validate_node_type$2 "
+msgid "validate_node_object_type: Invalid object type $2"
+msgstr "validate_node_object_typeǵ $2 "
+msgid "validate_i18n_key: Invalid object type $2"
+msgstr "validate_i18n_keyǵ $2 "
+msgid "add_device: Invalid object type $2"
+msgstr "add_deviceǵ $2 "
+msgid "validate_node_object_type: Node object type exists in $2 line $3"
+msgstr "validate_node_object_typeǵ $2  $3"
+msgid "validate_object_type: Invalid object type $2"
+msgstr "validate_object_typeǵ $2 "
+msgid "validate_group_type: $2 is invalid group type"
+msgstr "validate_group_type$2 "
+msgid "validate_segment_type: Invalid value $2 for Segment_type"
+msgstr "validate_segment_typeSegment_type ԫ $2 "
+msgid "     (for example: ./es-device -a /tmp/userdata)"
+msgstr "     (./es-device -a /tmp/userdata)"
+msgid "     (for example: ./es-device -d /tmp/userdata)"
+msgstr "     (./es-device -d /tmp/userdata)"
+msgid "validate_user_name: No value specified for User_name"
+msgstr "validate_user_name User_name ԫ"
+msgid "validate_node_object_type: No value specified for Node_object_type"
+msgstr "validate_node_object_typeNode_object_type ԫ"
+msgid "validate_i18n_key: No value specified for i18n_key"
+msgstr "validate_i18n_key i18n_key ԫ"
+msgid "validate_properties_file: No value specified for Properties_file"
+msgstr "validate_properties_file Properties_file ԫ"
+msgid "validate_search_parameter: No value specified for Search_parameter"
+msgstr "validate_search_parameter Search_parameter ԫ"
+msgid "validate_icon_file: No value specified for icon"
+msgstr "validate_icon_fileԫ"
+msgid "validate_segment_object_type: No value specified for Segment object type"
+msgstr "validate_segment_object_typeٴǵԫ"
+#
+#==============================
+# <WS>/packages/Setup/db-stop
+#==============================
+msgid "getHostName: failed to obtain current host from hostname comma"
+msgstr "getHostNameڷ hostname ̽ڵЩ"
+msgid "current host : $2\n"
+msgstr "Щ񢡨$2\n"
+msgid "getUserName: failed to obtain user name from id comma\n"
+msgstr "getUserNameڷ id ̽ڵϯ\n"
+msgid "current user name : $2\n"
+msgstr "Щϯꢡ$2\n"
+msgid "getUserGroup: failed to obtain user group from id comma\n"
+msgstr "getUserGroupڷ id ̽ڵ\n"
+msgid "current user group : $2\n"
+msgstr "Щϯڡ$2\n"
+msgid "verifyDatabaseUp: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseUpڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseUp: instance is executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseUp: instance is not executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseDown: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseDownڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseDown: instance is executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyDatabaseDown: instance is not executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyListenerUp: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerUpڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerUp: listener $2 is executing\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerUp: listener $2 is not executing\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerDown: failed to obtain listener process info from \n"
+msgstr "verifyListenerDown̽ڵݨܡعڷ\n"
+msgid "verifyListenerDown: listener $2 is executing\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyListenerDown: listener $2 is not executing\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "the file $2 does not exist, exiting........................"
+msgstr " $2 㡢........................"
+msgid "performing a (shutdown immediate)......"
+msgstr "硾ǡɻ񢡿......"
+msgid "execution of $2 using \\@$3 failed"
+msgstr " \\@$3  $2 "
+msgid "exiting..........................\n"
+msgstr "........................\n"
+msgid "unable to perform normal shutdown, executing a shutdown abort"
+msgstr "ڦ񢡢"
+msgid "execution of $2 using adhoc shutdown-abort failed"
+msgstr " adhoc shutdown-abort  $2 "
+msgid "execution of $2 stop $3 failed"
+msgstr "$2  $3 "
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "execution of sqlplus using $2 fail\n"
+msgstr " $2  sqlplus \n"
+msgid "can not find $2 on path, exiting.......................\n"
+msgstr "ĸ̯ $2.......................\n"
+#
+#=========================================
+# <WS>/packages/Setup/sm_setup_server.sh
+#=========================================
+msgid "The Sun Management Center Console help configuration file cannot be found."
+msgstr "̯ Sun Management Center ƺɷ"
+msgid "Please re-install the Sun Management Center Console component"
+msgstr " Sun Management Center ƺǵ"
+msgid "The base URL has been set to $2"
+msgstr " URL ҳ $2"
+msgid "Could not find group $2.  You will have to set up"
+msgstr "̯ $2ٯ"
+msgid "the groups manually.  Please add $3 to group $2."
+msgstr "ڡ $3  $2"
+msgid "User $3 in group $2 is not a valid user.  Leaving it out of the esusers file."
+msgstr " $2 ϯ $3 ȴϯڷ esusers 桤"
+msgid "Adding user $2 from group $3 to esusers"
+msgstr " $3 ϯ $2  esusers"
+msgid "It appears that you already have some users \\\($2\\\)"
+msgstr "ƫȴġϯ \\\($2\\\)"
+msgid "configured as Sun Management Center administrators.  Leaving these users in place."
+msgstr "ҳ Sun Management Center ܡޡϯݨ"
+msgid "You should setup a user as a Sun Management Center administrator."
+msgstr "ġϯҳ Sun Management Center ܡ"
+msgid "This person will be added to the esadm and esdomadm groups."
+msgstr "Ⱥϯ̯ esadm  esdomadm 㡤"
+msgid "$2 is not a valid user."
+msgstr "$2 ȴϯ"
+msgid "The group $2 already exists on your system."
+msgstr "˷ĸ $2"
+msgid "Creating the group $2 that contains Sun Management Center $3 Users."
+msgstr "ǡ Sun Management Center $3 ϯ $2"
+msgid "Could not find $2 in $3"
+msgstr "$3 ̯ $2"
+msgid "This part of the setup process does the Sun Management Center Server Component setup."
+msgstr "šݨܡȩ Sun Management Center Τǵ"
+msgid "Unable to set $2 values."
+msgstr " $2 ԫ"
+msgid "agent.snmpPort is already configured in $2"
+msgstr "$2 ħ agent.snmpPort"
+msgid "topology.snmpPort is already configured in $2"
+msgstr "$2 ħ topology.snmpPort"
+msgid "The Sun Management Center base URL is relative to the Sun Management Center Console."
+msgstr " Sun Management Center  URL  Sun Management Center Cosole "
+msgid "The Sun Management Center Console is able to request help documentation via the network."
+msgstr " Sun Management Center ƺƫɷǵ衤"
+msgid "If you have installed Sun Management Center help documentation in an http-accessible"
+msgstr "Ϊƫ http ̽ĸħ Sun Management Center ɷǵ衢"
+msgid "location within your network, you may specify this location."
+msgstr "Ⱥ"
+msgid "If Sun Management Center help is installed on the console host, simply accept the default value."
+msgstr "Ϊ Sun Management Center ɷƺĸЬƷ̿ԫ"
+msgid "Completing Sun Management Center Server Component setup."
+msgstr "ȩ Sun Management Center Τǵ"
+msgid "Using security seed $2 for Sun Management Center server"
+msgstr "Sun Management Center Τ $2"
+msgid "Please enter a user to be the Sun Management Center administrator: "
+msgstr "īɢҳ Sun Management Center ܡϯ "
+msgid "Please enter a valid username: "
+msgstr "īȴϯꢡ "
+msgid "Please enter base URL to Sun Management Center help [local]: "
+msgstr "ī Sun Management Center ɷ URL [áٶ] "
+#
+#===================================
+# <WS>/packages/Setup/es-common.sh
+#===================================
+msgid "Enter \\\"y\\\" or \\\"n\\\" or \\\"q\\\""
+msgstr "ī \\\"y\\\"  \\\"n\\\"  \\\"q\\\""
+msgid "Exiting at user request"
+msgstr "ϯĶ"
+msgid "L10N_CODE not set!, LANG=$2"
+msgstr " L10N_CODELANG=$2"
+msgid "Cannot find locale directory for LANG: $2"
+msgstr "̯ LANG 硨$2"
+msgid "Expected to find it in: $2"
+msgstr "Ķ̯ơ$2"
+msgid "No Sun Management Center Packages are installed. Exiting."
+msgstr " Sun Management Center ա֡"
+msgid "Could not find xput executable: $2"
+msgstr "̯ xput ƫ$2"
+msgid "Cannot find file $2"
+msgstr "̯ $2"
+msgid "Moving $2 to $3"
+msgstr " $2 ̯ $3"
+msgid "--------------  WARNING  -------------------"
+msgstr "--------------    -------------------"
+msgid "It appears that $2 $3 is already in use."
+msgstr "$2 $3 ƫ"
+msgid "Sun Management Center $2 may not be able to run due to this conflict."
+msgstr "ȺSun Management Center $2 ƫ硤"
+msgid "There are two ways to correct this conflict:"
+msgstr "ȴ̥ƫϫȺ"
+msgid "  1. Reconfigure the port that Sun Management Center uses."
+msgstr "  1.  Sun Management Center ա"
+msgid "  2. Stop the process that is using the port."
+msgstr "  2. ݨܡ"
+msgid "    You are currently running snmpdx, which may be causing the conflict."
+msgstr "    Щ snmpdxƫӳ"
+msgid "Skipping the setting of port number for $2"
+msgstr "ܩ $2 "
+msgid "NOTE: Prior to starting Sun Management Center $2, stop the process using port $3."
+msgstr "ٯ Sun Management Center $2 Щǿ $3 ݨܡ"
+msgid "Updating $2 with new port number."
+msgstr " $2"
+msgid "This part of setup generates security keys used for communications"
+msgstr "šʩܨʩع"
+msgid "between processes.  A seed must be provided to initialize the"
+msgstr ""
+msgid "keys.  You can choose to use the standard Sun Management Center default or"
+msgstr "ƫ Sun Management Center ԫī"
+msgid "enter your own seed.  If you do not generate the keys now,"
+msgstr "͡Ϊܢܨ"
+msgid "you can do so later using the procedure documented in the"
+msgstr "ƫѥߧ"
+msgid "Sun Management Center 3.0 Users Guide."
+msgstr "Sun Management Center 3.0 ϯв"
+msgid "Please make sure you use the same seed for all the machines you install."
+msgstr "ȴ͡"
+msgid "Invalid seed - type s to use default seed"
+msgstr " - Ѻ s "
+msgid "Using default Sun Management Center value for seed."
+msgstr " Sun Management Center ԫɢҳ"
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+msgid "Unable to create logfile $LOGFILE."
+msgstr "ǡ $LOGFILE"
+msgid "Started $0 at"
+msgstr "ٯ $0 "
+msgid "Running on"
+msgstr ""
+msgid "What seed would you like to use?\n"
+msgstr "͡\n"
+msgid "Invalid response in automated configuration file."
+msgstr "ٯȴܡ"
+msgid "Unsupported OS version: $2"
+msgstr " OS ۡ$2"
+msgid "Do you want to use a different port number for $2?"
+msgstr " $2 "
+msgid "Do you want to generate these keys using the Sun Management Center default seed?"
+msgstr " Sun Management Center ܨ"
+msgid "Please enter any port greater or equal to 1100 : "
+msgstr "īǶġ 1100 ա "
+msgid "Port $2 is not a valid port number, try another number : "
+msgstr " $2 ȴƶġԶ "
+msgid "Port $2 is also busy, try another - use s to skip setting the port number:"
+msgstr " $2 ľȤ㡢̧ -  s ܩ"
+#
+#======================================
+# <WS>/packages/Setup/install-java.sh
+#======================================
+msgid "Java packages are not in $2"
+msgstr " Java  $2 "
+msgid "All required Java packages are not in $2"
+msgstr "ȴ Java  $2 "
+msgid "Installing java packages $2"
+msgstr " java  $2"
+msgid "the system. Please install them first and then install Sun Management Center."
+msgstr "˷㡤ǿԯѥ Sun Management Center"
+msgid "Package $2 is installed on this system. This package is"
+msgstr " $2 Ⱥ˷㡤 This package is"
+msgid "incompatible with the java version required for Sun Management Center."
+msgstr " Sun Management Center  java թ"
+msgid "This package needs to be uninstalled before installing java 2"
+msgstr "ǿȺѥ java 2"
+msgid "Removal of the package $2 failed, please remove it"
+msgstr " $2 ٯ"
+msgid "manually and then install Sun Management Center."
+msgstr "ѥ Sun Management Center"
+msgid "You need to install the following packages $2"
+msgstr "Ķ $2"
+msgid "If you do not choose to install it now, the installation will abort."
+msgstr "Ϊǡɻҡʩˡ"
+msgid "It seems some other version of java packages are present in $2"
+msgstr " $2 ȴƶġ java 㡤"
+msgid "You need to install Solaris_JDK_1.2.1_04 version of the following packages"
+msgstr " Solaris_JDK_1.2.1_04 Ķ"
+msgid "You can enter any directory to install the required version of JAVA."
+msgstr "ƫīǶ JAVA"
+msgid "No java packages to be removed."
+msgstr " java "
+msgid "Sun Management Center installation had overwritten your previous java installation."
+msgstr " Sun Management Center Ȣ̽ǿЩ java Ȣ"
+msgid "You can either keep the current installation or remove it."
+msgstr "ƫЩȢ桤"
+msgid "Warning - Could not find pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "  Space calculations will be wrong."
+msgstr "  Ϩȴ먡"
+msgid "Java installation:"
+msgstr "Java ҡ"
+msgid "Space required \\\(in $2\\\):  $3 blocks."
+msgstr "Ϩ \\\($2 \\\)$3 Զٴۡ"
+msgid "Space available \\\(in $2\\\): $3 blocks."
+msgstr "ƫϨ \\\($2 \\\)$3 Զٴۡ"
+msgid "Insufficient disk space to install Java components"
+msgstr "ȴϨƫ Java ǵ"
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "The following packages required by Java 2 are not installed on"
+msgstr "Ķ Java 2 "
+msgid "Packages: $2"
+msgstr "ա$2"
+msgid "The required version of Java is already installed in $2"
+msgstr " Java  $2 "
+msgid "It seems some of the required packages are already present."
+msgstr "ȴš㡤"
+msgid "You can either overwrite the existing java version or install the"
+msgstr "ƫܢȴ java "
+msgid "required version in some other directory."
+msgstr "̧㡤"
+msgid "Invalid directory"
+msgstr ""
+msgid "Java packages couldnot be found in directory $2"
+msgstr " $2 ̯ Java "
+msgid "Do you want to install it now?"
+msgstr "ǡɻҡ"
+msgid "Do you want to overwrite the existing one?"
+msgstr "̽ܢȴۡ"
+msgid "Do you want to remove it?"
+msgstr "桩"
+msgid "Do you want to uninstall it now"
+msgstr "ǡɻ"
+msgid "Enter the base directory for JDK installation [$2]"
+msgstr "ī JDK  [$2]"
+#
+#============================
+# <WS>/packages/Setup/es-db
+#============================
+msgid "A minimum of 256 MB RAM is required to install Sun Management Center server."
+msgstr "ŷȴ 256 MB  RAM  Sun Management Center Τ¡"
+msgid "Current system has $2 MB RAM."
+msgstr "Щ˷̦ȴ $2 MB  RAM"
+msgid "Can not continue to install Sun Management Center server."
+msgstr " Sun Management Center Τ¡"
+msgid "                         Sun Management Center DB                     "
+msgstr "                         Sun Management Center DB                     "
+msgid "       Sun Management Center Database Installation "
+msgstr "       Sun Management Center ջ "
+msgid "Invalid parameters for installDB\\\(\\\)"
+msgstr " installDB\\\(\\\) ٶ"
+msgid "The following Sun Management Center database packages have already been installed on your system:"
+msgstr "˷ĸħĶ Sun Management Center ջա"
+msgid "Checking memory available..."
+msgstr "ƫش..."
+msgid "Creating the mount points..."
+msgstr "ǡ..."
+msgid "Error installing SUNWesora.  Installation cannot continue."
+msgstr " SUNWesora 먡ҡ"
+msgid "Error installing SUNWestbl.  Installation cannot continue."
+msgstr " SUNWestbl 먡ҡ"
+msgid "Sun Management Center DB packages installed successfully"
+msgstr "Sun Management Center DB ȩ"
+msgid "es-setup will perform the remainder of the config"
+msgstr "es-setup ̧š"
+#
+#======================================
+# <WS>/packages/Setup/install-patch.sh
+#======================================
+msgid "No patch checking on this platform"
+msgstr "ȺƺĸȢ"
+msgid "Could not find the patches in the following directory."
+msgstr "Ķ̯Ȣ"
+msgid "Installing patch $2..."
+msgstr "Ȣ $2..."
+msgid "Installation of patch $2 failed."
+msgstr "Ȣ $2 "
+msgid "Installation of patch $2 complete."
+msgstr "Ȣ $2 ȩ"
+msgid "Following patches are prerequisites to the java patches."
+msgstr " java ȢЩǿĶȢ"
+msgid "Please install them manually and then install Sun Management Center."
+msgstr "ٯѥ Sun Management Center"
+msgid "Installation of following patches failed, please install"
+msgstr "ĶȢٯ"
+msgid "them manually and then install Sun Management Center."
+msgstr "ѥ Sun Management Center"
+msgid "Checking for required OS patches, Please wait..."
+msgstr " OS ȢԷ..."
+msgid "Following is the list of required patches for java 2."
+msgstr "Ķҳ java 2 Ȣ̡"
+msgid "If you do not choose to install them now installation will abort."
+msgstr "Ϊǡɻҡʩˡ"
+msgid "Checking for required OS patches done."
+msgstr "ȩ OS Ȣ硤"
+msgid "Invalid directory."
+msgstr "硤"
+msgid "Do you want to install now"
+msgstr "ǡɻҡ"
+msgid "Please enter the directory that contains patches: "
+msgstr "īȴȢ硨 "
+#
+#=================================
+# <WS>/packages/Setup/es-restore
+#=================================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "The backup $2 does not exist"            
+msgstr "ެǹ $2 "            
+msgid "Checking installed Sun Management Center..."
+msgstr " Sun Management Center..."
+msgid "Recover the Sun Management Center Database and it will take a few minutes..."
+msgstr "ߦ Sun Management Center ջĸš..."
+msgid "Restore the Sun Management Center data."
+msgstr "ߦ Sun Management Center 衤"
+msgid "Shutdown Sun Management Center database, please wait."
+msgstr " Sun Management Center ջԷ"
+msgid "Recovery is fnished successfully. Please start Sun Management Center."
+msgstr "ɳȩߦϡٯ Sun Management Center"
+msgid "The Sun Management Center server components are not found or"
+msgstr "̯ Sun Management Center Τģ́"
+msgid "its installation is damaged. You need to run"
+msgstr "䴡"
+msgid "es-inst/es-setup to install Sun Management Center and then "
+msgstr "es-inst/es-setup  Sun Management Centerѥ"
+msgid "start es-restore."
+msgstr "ٯ es-restore"
+msgid "Cannot restore $2"
+msgstr "ߦ $2"
+msgid "Cannot import database. Please check $2"
+msgstr "īջ $2"
+msgid "The recovery need to shudown Sun Management Center servers."
+msgstr "ߦɢ Sun Management Center Τ¡"
+msgid "Please get the backup of es-backup ready."
+msgstr "ެ es-backup ެǹ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the backup data directory:"
+msgstr "īެǹ"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_metadata.sh
+#==========================================
+msgid "$2 appears to be configured as your Sun Management Center server."
+msgstr "$2 ƫҳ Sun Management Center Τ¡"
+msgid "Error - Unable to set $2 values."
+msgstr " -  $2 ԫ"
+msgid "agent.snmpPort already configured in $2"
+msgstr " $2 ħ agent.snmpPort"
+msgid "This part of the setup process does the Sun Management Center Agent Component setup."
+msgstr "šݨܡȩ Sun Management Center ܡȢǵ"
+msgid "snmpd.conf already exists in $2.  Leaving it in place"
+msgstr "$2  snmpd.conf̧ݨ"
+msgid "Copying snmpd.conf file into $2"
+msgstr " snmpd.conf ̯ $2"
+msgid "Server component also installed locally."
+msgstr "ħΤǵ"
+msgid "Using this machine as the Sun Management Center server."
+msgstr "ɢҳ Sun Management Center Τ¡"
+msgid "Completing Sun Management Center Agent Component setup."
+msgstr "ȩ Sun Management Center ܡȢǵ"
+msgid "Using security seed $2 for Sun Management Center metadata"
+msgstr " $2 ɢҳ Sun Management Center "
+msgid "Please enter the Sun Management Center Server Hostname: "
+msgstr "ī Sun Management Center Τꢡ "
+msgid "Is this correct?"
+msgstr ""
+#
+#============================
+# <WS>/packages/Setup/es-lic
+#============================
+msgid "Topology server is currently running."
+msgstr "ЩΤ¡"
+msgid "It must be restarted for the license file update to take effect."
+msgstr "桢ٯ"
+msgid "Please stop and restart topology server using:"
+msgstr "ٯΤ¡"
+msgid "$2 -p\\\; $3 -p"
+msgstr "$2 -p\\\; $3 -p"
+msgid "Invalid License, Exiting..."
+msgstr "桢..."
+msgid "  Sun Management Center License Program\n"
+msgstr "  Sun Management Center Ȣ\n"
+msgid "  Invalid parameters passed to es-lic script\n"
+msgstr "  ̯ es-lic Script ٶ\n"
+msgid "Please enter license key: "
+msgstr "ī "
+#
+#===============================
+# <WS>/packages/Setup/es-dbimp
+#===============================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "The backup $2 does not exist"            
+msgstr "ެǹ $2 "            
+msgid "------------------- WARNING !!! ----------------"
+msgstr "------------------- ˡ ----------------"
+msgid "The process need Sun Management Center server components stopped."
+msgstr "Ⱥݨܡ Sun Management Center Τǵ硤"
+msgid "And import the backup data to Sun Management Center database."
+msgstr "ެǹī Sun Management Center ջ"
+msgid "As a result, all current data will be destroyed."
+msgstr "Ϊȩȴܢȴڡ"
+msgid "Done"
+msgstr "ȩ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+#
+#=======================================
+# <WS>/packages/Setup/sm_setup_agent.sh
+#=======================================
+msgid "$2 appears to be configured as your Sun Management Center server."
+msgstr "$2 ƫҳ Sun Management Center Τ¡"
+msgid "Error - Unable to set $2 values."
+msgstr " -  $2 ԫ"
+msgid "agent.snmpPort already configured in $2"
+msgstr " $2 ħ agent.snmpPort"
+msgid "This part of the setup process does the Sun Management Center Agent Component setup."
+msgstr "šݨܡȩ Sun Management Center ܡȢǵ"
+msgid "snmpd.conf already exists in $2.  Leaving it in place"
+msgstr "$2  snmpd.conf̧ݨ"
+msgid "Copying snmpd.conf file into $2"
+msgstr " snmpd.conf ̯ $2"
+msgid "Server component also installed locally."
+msgstr "ħΤǵ"
+msgid "Using this machine as the Sun Management Center server."
+msgstr "ɢҳ Sun Management Center Τ¡"
+msgid "Completing Sun Management Center Agent Component setup."
+msgstr "ȩ Sun Management Center ܡȢǵ"
+msgid "Using security seed $2 for Sun Management Center agent"
+msgstr " $2 ɢҳ Sun Management Center ܡȢ"
+msgid "Please enter the Sun Management Center Server Hostname: "
+msgstr "ī Sun Management Center Τꢡ "
+msgid "Is this correct?"
+msgstr ""
+#
+#================================
+# <WS>/packages/Setup/es-backup
+#================================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Can not create the directory $2"
+msgstr "ǡ $2"
+msgid "Backup is successful."
+msgstr "ެǹȩ"
+msgid "Please save following files for the restore of Sun Management Center"
+msgstr "Ķߦ Sun Management Center "
+msgid "Starting Sun Management Center...."
+msgstr "ٯ Sun Management Center...."
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "Backup Sun Management Center data failed. Please check $2"
+msgstr "Sun Management Center ެǹ $2"
+msgid "The operation requires to shutdown Sun Management Center."
+msgstr "Ⱥɢ Sun Management Center"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the directory to store the backup data file:"
+msgstr "īެǹ表"
+#
+#=======================================
+# <WS>/packages/Setup/sm_setup_mib2.sh
+#=======================================
+msgid "Subagent sunmib_sea already set up - leaving it untouched"
+msgstr "ħܡȢ sunmib_sea - ̧ѽ"
+msgid "Subagent registry file is: $2"
+msgstr "ܡȢҳ$2"
+msgid "Unable to update subagent-registry-d.x"
+msgstr " subagent-registry-d.x"
+msgid "Updated subagent-registry-d.x for mib2 subagent"
+msgstr "ҳ mib2 ܡȢħ subagent-registry-d.x"
+#
+#================================
+# <WS>/packages/Setup/es-uninst
+#================================
+msgid "Removing $2"
+msgstr " $2"
+msgid "Package Removal: Failed for $2"
+msgstr "桨$2 "
+msgid "Reattempting to uninstall the package\\\(s\\\): $2"
+msgstr "ա$2"
+msgid "Please remove the following packages manually.\n"
+msgstr "ٯĶա\n"
+msgid "Sun Management Center uninstall complete.\n"
+msgstr " Sun Management Center ܫ\n"
+msgid "       Sun Management Center Uninstallation \n"
+msgstr "       Sun Management Center  \n"
+msgid "No Sun Management Center packages installed.\n"
+msgstr " Sun Management Center ա\n"
+msgid "This utility removes all the Sun Management Center packages. \n"
+msgstr "ȺȢȴ Sun Management Center ա\n"
+msgid "Exiting uninstall utility.\n"
+msgstr "Ȣ\n"
+msgid "Stopping all Sun Management Center processes.  This may take a few moments...\n"
+msgstr "ȴ Sun Management Center ݨܡƫġ...\n"
+msgid "If you are upgrading Sun Management Center, you may want to save your existing data.\n"
+msgstr "ΪŪ Sun Management Centerƫܢȴ衤\n"
+msgid "Will not remove the existing data\n"
+msgstr "ܢȴ\n"
+msgid "Will remove the existing data\n"
+msgstr "ܢȴ\n"
+msgid "      Would you like to continue?"
+msgstr "      "
+msgid "Do you want to preserve your existing data"
+msgstr "ܢȴ"
+msgid "Do you wish to continue with the removal of the existing data"
+msgstr "ܢȴ"
+#
+#==============================
+# <WS>/packages/Setup/es-dbexp
+#==============================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Can not create the directory $2"
+msgstr "ǡ $2"
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "The operation requires some of Sun Management Center components to be shutdown."
+msgstr "Ⱥɢġ Sun Management Center ǵ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the directory to store the backup data file:"
+msgstr "īެǹ表"
+msgid "Enter the path of the backup directory:"
+msgstr "īެǹ"
+#
+#=================================
+# <WS>/packages/Setup/es-keys.sh
+#=================================
+msgid "Generating $2 security keys."
+msgstr "ܨ $2 "
+msgid "Error generating keys. Return code was $2."
+msgstr "ܨ먡ҳ $2"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_service.sh
+#==========================================
+msgid "This part of the setup process does the Sun Management Center Services Component setup."
+msgstr "šݨܡȩ Sun Management Center Τ٭ǵ"
+msgid "Completing Sun Management Center Services Component setup."
+msgstr "ȩ Sun Management Center Τ٭ǵ"
+#
+#===============================
+# <WS>/packages/Setup/es-start
+#===============================
+msgid "It seems component $2 has not been setup, so skipping it."
+msgstr " $2Ⱥܩơ"
+msgid "Sun Management Center Web Server is not installed, Can not start web server\n"
+msgstr " Sun Management Center Τ¡ٯΤ\n"
+msgid "Sun Management Center Web Server is not completely installed, Can not start web server\n"
+msgstr " Sun Management Center Τ¡ٯΤ\n"
+msgid "web server started\n"
+msgstr "Τٯ\n"
+msgid "Equivalent to %s -aefgmprstxw"
+msgstr "̧ %s -aefgmprstxw"
+msgid "Equivalent to %s -efgmprstxw"
+msgstr "̧ %s -efgmprstxw "
+msgid "Usage: $PROGNAME -acefghilmpstwxrAS [-y instanceName] [ -- args... ]"
+msgstr "Ρ$PROGNAME -acefghilmpstwxrAS [-y instanceName] [ -- args... ]"
+msgid "   where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "     a : starts Sun Management Center Agent\n"
+msgstr "  aٯ Sun Management Center ܡȢ\n"
+msgid "     c : starts Sun Management Center Console\n"
+msgstr "  cٯ Sun Management Center Console\n"
+msgid "         Optionally, maximum heap size could be customized,\n"
+msgstr "         ڰ̱޲ƫҳԫ\n"
+msgid "         e.g., ./es-start -c -- -Xmx100m specifies 100 MBytes\n"
+msgstr "         ./es-start -c -- -Xmx100m  100 MB\n"
+msgid "         as max heap size; Default size is 64m.\n"
+msgstr "         ҳ޲ѡҳ 64m\n"
+msgid "     e : starts Sun Management Center Event manager\n"
+msgstr "     eٯ Sun Management Center ǵܡȢ\n"
+msgid "     f : starts Sun Management Center Configuration manager\n"
+msgstr "     fٯ Sun Management Center ܡȢ\n"
+msgid "     g : starts Sun Management Center Grouping services\n"
+msgstr "     gٯSun Management Center Τ٭\n"
+msgid "     h : prints this usage report\n"
+msgstr "     hȺ\n"
+msgid "     i : start agent in interactive mode, valid only for one of\n"
+msgstr "     iٯȢɢȢٯܡȢ\n"
+msgid "           the a, t, f, p, and e options\n"
+msgstr "           atfp  e ġȴ\n"
+msgid "     l : starts Platform Agent for SSP\n"
+msgstr "     lٯ SSP ƺܡȢ\n"
+msgid "     m : starts Sun Management Center Metadata Repository\n"
+msgstr "    mٯ Sun Management Center ջ\n"
+msgid "     q : start components in quiet mode, effective only for one of\n"
+msgstr "     qٯȢɢȢٯǵ\n"
+msgid "       the A, a, t, f, p, and e options\n"
+msgstr "       Aatfp  e ġȴ\n"
+msgid "     p : starts Sun Management Center Topology manager\n"
+msgstr "     pٯ Sun Management Center ܡȢ\n"
+msgid "     r : starts Hardware Diagnostic Suite Service\n"
+msgstr "     rٯ Hardware Diagnostic Suite Τ٭\n"
+msgid "     s : starts Sun Management Center Server\n"
+msgstr "     sٯ Sun Management Center Τ\n"
+msgid "         Optionally, maximum heap size could be customized,\n"
+msgstr "         ڰ̱޲ƫҳԫ\n"
+msgid "         e.g., ./es-start -s -- -Xmx100m specifies 100 MBytes\n"
+msgstr "         ./es-start -s -- -Xmx100m  100 MB\n"
+msgid "         as max heap size; Default size is 64m.\n"
+msgstr "         ҳ޲ѡҳ 64m\n"
+msgid "     t : starts Sun Management Center Trap Handler\n"
+msgstr "     tٯ Sun Management Center ݨܡȢ\n"
+msgid "     x : starts CST Service\n"
+msgstr "     xٯ CST Τ٭\n"
+msgid "     y : starts new instance of platform agent\n"
+msgstr "     yٯƺܡȢ\n"
+msgid "     w : starts web server\n"
+msgstr "     wٯΤ\n"
+msgid "     A : starts All Sun Management Center components except the console,\n"
+msgstr "     Aٯħƺȴ Sun Management Center ǵ\n"
+msgid "     S : starts Sun Management Center Server and all the server subcomponents\n"
+msgstr "     Sٯ Sun Management Center ΤȴΤǵ\n"
+msgid "     args are passed to console or server when started.\n"
+msgstr "     ſƺΤٯԯ\n"
+msgid "           (for example: es-start -c -- -p 2099)\n\n"
+msgstr "     es-start -c -- -p 2099\n\n"
+msgid "ERROR: Sun Management Center has not been set up.\nRun es-setup to set up Sun Management Center."
+msgstr "먡 Sun Management Center\n es-setup  Sun Management Center"
+msgid "Please specify a component to be started."
+msgstr "ٯǵ"
+msgid "Use the following single letter arguments instead:\n"
+msgstr "Ķġſ\n"
+msgid "Console package not installed\n"
+msgstr "ƺ\n"
+msgid "Interactive option invalid with -A or -S option"
+msgstr "ٯȢɢ -A  -S "
+msgid "Invalid command line option.  Please use just one option\n"
+msgstr "ƷġԶ\n"
+msgid "You have not specified any components to run.\n"
+msgstr "ǵ\n"
+msgid "Only one component may be started in interactive mode\n"
+msgstr "ٯȢɢȢĶƷٯġԶǵ\n"
+msgid "You cannot start console in interactive mode\n"
+msgstr "ٯȢɢȢٯƺ\n"
+msgid "DISPLAY environment variable must be set\n"
+msgstr " DISPLAY \n"
+msgid "Interactive server session:\n"
+msgstr "ٯȢɢΤɢơ\n"
+msgid "SUNWcstv or SUNWcstve package should be installed before start cstservice agent."
+msgstr "ٯ cstservice ܡȢЩǿ SUNWcstv  SUNWcstve ա"
+msgid "Interactive option invalid with $OPT option"
+msgstr "ٯȢɢ $OPT "
+msgid "Unable to open DISPLAY: $DISPLAY"
+msgstr " DISPLAY: $DISPLAY"
+msgid "Equivalent to %s -aefgmpstxw"
+msgstr "̧ %s -aefgmpstxw"
+msgid "Equivalent to %s -efgmpstxw"
+msgstr "̧ %s -efgmpstxw"
+msgid "$2 Component not installed"
+msgstr " $2 ǵ"
+msgid "Invalid option\\\($1\\\).  Options have changed to single letters:"
+msgstr " \\\($1\\\)ҳġࡨ"
+msgid "Starting all platform instances"
+msgstr "ٯȴƺ"
+msgid "Instances are $2"
+msgstr "ҳ $2"
+msgid "Starting platform instances $2"
+msgstr "ٯƺ $2"
+msgid "ERROR: Could not start Hardware Diagnostic Suite Service."
+msgstr "먡ٯ Hardware Diagnostic Suite Τ٭"
+msgid "SUNWed package should be installed before start Hardware Diagnostic Suite Service."
+msgstr "SUNWed ٯ Hardware Diagnostic Suite Τ٭Щҡ"
+msgid "Sun Management Center is not setup. Please setup first and then run es-start."
+msgstr " Sun Management Centerǿҡѥ es-start"
+msgid "Sun Management Center $2 is not setup."
+msgstr " Sun Management Center $2"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_console.sh
+#==========================================
+msgid "This part of the setup process does the Sun Management Center Console Component setup."
+msgstr "šݨܡȩ Sun Management Center ƺǵ"
+#
+#==============================
+# <WS>/packages/Setup/es-stop
+#==============================
+msgid "Please specify a component to be stopped."
+msgstr "ǵ"
+msgid "Usage : $PROGNAME -aefghmprstxAS [-y instanceName]"
+msgstr "Ρ$PROGNAME -aefghmprstxAS [-y instanceName]"
+msgid "     a : stops Sun Management Center Agent\n"
+msgstr "     a Sun Management Center ܡȢ\n"
+msgid "     e : stops Sun Management Center Event manager\n"
+msgstr "     e Sun Management Center ǵܡȢ\n"
+msgid "     f : stops Sun Management Center Configuration manager\n"
+msgstr "     f Sun Management Center ܡȢ\n"
+msgid "     g : stops Sun Management Center Services\n"
+msgstr "     g Sun Management Center Τ٭\n"
+msgid "     h : prints this usage report\n"
+msgstr "     hȺ\n"
+msgid "     l : stops Platform Agent for SSP\n"
+msgstr "     l SSP ƺܡȢ\n"
+msgid "     m : stops Sun Management Center Metadata Agent\n"
+msgstr "     m Sun Management Center ܡȢ\n"
+msgid "     p : stops Sun Management Center Topology manager\n"
+msgstr "     p Sun Management Center ܡȢ\n"
+msgid "     r : stops Hardware Diagnostic Suite Service\n"
+msgstr "     r Hardware Diagnostic Suite Τ٭\n"
+msgid "     s : stops Sun Management Center Server\n"
+msgstr "     s Sun Management Center Τ\n"
+msgid "     t : stops Sun Management Center Trap Handler\n"
+msgstr "     t Sun Management Center ݨܡȢ\n"
+msgid "     x : stops CST Service\n"
+msgstr "     x CST Τ٭\n"
+msgid "     y : stops instance of platform agent\n"
+msgstr "     yƺܡȢ\n"
+msgid "     w : stops web server\n"
+msgstr "     wΤ\n"
+msgid "     A : stops all Sun Management Center components listed above\n"
+msgstr "     Aĸȴ Sun Management Center ǵ\n"
+msgid "equivalent to %s -aefgmprstxw"
+msgstr "̧ %s -aefgmprstxw"
+msgid "     S : stops all Sun Management Center components listed above except Sun Management Center Agent\n"
+msgstr "     Sħ Sun Management Center ܡȢȴ Sun Management Center ǵ\n"
+msgid "equivalent to %s -efgmprstxw"
+msgstr "̧ %s -efgmprstxw"
+msgid "Use the following single letter arguments instead:\n"
+msgstr "Ķġſ\n"
+msgid "Invalid option\\\($1\\\).  Options have changed to single letters:"
+msgstr " \\\($1\\\)ҳġࡨ"
+msgid "$1 Component not installed"
+msgstr " $1 ǵ"
+msgid "Stopping all platform instances"
+msgstr "ȴƺ"
+msgid "$COMPONENT component is not running"
+msgstr "$COMPONENT ǵ"
+msgid "Stopping $COMPONENT component"
+msgstr " $COMPONENT ǵ"
+msgid "Error in stopping $COMPONENT component"
+msgstr " $COMPONENT ǵ"
+#
+#================================
+# <WS>/packages/Setup/es-crlcon
+#================================
+msgid "   Sun Management Center Light Console Creation Program\n"
+msgstr "   Sun Management Center ƺǡȢ\n"
+msgid "This program creates a directory of minimun required console components.\n"
+msgstr "ȺȢǡ޲ŷƺǵ硤\n"
+msgid "User can copy this directory to any machine with supported configuration\n"
+msgstr "ϯƫȺ̯Ƕ̦ȴ̿ĸ\n"
+msgid "to run Console."
+msgstr "ƺ"
+msgid "Destination [/tmp]: "
+msgstr " [/tmp] "
+msgid "Please remove the directory $dirname before proceeding"
+msgstr "Щ $dirname"
+msgid "or use a different directory.\n"
+msgstr "硤\n"
+msgid "Do you want the directory to be in zip format [y|n] [y]: "
+msgstr "ȩҳ zip ֪Ȣ [y|n] [y] "
+msgid "Please enter path to the executable - zip: "
+msgstr "īƫ - zip  "
+msgid "Cannot find zip in $zippath."
+msgstr "$zippath ̯ zip"
+msgid "Source will be taken from [/opt/SUNWsymon]: "
+msgstr "̽ [/opt/SUNWsymon] "
+msgid "Directory ${dirname} is created."
+msgstr " ${dirname} ǡ"
+msgid "Creating zip file ...\n"
+msgstr "ǡ zip  ...\n"
+msgid "SUNWsymon.zip can be transferred to other systems, unzip,\n"
+msgstr "SUNWsymon.zip ƫ̧˷ӡ㡤\n"
+msgid "Zip file is created in "
+msgstr "Zip ǡ "
+msgid "\nPlease note:\n\n    Light console can be invoked by running:\n\n"
+msgstr "\n\n\n    ƫĶƵƺ\n\n"
+#
+#================================
+# <WS>/packages/Setup/es-sfix.sh
+#================================
+msgid "usage:\n"
+msgstr "Ρ\n"
+msgid "process all modules                : es-sfix.sh\n"
+msgstr "ݨܡȴ                es-sfix.sh\n"
+msgid "flush db & process all modules     : es-sfix.sh [-c | -C]\n"
+msgstr " db ݨܡȴ     es-sfix.sh [-c | -C]\n"
+msgid "process only for specifiec module  : es-sfix.sh [-m | -M] [module name]\n"
+msgstr "Ʒݨܡ  es-sfix.sh [-m | -M] []\n"
+msgid "starting Sun Management Center database\n"
+msgstr "ٯ Sun Management Center ջ\n"
+msgid "database startup failed, exiting\n"
+msgstr "ջٯ\n"
+msgid "database is up\n"
+msgstr "ջƵ\n"
+msgid "executing suggested fix script\n"
+msgstr "Ժߦ Script\n"
+msgid "execution successful\n"
+msgstr "ȩ\n"
+msgid "error in execution\n"
+msgstr "\n"
+msgid "shutting down the database\n"
+msgstr "ջ\n"
+msgid "db-stop failed\n"
+msgstr "db-stop \n"
+msgid "purge database and process\n"
+msgstr "ջݨܡ\n"
+msgid "process only for module\n"
+msgstr "ݨܡ\n"
+msgid "incorrect usage\n"
+msgstr "\n"
+msgid "invalid arguments\n"
+msgstr "ſ\n"
+msgid "default processing\n"
+msgstr "ݨܡʩ\n"
+msgid "could not set java home directory\n"
+msgstr " java \n"
+msgid "please see the suggested fix log file in "
+msgstr "ٶԺߦ"
+#
+#=================================
+# <WS>/packages/Setup/es-details
+#=================================
+msgid "ERROR: "
+msgstr "먡 "
+msgid "  Specify the tabs for a given Node_Object_Type.  The -f and -u\n"
+msgstr "  ҳ Node_Object_Type -f  -u\n"
+msgid "  options are mutually exclusive.\n"
+msgstr "  桤\n"
+msgid "  where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "    a                  : All tabs provided by Sun Management Center\n"
+msgstr "    a                   Sun Management Center ȴ\n"
+msgid "                         will be included.\n"
+msgstr "                         \n"
+msgid "    f inputfile        : Input file which contains list of tabs to\n"
+msgstr "    f inputfile        ī\n" 
+msgid "                         be used for the specified Node_Object_Type.\n"
+msgstr "                          Node_Object_Type\n"
+msgid "    n Node_Object_Type : Corresponds to the Node_Object_Type\n"
+msgstr "    n Node_Object_Type es-device Script \n"
+msgid "                         entered in the es-device script.\n"
+msgstr "                         ī Node_Object_Type\n"
+msgid "    o                  : Overwrite previously created tab file.\n"
+msgstr "    o                  Щǡ\n"
+msgid "                         Only meaningful when used with the -f\n"
+msgstr "                         Ʒȴ -f ȴ\n"
+msgid "                         option.\n"
+msgstr "                         \n"
+msgid "    u                  : Undo.  Restores the Node_Object_Type\n"
+msgstr "    u                  ߦϡ Node_Object_Type ߦ\n"
+msgid "                         to its original state.\n"
+msgstr "                         ҳ̧ȴ衤\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "Usage: $2 [ -a ] [ -f inputfile ] -n Node_Object_Type [ -o ] [ -u ]\n"
+msgstr "Ρ$2 [ -a ] [ -f inputfile ] -n Node_Object_Type [ -o ] [ -u ]\n"
+msgid "Input file $2 does not exist"
+msgstr "ī $2 "
+msgid "The Node_Object_Type must be specified."
+msgstr " Node_Object_Type"
+msgid "Either option -f or -u must be specified."
+msgstr " -f  -u ġ"
+msgid "Options -f or -u cannot both be specified."
+msgstr " -f  -u"
+msgid "Options -o and -u cannot both be specified."
+msgstr " -o  -u"
+msgid "Options -a and -u cannot both be specified."
+msgstr " -a  -u"
+msgid "es-details has not yet been run with Node_Object_Type $2."
+msgstr " Node_Object_Type $2  es-details"
+msgid "Tab name not specified for DEFAULT statement on line $2."
+msgstr " $2 ĸ ҳ DEFAULT ꢡ"
+msgid "Only one tab can be defined as the DEFAULT."
+msgstr "ƷġԶɢҳ DEFAULT"
+msgid "Tab name not specified for INCLUDE statement on line $2."
+msgstr " $2 ĸҳ INCLUDE ꢡ"
+msgid "$2 is not a valid Sun Management Center tab on line $3."
+msgstr "$2  $3 ĸȴ Sun Management Center "
+msgid "Tab name not specified for APPEND statement on line $2."
+msgstr " $2 ĸҳ APPEND ꢡ"
+msgid "Tab name $2 must be in format file:key on line $3."
+msgstr " $3 ĸ $2 ֪Ȣҳ file:key"
+msgid "Help key not specified for user-defined tab $2 on line $3."
+msgstr " $3 ĸҳϯ $2 ɷ"
+msgid "Help Key $2 must be in format key:file on line $3."
+msgstr " $3 ĸɷ $2 ֪Ȣҳ key:file"
+msgid "Java class not specified for user-defined tab $2 on line $3."
+msgstr " $3 ĸҳϯ $2  Java ɱ"
+msgid "Key $2 is not a valid key on line $3."
+msgstr " $2  $3 ĸȴ"
+msgid "Input file $2 contains no APPEND or INCLUDE statements"
+msgstr "ī $2  APPEND  INCLUDE "
+msgid "$2 is not a valid Node_Object_Type."
+msgstr "$2 ȴ Node_Object_Type"
+msgid "The specified default tab $2 was not found in the inputfile."
+msgstr "ī̯ $2"
+msgid "The tabs for this object have already been specified, use -o option to overwrite."
+msgstr "Ⱥǵ -o ѡ"
+msgid "Can only modify the family file for Sun Management Center agents."
+msgstr "Ʒҳ Sun Management Center ܡȢԺե"
+#
+#===========================
+# <WS>/packages/Setup/es-dt
+#===========================
+msgid "ERROR: "
+msgstr "먡 "
+msgid "  where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "    a          : Add a reference.\n"
+msgstr "    a          ٶ衤\n"
+msgid "    d          : Delete a reference.\n"
+msgstr "    d          ɴٶ衤\n"
+msgid "    v          : View references.  This is the default option.\n"
+msgstr "    v          ٶ衤Ⱥҳ\n"
+msgid "    s          : Add/Delete/View on the Platform Agent.  By default the\n"
+msgstr "    s          ƺܡȢĸ/ɴ/á\n"
+msgid "                 operation is performed on the Agent.\n"
+msgstr "                 ɢܡȢĸ硤\n"
+msgid "    h hostname : Agent hostname of machine running the Discovery Object Table.\n"
+msgstr "    h ꢡǵܡꢡ\n"
+msgid "    l label    : Unique label for the Composite Object to add or delete.\n"
+msgstr "    l     ɴǵȴ\n"
+msgid "    n not      : Node_Object_Type for the Composite Object to add.\n"
+msgstr "    n not      ǵ Node_Object_Type\n"
+msgid "    o OID      : Discovery Object Table OID to add.\n"
+msgstr "    o OID      ǵ OID\n"
+msgid "    p port     : Agent port of machine running the Discovery Object Table.\n"
+msgstr "    p port     ǵܡȢա\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "ESDIR must be set"
+msgstr " ESDIR"
+msgid "Usage: $2 -a \\\| -d \\\| -v [ -s ] -h hostname -l label -n not -o OID -p port\n"
+msgstr "Ρ$2 -a \\\| -d \\\| -v [ -s ] -h  -l  -n not -o OID -p port\n"
+msgid "It cannot be loaded on both the Agent and Platform Agent."
+msgstr "ܡȢůƺܡȢīơ"
+msgid "The options -h, -l, -n, -o, and -p must all be used with the -a option."
+msgstr " -h-l-n-o  -p  -a "
+msgid "An entry for $2 already exists."
+msgstr " $2 㡤"
+msgid "The option -l must be used with the -d option."
+msgstr " -l  -d "
+msgid "The options -h, -n, -o, and -p are not valid with the -d option."
+msgstr " -h-n-o  -p  -d "
+msgid "An entry for $2 does not exist."
+msgstr " $2 㡤"
+msgid "The options -h, -l, -n, -o, and -p are not valid with the -v option."
+msgstr " -h-l-n-o  -p  -v "
+msgid "No entries."
+msgstr "ȴ"
+msgid "The file $2 is not readable."
+msgstr " $2 ƫ̽"
+msgid "Discovery Service loaded on: Agent"
+msgstr "Τ٭īAgent"
+msgid "Discovery Service loaded on: Platform Agent."
+msgstr "Τ٭īƺܡȢ"
+msgid "Entries:"
+msgstr ""
+msgid "The discovery table is already loaded on the Agent."
+msgstr "ܡȢĸī"
+msgid "The discovery table is already loaded on the Platform Agent."
+msgstr "ƺܡȢĸī"
+#
+#=============================
+# <WS>/packages/Setup/es-apps
+#=============================
+msgid "This script reads the specified configuration file or\\n%s if not specified,\\nand installs the applications with the server."
+msgstr "Ⱥ Script ̽\\n%sΪ\\nΤȢ"
+msgid "The configuration file contains one or more lines using the following format:\n"
+msgstr "ġĶ֪Ȣթ\n"
+msgid "where:\n"
+msgstr "̧㡨\n"
+msgid "name\tis the name of the application that appears in the Application list\n"
+msgstr " name\tȢȢ"
+msgid "class\tis the name of the Java class for the application\n"
+msgstr " class\tȢ Java ɱ\n"
+msgid "args\tare optional user defined arguments to be passed to the application\n"
+msgstr "args\tīȢϯƫ\n"
+msgid "help\tis the optional help specification using the format key:helpfile or :url.\n"
+msgstr "help\tkey:helpfile  :url ֪Ȣɷƫ\n"
+msgid "There should be no quotes in the line.\n"
+msgstr "ȴſ\n"
+msgid "Lines beginning with # are considered as comments.\n"
+msgstr " # թݷҳء"
+msgid "For example:\n"
+msgstr "\n"
+msgid "Using %s"
+msgstr " %s"
+msgid "%s updated."
+msgstr "%s 仡"
+#
+#================================
+# <WS>/packages/Setup/db-export.sh
+#================================
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+#
+#==================================
+# <WS>/packages/Setup/db-import.sh
+#==================================
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+msgid "please ensure Topology & Event agents are not running..."
+msgstr "ůǵܡȢ..."
+#
+#============================
+# <WS>/packages/Setup/es-run
+#============================
+msgid "Usage : $PROGNAME option1 [option2,...]"
+msgstr "Ρ$PROGNAME  1 [ 2,...]"
+msgid "   where option1 is a Sun Management Center utility\n   and option2,...  are the arguments for 'option1'\n\n   If option1 is '-help', then the usage is printed.\n\n"
+msgstr "   ̧㡢 1  Sun Management Center Ȣ\n     2,... ҡ 1ſ\n\n   Ϊ 1  '-help'̧Ρ\n\n"
+#
+#==============================
+# <WS>/packages/Setup/es-chelp
+#===============================
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+msgid "There is an existing $PROGRAM lockfile, $LOCKFILE"
+msgstr "ġԶ $PROGRAM $LOCKFILE"
+msgid "which indicates that process is executing the $PROGRAM"
+msgstr "ݨܡ $PROGRAM"
+msgid "If this is not the case, delete the lock file,"
+msgstr "ΪӡɴȺ"
+msgid "$LOCKFILE and execute $PROGRAM again."
+msgstr "$LOCKFILE ȹ $PROGRAM"
+msgid "$sdk_helpfile either does not exist or is not writable"
+msgstr "$sdk_helpfile ƫī"
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+#
+#========================================
+# <WS>/src/db/build/build-recovery*.ksh
+#========================================
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Usage: $PROGNAME -au auid -ap apword -wu wuid -wp wpword -sp syspword -s osrvname -tsn tsname -tsp tsphyspath -tsis tssize -olfp olfpath [-cdb] [-vr]"
+msgstr "Ρ$PROGNAME -au auid -ap apword -wu wuid -wp wpword -sp syspword -s osrvname -tsn tsname -tsp tsphyspath -tsis tssize -olfp olfpath [-cdb] [-vr]"
+msgid "   -au auid               :  userid used to admin smc tablespace"
+msgstr "   -au auid               ܡ smc ֪Ϩ userid"
+msgid "   -ap apword             :  password for corresponding admin userid"
+msgstr "   -ap apword             ܡ userid "
+msgid "   -wu wuid               :  working userid used by application"
+msgstr "   -wu wuid               Ȣɢ userid"
+msgid "   -wp wpword             :  working password for corresponding working userid"
+msgstr "   -wp wpword             ɢ userid ɢ"
+msgid "   -sp syspword           :  password for system userid \\\(system\\\)"
+msgstr "   -sp syspword           ˷ userid  \\\(system\\\)"
+msgid "   -s osrvname            :  name of the oracle service used to connect to db"
+msgstr "   -s osrvname            ̯ջ oracle Τ٭"
+msgid "   -tsn tsname            :  name of the tablespace"
+msgstr "   -tsn tsname            ֪Ϩ"
+msgid "   -tsp tsphyspath        :  physical location of tablespace"
+msgstr "   -tsp tsphyspath        ֪Ϩ"
+msgid "   -tsis tssize           :  initial size of tablespace \\\(in M bytes\\\)"
+msgstr "   -tsis tssize           ֪Ϩ޲ \\\( MB ҳ\\\)"
+msgid "   -olfp olfpath          :  physical location \\\(local\\\) to write the smc30.oracle file"
+msgstr "   -olfp olfpath          ī smc30.oracle \\\(\\\)"
+msgid "   -cdb                   :  indicates that any existing tablespace and user"
+msgstr "   -cdb                   ȴܢȴ֪Ϩůϯ"
+msgid "                             matching the specified parameters above are"
+msgstr "                             ĸٶϯ"
+msgid "                             dropped before proceeding. use is optional"
+msgstr "                             Щ۹ƫ"
+msgid "   -vr                    :  this option is used to verify all objects"
+msgstr "   -vr                    Ⱥȴǵ"
+msgid "                             and to perform a recovery sequence if any"
+msgstr "                             ůߦѥٯɢΪ"
+msgid "                             problems are detected"
+msgstr "                             ̯Ƕ"
+msgid "   -ver                   :   option"
+msgstr "   -ver                   "
+msgid "   -lf logfile            :  logfile name"
+msgstr "   -lf logfile            "
+msgid "ERROR: the ESDIR environment variable has not been set"
+msgstr "먡 ESDIR "
+msgid "illegal option encoutered : $2"
+msgstr "̯$2"
+msgid "this is a pc installation : $2"
+msgstr "Ⱥҳ pc ҡ$2"
+msgid "this is a sparc installation : $2"
+msgstr "Ⱥҳ sparc ҡ$2"
+msgid "unknown system type, exiting........................"
+msgstr "˷........................"
+msgid "can not find sqlplus on path, exiting........................."
+msgstr "ĸ̯ sqlplus........................."
+msgid "the current directory is not writable "
+msgstr "Щƫī "
+msgid "sqlplus writes an error log \\\(sqlnet.log\\\)"
+msgstr "sqlplus ī \\\(sqlnet.log\\\)"
+msgid "to the current directory in the event of"
+msgstr "Щ㡾"
+msgid "a connection problem"
+msgstr "ǵ㡿"
+msgid "the /tmp directory does not exist"
+msgstr "/tmp "
+msgid "however, a file named /tmp does exist"
+msgstr "紡ȴԶҳ /tmp "
+msgid "/tmp directory is not writable "
+msgstr "/tmp ƫī"
+msgid "the \\\(-au auid\\\) command line parameter was not specified "
+msgstr " \\\(-au auid\\\) ٶ"
+msgid "the \\\(-ap apword\\\) command line parameter was not specified "
+msgstr " \\\(-ap apword\\\) ٶ"
+msgid "the \\\(-wu wuid\\\) command line parameter was not specified "
+msgstr " \\\(-wu wuid\\\) ٶ"
+msgid "the \\\(-wp wpword\\\) command line parameter was not specified "
+msgstr " \\\(-wp wpword\\\) ٶ"
+msgid "the \\\(-sp syspword\\\) command line parameter was not specified "
+msgstr " \\\(-sp syspword\\\) ٶ"
+msgid "the \\\(-s osrvname\\\) command line parameter was not specified "
+msgstr " \\\(-s osrvname\\\) ٶ"
+msgid "the \\\(-tsn tsname\\\) command line parameter was not specified "
+msgstr " \\\(-tsn tsname\\\) ٶ"
+msgid "the \\\(-tsp tsphyspath\\\) command line parameter was not specified "
+msgstr " \\\(-tsp tsphyspath\\\) ٶ"
+msgid "the \\\(-tsis tssize\\\) command line parameter was not specified "
+msgstr " \\\(-tsis tssize\\\) ٶ"
+msgid "the \\\(-olfp olfpath\\\) command line parameter was invalid! "
+msgstr "\\\(-olfp olfpath\\\) ٶ桪 "
+msgid "exiting..................."
+msgstr "..................."
+msgid "The Initial Tablespace Size given is not invalid"
+msgstr "޲֪Ϩ"
+msgid "valid range is 1 to 500 M"
+msgstr "ȴҳ 1 ̯ 500 M"
+msgid "Writing Applogin file : $2"
+msgstr "ī Applogin $2"
+msgid "file : $2, has a quit statement in it."
+msgstr "file : $2̧ȴġԶ"
+msgid "file : $str3, has a quit statement in it."
+msgstr "file : $str3̧ȴġԶ"
+msgid "need to remove quit statements, exiting........................"
+msgstr "........................"
+msgid "source file: $2 for step: $3 is missing"
+msgstr "$2$3"
+msgid "probably need to execute mkaggregatefiles.ksh"
+msgstr "ƫ mkaggregatefiles.ksh"
+msgid "source file for one or more steps is missing, exiting........................"
+msgstr "ġԶ¡........................"
+msgid " removing existing logfile : /tmp/recovery.err"
+msgstr " ܢȴ/tmp/recovery.err"
+msgid " removing existing logfile :  $2"
+msgstr " ܢȴ  $2"
+msgid " removing existing temporary sql :  $2"
+msgstr " ܢȴ sql  $2"
+msgid "Unable to successfully append $2 onto $3"
+msgstr "ȩʢ $2  $3"
+msgid "return code from cat : $2"
+msgstr " cat $2"
+msgid "$2 file not found"
+msgstr "̯ $2 "
+msgid "Unable to successfully substitue in $2"
+msgstr " $2 ȩ̽"
+msgid "substitution string : $2"
+msgstr "̽롨$2"
+msgid "return code from sed : $2"
+msgstr " sed $2"
+msgid "Unable to successfully perform all sed based substitutions on $2 into $3"
+msgstr "ȩ $2 ĸȴ sed ̽ɢ̯ $3 "
+msgid "return code from grep : $2, meaning it found un-substituted strings"
+msgstr " grep $2̯̽"
+msgid "$2 file not found\\\(1\\\)"
+msgstr "̯ $2 \\\(1\\\)"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "sqlerror code = $2"
+msgstr "sqlerror  = $2"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "unhandled error detected, only recourse is to stop processing"
+msgstr "̯ݨܡ먡ġȢݨܡ"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "execution of $2 ok!!"
+msgstr "$2 ڦ"
+msgid "step file $2 not found"
+msgstr "̯ $2"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "skipping execution of $2"
+msgstr " $2 "
+msgid "$2 dependent step $3 did not execute"
+msgstr " $3  $2 "
+msgid "$2 dependent step $3 failed execution"
+msgstr " $3  $2 "
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "while in recovery mode, attempts to find a successfully executed dependent of "
+msgstr "ߦȢĶ롢ȩ $2 "
+msgid "the $2 step was unsuccessfull.  premature exit!!"
+msgstr "ȩȮ֡"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "while in recovery mode, attempts to find a valid step to execute following "
+msgstr "ߦȢĶ롢ƫĶ $2 ȴ"
+msgid "the $2 step was unsuccessfull.  premature exit!!"
+msgstr "ȩȮ֡"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "too many attempts to execute the $2 step"
+msgstr " $2 Ŵ"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "please see the $2 file for listing details"
+msgstr "ٶ $2 ع"
+#
+#========================================
+# <WS>/src/db/build/mkaggregatefiles.ksh
+#========================================
+msgid " removing existing verify inventory  : agg-verify-proc-inventory.sql"
+msgstr " ܢȴջagg-verify-proc-inventory.sql"
+msgid "-        Create agg-packages-topology.sql file              -"
+msgstr "-        ǡ agg-packages-topology.sql               -"
+msgid "-       Create agg-procedures-topology.sql file             -"
+msgstr "-       ǡ agg-procedures-topology.sql              -"
+msgid "-          Add to agg-createalltables.sql file              -"
+msgstr "-           agg-createalltables.sql                -"
+msgid "-       Add to agg-verifyalltableattribs.sql file           -"
+msgstr "-        agg-verifyalltableattribs.sql          -"
+msgid "-          Add to agg-dataload-preseq.sql file              -"
+msgstr "-           agg-dataload-preseq.sql               -"
+msgid "-        Create agg-packages-eventmanager.sql file          -"
+msgstr "-        ǡ agg-packages-eventmanager.sql           -"
+msgid "-        Create agg-procedures-eventmanager.sql file        -"
+msgstr "-        ǡ agg-procedures-eventmanager.sql         -"
+msgid "-         Add to agg-createalltables.sql file               -"
+msgstr "-          agg-createalltables.sql                -"
+msgid "-         Add to agg-verifyalltableattribs.sql file         -"
+msgstr "-          agg-verifyalltableattribs.sql          -"
+msgid "-       Create agg-packages-mgmtservice.sql file            -"
+msgstr "-       ǡ agg-packages-mgmtservice.sql             -"
+msgid "-       Create agg-procedures-mgmtservice.sql file          -"
+msgstr "-       ǡ agg-procedures-mgmtservice.sql           -"
+msgid "-           Add to agg-createalltables.sql file             -"
+msgstr "-          agg-createalltables.sql                -"
+msgid "-         Add to agg-verifyalltableattribs.sql file         -"
+msgstr "-          agg-verifyalltableattribs.sql          -"
+msgid "-        Create agg-verify-proc-inventory.sql file          -"
+msgstr "-        ǡ agg-verify-proc-inventory.sql           -"
+#
+#==================================================
+# <WS>/src/oa/modules/configd4u/bin/es-setup.sh
+#==================================================
+msgid "Setup failed while adding module $2 into $3"
+msgstr " $2  $3 "
+msgid "$2 does not exist"
+msgstr "$2 "
+msgid "Added module $2 to $3."
+msgstr " $2  $3"
+msgid "$2 is not readable, Could not add the module $3"
+msgstr "$2 ƫ̽ $3"
+msgid "Setup of sunfire config reader module failed."
+msgstr "sunfire ̽"
+#
+#======================================
+# <WS>/src/oa/base/generic/bin/*.sh
+#======================================
+msgid "usage: $basename [-sh|-csh] [-internal|-external]"
+msgstr "Ρ$basename [-sh|-csh] [-internal|-external]"
+msgid "ERROR: the ESROOT environment variable has not been set"
+msgstr "먡 ESROOT "
+msgid "usage: $PROGNAME -s \\\"<secret> [-p <public>]  [-u <user>[ ...]] [-h <host>] [-c <component>[ ...]]\\\""
+msgstr "Ρ$PROGNAME -s \\\"<ǵ> [-p <>]  [-u <ϯ>[ ...]][-h <>] [-c <ǵ>[ ...]]\\\""
+msgid "       <secret> is the superuser password\n"
+msgstr "       <ǵ> ϯ\n"
+msgid "       <public> is the public password (default=public)\n"
+msgstr "       <> ԫ=public\n"
+msgid "       <user> is the list of initial seeded users\n"
+msgstr "       <ϯ> ϯ\n"
+msgid "       <host> is the fallback host name\n"
+msgstr "       <> \n"
+msgid "       <component> is agent/cfgserver/event/cstservice/topology/trap/\n"
+msgstr "       <ǵ>  agent/cfgserver/event/cstservice/topology/trap/\n"
+msgid "       Omit all <component>s to do them all\n"
+msgstr "       ܩȴ <ǵ> \n"
+msgid "$PROGNAME: ESROOT must be set."
+msgstr "$PROGNAME:  ESROOT"
+msgid "$PROGNAME: $1: unknown component"
+msgstr "$PROGNAME: $1: ǵ"
+msgid "$PROGNAME: ERROR: blank secret not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩǵ ..."
+msgid "$PROGNAME: ERROR: blank password not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩ ..."
+msgid "PROGNAME: WARNING ... secret will be truncated to 8 characters"
+msgstr "PROGNAME:  ... ǵҳ 8 Զ"
+msgid "$PROGNAME: security.superuser name not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.superuser ꢡ domain-config.x  user-config.x "
+msgid "$PROGNAME: security.generaluser name not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.generaluser ꢡ domain-config.x  user-config.x "
+msgid "$var"
+msgstr "$var"
+msgid "Interrupted..."
+msgstr "..."
+msgid "$PROGNAME: security.userfile not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.userfile domain-config.x  user-config.x "
+msgid "$PROGNAME: security.authOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.authOID domain-config.x  user-config.x "
+msgid "$PROGNAME: security.privOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.privOID domain-config.x  user-config.x "
+msgid "$PROGNAME: ${COMP}.${COMP}Server not found - using $DEFHOST."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}Server -  $DEFHOST"
+msgid "$PROGNAME: ${COMP}.${COMP}snmpPort not found - skipping $COMP."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}snmpPort - ܩ $COMP"
+msgid "ESROOT must be set\n"
+msgstr " ESROOT\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "OS $sys $rel is not supported"
+msgstr " OS $sys $rel"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "gettext 'Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "gettext 'ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+#
+#=================================================
+# <WS>/src/java/base/console/bin/es-console.sh
+#=================================================
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "DISPLAY environment variable must be set"
+msgstr " DISPLAY "
+msgid "SYMON_JAVAHOME variable must be set"
+msgstr " SYMON_JAVAHOME "
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+#
+#============================================
+# <WS>/src/java/base/server/bin/es-server*
+#============================================
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯Զݨܡ \\\($COMMAND\\\)"
+msgid "No Processes Killed"
+msgstr "ɴݨܡ"
+msgid "gettext 'More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "gettext '̯Զݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID using kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID with kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "ESDIR environment variable must be set"
+msgstr " ESDIR "
+msgid "SYMON_JAVAHOME variable must be set"
+msgstr " SYMON_JAVAHOME "
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+#
+#====================================================
+# <WS>/src/java/com/sun/symon/base/cli/bin/es-cli
+#====================================================
+msgid "$SYMON_JAVAHOME/jre/bin/java must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$SYMON_JAVAHOME/jre/bin/java  Solaris_JDK_1.2.1_04 \n"
+
+#
+#  Strings from Halcyon scripts
+#
+msgid "usage: $basename [-sh|-csh] [-internal|-external]"
+msgstr "Ρ$basename [-sh|-csh] [-internal|-external]"
+msgid "ERROR: the ESROOT environment variable has not been set"
+msgstr "먡 ESROOT "
+msgid "usage: $PROGNAME -s <secret> [-p <public>]  [-u <user>[ ...]] [-h <host>] [-c <component>[ ...]]"
+msgstr "Ρ$PROGNAME -s <ǵ> [-p <>]  [-u <ϯ>[ ...]][-h <>] [-c <ǵ>[ ...]]"
+msgid "<secret> is the superuser password"
+msgstr "<ǵ> ϯ"
+msgid "<public> is the public password (default=public)"
+msgstr "<> ԫ=public"
+msgid "<user> is the list of initial seeded users"
+msgstr "<ϯ> ϯ"
+msgid "<host> is the fallback host name"
+msgstr "<> "
+msgid "<component> is agent/cfgserver/event/topology/trap"
+msgstr "<ǵ>  agent/cfgserver/event/topology/trap"
+msgid "Omit all <component>s to do them all"
+msgstr "ܩȴ <ǵ> "
+msgid "$PROGNAME: ESROOT must be set."
+msgstr "$PROGNAME:  ESROOT"
+msgid "$PROGNAME: $1: unknown component"
+msgstr "$PROGNAME: $1: ǵ"
+msgid "$PROGNAME: ERROR: blank secret not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩǵ ..."
+msgid "$PROGNAME: ERROR: blank password not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩ ..."
+msgid "$PROGNAME: WARNING ... secret will be truncated to 8 characters"
+msgstr "$PROGNAME:  ... ǵҳ 8 Զ"
+msgid "$PROGNAME: security.superuser name not found. Check domain-confg.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.superuser ꢡ domain-confg.x  user-config.x "
+msgid "$PROGNAME: security.generaluser name not found. Check domain-cofig.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.generaluser ꢡ domain-cofig.x  user-config.x "
+msgid "Copying $FILENAME to $ESDIR/cfg..."
+msgstr " $FILENAME ̯ $ESDIR/cfg..."
+msgid "Copying ${1}-${FILENAME} to $ESDIR/cfg..."
+msgstr " ${1}-${FILENAME} ̯ $ESDIR/cfg..."
+msgid "Copying ${COMP}-${FILENAME} to $ESDIR/cfg..."
+msgstr " ${COMP}-${FILENAME} ̯ $ESDIR/cfg..."
+msgid "$var"
+msgstr "$var"
+msgid "Interrupted..."
+msgstr "..."
+msgid "$PROGNAME: security.userfile not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.userfile domain-config.x  user-config.x "
+msgid "$PROGNAME: security.authOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.authOID domain-config.x  user-config.x "
+msgid "$PROGNAME: security.privOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.privOID domain-config.x  user-config.x "
+msgid "$PROGNAME: ${COMP}.${COMP}Server not found - using $DEFHOST"
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}Server -  $DEFHOST"
+msgid "$PROGNAME: ${COMP}.${COMP}snmpPort not found - skipping $COP."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}snmpPort - ܩ $COP"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "OS $sys $rel is not supported"
+msgstr " OS $sys $rel"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID with the force \\\($COMMAND\\\)"
+msgstr "ڰ̱ \\\($COMMAND\\\) ݨܡ ID $PID"
+msgid "DISPLAY environment variable must be set"
+msgstr " DISPLAY "
+msgid "More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯Զݨܡ \\\($COMMAND\\\)"
+msgid "No Processes Killed"
+msgstr "ɴݨܡ"
+msgid "Terminating Process ID $PID using kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID with kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "ESDIR environment variable must be set"
+msgstr " ESDIR "
+#
+# for es-tool - a SDK tool for integrating applications into console
+#
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+
+msgid "$sdk_toolfile either does not exist or is not writable"
+msgstr "$sdk_toolfile ƫī"
+
+msgid "There is an existing $PROGRAM lockfile, $LOCKFILE"
+msgstr "ġԶ $PROGRAM $LOCKFILE"
+
+msgid "which indicates that process is executing the $PROGRAM"
+msgstr "ݨܡ $PROGRAM"
+
+msgid "If this is not the case, delete the lock file,"
+msgstr "ΪӡɴȺ"
+
+msgid "$LOCKFILE and execute $PROGRAM again."
+msgstr "$LOCKFILE ȹ $PROGRAM"
+
+msgid "$sdk_helpfile either does not exist or is not writable"
+msgstr "$sdk_helpfile ƫī"
+
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+
+msgid "Using %s"
+msgstr " %s"
+
+msgid "%s updated."
+msgstr "%s 仡"
+
+msgid "This script reads the specified configuration file or\\n%s if not specified,\\nand installs the applications with the server."
+msgstr "Ⱥ Script ̽\\n%sΪ\\nΤȢ"
+
+msgid "The configuration file contains one or more lines using the following format:\n"
+msgstr "ġĶ֪Ȣթ\n"
+
+msgid "where:\n"
+msgstr "̧㡨\n"
+
+msgid "name\tis the name of the application that appears in the Application list\n"
+msgstr " name\tȢȢ"
+
+msgid "class\tis the name of the Java class for the application\n"
+msgstr " class\tȢ Java ɱ\n"
+
+msgid "args\tare optional user defined arguments to be passed to the application\n"
+msgstr "args\tīȢϯƫ\n"
+
+msgid "help\tis the optional help specification using the format key:helpfile or :url.\n"
+msgstr "help\tkey:helpfile  :url ֪Ȣɷƫ\n"
+
+msgid "There should be no quotes in the line.\n"
+msgstr "ȴſ\n"
+
+msgid "Lines beginning with # are considered as comments.\n"
+msgstr " # թݷҳء"
+
+msgid "For example:\n"
+msgstr "\n"
+
+#
+#====================================================
+# <WS>/packages/Setup/es-platform
+#====================================================
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "       Where the options represent:\n"
+msgstr "       ̧\n"
+msgid "  a : to add an instance of platform agent\n"
+msgstr "  aƺܡȢ\n"
+msgid "  d : to delete an instance of platform agent\n"
+msgstr "  dɴƺܡȢ\n"
+msgid "You can not specify both a and d option in the same command"
+msgstr "ġԶ a ů d "
+msgid "You can not have spaces in the instance name."
+msgstr "ȴϨ֪"
+msgid "Port $2 is not a valid port number, try another number : "
+msgstr " $2 ȴƶġԶ "
+msgid "This port is being used by Sun Management Center agent, try another number : "
+msgstr "Ⱥ Sun Management Center ܡȢƶġԶ "
+msgid "This port is being used by some instance, try another number : "
+msgstr "ȺԶƶġԶ "
+msgid "This port is being used by some another process, try another number : "
+msgstr "ȺƶġԶݨܡƶġԶ "
+msgid "This instance is already present."
+msgstr "Ⱥ㡤"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+
+# END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/nio/cs/tradChinese.win.po	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,4760 @@
+domain "ES_SCRIPTS"
+#
+#==============================
+# <WS>/packages/Setup/es-inst
+#==============================
+msgid "You need to be root before running this program.\n"
+msgstr "ȢЩǿȩҳ root\n"
+msgid "Can not remove the directory /tmp/SunMC30Install\n"
+msgstr " /tmp/SunMC30Install\n"
+msgid "Can not create the directory /tmp/SunMC30Install/sbin\n"
+msgstr "ǡ /tmp/SunMC30Install/sbin\n"
+msgid "Can not copy the required files to /tmp/SunMC30Install\n"
+msgstr "̯ /tmp/SunMC30Install\n"
+msgid "Can not open the display. Either X server is not allowing\n"
+msgstr " Either X server is not allowing\n"
+msgid "the connection or you are running it from console login.\n"
+msgstr "ϯƺīơ\n"
+msgid "Please read Sun Management Center installation Readme and\n"
+msgstr " Sun Management Center  Readme \n"
+msgid "run installation as mentioned.\n"
+msgstr "ҡ\n"
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "  Space calculations will be wrong."
+msgstr "  Ϩȴ먡"
+msgid "Insufficient disk space to install the requested Sun Management Center components"
+msgstr "ȴϨƫ Sun Management Center ǵ"
+msgid "  - Respecify the components to install so it takes less space"
+msgstr "  - ģ́ŷϨ"
+msgid "  - Uninstall some existing packages to make room for Sun Management Center"
+msgstr "  - ġܢȴաϨ Sun Management Center"
+msgid "  - Make a soft link for $2 that points to more space"
+msgstr "  - ҳ $2 ܨġԶڰ̱Ϩ"
+msgid "  - Ask your system administrator for help"
+msgstr "  - ˷ܡɷ"
+msgid "Package $2 is already installed on this system."
+msgstr "Ⱥ˷ĸħ $2"
+msgid "Please verify the platform for package: $2"
+msgstr "ƺ$2"
+msgid "Found: $2"
+msgstr "̯$2"
+msgid "Skipping package $2"
+msgstr " $2"
+msgid "There appear to be some permission problems with the installation"
+msgstr "ĸƫȴġƫ"
+msgid "directory: $2"
+msgstr "$2"
+msgid "In order to install Sun Management Center, root must be able to write to the"
+msgstr " Sun Management Centerroot ϯ̦ȴ"
+msgid "installation directory and own the files in that directory."
+msgstr "īƫ⡢ȴĶ"
+msgid "Please check your configuration and try again."
+msgstr "ܡ"
+msgid "Exiting Sun Management Center installation."
+msgstr " Sun Management Center ʩ"
+msgid "Error: Cannot find pack key $2."
+msgstr "먡̯ $2"
+msgid "There are $2 layers for your selection:"
+msgstr "ȴ $2 Զȹ"
+msgid "No layers were selected for installation."
+msgstr "ȴ̽ȹ"
+msgid "No layers were found for installation."
+msgstr "̯ȹ"
+msgid "No packs are defined in the installation configuration file."
+msgstr "ա"
+msgid "Please select the packs to install:"
+msgstr "̽ա"
+msgid "No packs were selected for installation."
+msgstr "̽ա"
+msgid "Error: Cannot find component key $2."
+msgstr "먡̯ǵ $2"
+msgid "Error: Cannot find key $2."
+msgstr "먡̯ $2"
+msgid "    Component $2 has already been installed."
+msgstr "    ǵ $2"
+msgid "    The corresponding packages are: $2"
+msgstr "    ҳ$2"
+msgid "  Invalid source directory."
+msgstr "  硤"
+msgid "Source directory: $2"
+msgstr "硨$2"
+msgid "Invalid parameter for productExists\\\(\\\): $2"
+msgstr " productExists ٶ\\\(\\\)$2"
+msgid "Production Environment Installation"
+msgstr "ܨ"
+msgid "Developer Environment Installation"
+msgstr "ĩ"
+msgid "Cannot find $2."
+msgstr "̯ $2"
+msgid "Invalid License, please buy a valid license."
+msgstr "桢ȴ⡤"
+msgid "  Invalid entry."
+msgstr "  "
+msgid "  Installation configuration files not found."
+msgstr "  ̯"
+msgid "You can install only agent components on Solaris 2.5.1"
+msgstr "ƫƷ Solaris 2.5.1 ĸܡȢǵ"
+msgid "Select one of the following:"
+msgstr "̽Ķġ"
+msgid "\\\(1\\\) Production Environment \\\(PE\\\)"
+msgstr "\\\(1\\\) ܨ \\\(PE\\\)"
+msgid "\\\(2\\\) Developer Environment \\\(DE\\\)"
+msgstr "\\\(2\\\) ĩ \\\(DE\\\)"
+msgid "Some components have already been installed in $2"
+msgstr " $2 ħšǵ"
+msgid "The target directory will be set to $2"
+msgstr "ҳ $2"
+msgid "Cannot create the directory $2"
+msgstr "ǡ $2"
+msgid "Target directory: $2"
+msgstr "硨$2"
+msgid "Package $2 is already installed."
+msgstr " $2 ҡ"
+msgid "Package not found: $2"
+msgstr "̯ա$2"
+msgid "Error: Cannot find pack key $2."
+msgstr "먡̯ $2"
+msgid "Pack: $2"
+msgstr "ա$2"
+msgid "  Please select the components to install:"
+msgstr "  ̽ǵ"
+msgid "    Component $2 is essential and will be automatically installed."
+msgstr "    $2 ҳǵٯҡ"
+msgid "    Component $2 has already been installed."
+msgstr "    ǵ $2"
+msgid "    The corresponding packages are: $2"
+msgstr "    ҳ$2"
+msgid "    Component $2 is dependent on: $3"
+msgstr "    ǵ $2 ʡ$3"
+msgid "    The component\\\(s\\\) will be automatically installed."
+msgstr "    ǵٯҡ"
+msgid "  Selected Components: $2"
+msgstr "  ̽ǵ$2"
+msgid "  Selected Components: \\\<default\\\>"
+msgstr "  ̽ǵ\\\<\\\>"
+msgid "  Warning - Could not find pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Warning - Could not find the pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Warning - Could not find the pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Checking disk space..."
+msgstr "Ϩ..."
+msgid "Insufficient disk space to install Sun Management Center Database Software"
+msgstr "ȴϨƫ Sun Management Center ջ"
+msgid "Sun Management Center DB application software requires: $2 Kbytes"
+msgstr "Sun Management Center DB ȢϨ桨$2 KB"
+msgid "The installation directory \\\"$2\\\" has: $3 Kbytes"
+msgstr " \\\"$2\\\" ȴϨ桨$3 KB"
+msgid "Please supply a directory."
+msgstr "硤"
+msgid "Insufficient disk space to install Sun Management Center Database Dbfiles"
+msgstr "ȴϨƫ Sun Management Center ջ Db "
+msgid "Sun Management Center DB application software requires: $2 Kbytes"
+msgstr "Sun Management Center DB ȢϨ桨$2 KB"
+msgid "The installation directory \\\"$2\\\" has: $3 Kbytes"
+msgstr " \\\"$2\\\" ȴϨ桨$3 KB"
+msgid "Please supply a directory."
+msgstr "硤"
+msgid "Disk Space Requirements:"
+msgstr "Ϩ塨"
+msgid "Space required \\\(in $2\\\):  $3 blocks."
+msgstr "Ϩ \\\($2 \\\)$3 Զٴۡ"
+msgid "Space available \\\(in $2\\\): $3 blocks."
+msgstr "ƫϨ \\\($2 \\\)$3 Զٴۡ"
+msgid "Insufficient space available in $2"
+msgstr "$2 ƫϨ"
+msgid "Here are some possible fixes to alleviate the disk space problem:"
+msgstr "ĶҳƫϨΡ"
+msgid "\\\"$2\\\" resides on CD \\\#$3."
+msgstr "\\\"$2\\\"  \\\#$3 ĸ"
+msgid "New source directory: $2"
+msgstr "硨$2"
+msgid "Invalid directory."
+msgstr "硤"
+msgid "Installing the components..."
+msgstr "ǵ..."
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "The package $2 is already installed"
+msgstr " $2"
+msgid " Selection Summary"
+msgstr " "
+msgid "Looking for addon products on CD \\\#2..."
+msgstr " CD \\\#2 ĸܨ..."
+msgid "New source directory: $2"
+msgstr "硨$2"
+msgid "                Sun Management Center 3.0 Addons Product Selection:                 "
+msgstr "                Sun Management Center 3.0 ܨ塨                 "
+msgid "Installing the product: $2"
+msgstr "ܨ¡$2"
+msgid "Cannot find pkginfo file for package: $2"
+msgstr "̯ pkginfo $2"
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "Supports: $2 - $3"
+msgstr "Ρ$2 - $3"
+msgid "Supports: $2"
+msgstr "Ρ$2"
+msgid "Name: $2"
+msgstr "ꢡ$2"
+msgid "Description: $2"
+msgstr "$2"
+msgid "Unsupported OS version: $2"
+msgstr " OS ۡ$2"
+msgid "No components to install."
+msgstr "ȴǵ"
+msgid "A previous version of Sun Management Center exists."
+msgstr "ȴ Sun Management Center 㡤"
+msgid "Please uninstall it locally in \\\"$2\\\"."
+msgstr "ҡ \\\"$2\\\" 㡿"
+msgid "Cannot find $2"
+msgstr "̯ $2"
+msgid "Error copying the locale files to: $2"
+msgstr "̯Ķ먡$2"
+msgid "Setup script will use English."
+msgstr " script ơ"
+msgid "Please run setup locally in \\\"$2\\\"."
+msgstr " \\\"$2\\\" 㡿"
+msgid "ESROOT is not set."
+msgstr " ESROOT"
+msgid "Invalid directory: $2"
+msgstr "硨$2"
+msgid "Invalid file: $2"
+msgstr "$2"
+msgid "Both -S and -T options must be specified"
+msgstr "-S  -T ̥Զ"
+msgid "This script will help you to install the Sun Management Center software."
+msgstr " script ̶ɷ Sun Management Center ա"
+msgid "Do you want to install this package now?"
+msgstr "ǡɻȺա"
+msgid "    Do you want to proceed?"
+msgstr "    "
+msgid "  Do you want to install components in layer: $2?"
+msgstr "  Ķȹǵ$2?"
+msgid "  Do you want to install $2?"
+msgstr "   $2"
+msgid "Do you want to install the product: $2?"
+msgstr "Ⱥܨ¡$2?"
+msgid "Do you want to install this package now?"
+msgstr "ǡɻȺա"
+msgid "Would you like to uninstall it now?"
+msgstr "ǡɻá"
+msgid "Would you like to save your old data?"
+msgstr "á"
+msgid "Do you want to run setup now?"
+msgstr "ǡɻҡ"
+msgid "Please enter the source directory:"
+msgstr "ī硨"
+msgid "Enter the development system license: "
+msgstr "ī˷⡨ "
+msgid "Enter your choice: [1\\\|2]"
+msgstr "ī塨[1\\\|2]"
+msgid "Please enter the target directory [$2]:"
+msgstr "ī [$2]"
+msgid "Enter the directory to install the database: "
+msgstr "īջ硨 "
+msgid "Please insert the second CD or enter the source directory from disk 2 \\\[$2\\\]"
+msgstr "īĨگ CD ī 2  \\\[$2\\\]"
+msgid "Please enter the new source directory:"
+msgstr "ī硨"
+msgid "Please enter the OS version for \\\"$2\\\" \\\[$3\\\]: "
+msgstr "ī \\\"$2\\\"  OS  \\\[$3\\\] "
+msgid "Please enter the platform for \\\"$2\\\" \\\[$3\\\]: "
+msgstr "ī \\\"$2\\\" ƺ \\\[$3\\\] "
+msgid "Log file: $2"
+msgstr "$2"
+msgid "                         End of Installation                         "
+msgstr "                                                  "
+msgid "For installing Sun Management Center on $2, we need to know the"
+msgstr "ҳħ Sun Management Center  $2 ĸʼԯϡ"
+msgid "operating system on $2. This should be the output of the command"
+msgstr "$2 ĸɢ˷ӡ"
+msgid "/usr/bin/uname -r. The command must be executed on a machine booted with"
+msgstr "/usr/bin/uname -r Ϊ"
+msgid "disk mounted on $2"
+msgstr " $2 ٯĸ硤"
+msgid "For installing Sun Management Center on $2, we need to know the"
+msgstr "ҳħ Sun Management Center  $2 ĸʼԯϡ"
+msgid "machine type of machine whose root filesystem is or will be mounted on $2."
+msgstr "̧˷ɻ $2 ĸΡ"
+msgid "This should be the output of the following command"
+msgstr "ĶΪ"
+msgid "    /usr/platform/PLATFORM/sbin/prtdiag \\\| /usr/bin/head -1 \\\| /usr/bin/cut -f2 -d:"
+msgstr "    /usr/platform/PLATFORM/sbin/prtdiag \\\| /usr/bin/head -1 \\\| /usr/bin/cut -f2 -d:"
+msgid "Please note that the above commands must be executed on the target machine."
+msgstr "ĸĸ硤"
+msgid "Would you like to migrate your 2.x data?"
+msgstr " 2.x á"
+msgid "A previous version of Sun Management Center Data exists."
+msgstr "ȴ Sun Management Center 㡤"
+msgid "This will remove all files under $2. If you have any custom"
+msgstr " $2 ĶȴΪԶĶȴ"
+msgid "scripts under this directory, please move them to an alternate location"
+msgstr "Ƕ scriptsЩԯ"
+msgid "before proceeding."
+msgstr "̯"
+msgid "Do you wish to continue with the removal of the existing 2.x data"
+msgstr "ܢȴ 2.x "
+#
+#===============================
+# <WS>/packages/Setup/es-setup
+#===============================
+msgid "Setup of $2 component failed."
+msgstr " $2 ǵ"
+msgid "Exiting setup."
+msgstr ""
+msgid "The Sun Management Center Setup File \\\($2\\\)$3"
+msgstr "Sun Management Center  \\\($2\\\)$3"
+msgid "    is missing. Cannot Setup Sun Management Center $2."
+msgstr "    ¡ Sun Management Center $2"
+msgid "Initiating setup for Sun Management Center $2 Component."
+msgstr " Sun Management Center $2 ǵ "
+msgid "Please read the release notes to configure the device type."
+msgstr "Ρ"
+msgid "Using log file: $2."
+msgstr "$2."
+msgid "   Sun Management Center Setup Program"
+msgstr "   Sun Management Center Ȣ"
+msgid "This program does setup of Sun Management Center components that are installed on your system."
+msgstr "ȺȢ˷ĸ Sun Management Center ǵ"
+msgid "Checking for Sun Management Center components installed on your system."
+msgstr "˷ĸ Sun Management Center ǵ"
+msgid "You Do not have any Sun Management Center components installed."
+msgstr "Ƕ Sun Management Center ǵ"
+msgid "You may want to run setup after installing"
+msgstr " Sun Management Center ǵѥƫ"
+msgid "    the Sun Management Center components."
+msgstr "    Ȣ"
+msgid "You have the following Sun Management Center components installed"
+msgstr "ħĶ Sun Management Center ǵ"
+msgid "             Sun Management Center Server"
+msgstr "             Sun Management Center Τ"
+msgid "             Sun Management Center Agent"
+msgstr "             Sun Management Center ܡȢ"
+msgid "             Sun Management Center Console"
+msgstr "             Sun Management Center ƺ"
+msgid "This script will perform the setup for each of these components"
+msgstr " Script ҳǵʩ"
+msgid "Core Sun Management Center setup complete."
+msgstr " Sun Management Center ܫ"
+msgid "Setup of Sun Management Center addons incomplete. Exiting"
+msgstr " Sun Management Center ȩ Exiting"
+msgid "Sun Management Center setup complete."
+msgstr " Sun Management Center ܫ"
+msgid "Problems occured with setup of the following addons: $2"
+msgstr "Ķ$2"
+msgid "Setup log stored in $2"
+msgstr " $2 "
+msgid "A minimum of 256 MB RAM is required to run Sun Management Center."
+msgstr "ŷȴ 256 MB  RAM  Sun Management Center"
+msgid "Current system has $2 MB RAM."
+msgstr "Щ˷̦ȴ $2 MB  RAM"
+msgid "Can not continue to setup Sun Management Center DB."
+msgstr " Sun Management Center DB"
+msgid "Checking /etc/system file..."
+msgstr " /etc/system ..."
+msgid "Checking memory available..."
+msgstr "ƫش..."
+msgid "Checking /etc/system file error. It can not be updated."
+msgstr " /etc/system 먡 It can not be updated."
+msgid "The /etc/system file needs to be changed for Sun Management Center DB requirements."
+msgstr " /etc/system  Sun Management Center DB 塤"
+msgid "Backing up /etc/system to /etc/system.SunMCDB.backup"
+msgstr "ެǹ /etc/system to /etc/system.SunMCDB.backup"
+msgid "/etc/system file has not been changed."
+msgstr " /etc/system file "
+msgid "In order for kernel variable changes to take effect, this "
+msgstr "ҳ桢ٯ"
+msgid "machine must be rebooted.  You must reboot this machine now"
+msgstr "檡ǡɻٯ"
+msgid "and then run the setup again."
+msgstr "ѥԶʩ"
+msgid "Cannot create link $2 to directory $3"
+msgstr "ǡͻ $3  $2"
+msgid "Sun Management Center DB setup cannot continue."
+msgstr "Sun Management Center DB ʩ"
+msgid "Error changing ownership of $2 to root.  Installation cannot continue."
+msgstr " $2 ȴҳ root ɢ먡ҡ"
+msgid "Configuring Sun Management Center DB listener and service files..."
+msgstr " Sun Management Center DB Τ٭..."
+msgid "The default listener port $2 for Sun Management Center DB has already been used."
+msgstr "Sun Management Center DB  $2 ݷ"
+msgid "Please input another port number for Sun Management Center DB listener."
+msgstr "īƶġԶ Sun Management Center DB "
+msgid "Error in resetting the configuration files for Sun Management Center DB."
+msgstr " Sun Management Center DB 먡"
+msgid "Linking database, Please wait"
+msgstr "ջԷ"
+msgid "in the event of error, see /tmp/relink.log"
+msgstr "ǵ㡢ٶ /tmp/relink.log"
+msgid "Create ora passord file"
+msgstr "ǡ ora "
+msgid "/usr/bin/make is needed on Sun Management Center server machine. The current"
+msgstr "Sun Management Center Τĸȴ /usr/bin/makeЩ"
+msgid "failed to create internal user password file : $2"
+msgstr "ǡϯ$2"
+msgid "does not have it. Please make this file available and run setup again"
+msgstr "ȴԶҳƫѥʩ"
+msgid "execution of make -f ins_net_server.mk install failed"
+msgstr "make -f ins_net_server.mk install "
+msgid "see /tmp/make.log file for details"
+msgstr "ٶ /tmp/make.log ع"
+msgid "Database setup failed : $2 does not exist"
+msgstr "ջ$2 "
+msgid "Database setup failed : mkaggregatefiles.ksh failed"
+msgstr "ջmkaggregatefiles.ksh "
+msgid "Database setup failed : db-start failed"
+msgstr "ջdb-start "
+msgid "Please wait, Sun Management Center database setup in progress. It may take 15 to 20 minutes"
+msgstr "Է Sun Management Center ջƫĸ 15 ̯ 20 š"
+msgid "Database setup failed : build-smc-oracle-recovery.ksh failed"
+msgstr "ջbuild-smc-oracle-recovery.ksh "
+msgid "Please wait, Sun Management Center database setup in progress. It may take 15 to 20 minutes"
+msgstr "Է Sun Management Center ջƫĸ 15 ̯ 20 š"
+msgid "Database setup failed : build-smc-oracle-recovery.ksh failed"
+msgstr "ջbuild-smc-oracle-recovery.ksh "
+msgid "Found symon 2.x import data"
+msgstr "̯ symon 2.x ī"
+msgid "about to import symon 2.x data"
+msgstr "ī symon 2.x "
+msgid "cannot find the 2.x import script file $2"
+msgstr "̯ 2.x ī Script  $2"
+msgid "will not import symon 2.x data"
+msgstr "ī symon 2.x "
+msgid "Database setup failed : db-stop failed"
+msgstr "ջdb-stop "
+msgid "A problem occured with $2 setup.  Do you want to continue?"
+msgstr " $2 ܢ"
+msgid "    Do you wish to update /etc/system file?"
+msgstr "     /etc/system "
+msgid "A problem occured with $2 setup.  Do you want to continue?"
+msgstr " $2 ܢ"
+msgid "    Do you wish to keep any existing topology and event data"
+msgstr "    Ƕܢůǵ"
+msgid "    Do you want to perform a symon 2.x data import?"
+msgstr "     symon 2.x ī"
+msgid "Do you want to start Sun Management Center agent and server components now"
+msgstr "ǡɻٯ Sun Management Center ܡȢΤǵ"
+msgid "Do you want to start Sun Management Center agent now"
+msgstr "ǡɻٯ Sun Management Center ܡȢ"
+msgid "Error: It seems the file $2 is not writable, could not update the file."
+msgstr "먡 $2 ī"
+msgid "Configuring the system for setup, please wait."
+msgstr "˷Է"
+#
+#===============================
+# <WS>/packages/Setup/db-start
+#===============================
+msgid "Listener and Database are up and running\n"
+msgstr "ջɳɢ\n"
+msgid "the current sid \n"
+msgstr "Щ sid \n"
+msgid "the current orahome \n"
+msgstr "Щ orahome \n"
+msgid "unknown system type, exiting......................\n"
+msgstr "˷......................\n"
+msgid "getHostName: failed to obtain current host from hostname command\n"
+msgstr "getHostNameڷ hostname ̽ڵЩ\n"
+msgid "current host : $2\n"
+msgstr "Щ񢡨$2\n"
+msgid "getUserName: failed to obtain user name from id command\n"
+msgstr "getUserNameڷ id ̽ڵϯ\n"
+msgid "current user name : $2\n"
+msgstr "Щϯꢡ$2\n"
+msgid "getUserGroup: failed to obtain user group from id command\n"
+msgstr "getUserGroupڷ id ̽ڵ\n"
+msgid "current user group : $2\n"
+msgstr "Щϯڡ$2\n"
+msgid "path_app : $2\n"
+msgstr "path_app :$2\n"
+msgid "found $2 on path in $3\n"
+msgstr " $3 ̯ $2\n"
+msgid "can not find $2 on path, exiting.......................\n"
+msgstr "ĸ̯ $2.......................\n"
+msgid "verifyDatabaseUp: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseUpڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseUp: instance is executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseUp: instance is not executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseDown: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseDownڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseDown: instance is executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyDatabaseDown: instance is not executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyListenerUp: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerUpڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerUp: listener $2 is execution\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerUp: listener $2 is not execution\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerDown: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerDownڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerDown: listener $2 is execution\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyListenerDown: listener $2 is not execution\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from df\n"
+msgstr "verifyFilesystemPermڷ df ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from df\n"
+msgstr "verifyFilesystemPermڷ df ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from mount comma\n"
+msgstr "verifyFilesystemPermڷ comma ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: filesystem $2 is not mounted setuid\n"
+msgstr "verifyFilesystemPerm˷ $2  setuid\n"
+msgid " must re-mount the filesystem with setuid enabled\n"
+msgstr "  setuid ٯ˷\n"
+msgid "verifyFilesystemPerm: filesystem $2 is mounted setuid, OK\n"
+msgstr "verifyFilesystemPerm˷ $2  setuid\n"
+msgid "verifyListenerStatus: failed to obtain listener status for alias: $2\n"
+msgstr "verifyListenerStatusҳĶɱ̽ڵ表$2\n"
+msgid "verifyListenerStatus: listener status is good for alias: $2\n"
+msgstr "verifyListenerStatusĶɱ$2\n"
+msgid "verifyListenerStatus: listener status is not good for alias: $2\n"
+msgstr "verifyListenerStatusĶɱ$2\n"
+msgid "the specified path \\\($2\\\) does not exist\n"
+msgstr " \\\($2\\\) \n"
+msgid "tmpdir \n"
+msgstr "tmpdir \n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain accessperms from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵ̽$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain username from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵϯꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain groupname from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: access perms for \\\($2\\\) is not at least 755\n"
+msgstr "verifyGoodOraclePermOwnership \\\($2\\\) ̽޲ŷ 755\n"
+msgid "verifyGoodOraclePermOwnership: access perms ok\n"
+msgstr "verifyGoodOraclePermOwnership̽ڦ\n"
+msgid "verifyGoodOraclePermOwnership: owner \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3 ȴϯ \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: owner ok\n"
+msgstr "verifyGoodOraclePermOwnershipȴϯڦ\n"
+msgid "verifyGoodOraclePermOwnership: group \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3  \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: group ok\n"
+msgstr "verifyGoodOraclePermOwnershipڦ\n"
+msgid "**** directory : $2 does not exist\n"
+msgstr "**** 硨$2 \n"
+msgid "loop: current new $2\n"
+msgstr "Щ $2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain accessperms from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵ̽$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain username from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵϯꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain groupname from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: access perms for \\\($2\\\) is not at least 755\n"
+msgstr "verifyGoodOraclePermOwnership \\\($2\\\) ̽޲ŷ 755\n"
+msgid "verifyGoodOraclePermOwnership: access perms ok\n"
+msgstr "verifyGoodOraclePermOwnership̽ڦ\n"
+msgid "verifyGoodOraclePermOwnership: owner \\\($listuser\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3 ȴϯ \\\($listuser\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: owner ok\n"
+msgstr "verifyGoodOraclePermOwnershipȴϯڦ\n"
+msgid "verifyGoodOraclePermOwnership: group \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3  \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: group ok\n"
+msgstr "verifyGoodOraclePermOwnershipڦ\n"
+msgid "**** file : $2 does not exist\n"
+msgstr "**** $2 \n"
+msgid "verifySharedMemUsage: failed to obtain ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̽ڵ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifySharedMemUsage: found ipcs \\\(shared memory segment\\\) info user : $2, group : $3, \\\(shid\\\) : $4\n"
+msgstr "verifySharedMemUsage̯ ipcs \\\(شٴ\\\) عϯ$2ڡ$3, \\\(shid\\\)$4\n"
+msgid "verifySharedMemUsage: did find ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̯ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifySharedMemUsage: did not find any ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̯Ƕ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifyActiveSemaphoresUsage: failed to obtain ipcs \\\(active semaphores\\\) info user : $2, group : $3\n"
+msgstr "verifyActiveSemaphoresUsage̽ڵ ipcs \\\(ɢ\\\) عϯ$2ڡ$3\n"
+msgid "verifyActiveSemaphoresUsage: found ipcs \\\(active semaphores\\\) info user : $2, group : $3, \\\(semid\\\) : $4\n"
+msgstr "verifyActiveSemaphoresUsage̯ ipcs \\\(ɢ\\\) عϯ$2ڡ$3, \\\(semid\\\)$4\n"
+msgid "verifyActiveSemaphoresUsage: did find ipcs \\\(active semaphores\\\) info user : $2, group : \n"
+msgstr "verifyActiveSemaphoresUsage̯ ipcs \\\(ɢ\\\) عϯ$2ڡ\n"
+msgid "verifyActiveSemaphoresUsage: did not find any ipcs \\\(active semaphores\\\) info user : $2, group : $3\n"
+msgstr "verifyActiveSemaphoresUsage̯Ƕ ipcs \\\(ɢ\\\) عϯ$2ڡ$3\n"
+msgid "startListener: failed to start listener, alias: $2\n"
+msgstr "startListenerٯ¡ɱء$2\n"
+msgid "startListener: listener started, alias: $2\n"
+msgstr "startListenerٯɱء$2\n"
+msgid "stopListener: failed to stop listener, alias: $2\n"
+msgstr "stopListener¡ɱء$2\n"
+msgid "stopListener: listener stopped, alias: $2\n"
+msgstr "stopListenerϡɱء$2\n"
+msgid "removing existing listener log file $2"
+msgstr "ܢȴ $2"
+msgid "execution of verifySetuidFilesystemPerm $2 fail\n"
+msgstr "verifySetuidFilesystemPerm $2 \n"
+msgid "exiting........................\n"
+msgstr "........................\n"
+msgid "execution of $2 start $3 fail\n"
+msgstr "$2 ٯ $3 \n"
+msgid "execution of verifyListenerUp $2 fail\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "execution of verifyGoodListenerStatus $2 fail\n"
+msgstr " verifyGoodListenerStatus $2 \n"
+msgid "execution of sqlplus using @$2 fail\n"
+msgstr "ɳ @$2  sqlplus \n"
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "execution of verifyDatabaseUp $2 fail\n"
+msgstr "verifyDatabaseUp $2 \n"
+msgid "Listener and Database are up and running\n"
+msgstr "ջɳɢ\n"
+#
+#================================
+# <WS>/packages/Setup/es-device
+#================================
+msgid "Usage: $2 -ad Filename"
+msgstr "Ρ$2 -ad "
+msgid "   where the options represent:"
+msgstr "   ̧㡢"
+msgid "     a : Add new device"
+msgstr "     a"
+msgid "     d : Delete device"
+msgstr "     dɴ"
+msgid "This action is limited to superuser only."
+msgstr "Ⱥɢϯ"
+msgid "Exiting $2."
+msgstr " $2"
+msgid "create_node_family_file: Error! Invalid node object type $2"
+msgstr "create_node_family_file먡ǵ $2 "
+msgid "set_global_variable: Value not specified for $2"
+msgstr "set_global_variable $2 ԫ"
+msgid "set_global_variable: Invalid parameter $2"
+msgstr "set_global_variableٶ $2"
+msgid "delete_node: Invalid data in input file"
+msgstr "delete_nodeī"
+msgid "delete_node: $2 does not exist, verify input"
+msgstr "delete_node$2 㡢ī"
+msgid "delete_group: Invalid data in input file"
+msgstr "delete_groupī"
+msgid "delete_group: $2 does not exist, verify input"
+msgstr "delete_group$2 㡢ī"
+msgid "delete_group: Invalid group type $2"
+msgstr "delete_group $2 "
+msgid "delete_segment: Invalid data in input file"
+msgstr "delete_segmentī"
+msgid "delete_segment: $2 does not exist, verify input"
+msgstr "delete_segment$2 㡢ī"
+msgid "delete_segment: Invalid segment type $2"
+msgstr "delete_segmentٴ $2 "
+msgid "delete_composite: Invalid data in input file"
+msgstr "delete_compositeī"
+msgid "delete_composite: $2 does not exist, verify input"
+msgstr "delete_composite$2 㡢ī"
+msgid "validate_node_object_type: $2 or $3 exists"
+msgstr "validate_node_object_type$2  $3 "
+msgid "validate_i18n_key: Node object type exists in $2 line $3"
+msgstr "validate_i18n_keyǵ $2  $3"
+msgid "validate_i18n_key: Invalid i18n key: $2"
+msgstr "validate_i18n_keyi18n 桨$2"
+msgid "validate_group_i18n_type: $2 is invalid group type"
+msgstr "validate_group_i18n_type$2 "
+msgid "validate_group_i18n_key: Group object type exists in $2 line $3"
+msgstr "validate_group_i18n_keyǵ $2  $3"
+msgid "validate_segment_i18n_type: $2 is invalid segment type"
+msgstr "validate_segment_i18n_type$2 ٴ"
+msgid "validate_segment_i18n_key: Segment object type exists in $2 line $3"
+msgstr "validate_segment_i18n_keyٴǵ $2  $3"
+msgid "validate_composite_i18n_key: Composite object type exists in $2 line $3"
+msgstr "validate_composite_i18n_keyǵ $2  $3"
+msgid "validate_properties_file: Invalid property file name. Must be $2"
+msgstr "validate_properties_file桤 $2"
+msgid "validate_search_parameter: Invalid sysoid value $2"
+msgstr "validate_search_parametersysoid ԫ $2 "
+msgid "validate_icon_file: Check if file exists and permissions"
+msgstr "validate_icon_fileů"
+msgid "validate_hardware_module: Hardware Module name does not exist"
+msgstr "validate_hardware_module"
+msgid "validate_group_object_type: Invalid object type $2"
+msgstr "validate_group_object_typeǵ $2 "
+msgid "validate_group_object_type: Group object type exists in $2 line $3"
+msgstr "validate_group_object_typeǵ $2  $3"
+msgid "validate_segment_object_type: Invalid object type $2"
+msgstr "validate_segment_object_typeǵ $2 "
+msgid "validate_segment_object_type: Segment object type exists in $2 line $3"
+msgstr "validate_segment_object_typeٴǵ $2  $3"
+msgid "add_node: Invalid node type $2"
+msgstr "add_node $2 "
+msgid "add_node: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_node $2 ů"
+msgid "add_group: Invalid group type $2"
+msgstr "add_group $2 "
+msgid "add_group: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_group $2 ů"
+msgid "add_segment: Invalid segment type $2"
+msgstr "add_segmentٴ $2 "
+msgid "add_segment: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_segment $2 ů"
+msgid "add_composite: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_composite $2 ů"
+msgid "Package SUNWessrv is not installed on this system"
+msgstr "Ⱥ˷ SUNWessrv "
+msgid "Unable to create logfile $2"
+msgstr "ǡ $2"
+msgid "$2 file does not exist"
+msgstr "$2 "
+msgid "$2 file does not have read permissions"
+msgstr "$2 ̦̽"
+msgid "Invalid Operation: Operation not supported"
+msgstr "ɢ桨ɢ̿"
+msgid "process_delete_data: Object type $2 missing in data file"
+msgstr "process_delete_dataŷǵ $2"
+msgid "validate_monitor_via : $2 is invalid type"
+msgstr "validate_monitor_via$2 "
+msgid "validate_node_type:$2 is invalid node type"
+msgstr "validate_node_type$2 "
+msgid "validate_node_object_type: Invalid object type $2"
+msgstr "validate_node_object_typeǵ $2 "
+msgid "validate_i18n_key: Invalid object type $2"
+msgstr "validate_i18n_keyǵ $2 "
+msgid "add_device: Invalid object type $2"
+msgstr "add_deviceǵ $2 "
+msgid "validate_node_object_type: Node object type exists in $2 line $3"
+msgstr "validate_node_object_typeǵ $2  $3"
+msgid "validate_object_type: Invalid object type $2"
+msgstr "validate_object_typeǵ $2 "
+msgid "validate_group_type: $2 is invalid group type"
+msgstr "validate_group_type$2 "
+msgid "validate_segment_type: Invalid value $2 for Segment_type"
+msgstr "validate_segment_typeSegment_type ԫ $2 "
+msgid "     (for example: ./es-device -a /tmp/userdata)"
+msgstr "     (./es-device -a /tmp/userdata)"
+msgid "     (for example: ./es-device -d /tmp/userdata)"
+msgstr "     (./es-device -d /tmp/userdata)"
+msgid "validate_user_name: No value specified for User_name"
+msgstr "validate_user_name User_name ԫ"
+msgid "validate_node_object_type: No value specified for Node_object_type"
+msgstr "validate_node_object_typeNode_object_type ԫ"
+msgid "validate_i18n_key: No value specified for i18n_key"
+msgstr "validate_i18n_key i18n_key ԫ"
+msgid "validate_properties_file: No value specified for Properties_file"
+msgstr "validate_properties_file Properties_file ԫ"
+msgid "validate_search_parameter: No value specified for Search_parameter"
+msgstr "validate_search_parameter Search_parameter ԫ"
+msgid "validate_icon_file: No value specified for icon"
+msgstr "validate_icon_fileԫ"
+msgid "validate_segment_object_type: No value specified for Segment object type"
+msgstr "validate_segment_object_typeٴǵԫ"
+#
+#==============================
+# <WS>/packages/Setup/db-stop
+#==============================
+msgid "getHostName: failed to obtain current host from hostname comma"
+msgstr "getHostNameڷ hostname ̽ڵЩ"
+msgid "current host : $2\n"
+msgstr "Щ񢡨$2\n"
+msgid "getUserName: failed to obtain user name from id comma\n"
+msgstr "getUserNameڷ id ̽ڵϯ\n"
+msgid "current user name : $2\n"
+msgstr "Щϯꢡ$2\n"
+msgid "getUserGroup: failed to obtain user group from id comma\n"
+msgstr "getUserGroupڷ id ̽ڵ\n"
+msgid "current user group : $2\n"
+msgstr "Щϯڡ$2\n"
+msgid "verifyDatabaseUp: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseUpڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseUp: instance is executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseUp: instance is not executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseDown: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseDownڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseDown: instance is executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyDatabaseDown: instance is not executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyListenerUp: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerUpڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerUp: listener $2 is executing\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerUp: listener $2 is not executing\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerDown: failed to obtain listener process info from \n"
+msgstr "verifyListenerDown̽ڵݨܡعڷ\n"
+msgid "verifyListenerDown: listener $2 is executing\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyListenerDown: listener $2 is not executing\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "the file $2 does not exist, exiting........................"
+msgstr " $2 㡢........................"
+msgid "performing a (shutdown immediate)......"
+msgstr "硾ǡɻ񢡿......"
+msgid "execution of $2 using \\@$3 failed"
+msgstr " \\@$3  $2 "
+msgid "exiting..........................\n"
+msgstr "........................\n"
+msgid "unable to perform normal shutdown, executing a shutdown abort"
+msgstr "ڦ񢡢"
+msgid "execution of $2 using adhoc shutdown-abort failed"
+msgstr " adhoc shutdown-abort  $2 "
+msgid "execution of $2 stop $3 failed"
+msgstr "$2  $3 "
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "execution of sqlplus using $2 fail\n"
+msgstr " $2  sqlplus \n"
+msgid "can not find $2 on path, exiting.......................\n"
+msgstr "ĸ̯ $2.......................\n"
+#
+#=========================================
+# <WS>/packages/Setup/sm_setup_server.sh
+#=========================================
+msgid "The Sun Management Center Console help configuration file cannot be found."
+msgstr "̯ Sun Management Center ƺɷ"
+msgid "Please re-install the Sun Management Center Console component"
+msgstr " Sun Management Center ƺǵ"
+msgid "The base URL has been set to $2"
+msgstr " URL ҳ $2"
+msgid "Could not find group $2.  You will have to set up"
+msgstr "̯ $2ٯ"
+msgid "the groups manually.  Please add $3 to group $2."
+msgstr "ڡ $3  $2"
+msgid "User $3 in group $2 is not a valid user.  Leaving it out of the esusers file."
+msgstr " $2 ϯ $3 ȴϯڷ esusers 桤"
+msgid "Adding user $2 from group $3 to esusers"
+msgstr " $3 ϯ $2  esusers"
+msgid "It appears that you already have some users \\\($2\\\)"
+msgstr "ƫȴġϯ \\\($2\\\)"
+msgid "configured as Sun Management Center administrators.  Leaving these users in place."
+msgstr "ҳ Sun Management Center ܡޡϯݨ"
+msgid "You should setup a user as a Sun Management Center administrator."
+msgstr "ġϯҳ Sun Management Center ܡ"
+msgid "This person will be added to the esadm and esdomadm groups."
+msgstr "Ⱥϯ̯ esadm  esdomadm 㡤"
+msgid "$2 is not a valid user."
+msgstr "$2 ȴϯ"
+msgid "The group $2 already exists on your system."
+msgstr "˷ĸ $2"
+msgid "Creating the group $2 that contains Sun Management Center $3 Users."
+msgstr "ǡ Sun Management Center $3 ϯ $2"
+msgid "Could not find $2 in $3"
+msgstr "$3 ̯ $2"
+msgid "This part of the setup process does the Sun Management Center Server Component setup."
+msgstr "šݨܡȩ Sun Management Center Τǵ"
+msgid "Unable to set $2 values."
+msgstr " $2 ԫ"
+msgid "agent.snmpPort is already configured in $2"
+msgstr "$2 ħ agent.snmpPort"
+msgid "topology.snmpPort is already configured in $2"
+msgstr "$2 ħ topology.snmpPort"
+msgid "The Sun Management Center base URL is relative to the Sun Management Center Console."
+msgstr " Sun Management Center  URL  Sun Management Center Cosole "
+msgid "The Sun Management Center Console is able to request help documentation via the network."
+msgstr " Sun Management Center ƺƫɷǵ衤"
+msgid "If you have installed Sun Management Center help documentation in an http-accessible"
+msgstr "Ϊƫ http ̽ĸħ Sun Management Center ɷǵ衢"
+msgid "location within your network, you may specify this location."
+msgstr "Ⱥ"
+msgid "If Sun Management Center help is installed on the console host, simply accept the default value."
+msgstr "Ϊ Sun Management Center ɷƺĸЬƷ̿ԫ"
+msgid "Completing Sun Management Center Server Component setup."
+msgstr "ȩ Sun Management Center Τǵ"
+msgid "Using security seed $2 for Sun Management Center server"
+msgstr "Sun Management Center Τ $2"
+msgid "Please enter a user to be the Sun Management Center administrator: "
+msgstr "īɢҳ Sun Management Center ܡϯ "
+msgid "Please enter a valid username: "
+msgstr "īȴϯꢡ "
+msgid "Please enter base URL to Sun Management Center help [local]: "
+msgstr "ī Sun Management Center ɷ URL [áٶ] "
+#
+#===================================
+# <WS>/packages/Setup/es-common.sh
+#===================================
+msgid "Enter \\\"y\\\" or \\\"n\\\" or \\\"q\\\""
+msgstr "ī \\\"y\\\"  \\\"n\\\"  \\\"q\\\""
+msgid "Exiting at user request"
+msgstr "ϯĶ"
+msgid "L10N_CODE not set!, LANG=$2"
+msgstr " L10N_CODELANG=$2"
+msgid "Cannot find locale directory for LANG: $2"
+msgstr "̯ LANG 硨$2"
+msgid "Expected to find it in: $2"
+msgstr "Ķ̯ơ$2"
+msgid "No Sun Management Center Packages are installed. Exiting."
+msgstr " Sun Management Center ա֡"
+msgid "Could not find xput executable: $2"
+msgstr "̯ xput ƫ$2"
+msgid "Cannot find file $2"
+msgstr "̯ $2"
+msgid "Moving $2 to $3"
+msgstr " $2 ̯ $3"
+msgid "--------------  WARNING  -------------------"
+msgstr "--------------    -------------------"
+msgid "It appears that $2 $3 is already in use."
+msgstr "$2 $3 ƫ"
+msgid "Sun Management Center $2 may not be able to run due to this conflict."
+msgstr "ȺSun Management Center $2 ƫ硤"
+msgid "There are two ways to correct this conflict:"
+msgstr "ȴ̥ƫϫȺ"
+msgid "  1. Reconfigure the port that Sun Management Center uses."
+msgstr "  1.  Sun Management Center ա"
+msgid "  2. Stop the process that is using the port."
+msgstr "  2. ݨܡ"
+msgid "    You are currently running snmpdx, which may be causing the conflict."
+msgstr "    Щ snmpdxƫӳ"
+msgid "Skipping the setting of port number for $2"
+msgstr "ܩ $2 "
+msgid "NOTE: Prior to starting Sun Management Center $2, stop the process using port $3."
+msgstr "ٯ Sun Management Center $2 Щǿ $3 ݨܡ"
+msgid "Updating $2 with new port number."
+msgstr " $2"
+msgid "This part of setup generates security keys used for communications"
+msgstr "šʩܨʩع"
+msgid "between processes.  A seed must be provided to initialize the"
+msgstr ""
+msgid "keys.  You can choose to use the standard Sun Management Center default or"
+msgstr "ƫ Sun Management Center ԫī"
+msgid "enter your own seed.  If you do not generate the keys now,"
+msgstr "͡Ϊܢܨ"
+msgid "you can do so later using the procedure documented in the"
+msgstr "ƫѥߧ"
+msgid "Sun Management Center 3.0 Users Guide."
+msgstr "Sun Management Center 3.0 ϯв"
+msgid "Please make sure you use the same seed for all the machines you install."
+msgstr "ȴ͡"
+msgid "Invalid seed - type s to use default seed"
+msgstr " - Ѻ s "
+msgid "Using default Sun Management Center value for seed."
+msgstr " Sun Management Center ԫɢҳ"
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+msgid "Unable to create logfile $LOGFILE."
+msgstr "ǡ $LOGFILE"
+msgid "Started $0 at"
+msgstr "ٯ $0 "
+msgid "Running on"
+msgstr ""
+msgid "What seed would you like to use?\n"
+msgstr "͡\n"
+msgid "Invalid response in automated configuration file."
+msgstr "ٯȴܡ"
+msgid "Unsupported OS version: $2"
+msgstr " OS ۡ$2"
+msgid "Do you want to use a different port number for $2?"
+msgstr " $2 "
+msgid "Do you want to generate these keys using the Sun Management Center default seed?"
+msgstr " Sun Management Center ܨ"
+msgid "Please enter any port greater or equal to 1100 : "
+msgstr "īǶġ 1100 ա "
+msgid "Port $2 is not a valid port number, try another number : "
+msgstr " $2 ȴƶġԶ "
+msgid "Port $2 is also busy, try another - use s to skip setting the port number:"
+msgstr " $2 ľȤ㡢̧ -  s ܩ"
+#
+#======================================
+# <WS>/packages/Setup/install-java.sh
+#======================================
+msgid "Java packages are not in $2"
+msgstr " Java  $2 "
+msgid "All required Java packages are not in $2"
+msgstr "ȴ Java  $2 "
+msgid "Installing java packages $2"
+msgstr " java  $2"
+msgid "the system. Please install them first and then install Sun Management Center."
+msgstr "˷㡤ǿԯѥ Sun Management Center"
+msgid "Package $2 is installed on this system. This package is"
+msgstr " $2 Ⱥ˷㡤 This package is"
+msgid "incompatible with the java version required for Sun Management Center."
+msgstr " Sun Management Center  java թ"
+msgid "This package needs to be uninstalled before installing java 2"
+msgstr "ǿȺѥ java 2"
+msgid "Removal of the package $2 failed, please remove it"
+msgstr " $2 ٯ"
+msgid "manually and then install Sun Management Center."
+msgstr "ѥ Sun Management Center"
+msgid "You need to install the following packages $2"
+msgstr "Ķ $2"
+msgid "If you do not choose to install it now, the installation will abort."
+msgstr "Ϊǡɻҡʩˡ"
+msgid "It seems some other version of java packages are present in $2"
+msgstr " $2 ȴƶġ java 㡤"
+msgid "You need to install Solaris_JDK_1.2.1_04 version of the following packages"
+msgstr " Solaris_JDK_1.2.1_04 Ķ"
+msgid "You can enter any directory to install the required version of JAVA."
+msgstr "ƫīǶ JAVA"
+msgid "No java packages to be removed."
+msgstr " java "
+msgid "Sun Management Center installation had overwritten your previous java installation."
+msgstr " Sun Management Center Ȣ̽ǿЩ java Ȣ"
+msgid "You can either keep the current installation or remove it."
+msgstr "ƫЩȢ桤"
+msgid "Warning - Could not find pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "  Space calculations will be wrong."
+msgstr "  Ϩȴ먡"
+msgid "Java installation:"
+msgstr "Java ҡ"
+msgid "Space required \\\(in $2\\\):  $3 blocks."
+msgstr "Ϩ \\\($2 \\\)$3 Զٴۡ"
+msgid "Space available \\\(in $2\\\): $3 blocks."
+msgstr "ƫϨ \\\($2 \\\)$3 Զٴۡ"
+msgid "Insufficient disk space to install Java components"
+msgstr "ȴϨƫ Java ǵ"
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "The following packages required by Java 2 are not installed on"
+msgstr "Ķ Java 2 "
+msgid "Packages: $2"
+msgstr "ա$2"
+msgid "The required version of Java is already installed in $2"
+msgstr " Java  $2 "
+msgid "It seems some of the required packages are already present."
+msgstr "ȴš㡤"
+msgid "You can either overwrite the existing java version or install the"
+msgstr "ƫܢȴ java "
+msgid "required version in some other directory."
+msgstr "̧㡤"
+msgid "Invalid directory"
+msgstr ""
+msgid "Java packages couldnot be found in directory $2"
+msgstr " $2 ̯ Java "
+msgid "Do you want to install it now?"
+msgstr "ǡɻҡ"
+msgid "Do you want to overwrite the existing one?"
+msgstr "̽ܢȴۡ"
+msgid "Do you want to remove it?"
+msgstr "桩"
+msgid "Do you want to uninstall it now"
+msgstr "ǡɻ"
+msgid "Enter the base directory for JDK installation [$2]"
+msgstr "ī JDK  [$2]"
+#
+#============================
+# <WS>/packages/Setup/es-db
+#============================
+msgid "A minimum of 256 MB RAM is required to install Sun Management Center server."
+msgstr "ŷȴ 256 MB  RAM  Sun Management Center Τ¡"
+msgid "Current system has $2 MB RAM."
+msgstr "Щ˷̦ȴ $2 MB  RAM"
+msgid "Can not continue to install Sun Management Center server."
+msgstr " Sun Management Center Τ¡"
+msgid "                         Sun Management Center DB                     "
+msgstr "                         Sun Management Center DB                     "
+msgid "       Sun Management Center Database Installation "
+msgstr "       Sun Management Center ջ "
+msgid "Invalid parameters for installDB\\\(\\\)"
+msgstr " installDB\\\(\\\) ٶ"
+msgid "The following Sun Management Center database packages have already been installed on your system:"
+msgstr "˷ĸħĶ Sun Management Center ջա"
+msgid "Checking memory available..."
+msgstr "ƫش..."
+msgid "Creating the mount points..."
+msgstr "ǡ..."
+msgid "Error installing SUNWesora.  Installation cannot continue."
+msgstr " SUNWesora 먡ҡ"
+msgid "Error installing SUNWestbl.  Installation cannot continue."
+msgstr " SUNWestbl 먡ҡ"
+msgid "Sun Management Center DB packages installed successfully"
+msgstr "Sun Management Center DB ȩ"
+msgid "es-setup will perform the remainder of the config"
+msgstr "es-setup ̧š"
+#
+#======================================
+# <WS>/packages/Setup/install-patch.sh
+#======================================
+msgid "No patch checking on this platform"
+msgstr "ȺƺĸȢ"
+msgid "Could not find the patches in the following directory."
+msgstr "Ķ̯Ȣ"
+msgid "Installing patch $2..."
+msgstr "Ȣ $2..."
+msgid "Installation of patch $2 failed."
+msgstr "Ȣ $2 "
+msgid "Installation of patch $2 complete."
+msgstr "Ȣ $2 ȩ"
+msgid "Following patches are prerequisites to the java patches."
+msgstr " java ȢЩǿĶȢ"
+msgid "Please install them manually and then install Sun Management Center."
+msgstr "ٯѥ Sun Management Center"
+msgid "Installation of following patches failed, please install"
+msgstr "ĶȢٯ"
+msgid "them manually and then install Sun Management Center."
+msgstr "ѥ Sun Management Center"
+msgid "Checking for required OS patches, Please wait..."
+msgstr " OS ȢԷ..."
+msgid "Following is the list of required patches for java 2."
+msgstr "Ķҳ java 2 Ȣ̡"
+msgid "If you do not choose to install them now installation will abort."
+msgstr "Ϊǡɻҡʩˡ"
+msgid "Checking for required OS patches done."
+msgstr "ȩ OS Ȣ硤"
+msgid "Invalid directory."
+msgstr "硤"
+msgid "Do you want to install now"
+msgstr "ǡɻҡ"
+msgid "Please enter the directory that contains patches: "
+msgstr "īȴȢ硨 "
+#
+#=================================
+# <WS>/packages/Setup/es-restore
+#=================================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "The backup $2 does not exist"            
+msgstr "ެǹ $2 "            
+msgid "Checking installed Sun Management Center..."
+msgstr " Sun Management Center..."
+msgid "Recover the Sun Management Center Database and it will take a few minutes..."
+msgstr "ߦ Sun Management Center ջĸš..."
+msgid "Restore the Sun Management Center data."
+msgstr "ߦ Sun Management Center 衤"
+msgid "Shutdown Sun Management Center database, please wait."
+msgstr " Sun Management Center ջԷ"
+msgid "Recovery is fnished successfully. Please start Sun Management Center."
+msgstr "ɳȩߦϡٯ Sun Management Center"
+msgid "The Sun Management Center server components are not found or"
+msgstr "̯ Sun Management Center Τģ́"
+msgid "its installation is damaged. You need to run"
+msgstr "䴡"
+msgid "es-inst/es-setup to install Sun Management Center and then "
+msgstr "es-inst/es-setup  Sun Management Centerѥ"
+msgid "start es-restore."
+msgstr "ٯ es-restore"
+msgid "Cannot restore $2"
+msgstr "ߦ $2"
+msgid "Cannot import database. Please check $2"
+msgstr "īջ $2"
+msgid "The recovery need to shudown Sun Management Center servers."
+msgstr "ߦɢ Sun Management Center Τ¡"
+msgid "Please get the backup of es-backup ready."
+msgstr "ެ es-backup ެǹ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the backup data directory:"
+msgstr "īެǹ"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_metadata.sh
+#==========================================
+msgid "$2 appears to be configured as your Sun Management Center server."
+msgstr "$2 ƫҳ Sun Management Center Τ¡"
+msgid "Error - Unable to set $2 values."
+msgstr " -  $2 ԫ"
+msgid "agent.snmpPort already configured in $2"
+msgstr " $2 ħ agent.snmpPort"
+msgid "This part of the setup process does the Sun Management Center Agent Component setup."
+msgstr "šݨܡȩ Sun Management Center ܡȢǵ"
+msgid "snmpd.conf already exists in $2.  Leaving it in place"
+msgstr "$2  snmpd.conf̧ݨ"
+msgid "Copying snmpd.conf file into $2"
+msgstr " snmpd.conf ̯ $2"
+msgid "Server component also installed locally."
+msgstr "ħΤǵ"
+msgid "Using this machine as the Sun Management Center server."
+msgstr "ɢҳ Sun Management Center Τ¡"
+msgid "Completing Sun Management Center Agent Component setup."
+msgstr "ȩ Sun Management Center ܡȢǵ"
+msgid "Using security seed $2 for Sun Management Center metadata"
+msgstr " $2 ɢҳ Sun Management Center "
+msgid "Please enter the Sun Management Center Server Hostname: "
+msgstr "ī Sun Management Center Τꢡ "
+msgid "Is this correct?"
+msgstr ""
+#
+#============================
+# <WS>/packages/Setup/es-lic
+#============================
+msgid "Topology server is currently running."
+msgstr "ЩΤ¡"
+msgid "It must be restarted for the license file update to take effect."
+msgstr "桢ٯ"
+msgid "Please stop and restart topology server using:"
+msgstr "ٯΤ¡"
+msgid "$2 -p\\\; $3 -p"
+msgstr "$2 -p\\\; $3 -p"
+msgid "Invalid License, Exiting..."
+msgstr "桢..."
+msgid "  Sun Management Center License Program\n"
+msgstr "  Sun Management Center Ȣ\n"
+msgid "  Invalid parameters passed to es-lic script\n"
+msgstr "  ̯ es-lic Script ٶ\n"
+msgid "Please enter license key: "
+msgstr "ī "
+#
+#===============================
+# <WS>/packages/Setup/es-dbimp
+#===============================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "The backup $2 does not exist"            
+msgstr "ެǹ $2 "            
+msgid "------------------- WARNING !!! ----------------"
+msgstr "------------------- ˡ ----------------"
+msgid "The process need Sun Management Center server components stopped."
+msgstr "Ⱥݨܡ Sun Management Center Τǵ硤"
+msgid "And import the backup data to Sun Management Center database."
+msgstr "ެǹī Sun Management Center ջ"
+msgid "As a result, all current data will be destroyed."
+msgstr "Ϊȩȴܢȴڡ"
+msgid "Done"
+msgstr "ȩ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+#
+#=======================================
+# <WS>/packages/Setup/sm_setup_agent.sh
+#=======================================
+msgid "$2 appears to be configured as your Sun Management Center server."
+msgstr "$2 ƫҳ Sun Management Center Τ¡"
+msgid "Error - Unable to set $2 values."
+msgstr " -  $2 ԫ"
+msgid "agent.snmpPort already configured in $2"
+msgstr " $2 ħ agent.snmpPort"
+msgid "This part of the setup process does the Sun Management Center Agent Component setup."
+msgstr "šݨܡȩ Sun Management Center ܡȢǵ"
+msgid "snmpd.conf already exists in $2.  Leaving it in place"
+msgstr "$2  snmpd.conf̧ݨ"
+msgid "Copying snmpd.conf file into $2"
+msgstr " snmpd.conf ̯ $2"
+msgid "Server component also installed locally."
+msgstr "ħΤǵ"
+msgid "Using this machine as the Sun Management Center server."
+msgstr "ɢҳ Sun Management Center Τ¡"
+msgid "Completing Sun Management Center Agent Component setup."
+msgstr "ȩ Sun Management Center ܡȢǵ"
+msgid "Using security seed $2 for Sun Management Center agent"
+msgstr " $2 ɢҳ Sun Management Center ܡȢ"
+msgid "Please enter the Sun Management Center Server Hostname: "
+msgstr "ī Sun Management Center Τꢡ "
+msgid "Is this correct?"
+msgstr ""
+#
+#================================
+# <WS>/packages/Setup/es-backup
+#================================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Can not create the directory $2"
+msgstr "ǡ $2"
+msgid "Backup is successful."
+msgstr "ެǹȩ"
+msgid "Please save following files for the restore of Sun Management Center"
+msgstr "Ķߦ Sun Management Center "
+msgid "Starting Sun Management Center...."
+msgstr "ٯ Sun Management Center...."
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "Backup Sun Management Center data failed. Please check $2"
+msgstr "Sun Management Center ެǹ $2"
+msgid "The operation requires to shutdown Sun Management Center."
+msgstr "Ⱥɢ Sun Management Center"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the directory to store the backup data file:"
+msgstr "īެǹ表"
+#
+#=======================================
+# <WS>/packages/Setup/sm_setup_mib2.sh
+#=======================================
+msgid "Subagent sunmib_sea already set up - leaving it untouched"
+msgstr "ħܡȢ sunmib_sea - ̧ѽ"
+msgid "Subagent registry file is: $2"
+msgstr "ܡȢҳ$2"
+msgid "Unable to update subagent-registry-d.x"
+msgstr " subagent-registry-d.x"
+msgid "Updated subagent-registry-d.x for mib2 subagent"
+msgstr "ҳ mib2 ܡȢħ subagent-registry-d.x"
+#
+#================================
+# <WS>/packages/Setup/es-uninst
+#================================
+msgid "Removing $2"
+msgstr " $2"
+msgid "Package Removal: Failed for $2"
+msgstr "桨$2 "
+msgid "Reattempting to uninstall the package\\\(s\\\): $2"
+msgstr "ա$2"
+msgid "Please remove the following packages manually.\n"
+msgstr "ٯĶա\n"
+msgid "Sun Management Center uninstall complete.\n"
+msgstr " Sun Management Center ܫ\n"
+msgid "       Sun Management Center Uninstallation \n"
+msgstr "       Sun Management Center  \n"
+msgid "No Sun Management Center packages installed.\n"
+msgstr " Sun Management Center ա\n"
+msgid "This utility removes all the Sun Management Center packages. \n"
+msgstr "ȺȢȴ Sun Management Center ա\n"
+msgid "Exiting uninstall utility.\n"
+msgstr "Ȣ\n"
+msgid "Stopping all Sun Management Center processes.  This may take a few moments...\n"
+msgstr "ȴ Sun Management Center ݨܡƫġ...\n"
+msgid "If you are upgrading Sun Management Center, you may want to save your existing data.\n"
+msgstr "ΪŪ Sun Management Centerƫܢȴ衤\n"
+msgid "Will not remove the existing data\n"
+msgstr "ܢȴ\n"
+msgid "Will remove the existing data\n"
+msgstr "ܢȴ\n"
+msgid "      Would you like to continue?"
+msgstr "      "
+msgid "Do you want to preserve your existing data"
+msgstr "ܢȴ"
+msgid "Do you wish to continue with the removal of the existing data"
+msgstr "ܢȴ"
+#
+#==============================
+# <WS>/packages/Setup/es-dbexp
+#==============================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Can not create the directory $2"
+msgstr "ǡ $2"
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "The operation requires some of Sun Management Center components to be shutdown."
+msgstr "Ⱥɢġ Sun Management Center ǵ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the directory to store the backup data file:"
+msgstr "īެǹ表"
+msgid "Enter the path of the backup directory:"
+msgstr "īެǹ"
+#
+#=================================
+# <WS>/packages/Setup/es-keys.sh
+#=================================
+msgid "Generating $2 security keys."
+msgstr "ܨ $2 "
+msgid "Error generating keys. Return code was $2."
+msgstr "ܨ먡ҳ $2"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_service.sh
+#==========================================
+msgid "This part of the setup process does the Sun Management Center Services Component setup."
+msgstr "šݨܡȩ Sun Management Center Τ٭ǵ"
+msgid "Completing Sun Management Center Services Component setup."
+msgstr "ȩ Sun Management Center Τ٭ǵ"
+#
+#===============================
+# <WS>/packages/Setup/es-start
+#===============================
+msgid "It seems component $2 has not been setup, so skipping it."
+msgstr " $2Ⱥܩơ"
+msgid "Sun Management Center Web Server is not installed, Can not start web server\n"
+msgstr " Sun Management Center Τ¡ٯΤ\n"
+msgid "Sun Management Center Web Server is not completely installed, Can not start web server\n"
+msgstr " Sun Management Center Τ¡ٯΤ\n"
+msgid "web server started\n"
+msgstr "Τٯ\n"
+msgid "Equivalent to %s -aefgmprstxw"
+msgstr "̧ %s -aefgmprstxw"
+msgid "Equivalent to %s -efgmprstxw"
+msgstr "̧ %s -efgmprstxw "
+msgid "Usage: $PROGNAME -acefghilmpstwxrAS [-y instanceName] [ -- args... ]"
+msgstr "Ρ$PROGNAME -acefghilmpstwxrAS [-y instanceName] [ -- args... ]"
+msgid "   where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "     a : starts Sun Management Center Agent\n"
+msgstr "  aٯ Sun Management Center ܡȢ\n"
+msgid "     c : starts Sun Management Center Console\n"
+msgstr "  cٯ Sun Management Center Console\n"
+msgid "         Optionally, maximum heap size could be customized,\n"
+msgstr "         ڰ̱޲ƫҳԫ\n"
+msgid "         e.g., ./es-start -c -- -Xmx100m specifies 100 MBytes\n"
+msgstr "         ./es-start -c -- -Xmx100m  100 MB\n"
+msgid "         as max heap size; Default size is 64m.\n"
+msgstr "         ҳ޲ѡҳ 64m\n"
+msgid "     e : starts Sun Management Center Event manager\n"
+msgstr "     eٯ Sun Management Center ǵܡȢ\n"
+msgid "     f : starts Sun Management Center Configuration manager\n"
+msgstr "     fٯ Sun Management Center ܡȢ\n"
+msgid "     g : starts Sun Management Center Grouping services\n"
+msgstr "     gٯSun Management Center Τ٭\n"
+msgid "     h : prints this usage report\n"
+msgstr "     hȺ\n"
+msgid "     i : start agent in interactive mode, valid only for one of\n"
+msgstr "     iٯȢɢȢٯܡȢ\n"
+msgid "           the a, t, f, p, and e options\n"
+msgstr "           atfp  e ġȴ\n"
+msgid "     l : starts Platform Agent for SSP\n"
+msgstr "     lٯ SSP ƺܡȢ\n"
+msgid "     m : starts Sun Management Center Metadata Repository\n"
+msgstr "    mٯ Sun Management Center ջ\n"
+msgid "     q : start components in quiet mode, effective only for one of\n"
+msgstr "     qٯȢɢȢٯǵ\n"
+msgid "       the A, a, t, f, p, and e options\n"
+msgstr "       Aatfp  e ġȴ\n"
+msgid "     p : starts Sun Management Center Topology manager\n"
+msgstr "     pٯ Sun Management Center ܡȢ\n"
+msgid "     r : starts Hardware Diagnostic Suite Service\n"
+msgstr "     rٯ Hardware Diagnostic Suite Τ٭\n"
+msgid "     s : starts Sun Management Center Server\n"
+msgstr "     sٯ Sun Management Center Τ\n"
+msgid "         Optionally, maximum heap size could be customized,\n"
+msgstr "         ڰ̱޲ƫҳԫ\n"
+msgid "         e.g., ./es-start -s -- -Xmx100m specifies 100 MBytes\n"
+msgstr "         ./es-start -s -- -Xmx100m  100 MB\n"
+msgid "         as max heap size; Default size is 64m.\n"
+msgstr "         ҳ޲ѡҳ 64m\n"
+msgid "     t : starts Sun Management Center Trap Handler\n"
+msgstr "     tٯ Sun Management Center ݨܡȢ\n"
+msgid "     x : starts CST Service\n"
+msgstr "     xٯ CST Τ٭\n"
+msgid "     y : starts new instance of platform agent\n"
+msgstr "     yٯƺܡȢ\n"
+msgid "     w : starts web server\n"
+msgstr "     wٯΤ\n"
+msgid "     A : starts All Sun Management Center components except the console,\n"
+msgstr "     Aٯħƺȴ Sun Management Center ǵ\n"
+msgid "     S : starts Sun Management Center Server and all the server subcomponents\n"
+msgstr "     Sٯ Sun Management Center ΤȴΤǵ\n"
+msgid "     args are passed to console or server when started.\n"
+msgstr "     ſƺΤٯԯ\n"
+msgid "           (for example: es-start -c -- -p 2099)\n\n"
+msgstr "     es-start -c -- -p 2099\n\n"
+msgid "ERROR: Sun Management Center has not been set up.\nRun es-setup to set up Sun Management Center."
+msgstr "먡 Sun Management Center\n es-setup  Sun Management Center"
+msgid "Please specify a component to be started."
+msgstr "ٯǵ"
+msgid "Use the following single letter arguments instead:\n"
+msgstr "Ķġſ\n"
+msgid "Console package not installed\n"
+msgstr "ƺ\n"
+msgid "Interactive option invalid with -A or -S option"
+msgstr "ٯȢɢ -A  -S "
+msgid "Invalid command line option.  Please use just one option\n"
+msgstr "ƷġԶ\n"
+msgid "You have not specified any components to run.\n"
+msgstr "ǵ\n"
+msgid "Only one component may be started in interactive mode\n"
+msgstr "ٯȢɢȢĶƷٯġԶǵ\n"
+msgid "You cannot start console in interactive mode\n"
+msgstr "ٯȢɢȢٯƺ\n"
+msgid "DISPLAY environment variable must be set\n"
+msgstr " DISPLAY \n"
+msgid "Interactive server session:\n"
+msgstr "ٯȢɢΤɢơ\n"
+msgid "SUNWcstv or SUNWcstve package should be installed before start cstservice agent."
+msgstr "ٯ cstservice ܡȢЩǿ SUNWcstv  SUNWcstve ա"
+msgid "Interactive option invalid with $OPT option"
+msgstr "ٯȢɢ $OPT "
+msgid "Unable to open DISPLAY: $DISPLAY"
+msgstr " DISPLAY: $DISPLAY"
+msgid "Equivalent to %s -aefgmpstxw"
+msgstr "̧ %s -aefgmpstxw"
+msgid "Equivalent to %s -efgmpstxw"
+msgstr "̧ %s -efgmpstxw"
+msgid "$2 Component not installed"
+msgstr " $2 ǵ"
+msgid "Invalid option\\\($1\\\).  Options have changed to single letters:"
+msgstr " \\\($1\\\)ҳġࡨ"
+msgid "Starting all platform instances"
+msgstr "ٯȴƺ"
+msgid "Instances are $2"
+msgstr "ҳ $2"
+msgid "Starting platform instances $2"
+msgstr "ٯƺ $2"
+msgid "ERROR: Could not start Hardware Diagnostic Suite Service."
+msgstr "먡ٯ Hardware Diagnostic Suite Τ٭"
+msgid "SUNWed package should be installed before start Hardware Diagnostic Suite Service."
+msgstr "SUNWed ٯ Hardware Diagnostic Suite Τ٭Щҡ"
+msgid "Sun Management Center is not setup. Please setup first and then run es-start."
+msgstr " Sun Management Centerǿҡѥ es-start"
+msgid "Sun Management Center $2 is not setup."
+msgstr " Sun Management Center $2"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_console.sh
+#==========================================
+msgid "This part of the setup process does the Sun Management Center Console Component setup."
+msgstr "šݨܡȩ Sun Management Center ƺǵ"
+#
+#==============================
+# <WS>/packages/Setup/es-stop
+#==============================
+msgid "Please specify a component to be stopped."
+msgstr "ǵ"
+msgid "Usage : $PROGNAME -aefghmprstxAS [-y instanceName]"
+msgstr "Ρ$PROGNAME -aefghmprstxAS [-y instanceName]"
+msgid "     a : stops Sun Management Center Agent\n"
+msgstr "     a Sun Management Center ܡȢ\n"
+msgid "     e : stops Sun Management Center Event manager\n"
+msgstr "     e Sun Management Center ǵܡȢ\n"
+msgid "     f : stops Sun Management Center Configuration manager\n"
+msgstr "     f Sun Management Center ܡȢ\n"
+msgid "     g : stops Sun Management Center Services\n"
+msgstr "     g Sun Management Center Τ٭\n"
+msgid "     h : prints this usage report\n"
+msgstr "     hȺ\n"
+msgid "     l : stops Platform Agent for SSP\n"
+msgstr "     l SSP ƺܡȢ\n"
+msgid "     m : stops Sun Management Center Metadata Agent\n"
+msgstr "     m Sun Management Center ܡȢ\n"
+msgid "     p : stops Sun Management Center Topology manager\n"
+msgstr "     p Sun Management Center ܡȢ\n"
+msgid "     r : stops Hardware Diagnostic Suite Service\n"
+msgstr "     r Hardware Diagnostic Suite Τ٭\n"
+msgid "     s : stops Sun Management Center Server\n"
+msgstr "     s Sun Management Center Τ\n"
+msgid "     t : stops Sun Management Center Trap Handler\n"
+msgstr "     t Sun Management Center ݨܡȢ\n"
+msgid "     x : stops CST Service\n"
+msgstr "     x CST Τ٭\n"
+msgid "     y : stops instance of platform agent\n"
+msgstr "     yƺܡȢ\n"
+msgid "     w : stops web server\n"
+msgstr "     wΤ\n"
+msgid "     A : stops all Sun Management Center components listed above\n"
+msgstr "     Aĸȴ Sun Management Center ǵ\n"
+msgid "equivalent to %s -aefgmprstxw"
+msgstr "̧ %s -aefgmprstxw"
+msgid "     S : stops all Sun Management Center components listed above except Sun Management Center Agent\n"
+msgstr "     Sħ Sun Management Center ܡȢȴ Sun Management Center ǵ\n"
+msgid "equivalent to %s -efgmprstxw"
+msgstr "̧ %s -efgmprstxw"
+msgid "Use the following single letter arguments instead:\n"
+msgstr "Ķġſ\n"
+msgid "Invalid option\\\($1\\\).  Options have changed to single letters:"
+msgstr " \\\($1\\\)ҳġࡨ"
+msgid "$1 Component not installed"
+msgstr " $1 ǵ"
+msgid "Stopping all platform instances"
+msgstr "ȴƺ"
+msgid "$COMPONENT component is not running"
+msgstr "$COMPONENT ǵ"
+msgid "Stopping $COMPONENT component"
+msgstr " $COMPONENT ǵ"
+msgid "Error in stopping $COMPONENT component"
+msgstr " $COMPONENT ǵ"
+#
+#================================
+# <WS>/packages/Setup/es-crlcon
+#================================
+msgid "   Sun Management Center Light Console Creation Program\n"
+msgstr "   Sun Management Center ƺǡȢ\n"
+msgid "This program creates a directory of minimun required console components.\n"
+msgstr "ȺȢǡ޲ŷƺǵ硤\n"
+msgid "User can copy this directory to any machine with supported configuration\n"
+msgstr "ϯƫȺ̯Ƕ̦ȴ̿ĸ\n"
+msgid "to run Console."
+msgstr "ƺ"
+msgid "Destination [/tmp]: "
+msgstr " [/tmp] "
+msgid "Please remove the directory $dirname before proceeding"
+msgstr "Щ $dirname"
+msgid "or use a different directory.\n"
+msgstr "硤\n"
+msgid "Do you want the directory to be in zip format [y|n] [y]: "
+msgstr "ȩҳ zip ֪Ȣ [y|n] [y] "
+msgid "Please enter path to the executable - zip: "
+msgstr "īƫ - zip  "
+msgid "Cannot find zip in $zippath."
+msgstr "$zippath ̯ zip"
+msgid "Source will be taken from [/opt/SUNWsymon]: "
+msgstr "̽ [/opt/SUNWsymon] "
+msgid "Directory ${dirname} is created."
+msgstr " ${dirname} ǡ"
+msgid "Creating zip file ...\n"
+msgstr "ǡ zip  ...\n"
+msgid "SUNWsymon.zip can be transferred to other systems, unzip,\n"
+msgstr "SUNWsymon.zip ƫ̧˷ӡ㡤\n"
+msgid "Zip file is created in "
+msgstr "Zip ǡ "
+msgid "\nPlease note:\n\n    Light console can be invoked by running:\n\n"
+msgstr "\n\n\n    ƫĶƵƺ\n\n"
+#
+#================================
+# <WS>/packages/Setup/es-sfix.sh
+#================================
+msgid "usage:\n"
+msgstr "Ρ\n"
+msgid "process all modules                : es-sfix.sh\n"
+msgstr "ݨܡȴ                es-sfix.sh\n"
+msgid "flush db & process all modules     : es-sfix.sh [-c | -C]\n"
+msgstr " db ݨܡȴ     es-sfix.sh [-c | -C]\n"
+msgid "process only for specifiec module  : es-sfix.sh [-m | -M] [module name]\n"
+msgstr "Ʒݨܡ  es-sfix.sh [-m | -M] []\n"
+msgid "starting Sun Management Center database\n"
+msgstr "ٯ Sun Management Center ջ\n"
+msgid "database startup failed, exiting\n"
+msgstr "ջٯ\n"
+msgid "database is up\n"
+msgstr "ջƵ\n"
+msgid "executing suggested fix script\n"
+msgstr "Ժߦ Script\n"
+msgid "execution successful\n"
+msgstr "ȩ\n"
+msgid "error in execution\n"
+msgstr "\n"
+msgid "shutting down the database\n"
+msgstr "ջ\n"
+msgid "db-stop failed\n"
+msgstr "db-stop \n"
+msgid "purge database and process\n"
+msgstr "ջݨܡ\n"
+msgid "process only for module\n"
+msgstr "ݨܡ\n"
+msgid "incorrect usage\n"
+msgstr "\n"
+msgid "invalid arguments\n"
+msgstr "ſ\n"
+msgid "default processing\n"
+msgstr "ݨܡʩ\n"
+msgid "could not set java home directory\n"
+msgstr " java \n"
+msgid "please see the suggested fix log file in "
+msgstr "ٶԺߦ"
+#
+#=================================
+# <WS>/packages/Setup/es-details
+#=================================
+msgid "ERROR: "
+msgstr "먡 "
+msgid "  Specify the tabs for a given Node_Object_Type.  The -f and -u\n"
+msgstr "  ҳ Node_Object_Type -f  -u\n"
+msgid "  options are mutually exclusive.\n"
+msgstr "  桤\n"
+msgid "  where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "    a                  : All tabs provided by Sun Management Center\n"
+msgstr "    a                   Sun Management Center ȴ\n"
+msgid "                         will be included.\n"
+msgstr "                         \n"
+msgid "    f inputfile        : Input file which contains list of tabs to\n"
+msgstr "    f inputfile        ī\n" 
+msgid "                         be used for the specified Node_Object_Type.\n"
+msgstr "                          Node_Object_Type\n"
+msgid "    n Node_Object_Type : Corresponds to the Node_Object_Type\n"
+msgstr "    n Node_Object_Type es-device Script \n"
+msgid "                         entered in the es-device script.\n"
+msgstr "                         ī Node_Object_Type\n"
+msgid "    o                  : Overwrite previously created tab file.\n"
+msgstr "    o                  Щǡ\n"
+msgid "                         Only meaningful when used with the -f\n"
+msgstr "                         Ʒȴ -f ȴ\n"
+msgid "                         option.\n"
+msgstr "                         \n"
+msgid "    u                  : Undo.  Restores the Node_Object_Type\n"
+msgstr "    u                  ߦϡ Node_Object_Type ߦ\n"
+msgid "                         to its original state.\n"
+msgstr "                         ҳ̧ȴ衤\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "Usage: $2 [ -a ] [ -f inputfile ] -n Node_Object_Type [ -o ] [ -u ]\n"
+msgstr "Ρ$2 [ -a ] [ -f inputfile ] -n Node_Object_Type [ -o ] [ -u ]\n"
+msgid "Input file $2 does not exist"
+msgstr "ī $2 "
+msgid "The Node_Object_Type must be specified."
+msgstr " Node_Object_Type"
+msgid "Either option -f or -u must be specified."
+msgstr " -f  -u ġ"
+msgid "Options -f or -u cannot both be specified."
+msgstr " -f  -u"
+msgid "Options -o and -u cannot both be specified."
+msgstr " -o  -u"
+msgid "Options -a and -u cannot both be specified."
+msgstr " -a  -u"
+msgid "es-details has not yet been run with Node_Object_Type $2."
+msgstr " Node_Object_Type $2  es-details"
+msgid "Tab name not specified for DEFAULT statement on line $2."
+msgstr " $2 ĸ ҳ DEFAULT ꢡ"
+msgid "Only one tab can be defined as the DEFAULT."
+msgstr "ƷġԶɢҳ DEFAULT"
+msgid "Tab name not specified for INCLUDE statement on line $2."
+msgstr " $2 ĸҳ INCLUDE ꢡ"
+msgid "$2 is not a valid Sun Management Center tab on line $3."
+msgstr "$2  $3 ĸȴ Sun Management Center "
+msgid "Tab name not specified for APPEND statement on line $2."
+msgstr " $2 ĸҳ APPEND ꢡ"
+msgid "Tab name $2 must be in format file:key on line $3."
+msgstr " $3 ĸ $2 ֪Ȣҳ file:key"
+msgid "Help key not specified for user-defined tab $2 on line $3."
+msgstr " $3 ĸҳϯ $2 ɷ"
+msgid "Help Key $2 must be in format key:file on line $3."
+msgstr " $3 ĸɷ $2 ֪Ȣҳ key:file"
+msgid "Java class not specified for user-defined tab $2 on line $3."
+msgstr " $3 ĸҳϯ $2  Java ɱ"
+msgid "Key $2 is not a valid key on line $3."
+msgstr " $2  $3 ĸȴ"
+msgid "Input file $2 contains no APPEND or INCLUDE statements"
+msgstr "ī $2  APPEND  INCLUDE "
+msgid "$2 is not a valid Node_Object_Type."
+msgstr "$2 ȴ Node_Object_Type"
+msgid "The specified default tab $2 was not found in the inputfile."
+msgstr "ī̯ $2"
+msgid "The tabs for this object have already been specified, use -o option to overwrite."
+msgstr "Ⱥǵ -o ѡ"
+msgid "Can only modify the family file for Sun Management Center agents."
+msgstr "Ʒҳ Sun Management Center ܡȢԺե"
+#
+#===========================
+# <WS>/packages/Setup/es-dt
+#===========================
+msgid "ERROR: "
+msgstr "먡 "
+msgid "  where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "    a          : Add a reference.\n"
+msgstr "    a          ٶ衤\n"
+msgid "    d          : Delete a reference.\n"
+msgstr "    d          ɴٶ衤\n"
+msgid "    v          : View references.  This is the default option.\n"
+msgstr "    v          ٶ衤Ⱥҳ\n"
+msgid "    s          : Add/Delete/View on the Platform Agent.  By default the\n"
+msgstr "    s          ƺܡȢĸ/ɴ/á\n"
+msgid "                 operation is performed on the Agent.\n"
+msgstr "                 ɢܡȢĸ硤\n"
+msgid "    h hostname : Agent hostname of machine running the Discovery Object Table.\n"
+msgstr "    h ꢡǵܡꢡ\n"
+msgid "    l label    : Unique label for the Composite Object to add or delete.\n"
+msgstr "    l     ɴǵȴ\n"
+msgid "    n not      : Node_Object_Type for the Composite Object to add.\n"
+msgstr "    n not      ǵ Node_Object_Type\n"
+msgid "    o OID      : Discovery Object Table OID to add.\n"
+msgstr "    o OID      ǵ OID\n"
+msgid "    p port     : Agent port of machine running the Discovery Object Table.\n"
+msgstr "    p port     ǵܡȢա\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "ESDIR must be set"
+msgstr " ESDIR"
+msgid "Usage: $2 -a \\\| -d \\\| -v [ -s ] -h hostname -l label -n not -o OID -p port\n"
+msgstr "Ρ$2 -a \\\| -d \\\| -v [ -s ] -h  -l  -n not -o OID -p port\n"
+msgid "It cannot be loaded on both the Agent and Platform Agent."
+msgstr "ܡȢůƺܡȢīơ"
+msgid "The options -h, -l, -n, -o, and -p must all be used with the -a option."
+msgstr " -h-l-n-o  -p  -a "
+msgid "An entry for $2 already exists."
+msgstr " $2 㡤"
+msgid "The option -l must be used with the -d option."
+msgstr " -l  -d "
+msgid "The options -h, -n, -o, and -p are not valid with the -d option."
+msgstr " -h-n-o  -p  -d "
+msgid "An entry for $2 does not exist."
+msgstr " $2 㡤"
+msgid "The options -h, -l, -n, -o, and -p are not valid with the -v option."
+msgstr " -h-l-n-o  -p  -v "
+msgid "No entries."
+msgstr "ȴ"
+msgid "The file $2 is not readable."
+msgstr " $2 ƫ̽"
+msgid "Discovery Service loaded on: Agent"
+msgstr "Τ٭īAgent"
+msgid "Discovery Service loaded on: Platform Agent."
+msgstr "Τ٭īƺܡȢ"
+msgid "Entries:"
+msgstr ""
+msgid "The discovery table is already loaded on the Agent."
+msgstr "ܡȢĸī"
+msgid "The discovery table is already loaded on the Platform Agent."
+msgstr "ƺܡȢĸī"
+#
+#=============================
+# <WS>/packages/Setup/es-apps
+#=============================
+msgid "This script reads the specified configuration file or\\n%s if not specified,\\nand installs the applications with the server."
+msgstr "Ⱥ Script ̽\\n%sΪ\\nΤȢ"
+msgid "The configuration file contains one or more lines using the following format:\n"
+msgstr "ġĶ֪Ȣթ\n"
+msgid "where:\n"
+msgstr "̧㡨\n"
+msgid "name\tis the name of the application that appears in the Application list\n"
+msgstr " name\tȢȢ"
+msgid "class\tis the name of the Java class for the application\n"
+msgstr " class\tȢ Java ɱ\n"
+msgid "args\tare optional user defined arguments to be passed to the application\n"
+msgstr "args\tīȢϯƫ\n"
+msgid "help\tis the optional help specification using the format key:helpfile or :url.\n"
+msgstr "help\tkey:helpfile  :url ֪Ȣɷƫ\n"
+msgid "There should be no quotes in the line.\n"
+msgstr "ȴſ\n"
+msgid "Lines beginning with # are considered as comments.\n"
+msgstr " # թݷҳء"
+msgid "For example:\n"
+msgstr "\n"
+msgid "Using %s"
+msgstr " %s"
+msgid "%s updated."
+msgstr "%s 仡"
+#
+#================================
+# <WS>/packages/Setup/db-export.sh
+#================================
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+#
+#==================================
+# <WS>/packages/Setup/db-import.sh
+#==================================
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+msgid "please ensure Topology & Event agents are not running..."
+msgstr "ůǵܡȢ..."
+#
+#============================
+# <WS>/packages/Setup/es-run
+#============================
+msgid "Usage : $PROGNAME option1 [option2,...]"
+msgstr "Ρ$PROGNAME  1 [ 2,...]"
+msgid "   where option1 is a Sun Management Center utility\n   and option2,...  are the arguments for 'option1'\n\n   If option1 is '-help', then the usage is printed.\n\n"
+msgstr "   ̧㡢 1  Sun Management Center Ȣ\n     2,... ҡ 1ſ\n\n   Ϊ 1  '-help'̧Ρ\n\n"
+#
+#==============================
+# <WS>/packages/Setup/es-chelp
+#===============================
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+msgid "There is an existing $PROGRAM lockfile, $LOCKFILE"
+msgstr "ġԶ $PROGRAM $LOCKFILE"
+msgid "which indicates that process is executing the $PROGRAM"
+msgstr "ݨܡ $PROGRAM"
+msgid "If this is not the case, delete the lock file,"
+msgstr "ΪӡɴȺ"
+msgid "$LOCKFILE and execute $PROGRAM again."
+msgstr "$LOCKFILE ȹ $PROGRAM"
+msgid "$sdk_helpfile either does not exist or is not writable"
+msgstr "$sdk_helpfile ƫī"
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+#
+#========================================
+# <WS>/src/db/build/build-recovery*.ksh
+#========================================
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Usage: $PROGNAME -au auid -ap apword -wu wuid -wp wpword -sp syspword -s osrvname -tsn tsname -tsp tsphyspath -tsis tssize -olfp olfpath [-cdb] [-vr]"
+msgstr "Ρ$PROGNAME -au auid -ap apword -wu wuid -wp wpword -sp syspword -s osrvname -tsn tsname -tsp tsphyspath -tsis tssize -olfp olfpath [-cdb] [-vr]"
+msgid "   -au auid               :  userid used to admin smc tablespace"
+msgstr "   -au auid               ܡ smc ֪Ϩ userid"
+msgid "   -ap apword             :  password for corresponding admin userid"
+msgstr "   -ap apword             ܡ userid "
+msgid "   -wu wuid               :  working userid used by application"
+msgstr "   -wu wuid               Ȣɢ userid"
+msgid "   -wp wpword             :  working password for corresponding working userid"
+msgstr "   -wp wpword             ɢ userid ɢ"
+msgid "   -sp syspword           :  password for system userid \\\(system\\\)"
+msgstr "   -sp syspword           ˷ userid  \\\(system\\\)"
+msgid "   -s osrvname            :  name of the oracle service used to connect to db"
+msgstr "   -s osrvname            ̯ջ oracle Τ٭"
+msgid "   -tsn tsname            :  name of the tablespace"
+msgstr "   -tsn tsname            ֪Ϩ"
+msgid "   -tsp tsphyspath        :  physical location of tablespace"
+msgstr "   -tsp tsphyspath        ֪Ϩ"
+msgid "   -tsis tssize           :  initial size of tablespace \\\(in M bytes\\\)"
+msgstr "   -tsis tssize           ֪Ϩ޲ \\\( MB ҳ\\\)"
+msgid "   -olfp olfpath          :  physical location \\\(local\\\) to write the smc30.oracle file"
+msgstr "   -olfp olfpath          ī smc30.oracle \\\(\\\)"
+msgid "   -cdb                   :  indicates that any existing tablespace and user"
+msgstr "   -cdb                   ȴܢȴ֪Ϩůϯ"
+msgid "                             matching the specified parameters above are"
+msgstr "                             ĸٶϯ"
+msgid "                             dropped before proceeding. use is optional"
+msgstr "                             Щ۹ƫ"
+msgid "   -vr                    :  this option is used to verify all objects"
+msgstr "   -vr                    Ⱥȴǵ"
+msgid "                             and to perform a recovery sequence if any"
+msgstr "                             ůߦѥٯɢΪ"
+msgid "                             problems are detected"
+msgstr "                             ̯Ƕ"
+msgid "   -ver                   :   option"
+msgstr "   -ver                   "
+msgid "   -lf logfile            :  logfile name"
+msgstr "   -lf logfile            "
+msgid "ERROR: the ESDIR environment variable has not been set"
+msgstr "먡 ESDIR "
+msgid "illegal option encoutered : $2"
+msgstr "̯$2"
+msgid "this is a pc installation : $2"
+msgstr "Ⱥҳ pc ҡ$2"
+msgid "this is a sparc installation : $2"
+msgstr "Ⱥҳ sparc ҡ$2"
+msgid "unknown system type, exiting........................"
+msgstr "˷........................"
+msgid "can not find sqlplus on path, exiting........................."
+msgstr "ĸ̯ sqlplus........................."
+msgid "the current directory is not writable "
+msgstr "Щƫī "
+msgid "sqlplus writes an error log \\\(sqlnet.log\\\)"
+msgstr "sqlplus ī \\\(sqlnet.log\\\)"
+msgid "to the current directory in the event of"
+msgstr "Щ㡾"
+msgid "a connection problem"
+msgstr "ǵ㡿"
+msgid "the /tmp directory does not exist"
+msgstr "/tmp "
+msgid "however, a file named /tmp does exist"
+msgstr "紡ȴԶҳ /tmp "
+msgid "/tmp directory is not writable "
+msgstr "/tmp ƫī"
+msgid "the \\\(-au auid\\\) command line parameter was not specified "
+msgstr " \\\(-au auid\\\) ٶ"
+msgid "the \\\(-ap apword\\\) command line parameter was not specified "
+msgstr " \\\(-ap apword\\\) ٶ"
+msgid "the \\\(-wu wuid\\\) command line parameter was not specified "
+msgstr " \\\(-wu wuid\\\) ٶ"
+msgid "the \\\(-wp wpword\\\) command line parameter was not specified "
+msgstr " \\\(-wp wpword\\\) ٶ"
+msgid "the \\\(-sp syspword\\\) command line parameter was not specified "
+msgstr " \\\(-sp syspword\\\) ٶ"
+msgid "the \\\(-s osrvname\\\) command line parameter was not specified "
+msgstr " \\\(-s osrvname\\\) ٶ"
+msgid "the \\\(-tsn tsname\\\) command line parameter was not specified "
+msgstr " \\\(-tsn tsname\\\) ٶ"
+msgid "the \\\(-tsp tsphyspath\\\) command line parameter was not specified "
+msgstr " \\\(-tsp tsphyspath\\\) ٶ"
+msgid "the \\\(-tsis tssize\\\) command line parameter was not specified "
+msgstr " \\\(-tsis tssize\\\) ٶ"
+msgid "the \\\(-olfp olfpath\\\) command line parameter was invalid! "
+msgstr "\\\(-olfp olfpath\\\) ٶ桪 "
+msgid "exiting..................."
+msgstr "..................."
+msgid "The Initial Tablespace Size given is not invalid"
+msgstr "޲֪Ϩ"
+msgid "valid range is 1 to 500 M"
+msgstr "ȴҳ 1 ̯ 500 M"
+msgid "Writing Applogin file : $2"
+msgstr "ī Applogin $2"
+msgid "file : $2, has a quit statement in it."
+msgstr "file : $2̧ȴġԶ"
+msgid "file : $str3, has a quit statement in it."
+msgstr "file : $str3̧ȴġԶ"
+msgid "need to remove quit statements, exiting........................"
+msgstr "........................"
+msgid "source file: $2 for step: $3 is missing"
+msgstr "$2$3"
+msgid "probably need to execute mkaggregatefiles.ksh"
+msgstr "ƫ mkaggregatefiles.ksh"
+msgid "source file for one or more steps is missing, exiting........................"
+msgstr "ġԶ¡........................"
+msgid " removing existing logfile : /tmp/recovery.err"
+msgstr " ܢȴ/tmp/recovery.err"
+msgid " removing existing logfile :  $2"
+msgstr " ܢȴ  $2"
+msgid " removing existing temporary sql :  $2"
+msgstr " ܢȴ sql  $2"
+msgid "Unable to successfully append $2 onto $3"
+msgstr "ȩʢ $2  $3"
+msgid "return code from cat : $2"
+msgstr " cat $2"
+msgid "$2 file not found"
+msgstr "̯ $2 "
+msgid "Unable to successfully substitue in $2"
+msgstr " $2 ȩ̽"
+msgid "substitution string : $2"
+msgstr "̽롨$2"
+msgid "return code from sed : $2"
+msgstr " sed $2"
+msgid "Unable to successfully perform all sed based substitutions on $2 into $3"
+msgstr "ȩ $2 ĸȴ sed ̽ɢ̯ $3 "
+msgid "return code from grep : $2, meaning it found un-substituted strings"
+msgstr " grep $2̯̽"
+msgid "$2 file not found\\\(1\\\)"
+msgstr "̯ $2 \\\(1\\\)"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "sqlerror code = $2"
+msgstr "sqlerror  = $2"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "unhandled error detected, only recourse is to stop processing"
+msgstr "̯ݨܡ먡ġȢݨܡ"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "execution of $2 ok!!"
+msgstr "$2 ڦ"
+msgid "step file $2 not found"
+msgstr "̯ $2"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "skipping execution of $2"
+msgstr " $2 "
+msgid "$2 dependent step $3 did not execute"
+msgstr " $3  $2 "
+msgid "$2 dependent step $3 failed execution"
+msgstr " $3  $2 "
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "while in recovery mode, attempts to find a successfully executed dependent of "
+msgstr "ߦȢĶ롢ȩ $2 "
+msgid "the $2 step was unsuccessfull.  premature exit!!"
+msgstr "ȩȮ֡"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "while in recovery mode, attempts to find a valid step to execute following "
+msgstr "ߦȢĶ롢ƫĶ $2 ȴ"
+msgid "the $2 step was unsuccessfull.  premature exit!!"
+msgstr "ȩȮ֡"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "too many attempts to execute the $2 step"
+msgstr " $2 Ŵ"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "please see the $2 file for listing details"
+msgstr "ٶ $2 ع"
+#
+#========================================
+# <WS>/src/db/build/mkaggregatefiles.ksh
+#========================================
+msgid " removing existing verify inventory  : agg-verify-proc-inventory.sql"
+msgstr " ܢȴջagg-verify-proc-inventory.sql"
+msgid "-        Create agg-packages-topology.sql file              -"
+msgstr "-        ǡ agg-packages-topology.sql               -"
+msgid "-       Create agg-procedures-topology.sql file             -"
+msgstr "-       ǡ agg-procedures-topology.sql              -"
+msgid "-          Add to agg-createalltables.sql file              -"
+msgstr "-           agg-createalltables.sql                -"
+msgid "-       Add to agg-verifyalltableattribs.sql file           -"
+msgstr "-        agg-verifyalltableattribs.sql          -"
+msgid "-          Add to agg-dataload-preseq.sql file              -"
+msgstr "-           agg-dataload-preseq.sql               -"
+msgid "-        Create agg-packages-eventmanager.sql file          -"
+msgstr "-        ǡ agg-packages-eventmanager.sql           -"
+msgid "-        Create agg-procedures-eventmanager.sql file        -"
+msgstr "-        ǡ agg-procedures-eventmanager.sql         -"
+msgid "-         Add to agg-createalltables.sql file               -"
+msgstr "-          agg-createalltables.sql                -"
+msgid "-         Add to agg-verifyalltableattribs.sql file         -"
+msgstr "-          agg-verifyalltableattribs.sql          -"
+msgid "-       Create agg-packages-mgmtservice.sql file            -"
+msgstr "-       ǡ agg-packages-mgmtservice.sql             -"
+msgid "-       Create agg-procedures-mgmtservice.sql file          -"
+msgstr "-       ǡ agg-procedures-mgmtservice.sql           -"
+msgid "-           Add to agg-createalltables.sql file             -"
+msgstr "-          agg-createalltables.sql                -"
+msgid "-         Add to agg-verifyalltableattribs.sql file         -"
+msgstr "-          agg-verifyalltableattribs.sql          -"
+msgid "-        Create agg-verify-proc-inventory.sql file          -"
+msgstr "-        ǡ agg-verify-proc-inventory.sql           -"
+#
+#==================================================
+# <WS>/src/oa/modules/configd4u/bin/es-setup.sh
+#==================================================
+msgid "Setup failed while adding module $2 into $3"
+msgstr " $2  $3 "
+msgid "$2 does not exist"
+msgstr "$2 "
+msgid "Added module $2 to $3."
+msgstr " $2  $3"
+msgid "$2 is not readable, Could not add the module $3"
+msgstr "$2 ƫ̽ $3"
+msgid "Setup of sunfire config reader module failed."
+msgstr "sunfire ̽"
+#
+#======================================
+# <WS>/src/oa/base/generic/bin/*.sh
+#======================================
+msgid "usage: $basename [-sh|-csh] [-internal|-external]"
+msgstr "Ρ$basename [-sh|-csh] [-internal|-external]"
+msgid "ERROR: the ESROOT environment variable has not been set"
+msgstr "먡 ESROOT "
+msgid "usage: $PROGNAME -s \\\"<secret> [-p <public>]  [-u <user>[ ...]] [-h <host>] [-c <component>[ ...]]\\\""
+msgstr "Ρ$PROGNAME -s \\\"<ǵ> [-p <>]  [-u <ϯ>[ ...]][-h <>] [-c <ǵ>[ ...]]\\\""
+msgid "       <secret> is the superuser password\n"
+msgstr "       <ǵ> ϯ\n"
+msgid "       <public> is the public password (default=public)\n"
+msgstr "       <> ԫ=public\n"
+msgid "       <user> is the list of initial seeded users\n"
+msgstr "       <ϯ> ϯ\n"
+msgid "       <host> is the fallback host name\n"
+msgstr "       <> \n"
+msgid "       <component> is agent/cfgserver/event/cstservice/topology/trap/\n"
+msgstr "       <ǵ>  agent/cfgserver/event/cstservice/topology/trap/\n"
+msgid "       Omit all <component>s to do them all\n"
+msgstr "       ܩȴ <ǵ> \n"
+msgid "$PROGNAME: ESROOT must be set."
+msgstr "$PROGNAME:  ESROOT"
+msgid "$PROGNAME: $1: unknown component"
+msgstr "$PROGNAME: $1: ǵ"
+msgid "$PROGNAME: ERROR: blank secret not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩǵ ..."
+msgid "$PROGNAME: ERROR: blank password not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩ ..."
+msgid "PROGNAME: WARNING ... secret will be truncated to 8 characters"
+msgstr "PROGNAME:  ... ǵҳ 8 Զ"
+msgid "$PROGNAME: security.superuser name not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.superuser ꢡ domain-config.x  user-config.x "
+msgid "$PROGNAME: security.generaluser name not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.generaluser ꢡ domain-config.x  user-config.x "
+msgid "$var"
+msgstr "$var"
+msgid "Interrupted..."
+msgstr "..."
+msgid "$PROGNAME: security.userfile not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.userfile domain-config.x  user-config.x "
+msgid "$PROGNAME: security.authOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.authOID domain-config.x  user-config.x "
+msgid "$PROGNAME: security.privOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.privOID domain-config.x  user-config.x "
+msgid "$PROGNAME: ${COMP}.${COMP}Server not found - using $DEFHOST."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}Server -  $DEFHOST"
+msgid "$PROGNAME: ${COMP}.${COMP}snmpPort not found - skipping $COMP."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}snmpPort - ܩ $COMP"
+msgid "ESROOT must be set\n"
+msgstr " ESROOT\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "OS $sys $rel is not supported"
+msgstr " OS $sys $rel"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "gettext 'Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "gettext 'ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+#
+#=================================================
+# <WS>/src/java/base/console/bin/es-console.sh
+#=================================================
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "DISPLAY environment variable must be set"
+msgstr " DISPLAY "
+msgid "SYMON_JAVAHOME variable must be set"
+msgstr " SYMON_JAVAHOME "
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+#
+#============================================
+# <WS>/src/java/base/server/bin/es-server*
+#============================================
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯Զݨܡ \\\($COMMAND\\\)"
+msgid "No Processes Killed"
+msgstr "ɴݨܡ"
+msgid "gettext 'More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "gettext '̯Զݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID using kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID with kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "ESDIR environment variable must be set"
+msgstr " ESDIR "
+msgid "SYMON_JAVAHOME variable must be set"
+msgstr " SYMON_JAVAHOME "
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+#
+#====================================================
+# <WS>/src/java/com/sun/symon/base/cli/bin/es-cli
+#====================================================
+msgid "$SYMON_JAVAHOME/jre/bin/java must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$SYMON_JAVAHOME/jre/bin/java  Solaris_JDK_1.2.1_04 \n"
+
+#
+#  Strings from Halcyon scripts
+#
+msgid "usage: $basename [-sh|-csh] [-internal|-external]"
+msgstr "Ρ$basename [-sh|-csh] [-internal|-external]"
+msgid "ERROR: the ESROOT environment variable has not been set"
+msgstr "먡 ESROOT "
+msgid "usage: $PROGNAME -s <secret> [-p <public>]  [-u <user>[ ...]] [-h <host>] [-c <component>[ ...]]"
+msgstr "Ρ$PROGNAME -s <ǵ> [-p <>]  [-u <ϯ>[ ...]][-h <>] [-c <ǵ>[ ...]]"
+msgid "<secret> is the superuser password"
+msgstr "<ǵ> ϯ"
+msgid "<public> is the public password (default=public)"
+msgstr "<> ԫ=public"
+msgid "<user> is the list of initial seeded users"
+msgstr "<ϯ> ϯ"
+msgid "<host> is the fallback host name"
+msgstr "<> "
+msgid "<component> is agent/cfgserver/event/topology/trap"
+msgstr "<ǵ>  agent/cfgserver/event/topology/trap"
+msgid "Omit all <component>s to do them all"
+msgstr "ܩȴ <ǵ> "
+msgid "$PROGNAME: ESROOT must be set."
+msgstr "$PROGNAME:  ESROOT"
+msgid "$PROGNAME: $1: unknown component"
+msgstr "$PROGNAME: $1: ǵ"
+msgid "$PROGNAME: ERROR: blank secret not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩǵ ..."
+msgid "$PROGNAME: ERROR: blank password not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩ ..."
+msgid "$PROGNAME: WARNING ... secret will be truncated to 8 characters"
+msgstr "$PROGNAME:  ... ǵҳ 8 Զ"
+msgid "$PROGNAME: security.superuser name not found. Check domain-confg.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.superuser ꢡ domain-confg.x  user-config.x "
+msgid "$PROGNAME: security.generaluser name not found. Check domain-cofig.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.generaluser ꢡ domain-cofig.x  user-config.x "
+msgid "Copying $FILENAME to $ESDIR/cfg..."
+msgstr " $FILENAME ̯ $ESDIR/cfg..."
+msgid "Copying ${1}-${FILENAME} to $ESDIR/cfg..."
+msgstr " ${1}-${FILENAME} ̯ $ESDIR/cfg..."
+msgid "Copying ${COMP}-${FILENAME} to $ESDIR/cfg..."
+msgstr " ${COMP}-${FILENAME} ̯ $ESDIR/cfg..."
+msgid "$var"
+msgstr "$var"
+msgid "Interrupted..."
+msgstr "..."
+msgid "$PROGNAME: security.userfile not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.userfile domain-config.x  user-config.x "
+msgid "$PROGNAME: security.authOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.authOID domain-config.x  user-config.x "
+msgid "$PROGNAME: security.privOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.privOID domain-config.x  user-config.x "
+msgid "$PROGNAME: ${COMP}.${COMP}Server not found - using $DEFHOST"
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}Server -  $DEFHOST"
+msgid "$PROGNAME: ${COMP}.${COMP}snmpPort not found - skipping $COP."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}snmpPort - ܩ $COP"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "OS $sys $rel is not supported"
+msgstr " OS $sys $rel"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID with the force \\\($COMMAND\\\)"
+msgstr "ڰ̱ \\\($COMMAND\\\) ݨܡ ID $PID"
+msgid "DISPLAY environment variable must be set"
+msgstr " DISPLAY "
+msgid "More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯Զݨܡ \\\($COMMAND\\\)"
+msgid "No Processes Killed"
+msgstr "ɴݨܡ"
+msgid "Terminating Process ID $PID using kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID with kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "ESDIR environment variable must be set"
+msgstr " ESDIR "
+#
+# for es-tool - a SDK tool for integrating applications into console
+#
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+
+msgid "$sdk_toolfile either does not exist or is not writable"
+msgstr "$sdk_toolfile ƫī"
+
+msgid "There is an existing $PROGRAM lockfile, $LOCKFILE"
+msgstr "ġԶ $PROGRAM $LOCKFILE"
+
+msgid "which indicates that process is executing the $PROGRAM"
+msgstr "ݨܡ $PROGRAM"
+
+msgid "If this is not the case, delete the lock file,"
+msgstr "ΪӡɴȺ"
+
+msgid "$LOCKFILE and execute $PROGRAM again."
+msgstr "$LOCKFILE ȹ $PROGRAM"
+
+msgid "$sdk_helpfile either does not exist or is not writable"
+msgstr "$sdk_helpfile ƫī"
+
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+
+msgid "Using %s"
+msgstr " %s"
+
+msgid "%s updated."
+msgstr "%s 仡"
+
+msgid "This script reads the specified configuration file or\\n%s if not specified,\\nand installs the applications with the server."
+msgstr "Ⱥ Script ̽\\n%sΪ\\nΤȢ"
+
+msgid "The configuration file contains one or more lines using the following format:\n"
+msgstr "ġĶ֪Ȣթ\n"
+
+msgid "where:\n"
+msgstr "̧㡨\n"
+
+msgid "name\tis the name of the application that appears in the Application list\n"
+msgstr " name\tȢȢ"
+
+msgid "class\tis the name of the Java class for the application\n"
+msgstr " class\tȢ Java ɱ\n"
+
+msgid "args\tare optional user defined arguments to be passed to the application\n"
+msgstr "args\tīȢϯƫ\n"
+
+msgid "help\tis the optional help specification using the format key:helpfile or :url.\n"
+msgstr "help\tkey:helpfile  :url ֪Ȣɷƫ\n"
+
+msgid "There should be no quotes in the line.\n"
+msgstr "ȴſ\n"
+
+msgid "Lines beginning with # are considered as comments.\n"
+msgstr " # թݷҳء"
+
+msgid "For example:\n"
+msgstr "\n"
+
+#
+#====================================================
+# <WS>/packages/Setup/es-platform
+#====================================================
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "       Where the options represent:\n"
+msgstr "       ̧\n"
+msgid "  a : to add an instance of platform agent\n"
+msgstr "  aƺܡȢ\n"
+msgid "  d : to delete an instance of platform agent\n"
+msgstr "  dɴƺܡȢ\n"
+msgid "You can not specify both a and d option in the same command"
+msgstr "ġԶ a ů d "
+msgid "You can not have spaces in the instance name."
+msgstr "ȴϨ֪"
+msgid "Port $2 is not a valid port number, try another number : "
+msgstr " $2 ȴƶġԶ "
+msgid "This port is being used by Sun Management Center agent, try another number : "
+msgstr "Ⱥ Sun Management Center ܡȢƶġԶ "
+msgid "This port is being used by some instance, try another number : "
+msgstr "ȺԶƶġԶ "
+msgid "This port is being used by some another process, try another number : "
+msgstr "ȺƶġԶݨܡƶġԶ "
+msgid "This instance is already present."
+msgstr "Ⱥ㡤"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+
+# END
+domain "ES_SCRIPTS"
+#
+#==============================
+# <WS>/packages/Setup/es-inst
+#==============================
+msgid "You need to be root before running this program.\n"
+msgstr "ȢЩǿȩҳ root\n"
+msgid "Can not remove the directory /tmp/SunMC30Install\n"
+msgstr " /tmp/SunMC30Install\n"
+msgid "Can not create the directory /tmp/SunMC30Install/sbin\n"
+msgstr "ǡ /tmp/SunMC30Install/sbin\n"
+msgid "Can not copy the required files to /tmp/SunMC30Install\n"
+msgstr "̯ /tmp/SunMC30Install\n"
+msgid "Can not open the display. Either X server is not allowing\n"
+msgstr " Either X server is not allowing\n"
+msgid "the connection or you are running it from console login.\n"
+msgstr "ϯƺīơ\n"
+msgid "Please read Sun Management Center installation Readme and\n"
+msgstr " Sun Management Center  Readme \n"
+msgid "run installation as mentioned.\n"
+msgstr "ҡ\n"
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "  Space calculations will be wrong."
+msgstr "  Ϩȴ먡"
+msgid "Insufficient disk space to install the requested Sun Management Center components"
+msgstr "ȴϨƫ Sun Management Center ǵ"
+msgid "  - Respecify the components to install so it takes less space"
+msgstr "  - ģ́ŷϨ"
+msgid "  - Uninstall some existing packages to make room for Sun Management Center"
+msgstr "  - ġܢȴաϨ Sun Management Center"
+msgid "  - Make a soft link for $2 that points to more space"
+msgstr "  - ҳ $2 ܨġԶڰ̱Ϩ"
+msgid "  - Ask your system administrator for help"
+msgstr "  - ˷ܡɷ"
+msgid "Package $2 is already installed on this system."
+msgstr "Ⱥ˷ĸħ $2"
+msgid "Please verify the platform for package: $2"
+msgstr "ƺ$2"
+msgid "Found: $2"
+msgstr "̯$2"
+msgid "Skipping package $2"
+msgstr " $2"
+msgid "There appear to be some permission problems with the installation"
+msgstr "ĸƫȴġƫ"
+msgid "directory: $2"
+msgstr "$2"
+msgid "In order to install Sun Management Center, root must be able to write to the"
+msgstr " Sun Management Centerroot ϯ̦ȴ"
+msgid "installation directory and own the files in that directory."
+msgstr "īƫ⡢ȴĶ"
+msgid "Please check your configuration and try again."
+msgstr "ܡ"
+msgid "Exiting Sun Management Center installation."
+msgstr " Sun Management Center ʩ"
+msgid "Error: Cannot find pack key $2."
+msgstr "먡̯ $2"
+msgid "There are $2 layers for your selection:"
+msgstr "ȴ $2 Զȹ"
+msgid "No layers were selected for installation."
+msgstr "ȴ̽ȹ"
+msgid "No layers were found for installation."
+msgstr "̯ȹ"
+msgid "No packs are defined in the installation configuration file."
+msgstr "ա"
+msgid "Please select the packs to install:"
+msgstr "̽ա"
+msgid "No packs were selected for installation."
+msgstr "̽ա"
+msgid "Error: Cannot find component key $2."
+msgstr "먡̯ǵ $2"
+msgid "Error: Cannot find key $2."
+msgstr "먡̯ $2"
+msgid "    Component $2 has already been installed."
+msgstr "    ǵ $2"
+msgid "    The corresponding packages are: $2"
+msgstr "    ҳ$2"
+msgid "  Invalid source directory."
+msgstr "  硤"
+msgid "Source directory: $2"
+msgstr "硨$2"
+msgid "Invalid parameter for productExists\\\(\\\): $2"
+msgstr " productExists ٶ\\\(\\\)$2"
+msgid "Production Environment Installation"
+msgstr "ܨ"
+msgid "Developer Environment Installation"
+msgstr "ĩ"
+msgid "Cannot find $2."
+msgstr "̯ $2"
+msgid "Invalid License, please buy a valid license."
+msgstr "桢ȴ⡤"
+msgid "  Invalid entry."
+msgstr "  "
+msgid "  Installation configuration files not found."
+msgstr "  ̯"
+msgid "You can install only agent components on Solaris 2.5.1"
+msgstr "ƫƷ Solaris 2.5.1 ĸܡȢǵ"
+msgid "Select one of the following:"
+msgstr "̽Ķġ"
+msgid "\\\(1\\\) Production Environment \\\(PE\\\)"
+msgstr "\\\(1\\\) ܨ \\\(PE\\\)"
+msgid "\\\(2\\\) Developer Environment \\\(DE\\\)"
+msgstr "\\\(2\\\) ĩ \\\(DE\\\)"
+msgid "Some components have already been installed in $2"
+msgstr " $2 ħšǵ"
+msgid "The target directory will be set to $2"
+msgstr "ҳ $2"
+msgid "Cannot create the directory $2"
+msgstr "ǡ $2"
+msgid "Target directory: $2"
+msgstr "硨$2"
+msgid "Package $2 is already installed."
+msgstr " $2 ҡ"
+msgid "Package not found: $2"
+msgstr "̯ա$2"
+msgid "Error: Cannot find pack key $2."
+msgstr "먡̯ $2"
+msgid "Pack: $2"
+msgstr "ա$2"
+msgid "  Please select the components to install:"
+msgstr "  ̽ǵ"
+msgid "    Component $2 is essential and will be automatically installed."
+msgstr "    $2 ҳǵٯҡ"
+msgid "    Component $2 has already been installed."
+msgstr "    ǵ $2"
+msgid "    The corresponding packages are: $2"
+msgstr "    ҳ$2"
+msgid "    Component $2 is dependent on: $3"
+msgstr "    ǵ $2 ʡ$3"
+msgid "    The component\\\(s\\\) will be automatically installed."
+msgstr "    ǵٯҡ"
+msgid "  Selected Components: $2"
+msgstr "  ̽ǵ$2"
+msgid "  Selected Components: \\\<default\\\>"
+msgstr "  ̽ǵ\\\<\\\>"
+msgid "  Warning - Could not find pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Warning - Could not find the pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Warning - Could not find the pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "Checking disk space..."
+msgstr "Ϩ..."
+msgid "Insufficient disk space to install Sun Management Center Database Software"
+msgstr "ȴϨƫ Sun Management Center ջ"
+msgid "Sun Management Center DB application software requires: $2 Kbytes"
+msgstr "Sun Management Center DB ȢϨ桨$2 KB"
+msgid "The installation directory \\\"$2\\\" has: $3 Kbytes"
+msgstr " \\\"$2\\\" ȴϨ桨$3 KB"
+msgid "Please supply a directory."
+msgstr "硤"
+msgid "Insufficient disk space to install Sun Management Center Database Dbfiles"
+msgstr "ȴϨƫ Sun Management Center ջ Db "
+msgid "Sun Management Center DB application software requires: $2 Kbytes"
+msgstr "Sun Management Center DB ȢϨ桨$2 KB"
+msgid "The installation directory \\\"$2\\\" has: $3 Kbytes"
+msgstr " \\\"$2\\\" ȴϨ桨$3 KB"
+msgid "Please supply a directory."
+msgstr "硤"
+msgid "Disk Space Requirements:"
+msgstr "Ϩ塨"
+msgid "Space required \\\(in $2\\\):  $3 blocks."
+msgstr "Ϩ \\\($2 \\\)$3 Զٴۡ"
+msgid "Space available \\\(in $2\\\): $3 blocks."
+msgstr "ƫϨ \\\($2 \\\)$3 Զٴۡ"
+msgid "Insufficient space available in $2"
+msgstr "$2 ƫϨ"
+msgid "Here are some possible fixes to alleviate the disk space problem:"
+msgstr "ĶҳƫϨΡ"
+msgid "\\\"$2\\\" resides on CD \\\#$3."
+msgstr "\\\"$2\\\"  \\\#$3 ĸ"
+msgid "New source directory: $2"
+msgstr "硨$2"
+msgid "Invalid directory."
+msgstr "硤"
+msgid "Installing the components..."
+msgstr "ǵ..."
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "The package $2 is already installed"
+msgstr " $2"
+msgid " Selection Summary"
+msgstr " "
+msgid "Looking for addon products on CD \\\#2..."
+msgstr " CD \\\#2 ĸܨ..."
+msgid "New source directory: $2"
+msgstr "硨$2"
+msgid "                Sun Management Center 3.0 Addons Product Selection:                 "
+msgstr "                Sun Management Center 3.0 ܨ塨                 "
+msgid "Installing the product: $2"
+msgstr "ܨ¡$2"
+msgid "Cannot find pkginfo file for package: $2"
+msgstr "̯ pkginfo $2"
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "Supports: $2 - $3"
+msgstr "Ρ$2 - $3"
+msgid "Supports: $2"
+msgstr "Ρ$2"
+msgid "Name: $2"
+msgstr "ꢡ$2"
+msgid "Description: $2"
+msgstr "$2"
+msgid "Unsupported OS version: $2"
+msgstr " OS ۡ$2"
+msgid "No components to install."
+msgstr "ȴǵ"
+msgid "A previous version of Sun Management Center exists."
+msgstr "ȴ Sun Management Center 㡤"
+msgid "Please uninstall it locally in \\\"$2\\\"."
+msgstr "ҡ \\\"$2\\\" 㡿"
+msgid "Cannot find $2"
+msgstr "̯ $2"
+msgid "Error copying the locale files to: $2"
+msgstr "̯Ķ먡$2"
+msgid "Setup script will use English."
+msgstr " script ơ"
+msgid "Please run setup locally in \\\"$2\\\"."
+msgstr " \\\"$2\\\" 㡿"
+msgid "ESROOT is not set."
+msgstr " ESROOT"
+msgid "Invalid directory: $2"
+msgstr "硨$2"
+msgid "Invalid file: $2"
+msgstr "$2"
+msgid "Both -S and -T options must be specified"
+msgstr "-S  -T ̥Զ"
+msgid "This script will help you to install the Sun Management Center software."
+msgstr " script ̶ɷ Sun Management Center ա"
+msgid "Do you want to install this package now?"
+msgstr "ǡɻȺա"
+msgid "    Do you want to proceed?"
+msgstr "    "
+msgid "  Do you want to install components in layer: $2?"
+msgstr "  Ķȹǵ$2?"
+msgid "  Do you want to install $2?"
+msgstr "   $2"
+msgid "Do you want to install the product: $2?"
+msgstr "Ⱥܨ¡$2?"
+msgid "Do you want to install this package now?"
+msgstr "ǡɻȺա"
+msgid "Would you like to uninstall it now?"
+msgstr "ǡɻá"
+msgid "Would you like to save your old data?"
+msgstr "á"
+msgid "Do you want to run setup now?"
+msgstr "ǡɻҡ"
+msgid "Please enter the source directory:"
+msgstr "ī硨"
+msgid "Enter the development system license: "
+msgstr "ī˷⡨ "
+msgid "Enter your choice: [1\\\|2]"
+msgstr "ī塨[1\\\|2]"
+msgid "Please enter the target directory [$2]:"
+msgstr "ī [$2]"
+msgid "Enter the directory to install the database: "
+msgstr "īջ硨 "
+msgid "Please insert the second CD or enter the source directory from disk 2 \\\[$2\\\]"
+msgstr "īĨگ CD ī 2  \\\[$2\\\]"
+msgid "Please enter the new source directory:"
+msgstr "ī硨"
+msgid "Please enter the OS version for \\\"$2\\\" \\\[$3\\\]: "
+msgstr "ī \\\"$2\\\"  OS  \\\[$3\\\] "
+msgid "Please enter the platform for \\\"$2\\\" \\\[$3\\\]: "
+msgstr "ī \\\"$2\\\" ƺ \\\[$3\\\] "
+msgid "Log file: $2"
+msgstr "$2"
+msgid "                         End of Installation                         "
+msgstr "                                                  "
+msgid "For installing Sun Management Center on $2, we need to know the"
+msgstr "ҳħ Sun Management Center  $2 ĸʼԯϡ"
+msgid "operating system on $2. This should be the output of the command"
+msgstr "$2 ĸɢ˷ӡ"
+msgid "/usr/bin/uname -r. The command must be executed on a machine booted with"
+msgstr "/usr/bin/uname -r Ϊ"
+msgid "disk mounted on $2"
+msgstr " $2 ٯĸ硤"
+msgid "For installing Sun Management Center on $2, we need to know the"
+msgstr "ҳħ Sun Management Center  $2 ĸʼԯϡ"
+msgid "machine type of machine whose root filesystem is or will be mounted on $2."
+msgstr "̧˷ɻ $2 ĸΡ"
+msgid "This should be the output of the following command"
+msgstr "ĶΪ"
+msgid "    /usr/platform/PLATFORM/sbin/prtdiag \\\| /usr/bin/head -1 \\\| /usr/bin/cut -f2 -d:"
+msgstr "    /usr/platform/PLATFORM/sbin/prtdiag \\\| /usr/bin/head -1 \\\| /usr/bin/cut -f2 -d:"
+msgid "Please note that the above commands must be executed on the target machine."
+msgstr "ĸĸ硤"
+msgid "Would you like to migrate your 2.x data?"
+msgstr " 2.x á"
+msgid "A previous version of Sun Management Center Data exists."
+msgstr "ȴ Sun Management Center 㡤"
+msgid "This will remove all files under $2. If you have any custom"
+msgstr " $2 ĶȴΪԶĶȴ"
+msgid "scripts under this directory, please move them to an alternate location"
+msgstr "Ƕ scriptsЩԯ"
+msgid "before proceeding."
+msgstr "̯"
+msgid "Do you wish to continue with the removal of the existing 2.x data"
+msgstr "ܢȴ 2.x "
+#
+#===============================
+# <WS>/packages/Setup/es-setup
+#===============================
+msgid "Setup of $2 component failed."
+msgstr " $2 ǵ"
+msgid "Exiting setup."
+msgstr ""
+msgid "The Sun Management Center Setup File \\\($2\\\)$3"
+msgstr "Sun Management Center  \\\($2\\\)$3"
+msgid "    is missing. Cannot Setup Sun Management Center $2."
+msgstr "    ¡ Sun Management Center $2"
+msgid "Initiating setup for Sun Management Center $2 Component."
+msgstr " Sun Management Center $2 ǵ "
+msgid "Please read the release notes to configure the device type."
+msgstr "Ρ"
+msgid "Using log file: $2."
+msgstr "$2."
+msgid "   Sun Management Center Setup Program"
+msgstr "   Sun Management Center Ȣ"
+msgid "This program does setup of Sun Management Center components that are installed on your system."
+msgstr "ȺȢ˷ĸ Sun Management Center ǵ"
+msgid "Checking for Sun Management Center components installed on your system."
+msgstr "˷ĸ Sun Management Center ǵ"
+msgid "You Do not have any Sun Management Center components installed."
+msgstr "Ƕ Sun Management Center ǵ"
+msgid "You may want to run setup after installing"
+msgstr " Sun Management Center ǵѥƫ"
+msgid "    the Sun Management Center components."
+msgstr "    Ȣ"
+msgid "You have the following Sun Management Center components installed"
+msgstr "ħĶ Sun Management Center ǵ"
+msgid "             Sun Management Center Server"
+msgstr "             Sun Management Center Τ"
+msgid "             Sun Management Center Agent"
+msgstr "             Sun Management Center ܡȢ"
+msgid "             Sun Management Center Console"
+msgstr "             Sun Management Center ƺ"
+msgid "This script will perform the setup for each of these components"
+msgstr " Script ҳǵʩ"
+msgid "Core Sun Management Center setup complete."
+msgstr " Sun Management Center ܫ"
+msgid "Setup of Sun Management Center addons incomplete. Exiting"
+msgstr " Sun Management Center ȩ Exiting"
+msgid "Sun Management Center setup complete."
+msgstr " Sun Management Center ܫ"
+msgid "Problems occured with setup of the following addons: $2"
+msgstr "Ķ$2"
+msgid "Setup log stored in $2"
+msgstr " $2 "
+msgid "A minimum of 256 MB RAM is required to run Sun Management Center."
+msgstr "ŷȴ 256 MB  RAM  Sun Management Center"
+msgid "Current system has $2 MB RAM."
+msgstr "Щ˷̦ȴ $2 MB  RAM"
+msgid "Can not continue to setup Sun Management Center DB."
+msgstr " Sun Management Center DB"
+msgid "Checking /etc/system file..."
+msgstr " /etc/system ..."
+msgid "Checking memory available..."
+msgstr "ƫش..."
+msgid "Checking /etc/system file error. It can not be updated."
+msgstr " /etc/system 먡 It can not be updated."
+msgid "The /etc/system file needs to be changed for Sun Management Center DB requirements."
+msgstr " /etc/system  Sun Management Center DB 塤"
+msgid "Backing up /etc/system to /etc/system.SunMCDB.backup"
+msgstr "ެǹ /etc/system to /etc/system.SunMCDB.backup"
+msgid "/etc/system file has not been changed."
+msgstr " /etc/system file "
+msgid "In order for kernel variable changes to take effect, this "
+msgstr "ҳ桢ٯ"
+msgid "machine must be rebooted.  You must reboot this machine now"
+msgstr "檡ǡɻٯ"
+msgid "and then run the setup again."
+msgstr "ѥԶʩ"
+msgid "Cannot create link $2 to directory $3"
+msgstr "ǡͻ $3  $2"
+msgid "Sun Management Center DB setup cannot continue."
+msgstr "Sun Management Center DB ʩ"
+msgid "Error changing ownership of $2 to root.  Installation cannot continue."
+msgstr " $2 ȴҳ root ɢ먡ҡ"
+msgid "Configuring Sun Management Center DB listener and service files..."
+msgstr " Sun Management Center DB Τ٭..."
+msgid "The default listener port $2 for Sun Management Center DB has already been used."
+msgstr "Sun Management Center DB  $2 ݷ"
+msgid "Please input another port number for Sun Management Center DB listener."
+msgstr "īƶġԶ Sun Management Center DB "
+msgid "Error in resetting the configuration files for Sun Management Center DB."
+msgstr " Sun Management Center DB 먡"
+msgid "Linking database, Please wait"
+msgstr "ջԷ"
+msgid "in the event of error, see /tmp/relink.log"
+msgstr "ǵ㡢ٶ /tmp/relink.log"
+msgid "Create ora passord file"
+msgstr "ǡ ora "
+msgid "/usr/bin/make is needed on Sun Management Center server machine. The current"
+msgstr "Sun Management Center Τĸȴ /usr/bin/makeЩ"
+msgid "failed to create internal user password file : $2"
+msgstr "ǡϯ$2"
+msgid "does not have it. Please make this file available and run setup again"
+msgstr "ȴԶҳƫѥʩ"
+msgid "execution of make -f ins_net_server.mk install failed"
+msgstr "make -f ins_net_server.mk install "
+msgid "see /tmp/make.log file for details"
+msgstr "ٶ /tmp/make.log ع"
+msgid "Database setup failed : $2 does not exist"
+msgstr "ջ$2 "
+msgid "Database setup failed : mkaggregatefiles.ksh failed"
+msgstr "ջmkaggregatefiles.ksh "
+msgid "Database setup failed : db-start failed"
+msgstr "ջdb-start "
+msgid "Please wait, Sun Management Center database setup in progress. It may take 15 to 20 minutes"
+msgstr "Է Sun Management Center ջƫĸ 15 ̯ 20 š"
+msgid "Database setup failed : build-smc-oracle-recovery.ksh failed"
+msgstr "ջbuild-smc-oracle-recovery.ksh "
+msgid "Please wait, Sun Management Center database setup in progress. It may take 15 to 20 minutes"
+msgstr "Է Sun Management Center ջƫĸ 15 ̯ 20 š"
+msgid "Database setup failed : build-smc-oracle-recovery.ksh failed"
+msgstr "ջbuild-smc-oracle-recovery.ksh "
+msgid "Found symon 2.x import data"
+msgstr "̯ symon 2.x ī"
+msgid "about to import symon 2.x data"
+msgstr "ī symon 2.x "
+msgid "cannot find the 2.x import script file $2"
+msgstr "̯ 2.x ī Script  $2"
+msgid "will not import symon 2.x data"
+msgstr "ī symon 2.x "
+msgid "Database setup failed : db-stop failed"
+msgstr "ջdb-stop "
+msgid "A problem occured with $2 setup.  Do you want to continue?"
+msgstr " $2 ܢ"
+msgid "    Do you wish to update /etc/system file?"
+msgstr "     /etc/system "
+msgid "A problem occured with $2 setup.  Do you want to continue?"
+msgstr " $2 ܢ"
+msgid "    Do you wish to keep any existing topology and event data"
+msgstr "    Ƕܢůǵ"
+msgid "    Do you want to perform a symon 2.x data import?"
+msgstr "     symon 2.x ī"
+msgid "Do you want to start Sun Management Center agent and server components now"
+msgstr "ǡɻٯ Sun Management Center ܡȢΤǵ"
+msgid "Do you want to start Sun Management Center agent now"
+msgstr "ǡɻٯ Sun Management Center ܡȢ"
+msgid "Error: It seems the file $2 is not writable, could not update the file."
+msgstr "먡 $2 ī"
+msgid "Configuring the system for setup, please wait."
+msgstr "˷Է"
+#
+#===============================
+# <WS>/packages/Setup/db-start
+#===============================
+msgid "Listener and Database are up and running\n"
+msgstr "ջɳɢ\n"
+msgid "the current sid \n"
+msgstr "Щ sid \n"
+msgid "the current orahome \n"
+msgstr "Щ orahome \n"
+msgid "unknown system type, exiting......................\n"
+msgstr "˷......................\n"
+msgid "getHostName: failed to obtain current host from hostname command\n"
+msgstr "getHostNameڷ hostname ̽ڵЩ\n"
+msgid "current host : $2\n"
+msgstr "Щ񢡨$2\n"
+msgid "getUserName: failed to obtain user name from id command\n"
+msgstr "getUserNameڷ id ̽ڵϯ\n"
+msgid "current user name : $2\n"
+msgstr "Щϯꢡ$2\n"
+msgid "getUserGroup: failed to obtain user group from id command\n"
+msgstr "getUserGroupڷ id ̽ڵ\n"
+msgid "current user group : $2\n"
+msgstr "Щϯڡ$2\n"
+msgid "path_app : $2\n"
+msgstr "path_app :$2\n"
+msgid "found $2 on path in $3\n"
+msgstr " $3 ̯ $2\n"
+msgid "can not find $2 on path, exiting.......................\n"
+msgstr "ĸ̯ $2.......................\n"
+msgid "verifyDatabaseUp: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseUpڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseUp: instance is executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseUp: instance is not executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseDown: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseDownڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseDown: instance is executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyDatabaseDown: instance is not executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyListenerUp: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerUpڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerUp: listener $2 is execution\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerUp: listener $2 is not execution\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerDown: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerDownڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerDown: listener $2 is execution\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyListenerDown: listener $2 is not execution\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from df\n"
+msgstr "verifyFilesystemPermڷ df ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from df\n"
+msgstr "verifyFilesystemPermڷ df ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: failed to obtain filesystem info from mount comma\n"
+msgstr "verifyFilesystemPermڷ comma ̽ڵ˷ع\n"
+msgid "verifyFilesystemPerm: filesystem $2 is not mounted setuid\n"
+msgstr "verifyFilesystemPerm˷ $2  setuid\n"
+msgid " must re-mount the filesystem with setuid enabled\n"
+msgstr "  setuid ٯ˷\n"
+msgid "verifyFilesystemPerm: filesystem $2 is mounted setuid, OK\n"
+msgstr "verifyFilesystemPerm˷ $2  setuid\n"
+msgid "verifyListenerStatus: failed to obtain listener status for alias: $2\n"
+msgstr "verifyListenerStatusҳĶɱ̽ڵ表$2\n"
+msgid "verifyListenerStatus: listener status is good for alias: $2\n"
+msgstr "verifyListenerStatusĶɱ$2\n"
+msgid "verifyListenerStatus: listener status is not good for alias: $2\n"
+msgstr "verifyListenerStatusĶɱ$2\n"
+msgid "the specified path \\\($2\\\) does not exist\n"
+msgstr " \\\($2\\\) \n"
+msgid "tmpdir \n"
+msgstr "tmpdir \n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain accessperms from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵ̽$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain username from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵϯꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain groupname from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: access perms for \\\($2\\\) is not at least 755\n"
+msgstr "verifyGoodOraclePermOwnership \\\($2\\\) ̽޲ŷ 755\n"
+msgid "verifyGoodOraclePermOwnership: access perms ok\n"
+msgstr "verifyGoodOraclePermOwnership̽ڦ\n"
+msgid "verifyGoodOraclePermOwnership: owner \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3 ȴϯ \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: owner ok\n"
+msgstr "verifyGoodOraclePermOwnershipȴϯڦ\n"
+msgid "verifyGoodOraclePermOwnership: group \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3  \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: group ok\n"
+msgstr "verifyGoodOraclePermOwnershipڦ\n"
+msgid "**** directory : $2 does not exist\n"
+msgstr "**** 硨$2 \n"
+msgid "loop: current new $2\n"
+msgstr "Щ $2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain accessperms from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵ̽$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain username from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵϯꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: failed to obtain groupname from ls command for : $2\n"
+msgstr "verifyGoodOraclePermOwnership ls ҳĶ̽ڵꢡ$2\n"
+msgid "verifyGoodOraclePermOwnership: access perms for \\\($2\\\) is not at least 755\n"
+msgstr "verifyGoodOraclePermOwnership \\\($2\\\) ̽޲ŷ 755\n"
+msgid "verifyGoodOraclePermOwnership: access perms ok\n"
+msgstr "verifyGoodOraclePermOwnership̽ڦ\n"
+msgid "verifyGoodOraclePermOwnership: owner \\\($listuser\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3 ȴϯ \\\($listuser\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: owner ok\n"
+msgstr "verifyGoodOraclePermOwnershipȴϯڦ\n"
+msgid "verifyGoodOraclePermOwnership: group \\\($2\\\) of $3 is not $4\n"
+msgstr "verifyGoodOraclePermOwnership$3  \\\($2\\\)  $4\n"
+msgid "verifyGoodOraclePermOwnership: group ok\n"
+msgstr "verifyGoodOraclePermOwnershipڦ\n"
+msgid "**** file : $2 does not exist\n"
+msgstr "**** $2 \n"
+msgid "verifySharedMemUsage: failed to obtain ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̽ڵ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifySharedMemUsage: found ipcs \\\(shared memory segment\\\) info user : $2, group : $3, \\\(shid\\\) : $4\n"
+msgstr "verifySharedMemUsage̯ ipcs \\\(شٴ\\\) عϯ$2ڡ$3, \\\(shid\\\)$4\n"
+msgid "verifySharedMemUsage: did find ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̯ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifySharedMemUsage: did not find any ipcs \\\(shared memory segment\\\) info user : $2, group : $3\n"
+msgstr "verifySharedMemUsage̯Ƕ ipcs \\\(شٴ\\\) عϯ$2ڡ$3\n"
+msgid "verifyActiveSemaphoresUsage: failed to obtain ipcs \\\(active semaphores\\\) info user : $2, group : $3\n"
+msgstr "verifyActiveSemaphoresUsage̽ڵ ipcs \\\(ɢ\\\) عϯ$2ڡ$3\n"
+msgid "verifyActiveSemaphoresUsage: found ipcs \\\(active semaphores\\\) info user : $2, group : $3, \\\(semid\\\) : $4\n"
+msgstr "verifyActiveSemaphoresUsage̯ ipcs \\\(ɢ\\\) عϯ$2ڡ$3, \\\(semid\\\)$4\n"
+msgid "verifyActiveSemaphoresUsage: did find ipcs \\\(active semaphores\\\) info user : $2, group : \n"
+msgstr "verifyActiveSemaphoresUsage̯ ipcs \\\(ɢ\\\) عϯ$2ڡ\n"
+msgid "verifyActiveSemaphoresUsage: did not find any ipcs \\\(active semaphores\\\) info user : $2, group : $3\n"
+msgstr "verifyActiveSemaphoresUsage̯Ƕ ipcs \\\(ɢ\\\) عϯ$2ڡ$3\n"
+msgid "startListener: failed to start listener, alias: $2\n"
+msgstr "startListenerٯ¡ɱء$2\n"
+msgid "startListener: listener started, alias: $2\n"
+msgstr "startListenerٯɱء$2\n"
+msgid "stopListener: failed to stop listener, alias: $2\n"
+msgstr "stopListener¡ɱء$2\n"
+msgid "stopListener: listener stopped, alias: $2\n"
+msgstr "stopListenerϡɱء$2\n"
+msgid "removing existing listener log file $2"
+msgstr "ܢȴ $2"
+msgid "execution of verifySetuidFilesystemPerm $2 fail\n"
+msgstr "verifySetuidFilesystemPerm $2 \n"
+msgid "exiting........................\n"
+msgstr "........................\n"
+msgid "execution of $2 start $3 fail\n"
+msgstr "$2 ٯ $3 \n"
+msgid "execution of verifyListenerUp $2 fail\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "execution of verifyGoodListenerStatus $2 fail\n"
+msgstr " verifyGoodListenerStatus $2 \n"
+msgid "execution of sqlplus using @$2 fail\n"
+msgstr "ɳ @$2  sqlplus \n"
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "execution of verifyDatabaseUp $2 fail\n"
+msgstr "verifyDatabaseUp $2 \n"
+msgid "Listener and Database are up and running\n"
+msgstr "ջɳɢ\n"
+#
+#================================
+# <WS>/packages/Setup/es-device
+#================================
+msgid "Usage: $2 -ad Filename"
+msgstr "Ρ$2 -ad "
+msgid "   where the options represent:"
+msgstr "   ̧㡢"
+msgid "     a : Add new device"
+msgstr "     a"
+msgid "     d : Delete device"
+msgstr "     dɴ"
+msgid "This action is limited to superuser only."
+msgstr "Ⱥɢϯ"
+msgid "Exiting $2."
+msgstr " $2"
+msgid "create_node_family_file: Error! Invalid node object type $2"
+msgstr "create_node_family_file먡ǵ $2 "
+msgid "set_global_variable: Value not specified for $2"
+msgstr "set_global_variable $2 ԫ"
+msgid "set_global_variable: Invalid parameter $2"
+msgstr "set_global_variableٶ $2"
+msgid "delete_node: Invalid data in input file"
+msgstr "delete_nodeī"
+msgid "delete_node: $2 does not exist, verify input"
+msgstr "delete_node$2 㡢ī"
+msgid "delete_group: Invalid data in input file"
+msgstr "delete_groupī"
+msgid "delete_group: $2 does not exist, verify input"
+msgstr "delete_group$2 㡢ī"
+msgid "delete_group: Invalid group type $2"
+msgstr "delete_group $2 "
+msgid "delete_segment: Invalid data in input file"
+msgstr "delete_segmentī"
+msgid "delete_segment: $2 does not exist, verify input"
+msgstr "delete_segment$2 㡢ī"
+msgid "delete_segment: Invalid segment type $2"
+msgstr "delete_segmentٴ $2 "
+msgid "delete_composite: Invalid data in input file"
+msgstr "delete_compositeī"
+msgid "delete_composite: $2 does not exist, verify input"
+msgstr "delete_composite$2 㡢ī"
+msgid "validate_node_object_type: $2 or $3 exists"
+msgstr "validate_node_object_type$2  $3 "
+msgid "validate_i18n_key: Node object type exists in $2 line $3"
+msgstr "validate_i18n_keyǵ $2  $3"
+msgid "validate_i18n_key: Invalid i18n key: $2"
+msgstr "validate_i18n_keyi18n 桨$2"
+msgid "validate_group_i18n_type: $2 is invalid group type"
+msgstr "validate_group_i18n_type$2 "
+msgid "validate_group_i18n_key: Group object type exists in $2 line $3"
+msgstr "validate_group_i18n_keyǵ $2  $3"
+msgid "validate_segment_i18n_type: $2 is invalid segment type"
+msgstr "validate_segment_i18n_type$2 ٴ"
+msgid "validate_segment_i18n_key: Segment object type exists in $2 line $3"
+msgstr "validate_segment_i18n_keyٴǵ $2  $3"
+msgid "validate_composite_i18n_key: Composite object type exists in $2 line $3"
+msgstr "validate_composite_i18n_keyǵ $2  $3"
+msgid "validate_properties_file: Invalid property file name. Must be $2"
+msgstr "validate_properties_file桤 $2"
+msgid "validate_search_parameter: Invalid sysoid value $2"
+msgstr "validate_search_parametersysoid ԫ $2 "
+msgid "validate_icon_file: Check if file exists and permissions"
+msgstr "validate_icon_fileů"
+msgid "validate_hardware_module: Hardware Module name does not exist"
+msgstr "validate_hardware_module"
+msgid "validate_group_object_type: Invalid object type $2"
+msgstr "validate_group_object_typeǵ $2 "
+msgid "validate_group_object_type: Group object type exists in $2 line $3"
+msgstr "validate_group_object_typeǵ $2  $3"
+msgid "validate_segment_object_type: Invalid object type $2"
+msgstr "validate_segment_object_typeǵ $2 "
+msgid "validate_segment_object_type: Segment object type exists in $2 line $3"
+msgstr "validate_segment_object_typeٴǵ $2  $3"
+msgid "add_node: Invalid node type $2"
+msgstr "add_node $2 "
+msgid "add_node: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_node $2 ů"
+msgid "add_group: Invalid group type $2"
+msgstr "add_group $2 "
+msgid "add_group: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_group $2 ů"
+msgid "add_segment: Invalid segment type $2"
+msgstr "add_segmentٴ $2 "
+msgid "add_segment: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_segment $2 ů"
+msgid "add_composite: Cannot copy $2 file, check if file exists and permissions"
+msgstr "add_composite $2 ů"
+msgid "Package SUNWessrv is not installed on this system"
+msgstr "Ⱥ˷ SUNWessrv "
+msgid "Unable to create logfile $2"
+msgstr "ǡ $2"
+msgid "$2 file does not exist"
+msgstr "$2 "
+msgid "$2 file does not have read permissions"
+msgstr "$2 ̦̽"
+msgid "Invalid Operation: Operation not supported"
+msgstr "ɢ桨ɢ̿"
+msgid "process_delete_data: Object type $2 missing in data file"
+msgstr "process_delete_dataŷǵ $2"
+msgid "validate_monitor_via : $2 is invalid type"
+msgstr "validate_monitor_via$2 "
+msgid "validate_node_type:$2 is invalid node type"
+msgstr "validate_node_type$2 "
+msgid "validate_node_object_type: Invalid object type $2"
+msgstr "validate_node_object_typeǵ $2 "
+msgid "validate_i18n_key: Invalid object type $2"
+msgstr "validate_i18n_keyǵ $2 "
+msgid "add_device: Invalid object type $2"
+msgstr "add_deviceǵ $2 "
+msgid "validate_node_object_type: Node object type exists in $2 line $3"
+msgstr "validate_node_object_typeǵ $2  $3"
+msgid "validate_object_type: Invalid object type $2"
+msgstr "validate_object_typeǵ $2 "
+msgid "validate_group_type: $2 is invalid group type"
+msgstr "validate_group_type$2 "
+msgid "validate_segment_type: Invalid value $2 for Segment_type"
+msgstr "validate_segment_typeSegment_type ԫ $2 "
+msgid "     (for example: ./es-device -a /tmp/userdata)"
+msgstr "     (./es-device -a /tmp/userdata)"
+msgid "     (for example: ./es-device -d /tmp/userdata)"
+msgstr "     (./es-device -d /tmp/userdata)"
+msgid "validate_user_name: No value specified for User_name"
+msgstr "validate_user_name User_name ԫ"
+msgid "validate_node_object_type: No value specified for Node_object_type"
+msgstr "validate_node_object_typeNode_object_type ԫ"
+msgid "validate_i18n_key: No value specified for i18n_key"
+msgstr "validate_i18n_key i18n_key ԫ"
+msgid "validate_properties_file: No value specified for Properties_file"
+msgstr "validate_properties_file Properties_file ԫ"
+msgid "validate_search_parameter: No value specified for Search_parameter"
+msgstr "validate_search_parameter Search_parameter ԫ"
+msgid "validate_icon_file: No value specified for icon"
+msgstr "validate_icon_fileԫ"
+msgid "validate_segment_object_type: No value specified for Segment object type"
+msgstr "validate_segment_object_typeٴǵԫ"
+#
+#==============================
+# <WS>/packages/Setup/db-stop
+#==============================
+msgid "getHostName: failed to obtain current host from hostname comma"
+msgstr "getHostNameڷ hostname ̽ڵЩ"
+msgid "current host : $2\n"
+msgstr "Щ񢡨$2\n"
+msgid "getUserName: failed to obtain user name from id comma\n"
+msgstr "getUserNameڷ id ̽ڵϯ\n"
+msgid "current user name : $2\n"
+msgstr "Щϯꢡ$2\n"
+msgid "getUserGroup: failed to obtain user group from id comma\n"
+msgstr "getUserGroupڷ id ̽ڵ\n"
+msgid "current user group : $2\n"
+msgstr "Щϯڡ$2\n"
+msgid "verifyDatabaseUp: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseUpڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseUp: instance is executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseUp: instance is not executing\n"
+msgstr "verifyDatabaseUp\n"
+msgid "verifyDatabaseDown: failed to obtain instance process info from ps\n"
+msgstr "verifyDatabaseDownڷ ps ̽ڵݨܡʩ\n"
+msgid "verifyDatabaseDown: instance is executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyDatabaseDown: instance is not executing\n"
+msgstr "verifyDatabaseDown\n"
+msgid "verifyListenerUp: failed to obtain listener process info from ps\n"
+msgstr "verifyListenerUpڷ ps ̽ڵݨܡع\n"
+msgid "verifyListenerUp: listener $2 is executing\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerUp: listener $2 is not executing\n"
+msgstr "verifyListenerUp $2 \n"
+msgid "verifyListenerDown: failed to obtain listener process info from \n"
+msgstr "verifyListenerDown̽ڵݨܡعڷ\n"
+msgid "verifyListenerDown: listener $2 is executing\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "verifyListenerDown: listener $2 is not executing\n"
+msgstr "verifyListenerDown $2 \n"
+msgid "the file $2 does not exist, exiting........................"
+msgstr " $2 㡢........................"
+msgid "performing a (shutdown immediate)......"
+msgstr "硾ǡɻ񢡿......"
+msgid "execution of $2 using \\@$3 failed"
+msgstr " \\@$3  $2 "
+msgid "exiting..........................\n"
+msgstr "........................\n"
+msgid "unable to perform normal shutdown, executing a shutdown abort"
+msgstr "ڦ񢡢"
+msgid "execution of $2 using adhoc shutdown-abort failed"
+msgstr " adhoc shutdown-abort  $2 "
+msgid "execution of $2 stop $3 failed"
+msgstr "$2  $3 "
+msgid "sqlerror code = $2\n"
+msgstr "sqlerror  =$2\n"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "execution of sqlplus using $2 fail\n"
+msgstr " $2  sqlplus \n"
+msgid "can not find $2 on path, exiting.......................\n"
+msgstr "ĸ̯ $2.......................\n"
+#
+#=========================================
+# <WS>/packages/Setup/sm_setup_server.sh
+#=========================================
+msgid "The Sun Management Center Console help configuration file cannot be found."
+msgstr "̯ Sun Management Center ƺɷ"
+msgid "Please re-install the Sun Management Center Console component"
+msgstr " Sun Management Center ƺǵ"
+msgid "The base URL has been set to $2"
+msgstr " URL ҳ $2"
+msgid "Could not find group $2.  You will have to set up"
+msgstr "̯ $2ٯ"
+msgid "the groups manually.  Please add $3 to group $2."
+msgstr "ڡ $3  $2"
+msgid "User $3 in group $2 is not a valid user.  Leaving it out of the esusers file."
+msgstr " $2 ϯ $3 ȴϯڷ esusers 桤"
+msgid "Adding user $2 from group $3 to esusers"
+msgstr " $3 ϯ $2  esusers"
+msgid "It appears that you already have some users \\\($2\\\)"
+msgstr "ƫȴġϯ \\\($2\\\)"
+msgid "configured as Sun Management Center administrators.  Leaving these users in place."
+msgstr "ҳ Sun Management Center ܡޡϯݨ"
+msgid "You should setup a user as a Sun Management Center administrator."
+msgstr "ġϯҳ Sun Management Center ܡ"
+msgid "This person will be added to the esadm and esdomadm groups."
+msgstr "Ⱥϯ̯ esadm  esdomadm 㡤"
+msgid "$2 is not a valid user."
+msgstr "$2 ȴϯ"
+msgid "The group $2 already exists on your system."
+msgstr "˷ĸ $2"
+msgid "Creating the group $2 that contains Sun Management Center $3 Users."
+msgstr "ǡ Sun Management Center $3 ϯ $2"
+msgid "Could not find $2 in $3"
+msgstr "$3 ̯ $2"
+msgid "This part of the setup process does the Sun Management Center Server Component setup."
+msgstr "šݨܡȩ Sun Management Center Τǵ"
+msgid "Unable to set $2 values."
+msgstr " $2 ԫ"
+msgid "agent.snmpPort is already configured in $2"
+msgstr "$2 ħ agent.snmpPort"
+msgid "topology.snmpPort is already configured in $2"
+msgstr "$2 ħ topology.snmpPort"
+msgid "The Sun Management Center base URL is relative to the Sun Management Center Console."
+msgstr " Sun Management Center  URL  Sun Management Center Cosole "
+msgid "The Sun Management Center Console is able to request help documentation via the network."
+msgstr " Sun Management Center ƺƫɷǵ衤"
+msgid "If you have installed Sun Management Center help documentation in an http-accessible"
+msgstr "Ϊƫ http ̽ĸħ Sun Management Center ɷǵ衢"
+msgid "location within your network, you may specify this location."
+msgstr "Ⱥ"
+msgid "If Sun Management Center help is installed on the console host, simply accept the default value."
+msgstr "Ϊ Sun Management Center ɷƺĸЬƷ̿ԫ"
+msgid "Completing Sun Management Center Server Component setup."
+msgstr "ȩ Sun Management Center Τǵ"
+msgid "Using security seed $2 for Sun Management Center server"
+msgstr "Sun Management Center Τ $2"
+msgid "Please enter a user to be the Sun Management Center administrator: "
+msgstr "īɢҳ Sun Management Center ܡϯ "
+msgid "Please enter a valid username: "
+msgstr "īȴϯꢡ "
+msgid "Please enter base URL to Sun Management Center help [local]: "
+msgstr "ī Sun Management Center ɷ URL [áٶ] "
+#
+#===================================
+# <WS>/packages/Setup/es-common.sh
+#===================================
+msgid "Enter \\\"y\\\" or \\\"n\\\" or \\\"q\\\""
+msgstr "ī \\\"y\\\"  \\\"n\\\"  \\\"q\\\""
+msgid "Exiting at user request"
+msgstr "ϯĶ"
+msgid "L10N_CODE not set!, LANG=$2"
+msgstr " L10N_CODELANG=$2"
+msgid "Cannot find locale directory for LANG: $2"
+msgstr "̯ LANG 硨$2"
+msgid "Expected to find it in: $2"
+msgstr "Ķ̯ơ$2"
+msgid "No Sun Management Center Packages are installed. Exiting."
+msgstr " Sun Management Center ա֡"
+msgid "Could not find xput executable: $2"
+msgstr "̯ xput ƫ$2"
+msgid "Cannot find file $2"
+msgstr "̯ $2"
+msgid "Moving $2 to $3"
+msgstr " $2 ̯ $3"
+msgid "--------------  WARNING  -------------------"
+msgstr "--------------    -------------------"
+msgid "It appears that $2 $3 is already in use."
+msgstr "$2 $3 ƫ"
+msgid "Sun Management Center $2 may not be able to run due to this conflict."
+msgstr "ȺSun Management Center $2 ƫ硤"
+msgid "There are two ways to correct this conflict:"
+msgstr "ȴ̥ƫϫȺ"
+msgid "  1. Reconfigure the port that Sun Management Center uses."
+msgstr "  1.  Sun Management Center ա"
+msgid "  2. Stop the process that is using the port."
+msgstr "  2. ݨܡ"
+msgid "    You are currently running snmpdx, which may be causing the conflict."
+msgstr "    Щ snmpdxƫӳ"
+msgid "Skipping the setting of port number for $2"
+msgstr "ܩ $2 "
+msgid "NOTE: Prior to starting Sun Management Center $2, stop the process using port $3."
+msgstr "ٯ Sun Management Center $2 Щǿ $3 ݨܡ"
+msgid "Updating $2 with new port number."
+msgstr " $2"
+msgid "This part of setup generates security keys used for communications"
+msgstr "šʩܨʩع"
+msgid "between processes.  A seed must be provided to initialize the"
+msgstr ""
+msgid "keys.  You can choose to use the standard Sun Management Center default or"
+msgstr "ƫ Sun Management Center ԫī"
+msgid "enter your own seed.  If you do not generate the keys now,"
+msgstr "͡Ϊܢܨ"
+msgid "you can do so later using the procedure documented in the"
+msgstr "ƫѥߧ"
+msgid "Sun Management Center 3.0 Users Guide."
+msgstr "Sun Management Center 3.0 ϯв"
+msgid "Please make sure you use the same seed for all the machines you install."
+msgstr "ȴ͡"
+msgid "Invalid seed - type s to use default seed"
+msgstr " - Ѻ s "
+msgid "Using default Sun Management Center value for seed."
+msgstr " Sun Management Center ԫɢҳ"
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+msgid "Unable to create logfile $LOGFILE."
+msgstr "ǡ $LOGFILE"
+msgid "Started $0 at"
+msgstr "ٯ $0 "
+msgid "Running on"
+msgstr ""
+msgid "What seed would you like to use?\n"
+msgstr "͡\n"
+msgid "Invalid response in automated configuration file."
+msgstr "ٯȴܡ"
+msgid "Unsupported OS version: $2"
+msgstr " OS ۡ$2"
+msgid "Do you want to use a different port number for $2?"
+msgstr " $2 "
+msgid "Do you want to generate these keys using the Sun Management Center default seed?"
+msgstr " Sun Management Center ܨ"
+msgid "Please enter any port greater or equal to 1100 : "
+msgstr "īǶġ 1100 ա "
+msgid "Port $2 is not a valid port number, try another number : "
+msgstr " $2 ȴƶġԶ "
+msgid "Port $2 is also busy, try another - use s to skip setting the port number:"
+msgstr " $2 ľȤ㡢̧ -  s ܩ"
+#
+#======================================
+# <WS>/packages/Setup/install-java.sh
+#======================================
+msgid "Java packages are not in $2"
+msgstr " Java  $2 "
+msgid "All required Java packages are not in $2"
+msgstr "ȴ Java  $2 "
+msgid "Installing java packages $2"
+msgstr " java  $2"
+msgid "the system. Please install them first and then install Sun Management Center."
+msgstr "˷㡤ǿԯѥ Sun Management Center"
+msgid "Package $2 is installed on this system. This package is"
+msgstr " $2 Ⱥ˷㡤 This package is"
+msgid "incompatible with the java version required for Sun Management Center."
+msgstr " Sun Management Center  java թ"
+msgid "This package needs to be uninstalled before installing java 2"
+msgstr "ǿȺѥ java 2"
+msgid "Removal of the package $2 failed, please remove it"
+msgstr " $2 ٯ"
+msgid "manually and then install Sun Management Center."
+msgstr "ѥ Sun Management Center"
+msgid "You need to install the following packages $2"
+msgstr "Ķ $2"
+msgid "If you do not choose to install it now, the installation will abort."
+msgstr "Ϊǡɻҡʩˡ"
+msgid "It seems some other version of java packages are present in $2"
+msgstr " $2 ȴƶġ java 㡤"
+msgid "You need to install Solaris_JDK_1.2.1_04 version of the following packages"
+msgstr " Solaris_JDK_1.2.1_04 Ķ"
+msgid "You can enter any directory to install the required version of JAVA."
+msgstr "ƫīǶ JAVA"
+msgid "No java packages to be removed."
+msgstr " java "
+msgid "Sun Management Center installation had overwritten your previous java installation."
+msgstr " Sun Management Center Ȣ̽ǿЩ java Ȣ"
+msgid "You can either keep the current installation or remove it."
+msgstr "ƫЩȢ桤"
+msgid "Warning - Could not find pkgmap file for $2"
+msgstr " - ̯ $2  pkgmap "
+msgid "  Space calculations will be wrong."
+msgstr "  Ϩȴ먡"
+msgid "Java installation:"
+msgstr "Java ҡ"
+msgid "Space required \\\(in $2\\\):  $3 blocks."
+msgstr "Ϩ \\\($2 \\\)$3 Զٴۡ"
+msgid "Space available \\\(in $2\\\): $3 blocks."
+msgstr "ƫϨ \\\($2 \\\)$3 Զٴۡ"
+msgid "Insufficient disk space to install Java components"
+msgstr "ȴϨƫ Java ǵ"
+msgid "Error installing package: $2"
+msgstr "먡$2"
+msgid "The following packages required by Java 2 are not installed on"
+msgstr "Ķ Java 2 "
+msgid "Packages: $2"
+msgstr "ա$2"
+msgid "The required version of Java is already installed in $2"
+msgstr " Java  $2 "
+msgid "It seems some of the required packages are already present."
+msgstr "ȴš㡤"
+msgid "You can either overwrite the existing java version or install the"
+msgstr "ƫܢȴ java "
+msgid "required version in some other directory."
+msgstr "̧㡤"
+msgid "Invalid directory"
+msgstr ""
+msgid "Java packages couldnot be found in directory $2"
+msgstr " $2 ̯ Java "
+msgid "Do you want to install it now?"
+msgstr "ǡɻҡ"
+msgid "Do you want to overwrite the existing one?"
+msgstr "̽ܢȴۡ"
+msgid "Do you want to remove it?"
+msgstr "桩"
+msgid "Do you want to uninstall it now"
+msgstr "ǡɻ"
+msgid "Enter the base directory for JDK installation [$2]"
+msgstr "ī JDK  [$2]"
+#
+#============================
+# <WS>/packages/Setup/es-db
+#============================
+msgid "A minimum of 256 MB RAM is required to install Sun Management Center server."
+msgstr "ŷȴ 256 MB  RAM  Sun Management Center Τ¡"
+msgid "Current system has $2 MB RAM."
+msgstr "Щ˷̦ȴ $2 MB  RAM"
+msgid "Can not continue to install Sun Management Center server."
+msgstr " Sun Management Center Τ¡"
+msgid "                         Sun Management Center DB                     "
+msgstr "                         Sun Management Center DB                     "
+msgid "       Sun Management Center Database Installation "
+msgstr "       Sun Management Center ջ "
+msgid "Invalid parameters for installDB\\\(\\\)"
+msgstr " installDB\\\(\\\) ٶ"
+msgid "The following Sun Management Center database packages have already been installed on your system:"
+msgstr "˷ĸħĶ Sun Management Center ջա"
+msgid "Checking memory available..."
+msgstr "ƫش..."
+msgid "Creating the mount points..."
+msgstr "ǡ..."
+msgid "Error installing SUNWesora.  Installation cannot continue."
+msgstr " SUNWesora 먡ҡ"
+msgid "Error installing SUNWestbl.  Installation cannot continue."
+msgstr " SUNWestbl 먡ҡ"
+msgid "Sun Management Center DB packages installed successfully"
+msgstr "Sun Management Center DB ȩ"
+msgid "es-setup will perform the remainder of the config"
+msgstr "es-setup ̧š"
+#
+#======================================
+# <WS>/packages/Setup/install-patch.sh
+#======================================
+msgid "No patch checking on this platform"
+msgstr "ȺƺĸȢ"
+msgid "Could not find the patches in the following directory."
+msgstr "Ķ̯Ȣ"
+msgid "Installing patch $2..."
+msgstr "Ȣ $2..."
+msgid "Installation of patch $2 failed."
+msgstr "Ȣ $2 "
+msgid "Installation of patch $2 complete."
+msgstr "Ȣ $2 ȩ"
+msgid "Following patches are prerequisites to the java patches."
+msgstr " java ȢЩǿĶȢ"
+msgid "Please install them manually and then install Sun Management Center."
+msgstr "ٯѥ Sun Management Center"
+msgid "Installation of following patches failed, please install"
+msgstr "ĶȢٯ"
+msgid "them manually and then install Sun Management Center."
+msgstr "ѥ Sun Management Center"
+msgid "Checking for required OS patches, Please wait..."
+msgstr " OS ȢԷ..."
+msgid "Following is the list of required patches for java 2."
+msgstr "Ķҳ java 2 Ȣ̡"
+msgid "If you do not choose to install them now installation will abort."
+msgstr "Ϊǡɻҡʩˡ"
+msgid "Checking for required OS patches done."
+msgstr "ȩ OS Ȣ硤"
+msgid "Invalid directory."
+msgstr "硤"
+msgid "Do you want to install now"
+msgstr "ǡɻҡ"
+msgid "Please enter the directory that contains patches: "
+msgstr "īȴȢ硨 "
+#
+#=================================
+# <WS>/packages/Setup/es-restore
+#=================================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "The backup $2 does not exist"            
+msgstr "ެǹ $2 "            
+msgid "Checking installed Sun Management Center..."
+msgstr " Sun Management Center..."
+msgid "Recover the Sun Management Center Database and it will take a few minutes..."
+msgstr "ߦ Sun Management Center ջĸš..."
+msgid "Restore the Sun Management Center data."
+msgstr "ߦ Sun Management Center 衤"
+msgid "Shutdown Sun Management Center database, please wait."
+msgstr " Sun Management Center ջԷ"
+msgid "Recovery is fnished successfully. Please start Sun Management Center."
+msgstr "ɳȩߦϡٯ Sun Management Center"
+msgid "The Sun Management Center server components are not found or"
+msgstr "̯ Sun Management Center Τģ́"
+msgid "its installation is damaged. You need to run"
+msgstr "䴡"
+msgid "es-inst/es-setup to install Sun Management Center and then "
+msgstr "es-inst/es-setup  Sun Management Centerѥ"
+msgid "start es-restore."
+msgstr "ٯ es-restore"
+msgid "Cannot restore $2"
+msgstr "ߦ $2"
+msgid "Cannot import database. Please check $2"
+msgstr "īջ $2"
+msgid "The recovery need to shudown Sun Management Center servers."
+msgstr "ߦɢ Sun Management Center Τ¡"
+msgid "Please get the backup of es-backup ready."
+msgstr "ެ es-backup ެǹ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the backup data directory:"
+msgstr "īެǹ"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_metadata.sh
+#==========================================
+msgid "$2 appears to be configured as your Sun Management Center server."
+msgstr "$2 ƫҳ Sun Management Center Τ¡"
+msgid "Error - Unable to set $2 values."
+msgstr " -  $2 ԫ"
+msgid "agent.snmpPort already configured in $2"
+msgstr " $2 ħ agent.snmpPort"
+msgid "This part of the setup process does the Sun Management Center Agent Component setup."
+msgstr "šݨܡȩ Sun Management Center ܡȢǵ"
+msgid "snmpd.conf already exists in $2.  Leaving it in place"
+msgstr "$2  snmpd.conf̧ݨ"
+msgid "Copying snmpd.conf file into $2"
+msgstr " snmpd.conf ̯ $2"
+msgid "Server component also installed locally."
+msgstr "ħΤǵ"
+msgid "Using this machine as the Sun Management Center server."
+msgstr "ɢҳ Sun Management Center Τ¡"
+msgid "Completing Sun Management Center Agent Component setup."
+msgstr "ȩ Sun Management Center ܡȢǵ"
+msgid "Using security seed $2 for Sun Management Center metadata"
+msgstr " $2 ɢҳ Sun Management Center "
+msgid "Please enter the Sun Management Center Server Hostname: "
+msgstr "ī Sun Management Center Τꢡ "
+msgid "Is this correct?"
+msgstr ""
+#
+#============================
+# <WS>/packages/Setup/es-lic
+#============================
+msgid "Topology server is currently running."
+msgstr "ЩΤ¡"
+msgid "It must be restarted for the license file update to take effect."
+msgstr "桢ٯ"
+msgid "Please stop and restart topology server using:"
+msgstr "ٯΤ¡"
+msgid "$2 -p\\\; $3 -p"
+msgstr "$2 -p\\\; $3 -p"
+msgid "Invalid License, Exiting..."
+msgstr "桢..."
+msgid "  Sun Management Center License Program\n"
+msgstr "  Sun Management Center Ȣ\n"
+msgid "  Invalid parameters passed to es-lic script\n"
+msgstr "  ̯ es-lic Script ٶ\n"
+msgid "Please enter license key: "
+msgstr "ī "
+#
+#===============================
+# <WS>/packages/Setup/es-dbimp
+#===============================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "The backup $2 does not exist"            
+msgstr "ެǹ $2 "            
+msgid "------------------- WARNING !!! ----------------"
+msgstr "------------------- ˡ ----------------"
+msgid "The process need Sun Management Center server components stopped."
+msgstr "Ⱥݨܡ Sun Management Center Τǵ硤"
+msgid "And import the backup data to Sun Management Center database."
+msgstr "ެǹī Sun Management Center ջ"
+msgid "As a result, all current data will be destroyed."
+msgstr "Ϊȩȴܢȴڡ"
+msgid "Done"
+msgstr "ȩ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+#
+#=======================================
+# <WS>/packages/Setup/sm_setup_agent.sh
+#=======================================
+msgid "$2 appears to be configured as your Sun Management Center server."
+msgstr "$2 ƫҳ Sun Management Center Τ¡"
+msgid "Error - Unable to set $2 values."
+msgstr " -  $2 ԫ"
+msgid "agent.snmpPort already configured in $2"
+msgstr " $2 ħ agent.snmpPort"
+msgid "This part of the setup process does the Sun Management Center Agent Component setup."
+msgstr "šݨܡȩ Sun Management Center ܡȢǵ"
+msgid "snmpd.conf already exists in $2.  Leaving it in place"
+msgstr "$2  snmpd.conf̧ݨ"
+msgid "Copying snmpd.conf file into $2"
+msgstr " snmpd.conf ̯ $2"
+msgid "Server component also installed locally."
+msgstr "ħΤǵ"
+msgid "Using this machine as the Sun Management Center server."
+msgstr "ɢҳ Sun Management Center Τ¡"
+msgid "Completing Sun Management Center Agent Component setup."
+msgstr "ȩ Sun Management Center ܡȢǵ"
+msgid "Using security seed $2 for Sun Management Center agent"
+msgstr " $2 ɢҳ Sun Management Center ܡȢ"
+msgid "Please enter the Sun Management Center Server Hostname: "
+msgstr "ī Sun Management Center Τꢡ "
+msgid "Is this correct?"
+msgstr ""
+#
+#================================
+# <WS>/packages/Setup/es-backup
+#================================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Can not create the directory $2"
+msgstr "ǡ $2"
+msgid "Backup is successful."
+msgstr "ެǹȩ"
+msgid "Please save following files for the restore of Sun Management Center"
+msgstr "Ķߦ Sun Management Center "
+msgid "Starting Sun Management Center...."
+msgstr "ٯ Sun Management Center...."
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "Backup Sun Management Center data failed. Please check $2"
+msgstr "Sun Management Center ެǹ $2"
+msgid "The operation requires to shutdown Sun Management Center."
+msgstr "Ⱥɢ Sun Management Center"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the directory to store the backup data file:"
+msgstr "īެǹ表"
+#
+#=======================================
+# <WS>/packages/Setup/sm_setup_mib2.sh
+#=======================================
+msgid "Subagent sunmib_sea already set up - leaving it untouched"
+msgstr "ħܡȢ sunmib_sea - ̧ѽ"
+msgid "Subagent registry file is: $2"
+msgstr "ܡȢҳ$2"
+msgid "Unable to update subagent-registry-d.x"
+msgstr " subagent-registry-d.x"
+msgid "Updated subagent-registry-d.x for mib2 subagent"
+msgstr "ҳ mib2 ܡȢħ subagent-registry-d.x"
+#
+#================================
+# <WS>/packages/Setup/es-uninst
+#================================
+msgid "Removing $2"
+msgstr " $2"
+msgid "Package Removal: Failed for $2"
+msgstr "桨$2 "
+msgid "Reattempting to uninstall the package\\\(s\\\): $2"
+msgstr "ա$2"
+msgid "Please remove the following packages manually.\n"
+msgstr "ٯĶա\n"
+msgid "Sun Management Center uninstall complete.\n"
+msgstr " Sun Management Center ܫ\n"
+msgid "       Sun Management Center Uninstallation \n"
+msgstr "       Sun Management Center  \n"
+msgid "No Sun Management Center packages installed.\n"
+msgstr " Sun Management Center ա\n"
+msgid "This utility removes all the Sun Management Center packages. \n"
+msgstr "ȺȢȴ Sun Management Center ա\n"
+msgid "Exiting uninstall utility.\n"
+msgstr "Ȣ\n"
+msgid "Stopping all Sun Management Center processes.  This may take a few moments...\n"
+msgstr "ȴ Sun Management Center ݨܡƫġ...\n"
+msgid "If you are upgrading Sun Management Center, you may want to save your existing data.\n"
+msgstr "ΪŪ Sun Management Centerƫܢȴ衤\n"
+msgid "Will not remove the existing data\n"
+msgstr "ܢȴ\n"
+msgid "Will remove the existing data\n"
+msgstr "ܢȴ\n"
+msgid "      Would you like to continue?"
+msgstr "      "
+msgid "Do you want to preserve your existing data"
+msgstr "ܢȴ"
+msgid "Do you wish to continue with the removal of the existing data"
+msgstr "ܢȴ"
+#
+#==============================
+# <WS>/packages/Setup/es-dbexp
+#==============================
+msgid "The directory name should start with /"
+msgstr " / "
+msgid "The directory name is invalid"
+msgstr ""
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Can not create the directory $2"
+msgstr "ǡ $2"
+msgid "Cannot export database. Please check $2"
+msgstr "ջ $2"
+msgid "The operation requires some of Sun Management Center components to be shutdown."
+msgstr "Ⱥɢġ Sun Management Center ǵ"
+msgid "Usage: $PROGNAME"
+msgstr "Ρ$PROGNAME"
+msgid "Do you want to create it?"
+msgstr "ǡ"
+msgid "Do you want to proceed [yes/no]:"
+msgstr " [yes/no]"
+msgid "Enter the path of the directory to store the backup data file:"
+msgstr "īެǹ表"
+msgid "Enter the path of the backup directory:"
+msgstr "īެǹ"
+#
+#=================================
+# <WS>/packages/Setup/es-keys.sh
+#=================================
+msgid "Generating $2 security keys."
+msgstr "ܨ $2 "
+msgid "Error generating keys. Return code was $2."
+msgstr "ܨ먡ҳ $2"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_service.sh
+#==========================================
+msgid "This part of the setup process does the Sun Management Center Services Component setup."
+msgstr "šݨܡȩ Sun Management Center Τ٭ǵ"
+msgid "Completing Sun Management Center Services Component setup."
+msgstr "ȩ Sun Management Center Τ٭ǵ"
+#
+#===============================
+# <WS>/packages/Setup/es-start
+#===============================
+msgid "It seems component $2 has not been setup, so skipping it."
+msgstr " $2Ⱥܩơ"
+msgid "Sun Management Center Web Server is not installed, Can not start web server\n"
+msgstr " Sun Management Center Τ¡ٯΤ\n"
+msgid "Sun Management Center Web Server is not completely installed, Can not start web server\n"
+msgstr " Sun Management Center Τ¡ٯΤ\n"
+msgid "web server started\n"
+msgstr "Τٯ\n"
+msgid "Equivalent to %s -aefgmprstxw"
+msgstr "̧ %s -aefgmprstxw"
+msgid "Equivalent to %s -efgmprstxw"
+msgstr "̧ %s -efgmprstxw "
+msgid "Usage: $PROGNAME -acefghilmpstwxrAS [-y instanceName] [ -- args... ]"
+msgstr "Ρ$PROGNAME -acefghilmpstwxrAS [-y instanceName] [ -- args... ]"
+msgid "   where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "     a : starts Sun Management Center Agent\n"
+msgstr "  aٯ Sun Management Center ܡȢ\n"
+msgid "     c : starts Sun Management Center Console\n"
+msgstr "  cٯ Sun Management Center Console\n"
+msgid "         Optionally, maximum heap size could be customized,\n"
+msgstr "         ڰ̱޲ƫҳԫ\n"
+msgid "         e.g., ./es-start -c -- -Xmx100m specifies 100 MBytes\n"
+msgstr "         ./es-start -c -- -Xmx100m  100 MB\n"
+msgid "         as max heap size; Default size is 64m.\n"
+msgstr "         ҳ޲ѡҳ 64m\n"
+msgid "     e : starts Sun Management Center Event manager\n"
+msgstr "     eٯ Sun Management Center ǵܡȢ\n"
+msgid "     f : starts Sun Management Center Configuration manager\n"
+msgstr "     fٯ Sun Management Center ܡȢ\n"
+msgid "     g : starts Sun Management Center Grouping services\n"
+msgstr "     gٯSun Management Center Τ٭\n"
+msgid "     h : prints this usage report\n"
+msgstr "     hȺ\n"
+msgid "     i : start agent in interactive mode, valid only for one of\n"
+msgstr "     iٯȢɢȢٯܡȢ\n"
+msgid "           the a, t, f, p, and e options\n"
+msgstr "           atfp  e ġȴ\n"
+msgid "     l : starts Platform Agent for SSP\n"
+msgstr "     lٯ SSP ƺܡȢ\n"
+msgid "     m : starts Sun Management Center Metadata Repository\n"
+msgstr "    mٯ Sun Management Center ջ\n"
+msgid "     q : start components in quiet mode, effective only for one of\n"
+msgstr "     qٯȢɢȢٯǵ\n"
+msgid "       the A, a, t, f, p, and e options\n"
+msgstr "       Aatfp  e ġȴ\n"
+msgid "     p : starts Sun Management Center Topology manager\n"
+msgstr "     pٯ Sun Management Center ܡȢ\n"
+msgid "     r : starts Hardware Diagnostic Suite Service\n"
+msgstr "     rٯ Hardware Diagnostic Suite Τ٭\n"
+msgid "     s : starts Sun Management Center Server\n"
+msgstr "     sٯ Sun Management Center Τ\n"
+msgid "         Optionally, maximum heap size could be customized,\n"
+msgstr "         ڰ̱޲ƫҳԫ\n"
+msgid "         e.g., ./es-start -s -- -Xmx100m specifies 100 MBytes\n"
+msgstr "         ./es-start -s -- -Xmx100m  100 MB\n"
+msgid "         as max heap size; Default size is 64m.\n"
+msgstr "         ҳ޲ѡҳ 64m\n"
+msgid "     t : starts Sun Management Center Trap Handler\n"
+msgstr "     tٯ Sun Management Center ݨܡȢ\n"
+msgid "     x : starts CST Service\n"
+msgstr "     xٯ CST Τ٭\n"
+msgid "     y : starts new instance of platform agent\n"
+msgstr "     yٯƺܡȢ\n"
+msgid "     w : starts web server\n"
+msgstr "     wٯΤ\n"
+msgid "     A : starts All Sun Management Center components except the console,\n"
+msgstr "     Aٯħƺȴ Sun Management Center ǵ\n"
+msgid "     S : starts Sun Management Center Server and all the server subcomponents\n"
+msgstr "     Sٯ Sun Management Center ΤȴΤǵ\n"
+msgid "     args are passed to console or server when started.\n"
+msgstr "     ſƺΤٯԯ\n"
+msgid "           (for example: es-start -c -- -p 2099)\n\n"
+msgstr "     es-start -c -- -p 2099\n\n"
+msgid "ERROR: Sun Management Center has not been set up.\nRun es-setup to set up Sun Management Center."
+msgstr "먡 Sun Management Center\n es-setup  Sun Management Center"
+msgid "Please specify a component to be started."
+msgstr "ٯǵ"
+msgid "Use the following single letter arguments instead:\n"
+msgstr "Ķġſ\n"
+msgid "Console package not installed\n"
+msgstr "ƺ\n"
+msgid "Interactive option invalid with -A or -S option"
+msgstr "ٯȢɢ -A  -S "
+msgid "Invalid command line option.  Please use just one option\n"
+msgstr "ƷġԶ\n"
+msgid "You have not specified any components to run.\n"
+msgstr "ǵ\n"
+msgid "Only one component may be started in interactive mode\n"
+msgstr "ٯȢɢȢĶƷٯġԶǵ\n"
+msgid "You cannot start console in interactive mode\n"
+msgstr "ٯȢɢȢٯƺ\n"
+msgid "DISPLAY environment variable must be set\n"
+msgstr " DISPLAY \n"
+msgid "Interactive server session:\n"
+msgstr "ٯȢɢΤɢơ\n"
+msgid "SUNWcstv or SUNWcstve package should be installed before start cstservice agent."
+msgstr "ٯ cstservice ܡȢЩǿ SUNWcstv  SUNWcstve ա"
+msgid "Interactive option invalid with $OPT option"
+msgstr "ٯȢɢ $OPT "
+msgid "Unable to open DISPLAY: $DISPLAY"
+msgstr " DISPLAY: $DISPLAY"
+msgid "Equivalent to %s -aefgmpstxw"
+msgstr "̧ %s -aefgmpstxw"
+msgid "Equivalent to %s -efgmpstxw"
+msgstr "̧ %s -efgmpstxw"
+msgid "$2 Component not installed"
+msgstr " $2 ǵ"
+msgid "Invalid option\\\($1\\\).  Options have changed to single letters:"
+msgstr " \\\($1\\\)ҳġࡨ"
+msgid "Starting all platform instances"
+msgstr "ٯȴƺ"
+msgid "Instances are $2"
+msgstr "ҳ $2"
+msgid "Starting platform instances $2"
+msgstr "ٯƺ $2"
+msgid "ERROR: Could not start Hardware Diagnostic Suite Service."
+msgstr "먡ٯ Hardware Diagnostic Suite Τ٭"
+msgid "SUNWed package should be installed before start Hardware Diagnostic Suite Service."
+msgstr "SUNWed ٯ Hardware Diagnostic Suite Τ٭Щҡ"
+msgid "Sun Management Center is not setup. Please setup first and then run es-start."
+msgstr " Sun Management Centerǿҡѥ es-start"
+msgid "Sun Management Center $2 is not setup."
+msgstr " Sun Management Center $2"
+#
+#==========================================
+# <WS>/packages/Setup/sm_setup_console.sh
+#==========================================
+msgid "This part of the setup process does the Sun Management Center Console Component setup."
+msgstr "šݨܡȩ Sun Management Center ƺǵ"
+#
+#==============================
+# <WS>/packages/Setup/es-stop
+#==============================
+msgid "Please specify a component to be stopped."
+msgstr "ǵ"
+msgid "Usage : $PROGNAME -aefghmprstxAS [-y instanceName]"
+msgstr "Ρ$PROGNAME -aefghmprstxAS [-y instanceName]"
+msgid "     a : stops Sun Management Center Agent\n"
+msgstr "     a Sun Management Center ܡȢ\n"
+msgid "     e : stops Sun Management Center Event manager\n"
+msgstr "     e Sun Management Center ǵܡȢ\n"
+msgid "     f : stops Sun Management Center Configuration manager\n"
+msgstr "     f Sun Management Center ܡȢ\n"
+msgid "     g : stops Sun Management Center Services\n"
+msgstr "     g Sun Management Center Τ٭\n"
+msgid "     h : prints this usage report\n"
+msgstr "     hȺ\n"
+msgid "     l : stops Platform Agent for SSP\n"
+msgstr "     l SSP ƺܡȢ\n"
+msgid "     m : stops Sun Management Center Metadata Agent\n"
+msgstr "     m Sun Management Center ܡȢ\n"
+msgid "     p : stops Sun Management Center Topology manager\n"
+msgstr "     p Sun Management Center ܡȢ\n"
+msgid "     r : stops Hardware Diagnostic Suite Service\n"
+msgstr "     r Hardware Diagnostic Suite Τ٭\n"
+msgid "     s : stops Sun Management Center Server\n"
+msgstr "     s Sun Management Center Τ\n"
+msgid "     t : stops Sun Management Center Trap Handler\n"
+msgstr "     t Sun Management Center ݨܡȢ\n"
+msgid "     x : stops CST Service\n"
+msgstr "     x CST Τ٭\n"
+msgid "     y : stops instance of platform agent\n"
+msgstr "     yƺܡȢ\n"
+msgid "     w : stops web server\n"
+msgstr "     wΤ\n"
+msgid "     A : stops all Sun Management Center components listed above\n"
+msgstr "     Aĸȴ Sun Management Center ǵ\n"
+msgid "equivalent to %s -aefgmprstxw"
+msgstr "̧ %s -aefgmprstxw"
+msgid "     S : stops all Sun Management Center components listed above except Sun Management Center Agent\n"
+msgstr "     Sħ Sun Management Center ܡȢȴ Sun Management Center ǵ\n"
+msgid "equivalent to %s -efgmprstxw"
+msgstr "̧ %s -efgmprstxw"
+msgid "Use the following single letter arguments instead:\n"
+msgstr "Ķġſ\n"
+msgid "Invalid option\\\($1\\\).  Options have changed to single letters:"
+msgstr " \\\($1\\\)ҳġࡨ"
+msgid "$1 Component not installed"
+msgstr " $1 ǵ"
+msgid "Stopping all platform instances"
+msgstr "ȴƺ"
+msgid "$COMPONENT component is not running"
+msgstr "$COMPONENT ǵ"
+msgid "Stopping $COMPONENT component"
+msgstr " $COMPONENT ǵ"
+msgid "Error in stopping $COMPONENT component"
+msgstr " $COMPONENT ǵ"
+#
+#================================
+# <WS>/packages/Setup/es-crlcon
+#================================
+msgid "   Sun Management Center Light Console Creation Program\n"
+msgstr "   Sun Management Center ƺǡȢ\n"
+msgid "This program creates a directory of minimun required console components.\n"
+msgstr "ȺȢǡ޲ŷƺǵ硤\n"
+msgid "User can copy this directory to any machine with supported configuration\n"
+msgstr "ϯƫȺ̯Ƕ̦ȴ̿ĸ\n"
+msgid "to run Console."
+msgstr "ƺ"
+msgid "Destination [/tmp]: "
+msgstr " [/tmp] "
+msgid "Please remove the directory $dirname before proceeding"
+msgstr "Щ $dirname"
+msgid "or use a different directory.\n"
+msgstr "硤\n"
+msgid "Do you want the directory to be in zip format [y|n] [y]: "
+msgstr "ȩҳ zip ֪Ȣ [y|n] [y] "
+msgid "Please enter path to the executable - zip: "
+msgstr "īƫ - zip  "
+msgid "Cannot find zip in $zippath."
+msgstr "$zippath ̯ zip"
+msgid "Source will be taken from [/opt/SUNWsymon]: "
+msgstr "̽ [/opt/SUNWsymon] "
+msgid "Directory ${dirname} is created."
+msgstr " ${dirname} ǡ"
+msgid "Creating zip file ...\n"
+msgstr "ǡ zip  ...\n"
+msgid "SUNWsymon.zip can be transferred to other systems, unzip,\n"
+msgstr "SUNWsymon.zip ƫ̧˷ӡ㡤\n"
+msgid "Zip file is created in "
+msgstr "Zip ǡ "
+msgid "\nPlease note:\n\n    Light console can be invoked by running:\n\n"
+msgstr "\n\n\n    ƫĶƵƺ\n\n"
+#
+#================================
+# <WS>/packages/Setup/es-sfix.sh
+#================================
+msgid "usage:\n"
+msgstr "Ρ\n"
+msgid "process all modules                : es-sfix.sh\n"
+msgstr "ݨܡȴ                es-sfix.sh\n"
+msgid "flush db & process all modules     : es-sfix.sh [-c | -C]\n"
+msgstr " db ݨܡȴ     es-sfix.sh [-c | -C]\n"
+msgid "process only for specifiec module  : es-sfix.sh [-m | -M] [module name]\n"
+msgstr "Ʒݨܡ  es-sfix.sh [-m | -M] []\n"
+msgid "starting Sun Management Center database\n"
+msgstr "ٯ Sun Management Center ջ\n"
+msgid "database startup failed, exiting\n"
+msgstr "ջٯ\n"
+msgid "database is up\n"
+msgstr "ջƵ\n"
+msgid "executing suggested fix script\n"
+msgstr "Ժߦ Script\n"
+msgid "execution successful\n"
+msgstr "ȩ\n"
+msgid "error in execution\n"
+msgstr "\n"
+msgid "shutting down the database\n"
+msgstr "ջ\n"
+msgid "db-stop failed\n"
+msgstr "db-stop \n"
+msgid "purge database and process\n"
+msgstr "ջݨܡ\n"
+msgid "process only for module\n"
+msgstr "ݨܡ\n"
+msgid "incorrect usage\n"
+msgstr "\n"
+msgid "invalid arguments\n"
+msgstr "ſ\n"
+msgid "default processing\n"
+msgstr "ݨܡʩ\n"
+msgid "could not set java home directory\n"
+msgstr " java \n"
+msgid "please see the suggested fix log file in "
+msgstr "ٶԺߦ"
+#
+#=================================
+# <WS>/packages/Setup/es-details
+#=================================
+msgid "ERROR: "
+msgstr "먡 "
+msgid "  Specify the tabs for a given Node_Object_Type.  The -f and -u\n"
+msgstr "  ҳ Node_Object_Type -f  -u\n"
+msgid "  options are mutually exclusive.\n"
+msgstr "  桤\n"
+msgid "  where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "    a                  : All tabs provided by Sun Management Center\n"
+msgstr "    a                   Sun Management Center ȴ\n"
+msgid "                         will be included.\n"
+msgstr "                         \n"
+msgid "    f inputfile        : Input file which contains list of tabs to\n"
+msgstr "    f inputfile        ī\n" 
+msgid "                         be used for the specified Node_Object_Type.\n"
+msgstr "                          Node_Object_Type\n"
+msgid "    n Node_Object_Type : Corresponds to the Node_Object_Type\n"
+msgstr "    n Node_Object_Type es-device Script \n"
+msgid "                         entered in the es-device script.\n"
+msgstr "                         ī Node_Object_Type\n"
+msgid "    o                  : Overwrite previously created tab file.\n"
+msgstr "    o                  Щǡ\n"
+msgid "                         Only meaningful when used with the -f\n"
+msgstr "                         Ʒȴ -f ȴ\n"
+msgid "                         option.\n"
+msgstr "                         \n"
+msgid "    u                  : Undo.  Restores the Node_Object_Type\n"
+msgstr "    u                  ߦϡ Node_Object_Type ߦ\n"
+msgid "                         to its original state.\n"
+msgstr "                         ҳ̧ȴ衤\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "Usage: $2 [ -a ] [ -f inputfile ] -n Node_Object_Type [ -o ] [ -u ]\n"
+msgstr "Ρ$2 [ -a ] [ -f inputfile ] -n Node_Object_Type [ -o ] [ -u ]\n"
+msgid "Input file $2 does not exist"
+msgstr "ī $2 "
+msgid "The Node_Object_Type must be specified."
+msgstr " Node_Object_Type"
+msgid "Either option -f or -u must be specified."
+msgstr " -f  -u ġ"
+msgid "Options -f or -u cannot both be specified."
+msgstr " -f  -u"
+msgid "Options -o and -u cannot both be specified."
+msgstr " -o  -u"
+msgid "Options -a and -u cannot both be specified."
+msgstr " -a  -u"
+msgid "es-details has not yet been run with Node_Object_Type $2."
+msgstr " Node_Object_Type $2  es-details"
+msgid "Tab name not specified for DEFAULT statement on line $2."
+msgstr " $2 ĸ ҳ DEFAULT ꢡ"
+msgid "Only one tab can be defined as the DEFAULT."
+msgstr "ƷġԶɢҳ DEFAULT"
+msgid "Tab name not specified for INCLUDE statement on line $2."
+msgstr " $2 ĸҳ INCLUDE ꢡ"
+msgid "$2 is not a valid Sun Management Center tab on line $3."
+msgstr "$2  $3 ĸȴ Sun Management Center "
+msgid "Tab name not specified for APPEND statement on line $2."
+msgstr " $2 ĸҳ APPEND ꢡ"
+msgid "Tab name $2 must be in format file:key on line $3."
+msgstr " $3 ĸ $2 ֪Ȣҳ file:key"
+msgid "Help key not specified for user-defined tab $2 on line $3."
+msgstr " $3 ĸҳϯ $2 ɷ"
+msgid "Help Key $2 must be in format key:file on line $3."
+msgstr " $3 ĸɷ $2 ֪Ȣҳ key:file"
+msgid "Java class not specified for user-defined tab $2 on line $3."
+msgstr " $3 ĸҳϯ $2  Java ɱ"
+msgid "Key $2 is not a valid key on line $3."
+msgstr " $2  $3 ĸȴ"
+msgid "Input file $2 contains no APPEND or INCLUDE statements"
+msgstr "ī $2  APPEND  INCLUDE "
+msgid "$2 is not a valid Node_Object_Type."
+msgstr "$2 ȴ Node_Object_Type"
+msgid "The specified default tab $2 was not found in the inputfile."
+msgstr "ī̯ $2"
+msgid "The tabs for this object have already been specified, use -o option to overwrite."
+msgstr "Ⱥǵ -o ѡ"
+msgid "Can only modify the family file for Sun Management Center agents."
+msgstr "Ʒҳ Sun Management Center ܡȢԺե"
+#
+#===========================
+# <WS>/packages/Setup/es-dt
+#===========================
+msgid "ERROR: "
+msgstr "먡 "
+msgid "  where the options represent:\n"
+msgstr "   ̧㡢\n"
+msgid "    a          : Add a reference.\n"
+msgstr "    a          ٶ衤\n"
+msgid "    d          : Delete a reference.\n"
+msgstr "    d          ɴٶ衤\n"
+msgid "    v          : View references.  This is the default option.\n"
+msgstr "    v          ٶ衤Ⱥҳ\n"
+msgid "    s          : Add/Delete/View on the Platform Agent.  By default the\n"
+msgstr "    s          ƺܡȢĸ/ɴ/á\n"
+msgid "                 operation is performed on the Agent.\n"
+msgstr "                 ɢܡȢĸ硤\n"
+msgid "    h hostname : Agent hostname of machine running the Discovery Object Table.\n"
+msgstr "    h ꢡǵܡꢡ\n"
+msgid "    l label    : Unique label for the Composite Object to add or delete.\n"
+msgstr "    l     ɴǵȴ\n"
+msgid "    n not      : Node_Object_Type for the Composite Object to add.\n"
+msgstr "    n not      ǵ Node_Object_Type\n"
+msgid "    o OID      : Discovery Object Table OID to add.\n"
+msgstr "    o OID      ǵ OID\n"
+msgid "    p port     : Agent port of machine running the Discovery Object Table.\n"
+msgstr "    p port     ǵܡȢա\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "ESDIR must be set"
+msgstr " ESDIR"
+msgid "Usage: $2 -a \\\| -d \\\| -v [ -s ] -h hostname -l label -n not -o OID -p port\n"
+msgstr "Ρ$2 -a \\\| -d \\\| -v [ -s ] -h  -l  -n not -o OID -p port\n"
+msgid "It cannot be loaded on both the Agent and Platform Agent."
+msgstr "ܡȢůƺܡȢīơ"
+msgid "The options -h, -l, -n, -o, and -p must all be used with the -a option."
+msgstr " -h-l-n-o  -p  -a "
+msgid "An entry for $2 already exists."
+msgstr " $2 㡤"
+msgid "The option -l must be used with the -d option."
+msgstr " -l  -d "
+msgid "The options -h, -n, -o, and -p are not valid with the -d option."
+msgstr " -h-n-o  -p  -d "
+msgid "An entry for $2 does not exist."
+msgstr " $2 㡤"
+msgid "The options -h, -l, -n, -o, and -p are not valid with the -v option."
+msgstr " -h-l-n-o  -p  -v "
+msgid "No entries."
+msgstr "ȴ"
+msgid "The file $2 is not readable."
+msgstr " $2 ƫ̽"
+msgid "Discovery Service loaded on: Agent"
+msgstr "Τ٭īAgent"
+msgid "Discovery Service loaded on: Platform Agent."
+msgstr "Τ٭īƺܡȢ"
+msgid "Entries:"
+msgstr ""
+msgid "The discovery table is already loaded on the Agent."
+msgstr "ܡȢĸī"
+msgid "The discovery table is already loaded on the Platform Agent."
+msgstr "ƺܡȢĸī"
+#
+#=============================
+# <WS>/packages/Setup/es-apps
+#=============================
+msgid "This script reads the specified configuration file or\\n%s if not specified,\\nand installs the applications with the server."
+msgstr "Ⱥ Script ̽\\n%sΪ\\nΤȢ"
+msgid "The configuration file contains one or more lines using the following format:\n"
+msgstr "ġĶ֪Ȣթ\n"
+msgid "where:\n"
+msgstr "̧㡨\n"
+msgid "name\tis the name of the application that appears in the Application list\n"
+msgstr " name\tȢȢ"
+msgid "class\tis the name of the Java class for the application\n"
+msgstr " class\tȢ Java ɱ\n"
+msgid "args\tare optional user defined arguments to be passed to the application\n"
+msgstr "args\tīȢϯƫ\n"
+msgid "help\tis the optional help specification using the format key:helpfile or :url.\n"
+msgstr "help\tkey:helpfile  :url ֪Ȣɷƫ\n"
+msgid "There should be no quotes in the line.\n"
+msgstr "ȴſ\n"
+msgid "Lines beginning with # are considered as comments.\n"
+msgstr " # թݷҳء"
+msgid "For example:\n"
+msgstr "\n"
+msgid "Using %s"
+msgstr " %s"
+msgid "%s updated."
+msgstr "%s 仡"
+#
+#================================
+# <WS>/packages/Setup/db-export.sh
+#================================
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+#
+#==================================
+# <WS>/packages/Setup/db-import.sh
+#==================================
+msgid "This action is limited to superuser only.\n"
+msgstr "Ⱥɢϯ\n"
+msgid "Exiting $PROGNAME."
+msgstr " $PROGNAME"
+msgid "please ensure Topology & Event agents are not running..."
+msgstr "ůǵܡȢ..."
+#
+#============================
+# <WS>/packages/Setup/es-run
+#============================
+msgid "Usage : $PROGNAME option1 [option2,...]"
+msgstr "Ρ$PROGNAME  1 [ 2,...]"
+msgid "   where option1 is a Sun Management Center utility\n   and option2,...  are the arguments for 'option1'\n\n   If option1 is '-help', then the usage is printed.\n\n"
+msgstr "   ̧㡢 1  Sun Management Center Ȣ\n     2,... ҡ 1ſ\n\n   Ϊ 1  '-help'̧Ρ\n\n"
+#
+#==============================
+# <WS>/packages/Setup/es-chelp
+#===============================
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+msgid "There is an existing $PROGRAM lockfile, $LOCKFILE"
+msgstr "ġԶ $PROGRAM $LOCKFILE"
+msgid "which indicates that process is executing the $PROGRAM"
+msgstr "ݨܡ $PROGRAM"
+msgid "If this is not the case, delete the lock file,"
+msgstr "ΪӡɴȺ"
+msgid "$LOCKFILE and execute $PROGRAM again."
+msgstr "$LOCKFILE ȹ $PROGRAM"
+msgid "$sdk_helpfile either does not exist or is not writable"
+msgstr "$sdk_helpfile ƫī"
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+#
+#========================================
+# <WS>/src/db/build/build-recovery*.ksh
+#========================================
+msgid "The directory $2 does not exist"
+msgstr " $2 "
+msgid "Usage: $PROGNAME -au auid -ap apword -wu wuid -wp wpword -sp syspword -s osrvname -tsn tsname -tsp tsphyspath -tsis tssize -olfp olfpath [-cdb] [-vr]"
+msgstr "Ρ$PROGNAME -au auid -ap apword -wu wuid -wp wpword -sp syspword -s osrvname -tsn tsname -tsp tsphyspath -tsis tssize -olfp olfpath [-cdb] [-vr]"
+msgid "   -au auid               :  userid used to admin smc tablespace"
+msgstr "   -au auid               ܡ smc ֪Ϩ userid"
+msgid "   -ap apword             :  password for corresponding admin userid"
+msgstr "   -ap apword             ܡ userid "
+msgid "   -wu wuid               :  working userid used by application"
+msgstr "   -wu wuid               Ȣɢ userid"
+msgid "   -wp wpword             :  working password for corresponding working userid"
+msgstr "   -wp wpword             ɢ userid ɢ"
+msgid "   -sp syspword           :  password for system userid \\\(system\\\)"
+msgstr "   -sp syspword           ˷ userid  \\\(system\\\)"
+msgid "   -s osrvname            :  name of the oracle service used to connect to db"
+msgstr "   -s osrvname            ̯ջ oracle Τ٭"
+msgid "   -tsn tsname            :  name of the tablespace"
+msgstr "   -tsn tsname            ֪Ϩ"
+msgid "   -tsp tsphyspath        :  physical location of tablespace"
+msgstr "   -tsp tsphyspath        ֪Ϩ"
+msgid "   -tsis tssize           :  initial size of tablespace \\\(in M bytes\\\)"
+msgstr "   -tsis tssize           ֪Ϩ޲ \\\( MB ҳ\\\)"
+msgid "   -olfp olfpath          :  physical location \\\(local\\\) to write the smc30.oracle file"
+msgstr "   -olfp olfpath          ī smc30.oracle \\\(\\\)"
+msgid "   -cdb                   :  indicates that any existing tablespace and user"
+msgstr "   -cdb                   ȴܢȴ֪Ϩůϯ"
+msgid "                             matching the specified parameters above are"
+msgstr "                             ĸٶϯ"
+msgid "                             dropped before proceeding. use is optional"
+msgstr "                             Щ۹ƫ"
+msgid "   -vr                    :  this option is used to verify all objects"
+msgstr "   -vr                    Ⱥȴǵ"
+msgid "                             and to perform a recovery sequence if any"
+msgstr "                             ůߦѥٯɢΪ"
+msgid "                             problems are detected"
+msgstr "                             ̯Ƕ"
+msgid "   -ver                   :   option"
+msgstr "   -ver                   "
+msgid "   -lf logfile            :  logfile name"
+msgstr "   -lf logfile            "
+msgid "ERROR: the ESDIR environment variable has not been set"
+msgstr "먡 ESDIR "
+msgid "illegal option encoutered : $2"
+msgstr "̯$2"
+msgid "this is a pc installation : $2"
+msgstr "Ⱥҳ pc ҡ$2"
+msgid "this is a sparc installation : $2"
+msgstr "Ⱥҳ sparc ҡ$2"
+msgid "unknown system type, exiting........................"
+msgstr "˷........................"
+msgid "can not find sqlplus on path, exiting........................."
+msgstr "ĸ̯ sqlplus........................."
+msgid "the current directory is not writable "
+msgstr "Щƫī "
+msgid "sqlplus writes an error log \\\(sqlnet.log\\\)"
+msgstr "sqlplus ī \\\(sqlnet.log\\\)"
+msgid "to the current directory in the event of"
+msgstr "Щ㡾"
+msgid "a connection problem"
+msgstr "ǵ㡿"
+msgid "the /tmp directory does not exist"
+msgstr "/tmp "
+msgid "however, a file named /tmp does exist"
+msgstr "紡ȴԶҳ /tmp "
+msgid "/tmp directory is not writable "
+msgstr "/tmp ƫī"
+msgid "the \\\(-au auid\\\) command line parameter was not specified "
+msgstr " \\\(-au auid\\\) ٶ"
+msgid "the \\\(-ap apword\\\) command line parameter was not specified "
+msgstr " \\\(-ap apword\\\) ٶ"
+msgid "the \\\(-wu wuid\\\) command line parameter was not specified "
+msgstr " \\\(-wu wuid\\\) ٶ"
+msgid "the \\\(-wp wpword\\\) command line parameter was not specified "
+msgstr " \\\(-wp wpword\\\) ٶ"
+msgid "the \\\(-sp syspword\\\) command line parameter was not specified "
+msgstr " \\\(-sp syspword\\\) ٶ"
+msgid "the \\\(-s osrvname\\\) command line parameter was not specified "
+msgstr " \\\(-s osrvname\\\) ٶ"
+msgid "the \\\(-tsn tsname\\\) command line parameter was not specified "
+msgstr " \\\(-tsn tsname\\\) ٶ"
+msgid "the \\\(-tsp tsphyspath\\\) command line parameter was not specified "
+msgstr " \\\(-tsp tsphyspath\\\) ٶ"
+msgid "the \\\(-tsis tssize\\\) command line parameter was not specified "
+msgstr " \\\(-tsis tssize\\\) ٶ"
+msgid "the \\\(-olfp olfpath\\\) command line parameter was invalid! "
+msgstr "\\\(-olfp olfpath\\\) ٶ桪 "
+msgid "exiting..................."
+msgstr "..................."
+msgid "The Initial Tablespace Size given is not invalid"
+msgstr "޲֪Ϩ"
+msgid "valid range is 1 to 500 M"
+msgstr "ȴҳ 1 ̯ 500 M"
+msgid "Writing Applogin file : $2"
+msgstr "ī Applogin $2"
+msgid "file : $2, has a quit statement in it."
+msgstr "file : $2̧ȴġԶ"
+msgid "file : $str3, has a quit statement in it."
+msgstr "file : $str3̧ȴġԶ"
+msgid "need to remove quit statements, exiting........................"
+msgstr "........................"
+msgid "source file: $2 for step: $3 is missing"
+msgstr "$2$3"
+msgid "probably need to execute mkaggregatefiles.ksh"
+msgstr "ƫ mkaggregatefiles.ksh"
+msgid "source file for one or more steps is missing, exiting........................"
+msgstr "ġԶ¡........................"
+msgid " removing existing logfile : /tmp/recovery.err"
+msgstr " ܢȴ/tmp/recovery.err"
+msgid " removing existing logfile :  $2"
+msgstr " ܢȴ  $2"
+msgid " removing existing temporary sql :  $2"
+msgstr " ܢȴ sql  $2"
+msgid "Unable to successfully append $2 onto $3"
+msgstr "ȩʢ $2  $3"
+msgid "return code from cat : $2"
+msgstr " cat $2"
+msgid "$2 file not found"
+msgstr "̯ $2 "
+msgid "Unable to successfully substitue in $2"
+msgstr " $2 ȩ̽"
+msgid "substitution string : $2"
+msgstr "̽롨$2"
+msgid "return code from sed : $2"
+msgstr " sed $2"
+msgid "Unable to successfully perform all sed based substitutions on $2 into $3"
+msgstr "ȩ $2 ĸȴ sed ̽ɢ̯ $3 "
+msgid "return code from grep : $2, meaning it found un-substituted strings"
+msgstr " grep $2̯̽"
+msgid "$2 file not found\\\(1\\\)"
+msgstr "̯ $2 \\\(1\\\)"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "sqlerror code = $2"
+msgstr "sqlerror  = $2"
+msgid "sqlerrmsg full = \\\>\\\>\\\> $2\\\<\n"
+msgstr "sqlerrmsg  =\\\>\\\>\\\> $2\\\<\n"
+msgid "unhandled error detected, only recourse is to stop processing"
+msgstr "̯ݨܡ먡ġȢݨܡ"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "execution of $2 ok!!"
+msgstr "$2 ڦ"
+msgid "step file $2 not found"
+msgstr "̯ $2"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "skipping execution of $2"
+msgstr " $2 "
+msgid "$2 dependent step $3 did not execute"
+msgstr " $3  $2 "
+msgid "$2 dependent step $3 failed execution"
+msgstr " $3  $2 "
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "while in recovery mode, attempts to find a successfully executed dependent of "
+msgstr "ߦȢĶ롢ȩ $2 "
+msgid "the $2 step was unsuccessfull.  premature exit!!"
+msgstr "ȩȮ֡"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "while in recovery mode, attempts to find a valid step to execute following "
+msgstr "ߦȢĶ롢ƫĶ $2 ȴ"
+msgid "the $2 step was unsuccessfull.  premature exit!!"
+msgstr "ȩȮ֡"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "too many attempts to execute the $2 step"
+msgstr " $2 Ŵ"
+msgid "please see the $2 file for additional details"
+msgstr "ٶ $2 ̧ع"
+msgid "exiting main processing loop..................."
+msgstr "ݨܡ..................."
+msgid "please see the $2 file for listing details"
+msgstr "ٶ $2 ع"
+#
+#========================================
+# <WS>/src/db/build/mkaggregatefiles.ksh
+#========================================
+msgid " removing existing verify inventory  : agg-verify-proc-inventory.sql"
+msgstr " ܢȴջagg-verify-proc-inventory.sql"
+msgid "-        Create agg-packages-topology.sql file              -"
+msgstr "-        ǡ agg-packages-topology.sql               -"
+msgid "-       Create agg-procedures-topology.sql file             -"
+msgstr "-       ǡ agg-procedures-topology.sql              -"
+msgid "-          Add to agg-createalltables.sql file              -"
+msgstr "-           agg-createalltables.sql                -"
+msgid "-       Add to agg-verifyalltableattribs.sql file           -"
+msgstr "-        agg-verifyalltableattribs.sql          -"
+msgid "-          Add to agg-dataload-preseq.sql file              -"
+msgstr "-           agg-dataload-preseq.sql               -"
+msgid "-        Create agg-packages-eventmanager.sql file          -"
+msgstr "-        ǡ agg-packages-eventmanager.sql           -"
+msgid "-        Create agg-procedures-eventmanager.sql file        -"
+msgstr "-        ǡ agg-procedures-eventmanager.sql         -"
+msgid "-         Add to agg-createalltables.sql file               -"
+msgstr "-          agg-createalltables.sql                -"
+msgid "-         Add to agg-verifyalltableattribs.sql file         -"
+msgstr "-          agg-verifyalltableattribs.sql          -"
+msgid "-       Create agg-packages-mgmtservice.sql file            -"
+msgstr "-       ǡ agg-packages-mgmtservice.sql             -"
+msgid "-       Create agg-procedures-mgmtservice.sql file          -"
+msgstr "-       ǡ agg-procedures-mgmtservice.sql           -"
+msgid "-           Add to agg-createalltables.sql file             -"
+msgstr "-          agg-createalltables.sql                -"
+msgid "-         Add to agg-verifyalltableattribs.sql file         -"
+msgstr "-          agg-verifyalltableattribs.sql          -"
+msgid "-        Create agg-verify-proc-inventory.sql file          -"
+msgstr "-        ǡ agg-verify-proc-inventory.sql           -"
+#
+#==================================================
+# <WS>/src/oa/modules/configd4u/bin/es-setup.sh
+#==================================================
+msgid "Setup failed while adding module $2 into $3"
+msgstr " $2  $3 "
+msgid "$2 does not exist"
+msgstr "$2 "
+msgid "Added module $2 to $3."
+msgstr " $2  $3"
+msgid "$2 is not readable, Could not add the module $3"
+msgstr "$2 ƫ̽ $3"
+msgid "Setup of sunfire config reader module failed."
+msgstr "sunfire ̽"
+#
+#======================================
+# <WS>/src/oa/base/generic/bin/*.sh
+#======================================
+msgid "usage: $basename [-sh|-csh] [-internal|-external]"
+msgstr "Ρ$basename [-sh|-csh] [-internal|-external]"
+msgid "ERROR: the ESROOT environment variable has not been set"
+msgstr "먡 ESROOT "
+msgid "usage: $PROGNAME -s \\\"<secret> [-p <public>]  [-u <user>[ ...]] [-h <host>] [-c <component>[ ...]]\\\""
+msgstr "Ρ$PROGNAME -s \\\"<ǵ> [-p <>]  [-u <ϯ>[ ...]][-h <>] [-c <ǵ>[ ...]]\\\""
+msgid "       <secret> is the superuser password\n"
+msgstr "       <ǵ> ϯ\n"
+msgid "       <public> is the public password (default=public)\n"
+msgstr "       <> ԫ=public\n"
+msgid "       <user> is the list of initial seeded users\n"
+msgstr "       <ϯ> ϯ\n"
+msgid "       <host> is the fallback host name\n"
+msgstr "       <> \n"
+msgid "       <component> is agent/cfgserver/event/cstservice/topology/trap/\n"
+msgstr "       <ǵ>  agent/cfgserver/event/cstservice/topology/trap/\n"
+msgid "       Omit all <component>s to do them all\n"
+msgstr "       ܩȴ <ǵ> \n"
+msgid "$PROGNAME: ESROOT must be set."
+msgstr "$PROGNAME:  ESROOT"
+msgid "$PROGNAME: $1: unknown component"
+msgstr "$PROGNAME: $1: ǵ"
+msgid "$PROGNAME: ERROR: blank secret not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩǵ ..."
+msgid "$PROGNAME: ERROR: blank password not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩ ..."
+msgid "PROGNAME: WARNING ... secret will be truncated to 8 characters"
+msgstr "PROGNAME:  ... ǵҳ 8 Զ"
+msgid "$PROGNAME: security.superuser name not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.superuser ꢡ domain-config.x  user-config.x "
+msgid "$PROGNAME: security.generaluser name not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.generaluser ꢡ domain-config.x  user-config.x "
+msgid "$var"
+msgstr "$var"
+msgid "Interrupted..."
+msgstr "..."
+msgid "$PROGNAME: security.userfile not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.userfile domain-config.x  user-config.x "
+msgid "$PROGNAME: security.authOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.authOID domain-config.x  user-config.x "
+msgid "$PROGNAME: security.privOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.privOID domain-config.x  user-config.x "
+msgid "$PROGNAME: ${COMP}.${COMP}Server not found - using $DEFHOST."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}Server -  $DEFHOST"
+msgid "$PROGNAME: ${COMP}.${COMP}snmpPort not found - skipping $COMP."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}snmpPort - ܩ $COMP"
+msgid "ESROOT must be set\n"
+msgstr " ESROOT\n"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "OS $sys $rel is not supported"
+msgstr " OS $sys $rel"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "gettext 'Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "gettext 'ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+#
+#=================================================
+# <WS>/src/java/base/console/bin/es-console.sh
+#=================================================
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "DISPLAY environment variable must be set"
+msgstr " DISPLAY "
+msgid "SYMON_JAVAHOME variable must be set"
+msgstr " SYMON_JAVAHOME "
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+#
+#============================================
+# <WS>/src/java/base/server/bin/es-server*
+#============================================
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯Զݨܡ \\\($COMMAND\\\)"
+msgid "No Processes Killed"
+msgstr "ɴݨܡ"
+msgid "gettext 'More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "gettext '̯Զݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID using kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID with kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "ESDIR environment variable must be set"
+msgstr " ESDIR "
+msgid "SYMON_JAVAHOME variable must be set"
+msgstr " SYMON_JAVAHOME "
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+#
+#====================================================
+# <WS>/src/java/com/sun/symon/base/cli/bin/es-cli
+#====================================================
+msgid "$SYMON_JAVAHOME/jre/bin/java must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$SYMON_JAVAHOME/jre/bin/java  Solaris_JDK_1.2.1_04 \n"
+
+#
+#  Strings from Halcyon scripts
+#
+msgid "usage: $basename [-sh|-csh] [-internal|-external]"
+msgstr "Ρ$basename [-sh|-csh] [-internal|-external]"
+msgid "ERROR: the ESROOT environment variable has not been set"
+msgstr "먡 ESROOT "
+msgid "usage: $PROGNAME -s <secret> [-p <public>]  [-u <user>[ ...]] [-h <host>] [-c <component>[ ...]]"
+msgstr "Ρ$PROGNAME -s <ǵ> [-p <>]  [-u <ϯ>[ ...]][-h <>] [-c <ǵ>[ ...]]"
+msgid "<secret> is the superuser password"
+msgstr "<ǵ> ϯ"
+msgid "<public> is the public password (default=public)"
+msgstr "<> ԫ=public"
+msgid "<user> is the list of initial seeded users"
+msgstr "<ϯ> ϯ"
+msgid "<host> is the fallback host name"
+msgstr "<> "
+msgid "<component> is agent/cfgserver/event/topology/trap"
+msgstr "<ǵ>  agent/cfgserver/event/topology/trap"
+msgid "Omit all <component>s to do them all"
+msgstr "ܩȴ <ǵ> "
+msgid "$PROGNAME: ESROOT must be set."
+msgstr "$PROGNAME:  ESROOT"
+msgid "$PROGNAME: $1: unknown component"
+msgstr "$PROGNAME: $1: ǵ"
+msgid "$PROGNAME: ERROR: blank secret not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩǵ ..."
+msgid "$PROGNAME: ERROR: blank password not allowed, exiting ..."
+msgstr "$PROGNAME: 먡Ϩ ..."
+msgid "$PROGNAME: WARNING ... secret will be truncated to 8 characters"
+msgstr "$PROGNAME:  ... ǵҳ 8 Զ"
+msgid "$PROGNAME: security.superuser name not found. Check domain-confg.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.superuser ꢡ domain-confg.x  user-config.x "
+msgid "$PROGNAME: security.generaluser name not found. Check domain-cofig.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.generaluser ꢡ domain-cofig.x  user-config.x "
+msgid "Copying $FILENAME to $ESDIR/cfg..."
+msgstr " $FILENAME ̯ $ESDIR/cfg..."
+msgid "Copying ${1}-${FILENAME} to $ESDIR/cfg..."
+msgstr " ${1}-${FILENAME} ̯ $ESDIR/cfg..."
+msgid "Copying ${COMP}-${FILENAME} to $ESDIR/cfg..."
+msgstr " ${COMP}-${FILENAME} ̯ $ESDIR/cfg..."
+msgid "$var"
+msgstr "$var"
+msgid "Interrupted..."
+msgstr "..."
+msgid "$PROGNAME: security.userfile not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.userfile domain-config.x  user-config.x "
+msgid "$PROGNAME: security.authOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.authOID domain-config.x  user-config.x "
+msgid "$PROGNAME: security.privOID not found. Check domain-config.x or user-config.x files"
+msgstr "$PROGNAME: ̯ security.privOID domain-config.x  user-config.x "
+msgid "$PROGNAME: ${COMP}.${COMP}Server not found - using $DEFHOST"
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}Server -  $DEFHOST"
+msgid "$PROGNAME: ${COMP}.${COMP}snmpPort not found - skipping $COP."
+msgstr "$PROGNAME: ̯ ${COMP}.${COMP}snmpPort - ܩ $COP"
+msgid "ESROOT must be set"
+msgstr " ESROOT"
+msgid "OS $sys $rel is not supported"
+msgstr " OS $sys $rel"
+msgid "Terminating Process ID $PID \\\($COMMAND\\\)"
+msgstr "ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID \\\($COMMAND\\\)"
+msgstr "ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "No Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯ݨܡ \\\($COMMAND\\\)"
+msgid "Terminating Process ID $PID with the force \\\($COMMAND\\\)"
+msgstr "ڰ̱ \\\($COMMAND\\\) ݨܡ ID $PID"
+msgid "DISPLAY environment variable must be set"
+msgstr " DISPLAY "
+msgid "More Than One Matching Process Found \\\($COMMAND\\\)"
+msgstr "̯Զݨܡ \\\($COMMAND\\\)"
+msgid "No Processes Killed"
+msgstr "ɴݨܡ"
+msgid "Terminating Process ID $PID using kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ݨܡ ID $PID \\\($COMMAND\\\)"
+msgid "Error Killing Process ID $PID with kill -9 \\\($COMMAND\\\)"
+msgstr " kill -9 ɴݨܡ ID $PID  \\\($COMMAND\\\)"
+msgid "ESROOT environment variable must be set"
+msgstr " ESROOT "
+msgid "ESDIR environment variable must be set"
+msgstr " ESDIR "
+#
+# for es-tool - a SDK tool for integrating applications into console
+#
+msgid "Must be root to run $PROGRAM"
+msgstr " root ϯ $PROGRAM "
+
+msgid "$sdk_toolfile either does not exist or is not writable"
+msgstr "$sdk_toolfile ƫī"
+
+msgid "There is an existing $PROGRAM lockfile, $LOCKFILE"
+msgstr "ġԶ $PROGRAM $LOCKFILE"
+
+msgid "which indicates that process is executing the $PROGRAM"
+msgstr "ݨܡ $PROGRAM"
+
+msgid "If this is not the case, delete the lock file,"
+msgstr "ΪӡɴȺ"
+
+msgid "$LOCKFILE and execute $PROGRAM again."
+msgstr "$LOCKFILE ȹ $PROGRAM"
+
+msgid "$sdk_helpfile either does not exist or is not writable"
+msgstr "$sdk_helpfile ƫī"
+
+msgid "$JAVA must exist and be of version Solaris_JDK_1.2.1_04\n"
+msgstr "$JAVA  Solaris_JDK_1.2.1_04 \n"
+
+msgid "Using %s"
+msgstr " %s"
+
+msgid "%s updated."
+msgstr "%s 仡"
+
+msgid "This script reads the specified configuration file or\\n%s if not specified,\\nand installs the applications with the server."
+msgstr "Ⱥ Script ̽\\n%sΪ\\nΤȢ"
+
+msgid "The configuration file contains one or more lines using the following format:\n"
+msgstr "ġĶ֪Ȣթ\n"
+
+msgid "where:\n"
+msgstr "̧㡨\n"
+
+msgid "name\tis the name of the application that appears in the Application list\n"
+msgstr " name\tȢȢ"
+
+msgid "class\tis the name of the Java class for the application\n"
+msgstr " class\tȢ Java ɱ\n"
+
+msgid "args\tare optional user defined arguments to be passed to the application\n"
+msgstr "args\tīȢϯƫ\n"
+
+msgid "help\tis the optional help specification using the format key:helpfile or :url.\n"
+msgstr "help\tkey:helpfile  :url ֪Ȣɷƫ\n"
+
+msgid "There should be no quotes in the line.\n"
+msgstr "ȴſ\n"
+
+msgid "Lines beginning with # are considered as comments.\n"
+msgstr " # թݷҳء"
+
+msgid "For example:\n"
+msgstr "\n"
+
+#
+#====================================================
+# <WS>/packages/Setup/es-platform
+#====================================================
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "       Where the options represent:\n"
+msgstr "       ̧\n"
+msgid "  a : to add an instance of platform agent\n"
+msgstr "  aƺܡȢ\n"
+msgid "  d : to delete an instance of platform agent\n"
+msgstr "  dɴƺܡȢ\n"
+msgid "You can not specify both a and d option in the same command"
+msgstr "ġԶ a ů d "
+msgid "You can not have spaces in the instance name."
+msgstr "ȴϨ֪"
+msgid "Port $2 is not a valid port number, try another number : "
+msgstr " $2 ȴƶġԶ "
+msgid "This port is being used by Sun Management Center agent, try another number : "
+msgstr "Ⱥ Sun Management Center ܡȢƶġԶ "
+msgid "This port is being used by some instance, try another number : "
+msgstr "ȺԶƶġԶ "
+msgid "This port is being used by some another process, try another number : "
+msgstr "ȺƶġԶݨܡƶġԶ "
+msgid "This instance is already present."
+msgstr "Ⱥ㡤"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+msgid "Usage: $PROGNAME -ad instanceName"
+msgstr "Ρ$PROGNAME -ad instanceName"
+
+# END
--- a/test/jdk/sun/security/tools/jarsigner/multiRelease/MVJarSigningTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/security/tools/jarsigner/multiRelease/MVJarSigningTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,7 +81,7 @@
     private static final String KEYPASS = "changeit";
     private static final String SIGNED_JAR = "Signed.jar";
     private static final String POLICY_FILE = "SignedJar.policy";
-    private static final String VERSION = "" + Runtime.version().major();
+    private static final String VERSION = Integer.toString(10);
     private static final String VERSION_MESSAGE = "I am running on version " + VERSION;
 
     public static void main(String[] args) throws Throwable {
--- a/test/jdk/sun/util/calendar/zi/tzdata/VERSION	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/VERSION	Fri Feb 02 09:04:45 2018 -0800
@@ -21,4 +21,4 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
-tzdata2017c
+tzdata2018c
--- a/test/jdk/sun/util/calendar/zi/tzdata/africa	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/africa	Fri Feb 02 09:04:45 2018 -0800
@@ -181,7 +181,6 @@
 Link Africa/Abidjan Africa/Lome		# Togo
 Link Africa/Abidjan Africa/Nouakchott	# Mauritania
 Link Africa/Abidjan Africa/Ouagadougou	# Burkina Faso
-Link Africa/Abidjan Africa/Sao_Tome	# São Tomé and Príncipe
 Link Africa/Abidjan Atlantic/St_Helena	# St Helena
 
 # Djibouti
@@ -448,7 +447,7 @@
 #
 # The Nautical Almanac for the Year 1970, p 264, is the source for -0:44:30.
 #
-# In 1972 Liberia was the last country to switch from a UTC offset
+# In 1972 Liberia was the last country to switch from a UT offset
 # that was not a multiple of 15 or 20 minutes.  The 1972 change was on
 # 1972-01-07, according to an entry dated 1972-01-04 on p 330 of:
 # Presidential Papers: First year of the administration of
@@ -1060,6 +1059,19 @@
 #	Inaccessible, Nightingale: uninhabited
 
 # São Tomé and Príncipe
+
+# From Steffen Thorsen (2018-01-08):
+# Multiple sources tell that São Tomé changed from UTC to UTC+1 as
+# they entered the year 2018.
+# From Michael Deckers (2018-01-08):
+# the switch is from 01:00 to 02:00 ... [Decree No. 25/2017]
+# http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017
+
+Zone	Africa/Sao_Tome	 0:26:56 -	LMT	1884
+			-0:36:45 -	LMT	1912 # Lisbon Mean Time
+			 0:00	-	GMT	2018 Jan  1 01:00
+			 1:00	-	WAT
+
 # Senegal
 # See Africa/Abidjan.
 
--- a/test/jdk/sun/util/calendar/zi/tzdata/asia	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/asia	Fri Feb 02 09:04:45 2018 -0800
@@ -73,7 +73,7 @@
 #	9:00 KST  KDT	Korea when at +09
 #	9:30 ACST	Australian Central Standard Time
 # Otherwise, these tables typically use numeric abbreviations like +03
-# and +0330 for integer hour and minute UTC offsets.  Although earlier
+# and +0330 for integer hour and minute UT offsets.  Although earlier
 # editions invented alphabetic time zone abbreviations for every
 # offset, this did not reflect common practice.
 #
@@ -670,17 +670,17 @@
 # time", in which abolished the adoption of Western Standard Time in
 # western islands (listed above), which means the whole Japan
 # territory, including later occupations, adopt Japan Central Time
-# (UTC+9). The adoption began on Oct 1, 1937. The original text can
+# (UT+9). The adoption began on Oct 1, 1937. The original text can
 # be found on Wikisource:
 # https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件
 #
-# That is, the time zone of Taipei switched to UTC+9 on Oct 1, 1937.
+# That is, the time zone of Taipei switched to UT+9 on Oct 1, 1937.
 
 # From Yu-Cheng Chuang (2014-07-02):
-# I've found more evidence about when the time zone was switched from UTC+9
-# back to UTC+8 after WW2.  I believe it was on Sep 21, 1945.  In a document
+# I've found more evidence about when the time zone was switched from UT+9
+# back to UT+8 after WW2.  I believe it was on Sep 21, 1945.  In a document
 # during Japanese era [1] in which the officer told the staff to change time
-# zone back to Western Standard Time (UTC+8) on Sep 21.  And in another
+# zone back to Western Standard Time (UT+8) on Sep 21.  And in another
 # history page of National Cheng Kung University [2], on Sep 21 there is a
 # note "from today, switch back to Western Standard Time".  From these two
 # materials, I believe that the time zone change happened on Sep 21.  And
@@ -1487,17 +1487,17 @@
 # of the Japanese wanted to scrap daylight-saving time, as opposed to 30% who
 # wanted to keep it.)
 
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger write that DST in Japan during those years was as follows:
+# From Takayuki Nikai (2018-01-19):
+# The source of information is Japanese law.
+# http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00219480428029.htm
+# http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00719500331039.htm
+# ... In summary, it is written as follows.  From 24:00 on the first Saturday
+# in May, until 0:00 on the day after the second Saturday in September.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Japan	1948	only	-	May	Sun>=1	2:00	1:00	D
-Rule	Japan	1948	1951	-	Sep	Sat>=8	2:00	0	S
-Rule	Japan	1949	only	-	Apr	Sun>=1	2:00	1:00	D
-Rule	Japan	1950	1951	-	May	Sun>=1	2:00	1:00	D
-# but the only locations using it (for birth certificates, presumably, since
-# their audience is astrologers) were US military bases.  For now, assume
-# that for most purposes daylight-saving time was observed; otherwise, what
-# would have been the point of the 1951 poll?
+Rule	Japan	1948	only	-	May	Sat>=1	24:00	1:00	D
+Rule	Japan	1948	1951	-	Sep	Sun>=9	 0:00	0	S
+Rule	Japan	1949	only	-	Apr	Sat>=1	24:00	1:00	D
+Rule	Japan	1950	1951	-	May	Sat>=1	24:00	1:00	D
 
 # From Hideyuki Suzuki (1998-11-09):
 # 'Tokyo' usually stands for the former location of Tokyo Astronomical
@@ -1528,7 +1528,7 @@
 #
 # ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which
 # means the whole Japan territory, including later occupations, adopt Japan
-# Central Time (UTC+9). The adoption began on Oct 1, 1937.
+# Central Time (UT+9). The adoption began on Oct 1, 1937.
 # https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2089,8 +2089,8 @@
 
 # Maldives
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Indian/Maldives	4:54:00 -	LMT	1880 # Male
-			4:54:00	-	MMT	1960 # Male Mean Time
+Zone	Indian/Maldives	4:54:00 -	LMT	1880 # Malé
+			4:54:00	-	MMT	1960 # Malé Mean Time
 			5:00	-	+05
 
 # Mongolia
--- a/test/jdk/sun/util/calendar/zi/tzdata/australasia	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/australasia	Fri Feb 02 09:04:45 2018 -0800
@@ -706,8 +706,8 @@
 # From Steffen Thorsen (2012-07-25)
 # ... we double checked by calling hotels and offices based in Tokelau asking
 # about the time there, and they all told a time that agrees with UTC+13....
-# Shanks says UTC-10 from 1901 [but] ... there is a good chance the change
-# actually was to UTC-11 back then.
+# Shanks says UT-10 from 1901 [but] ... there is a good chance the change
+# actually was to UT-11 back then.
 #
 # From Paul Eggert (2012-07-25)
 # A Google Books snippet of Appendix to the Journals of the House of
@@ -1473,7 +1473,7 @@
 #
 # From Paul Eggert (2006-03-22):
 # The Department of Internal Affairs (DIA) maintains a brief history,
-# as does Carol Squires; see tz-link.htm for the full references.
+# as does Carol Squires; see tz-link.html for the full references.
 # Use these sources in preference to Shanks & Pottenger.
 #
 # For Chatham, IATA SSIM (1991/1999) gives the NZ rules but with
--- a/test/jdk/sun/util/calendar/zi/tzdata/europe	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/europe	Fri Feb 02 09:04:45 2018 -0800
@@ -91,14 +91,15 @@
 #        0:00       WET  WEST WEMT  Western Europe
 #        0:19:32.13 AMT* NST*       Amsterdam, Netherlands Summer (1835-1937)
 #        1:00       BST             British Standard (1968-1971)
+#        1:00       IST  GMT        Irish Standard (1968-) with winter DST
 #        1:00       CET  CEST CEMT  Central Europe
 #        1:00:14    SET             Swedish (1879-1899)
 #        1:36:34    RMT* LST*       Riga, Latvian Summer (1880-1926)*
 #        2:00       EET  EEST       Eastern Europe
 #        3:00       MSK  MSD  MDST* Moscow
 
-# From Peter Ilieve (1994-12-04),
-# The original six [EU members]: Belgium, France, (West) Germany, Italy,
+# From Peter Ilieve (1994-12-04), re EEC/EC/EU members:
+# The original six: Belgium, France, (West) Germany, Italy,
 # Luxembourg, the Netherlands.
 # Plus, from 1 Jan 73: Denmark, Ireland, United Kingdom.
 # Plus, from 1 Jan 81: Greece.
@@ -301,16 +302,31 @@
 # The following claim by Shanks & Pottenger is possible though doubtful;
 # we'll ignore it for now.
 #     * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00.
-#
+
+# From Paul Eggert (2017-12-04):
 #
-# Whitman says Dublin Mean Time was -0:25:21, which is more precise than
-# Shanks & Pottenger.
-# Perhaps this was Dunsink Observatory Time, as Dunsink Observatory
-# (8 km NW of Dublin's center) seemingly was to Dublin as Greenwich was
-# to London.  For example:
+# Dunsink Observatory (8 km NW of Dublin's center) was to Dublin as
+# Greenwich was to London.  For example:
 #
 #   "Timeball on the ballast office is down.  Dunsink time."
 #   -- James Joyce, Ulysses
+#
+# The abbreviation DMT stood for "Dublin Mean Time" or "Dunsink Mean Time";
+# this being Ireland, opinions differed.
+#
+# Whitman says Dublin/Dunsink Mean Time was UT-00:25:21, which agrees
+# with measurements of recent visitors to the Meridian Room of Dunsink
+# Observatory; see Malone D. Dunsink and timekeeping. 2016-01-24.
+# <https://www.maths.tcd.ie/~dwmalone/time/dunsink.html>.  Malone
+# writes that the Nautical Almanac listed UT-00:25:22 until 1896, when
+# it moved to UT-00:25:21.1 (I confirmed that the 1893 edition used
+# the former and the 1896 edition used the latter).  Evidently the
+# news of this change propagated slowly, as Milne 1899 still lists
+# UT-00:25:22 and cites the International Telegraph Bureau.  As it is
+# not clear that there was any practical significance to the change
+# from UT-00:25:22 to UT-00:25:21.1 in civil timekeeping, omit this
+# transition for now and just use the latter value, omitting its
+# fraction since our format cannot represent fractions.
 
 # "Countess Markievicz ... claimed that the [1916] abolition of Dublin Mean Time
 # was among various actions undertaken by the 'English' government that
@@ -370,12 +386,28 @@
 # regulations. I spoke this morning with the Secretary of the Department of
 # Justice (tel +353 1 678 9711) who confirmed to me that the correct name is
 # "Irish Summer Time", abbreviated to "IST".
+#
+# From Paul Eggert (2017-12-07):
+# The 1996 anonymous contributor's goal was to determine the correct
+# abbreviation for summer time in Dublin and so the contributor
+# focused on the "IST", not on the "Irish Summer Time".  Though the
+# "IST" was correct, the "Irish Summer Time" appears to have been an
+# error, as Ireland's Standard Time (Amendment) Act, 1971 states that
+# standard time in Ireland remains at UT +01 and is observed in
+# summer, and that Greenwich mean time is observed in winter.  (Thanks
+# to Derick Rethans for pointing out the error.)  That is, when
+# Ireland amended the 1968 act that established UT +01 as Irish
+# Standard Time, it left standard time unchanged and established GMT
+# as a negative daylight saving time in winter.  So, in this database
+# IST stands for Irish Summer Time for timestamps before 1968, and for
+# Irish Standard Time after that.  See:
+# http://www.irishstatutebook.ie/eli/1971/act/17/enacted/en/print
 
 # Michael Deckers (2017-06-01) gave the following URLs for Ireland's
 # Summer Time Act, 1925 and Summer Time Orders, 1926 and 1947:
-# http://www.irishstatutebook.ie/eli/1925/act/8/enacted/en/print.html
-# http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print.html
-# http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print.html
+# http://www.irishstatutebook.ie/eli/1925/act/8/enacted/en/print
+# http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print
+# http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # Summer Time Act, 1916
@@ -499,9 +531,23 @@
 Link	Europe/London	Europe/Guernsey
 Link	Europe/London	Europe/Isle_of_Man
 
+# From Paul Eggert (2018-01-19):
+# The following is like GB-Eire and EU, except with standard time in
+# summer and negative daylight saving time in winter.
+# Although currently commented out, this will need to become uncommented
+# once the ICU/OpenJDK workaround is removed; see below.
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+#Rule	Eire	1971	only	-	Oct	31	 2:00u	-1:00	GMT
+#Rule	Eire	1972	1980	-	Mar	Sun>=16	 2:00u	0	IST
+#Rule	Eire	1972	1980	-	Oct	Sun>=23	 2:00u	-1:00	GMT
+#Rule	Eire	1981	max	-	Mar	lastSun	 1:00u	0	IST
+#Rule	Eire	1981	1989	-	Oct	Sun>=23	 1:00u	-1:00	GMT
+#Rule	Eire	1990	1995	-	Oct	Sun>=22	 1:00u	-1:00	GMT
+#Rule	Eire	1996	max	-	Oct	lastSun	 1:00u	-1:00	GMT
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Dublin	-0:25:00 -	LMT	1880 Aug  2
-			-0:25:21 -	DMT	1916 May 21  2:00s # Dublin MT
+			-0:25:21 -	DMT	1916 May 21  2:00s
 			-0:25:21 1:00	IST	1916 Oct  1  2:00s
 			 0:00	GB-Eire	%s	1921 Dec  6 # independence
 			 0:00	GB-Eire	GMT/IST	1940 Feb 25  2:00s
@@ -510,16 +556,33 @@
 			 0:00	1:00	IST	1947 Nov  2  2:00s
 			 0:00	-	GMT	1948 Apr 18  2:00s
 			 0:00	GB-Eire	GMT/IST	1968 Oct 27
+# From Paul Eggert (2018-01-18):
+# The next line should look like this:
+#			 1:00	Eire	IST/GMT
+# However, in January 2018 we discovered that the Eire rules cause
+# problems with tests for ICU:
+# https://mm.icann.org/pipermail/tz/2018-January/025825.html
+# and with tests for OpenJDK:
+# https://mm.icann.org/pipermail/tz/2018-January/025822.html
+# To work around this problem, use a traditional approximation for
+# time stamps after 1971-10-31 02:00 UTC, to give ICU and OpenJDK
+# developers breathing room to fix bugs.  This approximation has
+# correct UTC offsets, but results in tm_isdst flags are the reverse
+# of what they should be.  This workaround is temporary and should be
+# removed reasonably soon.
 			 1:00	-	IST	1971 Oct 31  2:00u
 			 0:00	GB-Eire	GMT/IST	1996
 			 0:00	EU	GMT/IST
+# End of workaround for ICU and OpenJDK bugs.
+
 
 ###############################################################################
 
 # Europe
 
-# EU rules are for the European Union, previously known as the EC, EEC,
-# Common Market, etc.
+# The following rules are for the European Union and for its
+# predecessor organization, the European Communities.
+# For brevity they are called "EU rules" elsewhere in this file.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	EU	1977	1980	-	Apr	Sun>=1	 1:00u	1:00	S
@@ -952,7 +1015,7 @@
 # The page http://www.retsinfo.dk/_GETDOCI_/ACCN/A18930008330-REGL
 # confirms this, and states that the law was put forth 1893-03-29.
 #
-# The EU treaty with effect from 1973:
+# The EU [actually, EEC and Euratom] treaty with effect from 1973:
 # http://www.retsinfo.dk/_GETDOCI_/ACCN/A19722110030-REGL
 #
 # This provoked a new law from 1974 to make possible summer time changes
@@ -1008,9 +1071,10 @@
 # East Greenland and Franz Josef Land, but we don't know their time zones.
 # My source for this is Wilhelm Dege's book mentioned under Svalbard.
 #
-# From Paul Eggert (2006-03-22):
-# Greenland joined the EU as part of Denmark, obtained home rule on 1979-05-01,
-# and left the EU on 1985-02-01.  It therefore should have been using EU
+# From Paul Eggert (2017-12-10):
+# Greenland joined the European Communities as part of Denmark,
+# obtained home rule on 1979-05-01, and left the European Communities
+# on 1985-02-01.  It therefore should have been using EU
 # rules at least through 1984.  Shanks & Pottenger say Scoresbysund and Godthåb
 # used C-Eur rules after 1980, but IATA SSIM (1991/1996) says they use EU
 # rules since at least 1991.  Assume EU rules since 1980.
@@ -1324,7 +1388,7 @@
 # From Markus Kuhn (1998-09-29):
 # The German time zone web site by the Physikalisch-Technische
 # Bundesanstalt contains DST information back to 1916.
-# [See tz-link.htm for the URL.]
+# [See tz-link.html for the URL.]
 
 # From Jörg Schilling (2002-10-23):
 # In 1945, Berlin was switched to Moscow Summer time (GMT+4) by
@@ -1421,7 +1485,7 @@
 			1:00	Greece	CE%sT	1944 Apr  4
 			2:00	Greece	EE%sT	1981
 			# Shanks & Pottenger say it switched to C-Eur in 1981;
-			# go with EU instead, since Greece joined it on Jan 1.
+			# go with EU rules instead, since Greece joined Jan 1.
 			2:00	EU	EE%sT
 
 # Hungary
@@ -2120,7 +2184,7 @@
 # IATA SSIM (1991/1992) reports that the Azores were at -1:00.
 # IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00.
 # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
-# harmonized with the EU), and that they stayed +0:00 that winter.
+# harmonized with EU rules), and that they stayed +0:00 that winter.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
@@ -2795,9 +2859,9 @@
 #
 # https://regnum.ru/news/society/1957270.html
 # has some historical data for Altai Krai:
-# before 1957: west part on UTC+6, east on UTC+7
-# after 1957: UTC+7
-# since 1995: UTC+6
+# before 1957: west part on UT+6, east on UT+7
+# after 1957: UT+7
+# since 1995: UT+6
 # http://barnaul.rusplt.ru/index/pochemu_altajskij_kraj_okazalsja_v_neprivychnom_chasovom_pojase-17648.html
 # confirms that and provides more details including 1995-05-28 transition date.
 
@@ -3605,6 +3669,17 @@
 # The change is permanent, so this is the new standard time in Turkey.
 # It takes effect today, which is not much notice.
 
+# From Kıvanç Yazan (2017-10-28):
+# Turkey will go back to Daylight Saving Time starting 2018-10.
+# http://www.resmigazete.gov.tr/eskiler/2017/10/20171028-5.pdf
+#
+# From Even Scharning (2017-11-08):
+# ... today it was announced that the DST will become "continuous":
+# http://www.hurriyet.com.tr/son-dakika-yaz-saati-uygulamasi-surekli-hale-geldi-40637482
+# From Paul Eggert (2017-11-08):
+# Although Google Translate misfires on that source, it looks like
+# Turkey reversed last month's decision, and so will stay at +03.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Turkey	1916	only	-	May	 1	0:00	1:00	S
 Rule	Turkey	1916	only	-	Oct	 1	0:00	0	-
--- a/test/jdk/sun/util/calendar/zi/tzdata/leapseconds	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/leapseconds	Fri Feb 02 09:04:45 2018 -0800
@@ -80,5 +80,5 @@
 Leap	2015	Jun	30	23:59:60	+	S
 Leap	2016	Dec	31	23:59:60	+	S
 
-#	Updated through IERS Bulletin C54
-#	File expires on:  28 June 2018
+#	Updated through IERS Bulletin C55
+#	File expires on:  28 December 2018
--- a/test/jdk/sun/util/calendar/zi/tzdata/northamerica	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/northamerica	Fri Feb 02 09:04:45 2018 -0800
@@ -371,6 +371,18 @@
 # Nebraska, eastern North Dakota, Oklahoma, eastern South Dakota,
 # western Tennessee, most of Texas, Wisconsin
 
+# From Paul Eggert (2018-01-07):
+# In 1869 the Chicago Astronomical Society contracted with the city to keep
+# time.  Though delayed by the Great Fire, by 1880 a wire ran from the
+# Dearborn Observatory (on the University of Chicago campus) to City Hall,
+# which then sent signals to police and fire stations.  However, railroads got
+# their time signals from the Allegheny Observatory, the Madison Observatory,
+# the Ann Arbor Observatory, etc., so their clocks did not agree with each
+# other or with the city's official time.  The confusion took some years to
+# clear up.  See:
+# Moser M. How Chicago gave America its time zones. Chicago. 2018-01-04.
+# http://www.chicagomag.com/city-life/January-2018/How-Chicago-Gave-America-Its-Time-Zones/
+
 # From Larry M. Smith (2006-04-26) re Wisconsin:
 # https://docs.legis.wisconsin.gov/statutes/statutes/175.pdf
 # is currently enforced at the 01:00 time of change.  Because the local
@@ -1919,7 +1931,7 @@
 # manager of the Creston & District Museum. The article was written in May 2009.
 # http://www.ilovecreston.com/?p=articles&t=spec&ar=260
 # According to the article, Creston has not changed its clocks since June 1918.
-# i.e. Creston has been stuck on UTC-7 for 93 years.
+# i.e. Creston has been stuck on UT-7 for 93 years.
 # Dawson Creek, on the other hand, changed its clocks as recently as April 1972.
 
 # Unfortunately the exact date for the time change in June 1918 remains
--- a/test/jdk/sun/util/calendar/zi/tzdata/southamerica	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/southamerica	Fri Feb 02 09:04:45 2018 -0800
@@ -48,7 +48,7 @@
 # https://www.jstor.org/stable/1774359
 #
 # These tables use numeric abbreviations like -03 and -0330 for
-# integer hour and minute UTC offsets.  Although earlier editions used
+# integer hour and minute UT offsets.  Although earlier editions used
 # alphabetic time zone abbreviations, these abbreviations were
 # invented and did not reflect common practice.
 
@@ -602,7 +602,7 @@
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/La_Paz	-4:32:36 -	LMT	1890
 			-4:32:36 -	CMT	1931 Oct 15 # Calamarca MT
-			-4:32:36 1:00	BOST	1932 Mar 21 # Bolivia ST
+			-4:32:36 1:00	BST	1932 Mar 21 # Bolivia ST
 			-4:00	-	-04
 
 # Brazil
@@ -931,12 +931,25 @@
 # [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the
 # 3rd Feb Sunday. There is an exception on the return date when this is
 # the Carnival Sunday then the return date will be the next Sunday...
-Rule	Brazil	2008	max	-	Oct	Sun>=15	0:00	1:00	S
+Rule	Brazil	2008	2017	-	Oct	Sun>=15	0:00	1:00	S
 Rule	Brazil	2008	2011	-	Feb	Sun>=15	0:00	0	-
+# Decree 7,584 <http://pcdsh01.on.br/HVdecreto7584_20111013.jpg> (2011-10-13)
+# added Bahia.
 Rule	Brazil	2012	only	-	Feb	Sun>=22	0:00	0	-
+# Decree 7,826 <http://pcdsh01.on.br/HVdecreto7826_20121015.jpg> (2012-10-15)
+# removed Bahia and added Tocantins.
+# Decree 8,112 <http://pcdsh01.on.br/HVdecreto8112_20130930.JPG> (2013-09-30)
+# removed Tocantins.
 Rule	Brazil	2013	2014	-	Feb	Sun>=15	0:00	0	-
 Rule	Brazil	2015	only	-	Feb	Sun>=22	0:00	0	-
 Rule	Brazil	2016	2022	-	Feb	Sun>=15	0:00	0	-
+# From Steffen Thorsen (2017-12-18):
+# According to many media sources, next year's DST start in Brazil will move to
+# the first Sunday of November, and it will stay like that for the years after.
+# ... https://www.timeanddate.com/news/time/brazil-delays-dst-2018.html
+# From Steffen Thorsen (2017-12-20):
+# http://www.planalto.gov.br/ccivil_03/_ato2015-2018/2017/decreto/D9242.htm
+Rule	Brazil	2018	max	-	Nov	Sun>=1	0:00	1:00	S
 Rule	Brazil	2023	only	-	Feb	Sun>=22	0:00	0	-
 Rule	Brazil	2024	2025	-	Feb	Sun>=15	0:00	0	-
 Rule	Brazil	2026	only	-	Feb	Sun>=22	0:00	0	-
@@ -1091,7 +1104,7 @@
 
 # From Paul Eggert (2015-04-03):
 # Shanks & Pottenger says America/Santiago introduced standard time in
-# 1890 and rounds its UTC offset to 70W40; guess that in practice this
+# 1890 and rounds its UT offset to 70W40; guess that in practice this
 # was the same offset as in 1916-1919.  It also says Pacific/Easter
 # standardized on 109W22 in 1890; assume this didn't change the clocks.
 #
--- a/test/jdk/sun/util/calendar/zi/tzdata/zone.tab	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/sun/util/calendar/zi/tzdata/zone.tab	Fri Feb 02 09:04:45 2018 -0800
@@ -395,7 +395,7 @@
 SN	+1440-01726	Africa/Dakar
 SO	+0204+04522	Africa/Mogadishu
 SR	+0550-05510	America/Paramaribo
-SS	+0451+03136	Africa/Juba
+SS	+0451+03137	Africa/Juba
 ST	+0020+00644	Africa/Sao_Tome
 SV	+1342-08912	America/El_Salvador
 SX	+180305-0630250	America/Lower_Princes
--- a/test/jdk/tools/jimage/JImageExtractTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/tools/jimage/JImageExtractTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -124,18 +124,21 @@
 
     public void testExtractToDirBySymlink() throws IOException {
         Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName());
+        Path symlink;
         try {
-            Path symlink = Files.createSymbolicLink(Paths.get(".", "symlink"), tmp);
-            jimage("extract", "--dir", symlink.toString(), getImagePath())
-                    .assertSuccess()
-                    .resultChecker(r -> {
-                        assertTrue(r.output.isEmpty(), "Output is not expected");
-                    });
-            verifyExplodedImage(tmp);
-        } catch (UnsupportedOperationException e) {
+            symlink = Files.createSymbolicLink(Paths.get(".", "symlink"), tmp);
+        } catch (IOException|UnsupportedOperationException e) {
             // symlinks are not supported
             // nothing to test
+            return;
         }
+
+        jimage("extract", "--dir", symlink.toString(), getImagePath())
+                .assertSuccess()
+                .resultChecker(r -> {
+                    assertTrue(r.output.isEmpty(), "Output is not expected");
+                });
+        verifyExplodedImage(tmp);
     }
 
     public void testExtractToReadOnlyDir() throws IOException {
--- a/test/jdk/tools/jmod/JmodTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/jdk/tools/jmod/JmodTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -104,7 +104,7 @@
             Path link = Files.createSymbolicLink(
                 libDir.resolve("baz"), libDir.resolve("foo").toAbsolutePath());
             assertTrue(Files.exists(link));
-        } catch (UnsupportedOperationException uoe) {
+        } catch (IOException|UnsupportedOperationException uoe) {
             // OS does not support symlinks. Nothing to test!
             return;
         }
--- a/test/langtools/tools/javac/6304921/TestLog.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/langtools/tools/javac/6304921/TestLog.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
  *          jdk.compiler/com.sun.tools.javac.parser
  *          jdk.compiler/com.sun.tools.javac.tree
  *          jdk.compiler/com.sun.tools.javac.util:+open
+ *          jdk.compiler/com.sun.tools.javac.resources
  */
 import java.lang.reflect.Field;
 import java.io.InputStream;
@@ -49,6 +50,8 @@
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
 import com.sun.tools.javac.util.JCDiagnostic.Factory;
 import com.sun.tools.javac.util.Options;
+import com.sun.tools.javac.resources.CompilerProperties.Errors;
+import com.sun.tools.javac.resources.CompilerProperties.Warnings;
 
 public class TestLog
 {
@@ -122,15 +125,15 @@
         public void visitIf(JCTree.JCIf tree) {
             JCDiagnostic.DiagnosticPosition nil = null;
             // generate dummy messages to exercise the log API
-            log.error("not.stmt");
-            log.error(tree.pos, "not.stmt");
-            log.error(tree.pos(), "not.stmt");
-            log.error(nil, "not.stmt");
+            log.error(Errors.NotStmt);
+            log.error(tree.pos, Errors.NotStmt);
+            log.error(tree.pos(), Errors.NotStmt);
+            log.error(nil, Errors.NotStmt);
 
-            log.warning("div.zero");
-            log.warning(tree.pos, "div.zero");
-            log.warning(tree.pos(), "div.zero");
-            log.warning(nil, "div.zero");
+            log.warning(Warnings.DivZero);
+            log.warning(tree.pos, Warnings.DivZero);
+            log.warning(tree.pos(), Warnings.DivZero);
+            log.warning(nil, Warnings.DivZero);
         }
 
         private Log log;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/diags/examples/WithExpected/module-info.java	Fri Feb 02 09:04:45 2018 -0800
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.err.expected.str
+
+module WithExpected {
+    provides p.C;
+}
--- a/test/langtools/tools/javac/modules/ProvidesTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/langtools/tools/javac/modules/ProvidesTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -103,7 +103,7 @@
                 .writeAll()
                 .getOutput(Task.OutputKind.DIRECT);
 
-        if (!log.contains("module-info.java:1:24: compiler.err.expected: 'with'"))
+        if (!log.contains("module-info.java:1:24: compiler.err.expected.str: 'with'"))
             throw new Exception("expected output not found");
 
     }
--- a/test/langtools/tools/javac/parser/extend/JavacExtensionTest.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/langtools/tools/javac/parser/extend/JavacExtensionTest.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,7 @@
  *          jdk.compiler/com.sun.tools.javac.parser
  *          jdk.compiler/com.sun.tools.javac.tree
  *          jdk.compiler/com.sun.tools.javac.util
+ *          jdk.compiler/com.sun.tools.javac.resources
  */
 public class JavacExtensionTest {
 
--- a/test/langtools/tools/javac/parser/extend/TrialParser.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/langtools/tools/javac/parser/extend/TrialParser.java	Fri Feb 02 09:04:45 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,6 +55,7 @@
 import com.sun.tools.javac.util.ListBuffer;
 import com.sun.tools.javac.util.Name;
 import com.sun.tools.javac.util.Position;
+import com.sun.tools.javac.resources.CompilerProperties.Errors;
 
 /**
  *
@@ -236,11 +237,11 @@
                                     ? List.<JCTree>of(toP(F.at(pos).MethodDef(mods, name, t, typarams,
                                                             List.<JCVariableDecl>nil(), List.<JCExpression>nil(), null, null)))
                                     : null;
-                            return List.<JCTree>of(syntaxError(token.pos, err, "expected", LPAREN));
+                            return List.<JCTree>of(syntaxError(token.pos, err, Errors.Expected(LPAREN)));
                         }
                     } else if (!typarams.isEmpty()) {
                         // type parameters on non-variable non-method -- error
-                        return List.<JCTree>of(syntaxError(token.pos, "illegal.start.of.type"));
+                        return List.<JCTree>of(syntaxError(token.pos, Errors.IllegalStartOfType));
                     } else {
                         // expression-statement or expression to evaluate
                         accept(SEMI);
--- a/test/langtools/tools/javac/processing/model/TestSourceVersion.java	Fri Feb 02 17:02:45 2018 +0530
+++ b/test/langtools/tools/javac/processing/model/TestSourceVersion.java	Fri Feb 02 09:04:45 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 7025809 8028543 6415644 8028544 8029942 8187951 8193291
+ * @bug 7025809 8028543 6415644 8028544 8029942 8187951 8193291 8196551
  * @summary Test latest, latestSupported, underscore as keyword, etc.
  * @author  Joseph D. Darcy
  * @modules java.compiler
@@ -46,11 +46,20 @@
     }
 
     private static void testLatestSupported() {
-        if (SourceVersion.latest() != RELEASE_11 ||
-            SourceVersion.latestSupported() != RELEASE_10)
+        SourceVersion[] values = SourceVersion.values();
+        SourceVersion last = values[values.length - 1];
+        SourceVersion latest = SourceVersion.latest();
+        SourceVersion latestSupported = SourceVersion.latestSupported();
+
+        if (latest == last &&
+            latestSupported == SourceVersion.valueOf("RELEASE_" + Runtime.version().feature()) &&
+            (latest == latestSupported || (latest.ordinal() - latestSupported.ordinal() == 1)) )
+            return;
+        else {
             throw new RuntimeException("Unexpected release value(s) found:\n" +
-                                       "latest:\t" + SourceVersion.latest() + "\n" +
-                                       "latestSupported:\t" + SourceVersion.latestSupported());
+                                       "latest:\t" + latest + "\n" +
+                                       "latestSupported:\t" + latestSupported);
+        }
     }
 
     private static void testVersionVaryingKeywords() {