From aa8f38c3b67bc647eb1082c28adbf84a577ec664 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Fri, 28 Mar 2014 22:11:29 +0000 Subject: [PATCH] Add a port of OpenJDK8. Submitted by: Brian Gardner (preliminary version) --- java/Makefile | 1 + java/openjdk8/Makefile | 211 + java/openjdk8/distinfo | 4 + .../files/bsd.fontconfig.properties.in | 191 + java/openjdk8/files/cacerts | Bin 0 -> 82586 bytes java/openjdk8/files/patch-bsd | 6843 +++++++++++++++++ java/openjdk8/files/patch-bsd-test | 1344 ++++ java/openjdk8/files/patch-configure | 10 + .../patch-hotspot-src-os-bsd-vm-os_bsd.cpp | 11 + .../patch-jdk-make-lib-CoreLibraries.gmk | 16 + ...h-jdk-make-lib-ServiceabilityLibraries.gmk | 19 + .../patch-jdk-make-lib-SoundLibraries.gmk | 16 + ...-com-sun-java-swing-plaf-gtk-Metacity.java | 15 + ...atch-jdk-src-solaris-bin-java_md_solinux.h | 12 + ...sses-sun-nio-fs-BsdFileSystemProvider.java | 30 + ...-sun-nio-fs-DefaultFileSystemProvider.java | 38 + java/openjdk8/pkg-descr | 3 + java/openjdk8/pkg-message | 16 + 18 files changed, 8780 insertions(+) create mode 100644 java/openjdk8/Makefile create mode 100644 java/openjdk8/distinfo create mode 100644 java/openjdk8/files/bsd.fontconfig.properties.in create mode 100644 java/openjdk8/files/cacerts create mode 100644 java/openjdk8/files/patch-bsd create mode 100644 java/openjdk8/files/patch-bsd-test create mode 100644 java/openjdk8/files/patch-configure create mode 100644 java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp create mode 100644 java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk create mode 100644 java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk create mode 100644 java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk create mode 100644 java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java create mode 100644 java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h create mode 100644 java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java create mode 100644 java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java create mode 100644 java/openjdk8/pkg-descr create mode 100644 java/openjdk8/pkg-message diff --git a/java/Makefile b/java/Makefile index 37d753d5749b..db1215f75f81 100644 --- a/java/Makefile +++ b/java/Makefile @@ -128,6 +128,7 @@ SUBDIR += openjdk6 SUBDIR += openjdk6-jre SUBDIR += openjdk7 + SUBDIR += openjdk8 SUBDIR += phpeclipse SUBDIR += poseidon SUBDIR += proguard diff --git a/java/openjdk8/Makefile b/java/openjdk8/Makefile new file mode 100644 index 000000000000..b6b0c787e8d4 --- /dev/null +++ b/java/openjdk8/Makefile @@ -0,0 +1,211 @@ +# $FreeBSD$ + +PORTNAME= openjdk +PORTVERSION= ${JDK_MAJOR_VERSION}.${PORT_MINOR_VERSION}.${PORT_BUILD_NUMBER:S/^0//} +CATEGORIES= java devel +MASTER_SITES= http://download.java.net/openjdk/jdk8/promoted/b${JDK_BUILD_NUMBER}/:jdk \ + https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \ + LOCAL/jkim:jdk LOCAL/jkim:jtreg +DISTNAME= ${PORTNAME}-${JDK_MAJOR_VERSION}-src-b${JDK_BUILD_NUMBER}-${JDK_BUILD_DATE} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:jdk + +MAINTAINER= java@FreeBSD.org +COMMENT= Java Development Kit 8 + +LICENSE= GPLv2 + +BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip \ + ${LOCALBASE}/include/cups/cups.h:${PORTSDIR}/print/cups-client \ + bash:${PORTSDIR}/shells/bash +LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib \ + libfreetype.so:${PORTSDIR}/print/freetype2 \ + libgif.so:${PORTSDIR}/graphics/giflib +RUN_DEPENDS= javavm:${PORTSDIR}/java/javavmwrapper \ + ${LOCALBASE}/lib/X11/fonts/dejavu:${PORTSDIR}/x11-fonts/dejavu + +USES= compiler:features dos2unix gmake iconv pkgconfig shebangfix zip +USE_AUTOTOOLS= autoconf +USE_XORG= x11 xext xi xrender xt xtst + +LATEST_LINK= openjdk8 +ONLY_FOR_ARCHS= i386 amd64 +WRKSRC= ${WRKDIR}/${PORTNAME} + +DOS2UNIX_FILES= jdk/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties +SHEBANG_FILES= configure + +_MAKE_JOBS= # +CPPFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib +MAKE_ENV= LANG="C" LC_ALL="C" +MAKE_ENV+= CLASSPATH="" JAVA_HOME="" LD_LIBRARY_PATH="" MAKEFLAGS="" +MAKE_ENV+= IGNORE_OLD_CONFIG=true + +JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-normal-server-${JDK_BUILD_TYPE} +JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/j2sdk-image +JDK_OSARCH= bsd-${ARCH:S/i386/x86/:S/amd64/x86_64/} +INSTALLDIR= ${PREFIX}/${PORTNAME}${JDK_MAJOR_VERSION} + +NOPRECIOUSMAKEVARS= yes + +JDK_MAJOR_VERSION= 8 +JDK_BUILD_NUMBER= 132 +JDK_BUILD_DATE= 03_mar_2014 +JTREG_VERSION= 4.1 +JTREG_BUILD_NUMBER= b08 +JTREG_JENKINS_BUILD= 77 +PORT_MINOR_VERSION= 0 +PORT_BUILD_NUMBER= ${JDK_BUILD_NUMBER} + +CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} +CONFIGURE_ARGS+= --with-build-number="b${PORT_BUILD_NUMBER}" +.if ${PORT_MINOR_VERSION} > 0 +CONFIGURE_ARGS+= --with-update-version=${PORT_MINOR_VERSION} +.endif +CONFIGURE_ARGS+= --disable-freetype-bundling \ + --disable-zip-debug-info \ + --with-alsa=${LOCALBASE} \ + --with-cacerts-file=${FILESDIR}/cacerts \ + --with-cups=${LOCALBASE} \ + --with-debug-level=${JDK_BUILD_TYPE} \ + --with-freetype=${LOCALBASE} \ + --with-freetype-include=${LOCALBASE}/include/freetype2 \ + --with-giflib=system \ + --with-jobs=${MAKE_JOBS_NUMBER} \ + --with-milestone=fcs \ + --with-zlib=system +CONFIGURE_SCRIPT= ../../configure +CONFIGURE_WRKSRC= ${WRKSRC}/common/autoconf + +OPTIONS_DEFINE= POLICY TEST TZUPDATE +OPTIONS_DEFAULT= POLICY RELEASE TZUPDATE +OPTIONS_SINGLE= BUILD +OPTIONS_SINGLE_BUILD= DEBUG DEBUGFAST RELEASE +BUILD_DESC= Select OpenJDK build type +DEBUG_DESC= Build for debugging (without optimizations) +DEBUGFAST_DESC= Build for debugging (with optimizations) +POLICY_DESC= Install the Unlimited Strength Policy Files +RELEASE_DESC= Build for release (default) +TEST_DESC= Run regression tests +TZUPDATE_DESC= Update the time zone data + +POLICY_CONFIGURE_ENABLE=unlimited-crypto +RELEASE_CONFIGURE_ON= --disable-debug-symbols +TEST_ALL_TARGET= test +TEST_CONFIGURE_ON= --with-jtreg=${WRKDIR}/jtreg +TEST_DISTFILES= jtreg${JTREG_VERSION}-${JTREG_BUILD_NUMBER}.tar.gz:jtreg +TZUPDATE_RUN_DEPENDS= ${LOCALBASE}/share/java/zi:${PORTSDIR}/java/java-zoneinfo:${PORTSDIR}/converters/libiconv + +.include + +.if ${PORT_OPTIONS:MDEBUG} +JDK_BUILD_TYPE= slowdebug +.elif ${PORT_OPTIONS:MDEBUGFAST} +JDK_BUILD_TYPE= fastdebug +.elif ${PORT_OPTIONS:MRELEASE} +JDK_BUILD_TYPE= release +.endif + +.include + +BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk8 \ + ${LOCALBASE}/openjdk7 + +# do we have valid native jdk installed? +.for BJDK in ${BOOTSTRAP_JDKS} +. if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) +BOOTSTRAPJDKDIR= ${BJDK} +. endif +.endfor + +# if no valid jdk found, set dependency +.if !defined(BOOTSTRAPJDKDIR) +BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk7 +BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:${PORTSDIR}/java/openjdk7 +.endif + +.if ${COMPILER_TYPE} == clang +MAKE_ENV+= USE_CLANG=true +.if ${COMPILER_FEATURES:Mlibc++} +CONFIGURE_ENV= LIBCXX="-lc++" +.endif +.endif + +.if empty(ICONV_LIB) +ICONV_CPPFLAGS= -DLIBICONV_PLUG +.else +ICONV_CPPFLAGS= -I${LOCALBASE}/include +ICONV_LDFLAGS= -L${LOCALBASE}/lib ${ICONV_LIB} +.endif + +post-extract: + @${MKDIR} ${WRKSRC}/jdk/src/bsd/classes/java/net \ + ${WRKSRC}/jdk/src/bsd/classes/sun/nio/ch + @${MV} -f ${WRKSRC}/jdk/src/macosx/classes/java/net/DefaultInterface.java \ + ${WRKSRC}/jdk/src/bsd/classes/java/net + @${MV} -f ${WRKSRC}/jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java \ + ${WRKSRC}/jdk/src/bsd/classes/sun/nio/ch + @${MV} -f ${WRKSRC}/jdk/src/macosx/classes/sun/nio/ch/KQueue*.java \ + ${WRKSRC}/jdk/src/solaris/classes/sun/nio/ch + @${MV} -f ${WRKSRC}/jdk/src/macosx/native/sun/nio/ch/KQueue*.c \ + ${WRKSRC}/jdk/src/solaris/native/sun/nio/ch + @${RMDIR} ${WRKSRC}/jdk/src/macosx/classes/java/net \ + ${WRKSRC}/jdk/src/macosx/native/sun/nio/ch \ + ${WRKSRC}/jdk/src/macosx/native/sun/nio + +post-patch: + @${SED} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ + ${FILESDIR}/bsd.fontconfig.properties.in > \ + ${WRKSRC}/jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties + @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ + ${WRKSRC}/configure \ + ${WRKSRC}/hotspot/src/os/bsd/vm/os_bsd.cpp \ + ${WRKSRC}/jdk/make/lib/SoundLibraries.gmk \ + ${WRKSRC}/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java \ + ${WRKSRC}/jdk/src/solaris/bin/java_md_solinux.h \ + ${WRKSRC}/jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java + @${REINPLACE_CMD} -e 's|%%ICONV_CPPFLAGS%%|${ICONV_CPPFLAGS}|' \ + -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ + ${WRKSRC}/jdk/make/lib/CoreLibraries.gmk \ + ${WRKSRC}/jdk/make/lib/ServiceabilityLibraries.gmk + @${CHMOD} 755 ${WRKSRC}/configure + +post-build: + @${JDK_IMAGEDIR}/bin/jar cfe \ + ${JDK_IMAGEDIR}/jre/lib/compilefontconfig.jar \ + build.tools.compilefontconfig.CompileFontConfig \ + -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/compilefontconfig + @${JDK_IMAGEDIR}/bin/jar cfe \ + ${JDK_IMAGEDIR}/jre/lib/javazic.jar \ + build.tools.tzdb.TzdbZoneRulesCompiler \ + -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/tzdb +.if ${PORT_OPTIONS:MTZUPDATE} + @# Update time zones + @${RM} -rf ${JDK_IMAGEDIR}/jre/lib/zi + @${LN} -sf ${LOCALBASE}/share/java/zi ${JDK_IMAGEDIR}/jre/lib +.endif + +do-install: + @${MKDIR} ${STAGEDIR}${INSTALLDIR} + @cd ${JDK_IMAGEDIR} && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} \ + "-not ( -type d -name bin -prune )" + @cd ${JDK_IMAGEDIR} && \ + ${COPYTREE_BIN} "bin jre/bin" ${STAGEDIR}${INSTALLDIR} + @cd ${JDK_IMAGEDIR} && \ + ${INSTALL_PROGRAM} jre/lib/jspawnhelper \ + ${STAGEDIR}${INSTALLDIR}/jre/lib + @cd ${JDK_IMAGEDIR} && \ + ${INSTALL_PROGRAM} jre/lib/${ARCH}/jexec \ + ${STAGEDIR}${INSTALLDIR}/jre/lib/${ARCH} + @cd ${JDK_IMAGEDIR} && \ + ${INSTALL_PROGRAM} lib/${ARCH}/jexec \ + ${STAGEDIR}${INSTALLDIR}/lib/${ARCH} + @${ECHO} "@unexec ${LOCALBASE}/bin/unregistervm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} + @${FIND} -s ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ + ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} + @${FIND} ${STAGEDIR}${INSTALLDIR} -type d | ${SORT} -r | \ + ${SED} -e 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${TMPPLIST} + @${ECHO} "@exec ${LOCALBASE}/bin/registervm '${INSTALLDIR}/bin/java # OpenJDK${JDK_MAJOR_VERSION}'" >> ${TMPPLIST} + +.include diff --git a/java/openjdk8/distinfo b/java/openjdk8/distinfo new file mode 100644 index 000000000000..9f52b48205d1 --- /dev/null +++ b/java/openjdk8/distinfo @@ -0,0 +1,4 @@ +SHA256 (openjdk-8-src-b132-03_mar_2014.zip) = ba651f9aa68fdc823b2ef55510710a013ab9f78fff291d5dc1c4d166f3e1e589 +SIZE (openjdk-8-src-b132-03_mar_2014.zip) = 124099402 +SHA256 (jtreg4.1-b08.tar.gz) = a9fbfac903313c12687e60978c4688c20189cdf873560125917d6ad53d55b30c +SIZE (jtreg4.1-b08.tar.gz) = 6834252 diff --git a/java/openjdk8/files/bsd.fontconfig.properties.in b/java/openjdk8/files/bsd.fontconfig.properties.in new file mode 100644 index 000000000000..8d5d4f6b4fc4 --- /dev/null +++ b/java/openjdk8/files/bsd.fontconfig.properties.in @@ -0,0 +1,191 @@ +# +# +# Copyright (c) 2007, 2012, 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. +# + +# Version + +# Uses FreeBSD ports Tree fonts and file paths. +version=1 + +# Component Font Mappings + +dialog.plain.latin-1=DejaVu Sans +dialog.plain.japanese-x0208=Sazanami Gothic +dialog.plain.korean=NanumGothic +dialog.plain.chinese-big5=AR PL UMing +dialog.plain.chinese-gb18030=AR PL UMing + +dialog.bold.latin-1=DejaVu Sans Bold +dialog.bold.japanese-x0208=Sazanami Gothic +dialog.bold.korean=NanumGothic Bold +dialog.bold.chinese-big5=AR PL UMing +dialog.bold.chinese-gb18030=AR PL UMing + +dialog.italic.latin-1=DejaVu Sans Oblique +dialog.italic.japanese-x0208=Sazanami Gothic +dialog.italic.korean=NanumGothic +dialog.italic.chinese-big5=AR PL UMing +dialog.italic.chinese-gb18030=AR PL UMing + +dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique +dialog.bolditalic.japanese-x0208=Sazanami Gothic +dialog.bolditalic.korean=NanumGothic Bold +dialog.bolditalic.chinese-big5=AR PL UMing +dialog.bolditalic.chinese-gb18030=AR PL UMing + + +sansserif.plain.latin-1=DejaVu Sans +sansserif.plain.japanese-x0208=Sazanami Gothic +sansserif.plain.korean=NanumGothic +sansserif.plain.chinese-big5=AR PL UMing +sansserif.plain.chinese-gb18030=AR PL UMing + +sansserif.bold.latin-1=DejaVu Sans Bold +sansserif.bold.japanese-x0208=Sazanami Gothic +sansserif.bold.korean=NanumGothic Bold +sansserif.bold.chinese-big5=AR PL UMing +sansserif.bold.chinese-gb18030=AR PL UMing + +sansserif.italic.latin-1=DejaVu Sans Oblique +sansserif.italic.japanese-x0208=Sazanami Gothic +sansserif.italic.korean=NanumGothic +sansserif.italic.chinese-big5=AR PL UMing +sansserif.italic.chinese-gb18030=AR PL UMing + +sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique +sansserif.bolditalic.japanese-x0208=Sazanami Gothic +sansserif.bolditalic.korean=NanumGothic Bold +sansserif.bolditalic.chinese-big5=AR PL UMing +sansserif.bolditalic.chinese-gb18030=AR PL UMing + + +serif.plain.latin-1=DejaVu Serif +serif.plain.japanese-x0208=Sazanami Mincho +serif.plain.korean=NanumMyeongjo +serif.plain.chinese-big5=AR PL UKai +serif.plain.chinese-gb18030=AR PL UKai + +serif.bold.latin-1=DejaVu Serif Bold +serif.bold.japanese-x0208=Sazanami Mincho +serif.bold.korean=NanumMyeongjo Bold +serif.bold.chinese-big5=AR PL UKai +serif.bold.chinese-gb18030=AR PL UKai + +serif.italic.latin-1=DejaVu Serif Italic +serif.italic.japanese-x0208=Sazanami Mincho +serif.italic.korean=NanumMyeongjo +serif.italic.chinese-big5=AR PL UKai +serif.italic.chinese-gb18030=AR PL UKai + +serif.bolditalic.latin-1=DejaVu Serif Bold Italic +serif.bolditalic.japanese-x0208=Sazanami Mincho +serif.bolditalic.korean=NanumMyeongjo Bold +serif.bolditalic.chinese-big5=AR PL UKai +serif.bolditalic.chinese-gb18030=AR PL UKai + + +monospaced.plain.latin-1=DejaVu Sans Mono +monospaced.plain.japanese-x0208=Sazanami Gothic +monospaced.plain.korean=NanumGothic +monospaced.plain.chinese-big5=AR PL UMing +monospaced.plain.chinese-gb18030=AR PL UMing + +monospaced.bold.latin-1=DejaVu Sans Mono Bold +monospaced.bold.japanese-x0208=Sazanami Gothic +monospaced.bold.korean=NanumGothic Bold +monospaced.bold.chinese-big5=AR PL UMing +monospaced.bold.chinese-gb18030=AR PL UMing + +monospaced.italic.latin-1=DejaVu Sans Mono Oblique +monospaced.italic.japanese-x0208=Sazanami Gothic +monospaced.italic.korean=NanumGothic +monospaced.italic.chinese-big5=AR PL UMing +monospaced.italic.chinese-gb18030=AR PL UMing + +monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +monospaced.bolditalic.japanese-x0208=Sazanami Gothic +monospaced.bolditalic.korean=NanumGothic Bold +monospaced.bolditalic.chinese-big5=AR PL UMing +monospaced.bolditalic.chinese-gb18030=AR PL UMing + + +dialoginput.plain.latin-1=DejaVu Sans Mono +dialoginput.plain.japanese-x0208=Sazanami Gothic +dialoginput.plain.korean=NanumGothic +dialoginput.plain.chinese-big5=AR PL UMing +dialoginput.plain.chinese-gb18030=AR PL UMing + +dialoginput.bold.latin-1=DejaVu Sans Mono Bold +dialoginput.bold.japanese-x0208=Sazanami Gothic +dialoginput.bold.korean=NanumGothic Bold +dialoginput.bold.chinese-big5=AR PL UMing +dialoginput.bold.chinese-gb18030=AR PL UMing + +dialoginput.italic.latin-1=DejaVu Sans Mono Oblique +dialoginput.italic.japanese-x0208=Sazanami Gothic +dialoginput.italic.korean=NanumGothic +dialoginput.italic.chinese-big5=AR PL UMing +dialoginput.italic.chinese-gb18030=AR PL UMing + +dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +dialoginput.bolditalic.japanese-x0208=Sazanami Gothic +dialoginput.bolditalic.korean=NanumGothic Bold +dialoginput.bolditalic.chinese-big5=AR PL UMing +dialoginput.bolditalic.chinese-gb18030=AR PL UMing + +# Search Sequences + +sequence.allfonts=latin-1 +sequence.allfonts.Big5=chinese-big5,latin-1 +sequence.allfonts.x-euc-jp-bsd=japanese-x0208,latin-1 +sequence.allfonts.EUC-KR=korean,latin-1 +sequence.allfonts.GB18030=chinese-gb18030,latin-1 +sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean + +# Font File Names + +filename.DejaVu_Sans=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans.ttf +filename.DejaVu_Sans_Bold=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans-Bold.ttf +filename.DejaVu_Sans_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans-Oblique.ttf +filename.DejaVu_Sans_Bold_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans-BoldOblique.ttf + +filename.DejaVu_Sans_Mono=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono.ttf +filename.DejaVu_Sans_Mono_Bold=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono-Bold.ttf +filename.DejaVu_Sans_Mono_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono-Oblique.ttf +filename.DejaVu_Sans_Mono_Bold_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf + +filename.DejaVu_Serif=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif.ttf +filename.DejaVu_Serif_Bold=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif-Bold.ttf +filename.DejaVu_Serif_Italic=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif-Italic.ttf +filename.DejaVu_Serif_Bold_Italic=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif-BoldItalic.ttf + +filename.Sazanami_Gothic=%%LOCALBASE%%/share/font-sazanami/sazanami-gothic.ttf +filename.Sazanami_Mincho=%%LOCALBASE%%/share/font-sazanami/sazanami-mincho.ttf +filename.AR_PL_ShanHeiSun_Uni=%%LOCALBASE%%/share/fonts/TrueType/uming.ttc +filename.AR_PL_ZenKai_Uni=%%LOCALBASE%%/share/fonts/TrueType/ukai.ttc +filename.NanumGothic=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumGothic.ttf +filename.NanumGothic_Bold=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumGothicBold.ttf +filename.NanumMyeongjo=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumMyeongjo.ttf +filename.NanumMyeongjo_Bold=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumMyeongjoBold.ttf diff --git a/java/openjdk8/files/cacerts b/java/openjdk8/files/cacerts new file mode 100644 index 0000000000000000000000000000000000000000..0a37aa432ddac767fd2242c59298a3c3fba7375f GIT binary patch literal 82586 zcmdpf1zc2Xw>Lv~cS|ERLw6%7(jwiRLwA>?gdox(5`xkp0@5KMB@HUwh=3sAHv6;34pkCh%h*>5C1!t4hGO%zfk}J3|ue(3kDbrK!ptk0AOmOs95e;qI!Mnr2G;f zy#3aH`uQ7s4&E~Eu9+z_B4kq_7tMX8owz0}3`x!2O!mUvJh{X`Mm)P=WrQR01W4NN{5kqJBd#Hq_UzhdGPv6YxJj9&rNQhCo01aJ{R*To!5CR5 z(RW3ax{0<~qrqH;U~hh{@s+7^1X2n&nHT+q^yIjAdCzJ1VBr8TfP5~<~BarZ?zP-|_IY+`2*6br3D0lnQae7-k3uJT5C zCsEFNyONd?IM9>aQ+p^B9w7FFJ^M(MwI=bQ=mKlf{ck}rSXlRNklbz7OurN*EOQ4} zu$zl3*wN9|)Yy^}B1_ChkI`Fy$`ZUJFc@AGB2NrgvIMW79>a9~aiT%QDd^QTdD2t| z5d!g{;)9BZA#-(kR%&?%Q+5y&kOBHW8XlFpxjD6mhX?!j>De93T{-N`EsgEiT+PAu zE+7FQ-_?;oCR1i=P9RW#`VW_)W}~)n1XCNkxmr1bt-a07sNG!5sU02cyg-nHp{K&( zF@HaUS`D%|YAJKDtF?u-sj;iIqXV_X)rqcNkPFFjUJ5m2N+2JIkCTUo8zR(@UB(F= z@<50G{tNs&XlV?s1GekcVv94H` zDRU~Bcx=?IEjMw$B#AE1P+hI_uTg)&MYC)_?; z_5@46rd31R8+JGlUmWxdE;r>GJPp zm3{8ZIY!GIT_O#>sjCH)ItluuuOuuv5qRDKO}WHdoiKnbYWBjE|&HZ}uWn^7~lKrqJC4Ge~047IVD z8Q9##h1%Hl5_W#w3%jYKJ;(P?nL)TfZ0JQ0@K7Z9Ir+G`IQjWNWIz(=d#HH05>nJs zKNmr*&Mv_YVg@ooKZL`hmioRZYDWudDMx$AT20NbkcSP5U;LLC!w>lh0&#K*@BpD0 z!w=-+`Z4_XTTn3UpUo9msJQ|QF;`##FcmQUPJAqZItqezp2>ds0i;w%JmbwX{TR|< zQHII{wMJ7RCT+*UD*NOo2XkiVnny>gpJ-?T4c?n{)iS>ivisDs?8j-Nk;6%H?}94& zorqC*7@gxsoGK4d>W4fxY^#u`oY>8dLle~}FrO#fzyC2J7ICyW0rSJ7T(WS?>2%a4 zG-DM+wf(FB_pN@cVM>glM?ews4jF9ivWd~Pcgq`{03?qI)fKpa`*MZ1t=t;cUuG$j zI3IE^fI^YZz5%=kpZMtg?;GXbu6oC=+h(h5mMJbTawuEM!tCD81m!+>~lL_ zO`BD}!-p$hGIqD!v?puMQjdw3AY`BhIOZ9hj$ zVg6M`GW(QfI+24>rm0=MX>WOu9x=~iLeneZJA5<^{+mNt9ygwd@CSXBn+A!ne2h9A zu4(pPRO!Hts-jKD28GR(JMQvx5xe7DVQMhI4r0Js0dXO6a%Hk10}&zc3JX97{({mI zx-zWFnlE0hr$&)v9aFbqvxrE5K_8*#(834J0D~q2@&D?W+@R`$pcnskvJ-p_*M3(x zBG5%s!}CIX3{FIN$V(XDO&}8@G7BQabwPp!5RzNDx;hDRa5y>IS(|#X{}Ic6gGo53 zASU2e(D1y@7uaK;U$0sB^p$%h<|mVAus;2Q)8-3);ztS z!N8ruwi>oFx)E)p`Me?PP$RB2Yz(|&+TpO}IG-n3B49i)*I|iYmnjwU=L35fjfj7!v5a3#$;@6J>7H*)+#E^@wLL^I?4p@IWh{+(cVlrPhjTxl(fKI z*meA6HwMc@!MA+$P~%H%ZMs$jVXz=qsSXYDad6`X`=V@mb&X6ug3#0~yNtNd#%#cv z(B|7MhDn|RV5eZ&-K;A2LTaBAN(BTHz!N4nqtrwU2hrPnQW%K@8N@ViR3GIqlL{N& z=j74_c1Ll@reWp7bsg=OEpYBl1(7agG#>@x@4aPh2s@n2f6-HTW0@Q;bqBL~fw_2> zTU~c_$p$YJv6d6IL#>=;l=^EQ9jfGT-5ts&qd$@tQ9|V zQ~OnMZ^S8@9g3b;(OMEx2=#2O+ z;XzyR2fo)8O!kzi)e}+u;6vEtlFGL=B|;>E5FN2yv_(EF8tJ9|G0A0s=r@PF^4o zByefpLp+RM!+-PD1!Z6VwxF~@P%Okiih>Oaf*BNa?prSHxtFN*zGPz6hGs6@AFFX&BFw%_<9_2~Y^#!L+Vyc@ zw?4j90@rU3>V8A+ODI6a(NQJ&k-P~%Kb7K_!XDA0;GiRx?zPUrH9_p)eqxxo+s#k4 z19H7!YMRz#Dqg7Gkxxe(;8RfI#(I@e`E)@)T?yXZ&zwjrEnu=xdxq6 z6uWZ3E_XIPO$k=_V6Y*p5R9o%Cnmf?X!YgQwyV-h-Ek8tskuv;z_T=WymWt^z}EK0 zU@wRV%mwj)>Ag9)ync!WJS@cfy?}_t%9TlqO;F~LOj7BkC~?GC+)j)|b$xZ0-f-GA z%k&T4u&lYG2GrZW@`nH9nby7_V+A1Nj zMkOYR0K_tzxVGUV1PZ?u$?%Vba+q)_@N07a;&EzgUUf zWa2h@y|cZG5ZDM`42&UmWIY9O4AHG1;}yD@zC}znq)Jh(+1NvgFeJIh=xF`&Vt!k7 z=l!vkQKY5YO_cdC$jC%DgY`iAx9+oHg+F$klKDC&{=&P&iY>hI5zYHHmhOx%2Zm3B zaW_eD*e=n6!p+qI!ZJa9SQm&EwTAeWQ2xo>-q_miiiJL84UGPU8&4q2SsnyC?tjM( z=~w8{Dll}_IHSDu^p?F**B|tsJX#2De5a_9@nAJIeyCL>JWO?CJ6CEYV_S1-DQj0R z5G9cOO5YM_Sea96s>`TpsA;NeQ2)@!-}NWjAM_`58JEBZRiL0>Xrig1%m%&0E$9;2 zq%PNZ$(2FY`hz+%b}*xsfv)+xR^@|G-h7<=mmV#Yw}TG3czO6CXmZ^}|94o>-(gIp zKv=;izfuVylUsb{Z`zF9UJ96>D3HqLH4MlN*rbi$<{@b)kX#;=|8Sp!(su-e)U8|{ zVwTCyJf3IP5!M{0%Hvg_Y?a_c?p=`hl;~3$!Kb8w-U7~)CiFYN=CmBN=w%18yj!Q9 zFY_Er?->+w4E0UhmvC&Brbw2u6+a_db_;l?YpL3crK%*PvN(~Ptuta>iXs2i7m1vXj-0fv8zu2H%e>z$|B0Ngdj*}A zF%uISg7c^ajc^`S<~`?>qpl_;#C=vtl(}L4hqC7VUvA%JavkCR2CUsVG6CYpux?&q zOi%+bsP;O&-t}ib{ujhV1zY-cWHLCxC|0Y;`Ob@!!#nr^wIN%Uf(l+0cn5epM=?h} zT=u(hX9~7s|HJ0w_^T}mwGMynNXUk~+>h*#ldoJ#dUz-U{oP}NgZ=pm{x^}k#I_gq z#`;f41AI#rmVjsKj`Vb0ecK;EdMubbJI0!h@S;Nk^POb!$xEBmO4Tb_D(v8?*u#?i zDurn+a--D1+2Fiq3eERfzM-L1cfF&Amsxrf2xx3%aTqLlmw2&MvH6*Sg79X59WaHD zgA2DTV6OWuPK;_=<#7Ik;b%wLSs_W36q5C~Dr_zG9tUiEgo9m%Rc$L7=g9<%!$mcM zC_1sN)Up=x!aDVkpLnjQ-+8fCH;SK?^rYSFW0}A6o0r+^aAX5t*ULa{6}|+nu#eg+ zWuLs}G=A6ZC`YHtm^&V!`N=0fO@uIO$F26uaNMVZu5u>bqP+uNqO*2{(LOi@jZ17J zFoB?owY?+Q+|&y~&0S&x6w_d~8}D^){KPak9|)d#Kx`qy@6iBAP_E&(hYHmBfn1Q_ zn!L;pP7M_gMe@fSAiT?f4a65fm4Z%pX%vBIfYet;4av^~segTZ$)#NyFhC#=h!e!m z4Ke1S(KjCG5Ng0chW}UR{yTKYhi{@OO%u7h#sE&Q@fu_P@O~{N@Wu0wx^XPb>1GSL z`rFS@5bS4|*auDWOfIS;r*Sv=H*aLNO0WRbd?GzY$>X~l8zO6LP*z>maKww=4)mGC zvMtA>Jy98Xs?yH1aac+paXfvkM4Qvh%n*v*{fGpQwjLYx zM7vz=S!gP#5y{CY`FNHt$}=h{w_Y8JKJ+spg5(GDuCnlq zInn^9Z-jcGtzKdE2%yIIuT4AfdsPPHFj~9cyiCc1Re#U)toG%mnQP|)xGpnX2 z%a^^UAWIn;U(x>D$=;UKwApNhs%~)aQ#N}OS=}d`j z^OPo3hys(nhq*+G%&`v7;<8MJWTjaF`b`uyoFlR${OrRQL9?7Tlr=lT<7cZu6eR6* zk{hN1#g~Fg^o#EKL8Dt+I(%o+jZEu*iYn4=2$L=kVbVcAnDpK^qwC{-w1dCPYf#xW zf&E`&(iwsDSJF=@Yv%|-qo0I2WO@IHN9O`@U+2*;hroZc<@_Cs-nyVQx+M76U8Wju z=384WNi?4Xaf+JkCQ&AHWE_tjA}717$$>n4i=Q;_3+I7m9Tb=GsW9np5AM=081Tk9 zz14G;qL`ZA)f@Rr)+|`l|15t%x(K8E27y?Ew{D`_WC1RJ6v_R%z>yD}j#?QHCL*!X zs$9(yU5yTohKTPNRniW33k@18K8k;hJ}h3DHjD98Illq5+$iUnjGAeqMYGl7$t%*Q zK~0nro^GRU7ciR7BQ(|+6L=_;xSpk+rLw1mwy^f*x4ccm!QVFh(w7#gP4sA61}@cK zIGi#v=GCVMq4DP2lQ2qtbs!=gW^YttI$%CujdwA?k742jGw$C0IT=?Cvk;MxMD2~a zu~w17>})D2mENY8cHXIJJ8xpBzGkSFM>{n$W;?gqmiZ-Eti970#CSgbI(ED#GqcTp zc(_G%>EoAne%|tlBDa-_P$~VSM06XZc_E54nu)SDo|*g{`fuPGcZzxYbyf>jwa{Ui z#6j}qWiEr#3TRO~^zT}3iiQ+zfN;$@Ro5T4imgy*@7;nV5?Lm`VD|fs^jH1$vHSRZ+ z9>4lMs2>4S+%Kp~e=3MV|r&O$6fq)iJq2l?6c+|7MZ{;n05~ z+V39jzn()6j0|v^Ph^@xNWS$g;coFh#{wya?Wr#&xjda08DSg4bbe{|v81hn zoQW!LmeyP>Xruhm=p=9m591C&Z|KV+IkqoAT93(FieC0dG24OxMmV0I*B_UUYqYus zzD1MFZo5>zcrG5+E-o$*jpSl&=WY(RyrR)5)L%b6{Hb^m+8|1|8Db|FUMXJWJ7i-V z8ciIEzw2GuYid_Y4nzRNgDOB&Jal#FEb36bCn0-{|Niy1`sM79Y_wn5E0A_-HQdV-Gmd%v_ll6u*F{E}}~*|||MzR-n2&mpZG?ru3h zpA-j?2vyIZ6?U6vISCvK_9?4Z$kAGZRfFaycrEjdja;c(t3x zqQiD?SH7MaY*SQc-VD@^mAwD9w|`qS~kfoh1BwG$_Z9rS;i9~t-<&0+JGX) zT5C^|oqa6L>T4e;Ncxzw18vX`6LwNoKD`Ovn#xt!I;vD$mI+(2_e_Fk&j_~XE$#rB zQH6(~-Tcgh>e;I~B=KB!9hm*-mGM)=&;}-NL;fkUV*ckL0WNLrLUK2Qv2HxBA9%{s z9!eHcCHkr$#Tp*@n)%*DoNvW2kR;|mDq<*WiV!P~vWX6GfQY}jXw3FUo<_k--vUnN7f8is*KB}@u z_0_UmkD^s@ACC#egC}Aw(3TFjv4m03;U>$PQ%v;qXI(rPSYv1+cl3ql>kx zBiM`mrx0I8kA9QN%Ydm%SI{Ek2piU73h+a^M1Tsbp`nR!akz~&F}kb#gnsCTgc`A< z_A?bNYMZWRCTr~nvk!21iUlcNk`@|eO;QEOJg}bfZ}J4UA!6Mej1O}%F3Wj?RxiM; z70Rg`-Xzj-bLt%xc;`Yjmqy}+Gps3T@N<(=gS)s?3;lC$Ij#C$2{B}gDl7A#i!>i6 z!@`8gXJ24z9Y>Ak#1&~eMV<+IXOoi3KJemd44&n*hI{BhrMTyO@zD~T^P)vBdg=5L zO?PMmSuAa;*f#y*ka^RgG5qcvWu=Y;jZSX1KI@upuYEB(x@U<|msUJL2i@wWHHlXT zm47NiOXoVBs=?T}qWbm}tqw1od43z*GYR0qEwZqL3iF!r7fXb?o^BMW-uCy3Z^rw~ zw?{-_KazLx>=9{J<#D|^zVB~McC$&SnZ7<vP@8Tl zZK4ob2r{VNF6H$tF3?}v}oBu*}MXmIEGZ@UU8 z^G{(t)urbQiFFeG!g^WALRl@tLE4HP@JNtBErbk$OpYFVRvW!}S zS-60pR;Srbqt9uRnrezS(>vqE>k}rZ(5V)6LbsafQ5^hDlf2N`n&mAl-KQ#sG23Z) z&E+=KZhIhK!p)^Dd@ch*BF#?Snttx6#QjW$_*|s1u1Zgp8FX|sU$hvBcMa=vF_Fjl zw<|dZCW)rs)D2o>j-4BPYfcqqc3br?GSRM}=Ps1!7I}%G(gz2Jg{(uB;^Jx2QUS)d z#w=Wh!}N?}V3OQJLNlSpwiLK^S`0S;&+l!qOC3@Zqo5V{0Ol-CFL*vOr~QMKgJ0~f z@SOQ){W8^Ey1?=htyIU8XMWShVrd@2g%4`UV;H8*^HA*DK4^Sw=u=V(jQ8*{N~c_? z{Uk?;*{G~xpSJiuk2KFiWvIh6aZ8pYb92RZu9p#;=`M&djg@UDRvHI?JOOxMqc#KQ5hE&3`PWoWc(x*7phn(JG=DzGzD`qtkdJC zcPpO@XGhrKvY0y&sDVi7h8#h(DpWCd;%VDmB}~aRpW@GnE~=^w?UMnuFcY5#hfRj` z)0n+vtEV5=$g4-(c$Qc|m(vzrqkv~4JH(Erm7>u@VEp&y?(*Ees))~+px?zFjXo(p%k?{+{H-2nr*(&^Bv-}O_rjl zhafc`4Pdy%D$CT!mghE_ePgajYtmu>ZI$LTFun4vlM%w*=Vonyto6Pen>5U!Nuy63 z^7TuS@A-KMKleD?IS$fVYs`N|TTy=Q2)76;1av4a3EOV`bnNn zxA*z*-L_Lv@As*_mpD&&J*;PC3^wyHhOpq5RV9aP0YX2)9^MlY&vS)z5k&WAH@o`{J$z?)V|KE1VED@;z|J4-(+ygaq#XpS|jlQoEVFoz>VD-Cr_32oBYGJf z(H=FbpA%PEQgRe$9f{a^8g=6UIn$aQh3hdh#x1Ov0eSA{)~d}Xh;OW(Stz{}Ei-OL zjl}F(5ZUpCSIR^+uzfJG)4k0UTY5Vp%4OK0V3?9H8vnh!G+cmb+0q;NjLyW*rJT8P zy5EucKNX?N1sgJuF{MeR=p*rshds#gR zWucE8@R9EHS7!2;#4fzv-`A83I$priyG9_cTOROS2pe`%Fo1?7J7 z576Pia;m?xO#2q{U_VTMIYT0RF>h2d|4`42s++@q$nsQLa>Cs-rF^pjOnqNQHr&KB ze1ckl;d6QZIqhm;Mh(pkk~+R5npTyJV4tyZcxk=<>etzcujnRyENMPi8!jVwjzvs4 zJ8{vgS4RjjCou7*Yf1yH3PMr?Feo$JzY$~_rNYGC4};qZe6_*qfUTN1;6I+vH8~+a zuYI%Ph;UQUCxJ7yp)pf?|I1x@c*;C|M5j6DnUlHbbh4Nsk^I|({k}&{89ApYgR~}< z>ljoYz)bPkWmeRFjzUkvKqvud-D~FSA3ZTqEP>J7!C&Ryt54P$FrJrX407)oLj@jPrtCIjc|z5aS|SnMS&?QdHEc~XWtWw zPpR81V@hqS=o-^JBZ%2Hq(c~AnD)s%suB-Z2+hNztZ7-8Ss@YJXH3dsp!6Zc)#H>$ z&O7XOY`S{Kf@fdq134BM7Qit%Y2G$*BWiQVspHGoyGcT0V^0Pt_j6thmY%aPrQacY z*AAX3=xEVbI-K))XuV?eu+7p;{l%PQS`)>ee)huH1bpI847+PuJ^Zy| zS;#cTGXB44nW|I_AVmH-@4=7UAd>R;iz=A&wivZfFd@f@n!ipA$WG#2o* zRa}0O^F@6@6+6jfHIU=O+r^i0yth2Kw(7serL#ue2H{{aWWhJp!N;O~YBvG>D$Jc<`BO_CI9bIOzW2H0I7q+MsmV=@7h+2D=ns+4ep z^TTO<(33?_ZSsn=ylW@n@-Y>hF;izxKW>hs;)!h}a%?px@qt@*M*z$ngp`bYBG~pS z^~WXD0?aHHrQ1LcOAtty>%l3w(GA%v6Rk=H=FFKNw z*-1Lb5rP0i7kWHNfRus5XI%o08DsqwOAayQX)d-QKRChwbQ*dA&C2sOOF2 z(FdT@!priMJT_9!u@LEJK+O=({j8tX;#^t?V|8;o#2YIQzh;c4D)6~5x{j(fn>KO$ z_M@!*@((F1N3u^R(6OFtYtOV>@MS%IpuxpAl1y$R*W3H4aJmqk_LvqkgHzMMIU^K7 zHJ$BzMfoPT&U~LZpC!7+4NZ?}RP=$=^1#_-UWL!1gS>c@>PuzHf(TnP<=_nd=wSh& zC{$683pZE*Tz)V>8uC2E|1uOQd}TF4QvHFT9F82eaF%OU<8M2L$0-) zWAfpP+v_vA%({1@Z@VM9zki!||4)oE4utg$mji@byY=co+<)T0%S<)ut4uXSG)N5&JRm579Tg4$6a@ooWwQ{w$yS~qUl%%6eq`oE%Z>90g{+e(=`WEiRF5bxvL->s8-ojW$yN3}E zUP&YXz)7o=euhU;UHV1hC?aL@GBUI5u|TUzl*X^^90QGL3t}EVxBLWg>Ea&73nQR9 zjwCZt*rT_yN79T>4pHEB@5#M;hfp-sEt@4I%-s`sXAHmT3`6Dkv}#Mzuz1eC=d;_8 zPaBxw1%O+``F^8Mf~@caeBEQ`5-lTqyd%)vap3>f%&(rL>xRYNcBxx?|!u6}X1#=3Tc_ zZJvH3VXuA!+#}=?3BWzu>MM0(T`4 zLpSlt(8Xl8fdRn4QoU2V!HT0N^xNYFx?jUSX&DeXkQ8dyqT=CcNKs#=pGjR#NG)q` zBKHH!(C|op`}DF61f*a^N&-X=q`k6?$^YRo)bjF|kjD$H`2=xu@n1q7CnQ~s3zD&R zm2v;SbzgtyNS6jiJdWFI_lf8fKKo!g+~H0=Pp6Weo+RTlr+UOGK$YF*ntDt z=I3YqLB;!vLKXSpZ=*IkWV}@L%hzwXCf<&|7aX7bab015RsK2t$3v6;ad0zL!$@|{ zo2RFMo+*rl=`-2PsveC6d4>HO#TUfNJ91+rO}lG}JY ztg|X4N=QQwuMEjx05=5dfPc*hg(DoHD z1}y`FJ^+Ija)M@af~LZGuIbZjyPn<5oCA`}%Hht*;c9AlDFcR_hNi}b^72re3=hh- zGc$%(076TlemhS}SwusMo)dU&PeVqR`xf$(6Z%>L@}Ims>z%(k5W4+Y?`Vo#_Je@r zfx56tONm^Y0y;D^7lYQ3T{TlMS2K5aylSeTWbNWAW@7AOF7})7T{`hG?-u-b$O5se zLJnteHf$B2CK68_BMBU`zCv{Kwo)e`-%!{#IHRq^%Na%ac67vUE8*<*=7art`90e( zih5<5^lb|P2gT$S%`-HzXpc5^Jd3C)rithS83oh2b00Kg{d)UX?X$XGBirH2dADB~ zxcb^`6Y^69Xb0(#ZgNJlRUQa<1XdW-8oM#i(B6*hQ(@{48yUsUyXP>PqygidcPk|v zA)}ZiZ5aechxuSRCB8_<<>ScOpjT?1$y(;V!Sm=awE>H6tK0nslX>~wHKa&41+APB z1i^xp*u+TIgHP|+gCY5^u~ zBlItU)5QcSoW{a6FPK8_-=ED!MGqnJj!!7Nzv`u~2MWD;gq6n0>pn0)C;T*T*XHYu zPin>s+0^f-KD?N^AT}Gp)ipfPCgyo5`zDw7#5Q2;IlpKdS$hoE)FcP-1rt_PQOHEQ zgLJDg&qKnCdl}L0_V4!d6fq!4;^65lqv5y&o-R+#2N=l_r4SB(%YC?sY)I^J=L)?{fyTcXP2qn=vR}w0vzb@%Ik7(&#HJcuRCFWr zz`h6T4^Hr39`F~5x_Ou{7d~w7eFVFBnwh;xjd1 zq#EhrDrql`iiF6^Xs7a6lRlN*(CYFk#htVa3S9_55l&vIXJDmn7O7&2IyU@9^C2~q zYTbM{VsW9(Qoc%mvl8XzCd0PpD?c%ogE|Htd&4L|t-NkF0O4_|2z}c?ZNTe&$MCLG zGpo%Yw&YF8y3-iSIg|ZYDwcJ2%?JBbw&=V_gaLfM#k%(1`?$A^Lf$dLzfv4bebsJx z(+X!Ha21`)q6H5F-{ByD$`qUOG?t9s-Y&kd&KU4wB%dJ{+d1>uhxU{9N2+x!NXUci zD=L*mr>HU=);%>P_> zYk5ts)n!2Vmu5G_Zb6eUGrPoiY6(dY1&|DCi=g4*|9n?NL*-`)&@U42=f|o)ZVF1` zLHpzU$gGDL?m%wt%VHi#ks!~{A@G0fM*dE=mnhROW>It^3bJKi;TTqga?h9udwJHa z18cU>$!~TLep}pf-n@T^iZ{i6P6&R6Yyk{m}TdVf)Cg#av? z$=zqjIO)uf-j_(rq~jWhX4%bWaqKBN`Qq_Edr3gQKQUOE*9w~8$X@)0fA1_b zX)3~3Nds>)`z;&J7h*xddHSj2QSt2pMBEOc_Yc~%c=qsT&3REAN(+#>dEUN;0<)+xibLa~UNaL_;FrQq%lI@@|V9?uZiS`01(I(M)y<>rm+E}S# z1jteYX+_s-bP)e6`9Tk$MhPS_Gzu6L9*F-}SID(3u>K$W=7ayV`!5X#l2W&gFVW`4 zDR_<6@VnuCcsboAcg)Ddh>xDKv1-O6)B!gnZ75plRoRMK(5tq0kpt|6Z;@^gOD(t$ zoLGcsuv#6i6MX?y5qC_;`Ozv_wfQ#z@Etp+9Oj$gC2hVO>G>^BpGItA@Tgf1XQjF$ zB#EVT16Hgx`2(1$sb;fzvp#gIWLeV z*6+;D%Qyo$1IXA>PFmD*cU}jIBI>bginoy+I>|hr)jvG~>v)Wqz8TVvf{`>8^AZ@A zeje-~L9#Zt*cPetmeM(iiVowm+9O~9n=OT#d}Z@CN)h=;eQzo+Y+ckCogrfDfOK+lEUby+ zrp_ErEK|B(Xacr3MzgC0hYf$uhj9(*O$wxJq(;Y`^>bx3=0nlY9Ke1?=@)YUsDicJ zNoRA6d{v*Fmm@Sr7!A6a3yo*0x@Z+?mFw*5@M|U!^DI5@l-rcdDCdSEv>O%f^jRTM zkY_4%jdMI0@O1{0ceYw?a-R1l>LpKywLWf9_hUi%9FzHgD%D1@Rh4H!nif<~#c;*$vLA!DNDQoZ_J6=AzGD8)E{od!G zL{gjDgIk+-m9`$;0a`L_zLU(b> zp1JVFad_$_SjkQq8LgZliO^6JbsQ6}cT9p$dR%-L2ssFfMbB**YjZbs8q=u8Ki)P& z&BW_5Zafqqk7%rK_Mr(lx+oL(S}wzO6p1JEa*yudtGYoPy37l+X-fU5Vf}&&zDc5| z4faIZlsYSDP;zuajMaVAG~?b}{FC>XIqVY0>?yKCFVDFSj?j$#{U5Ld$-ZU;?i69` z^Tq24uq?sv`NV3)SbZm1{){I-dLM*_{6Z9V2%_ACAPVkxH^c~#T6e2xqq;hMLXqP* z;p_DWeA)Zpx02sqe#mtkxYh{pKaD8-|16^Xa%lb)$`-fQ`7>tA9EsrY1yc^OJ#RF}YK?B!xi3w3?Z`BSzX z3tfcVsJk}Osv9gw_u;(TH^op{)d+J~q#EcG#GHz`=aJO4^wv$rgl^TDiD& zB_dmFSE>X{ zK^OC2aGj#Zod!*lQqD3>97Io+;8TlZ1FnG62BB`;O96Om#3A}V9f9*Bv&Rj9r z$!Z2~5XtKR8WSfq;pP?N0hE`S=3HXS_4d411rn%|HTh{jLFG^Fc`2?xN@yp9|5|%q zC@p(wCS3O81@dtUTvi8Owdegl{O?@)?<6aMNP#D_Zx7>PxAZ9?-MkfI!d z7_cfY-qQ)F)X=e@5IH+p7e>trs(0E0L@&{5`1X{4NuY#z2p-cIGNygG@ih}R;PH z`3n+3XE5S~5KM4akz(rcY90e{E6H+Uf^CGm;+Vg1u#~W&l*5;&zib$*T8ZT>aMw2G zfg!K^@k|vN$;RhOoO5Gm=@zCcL5h|tskQ8uSrD@G^UT-@ZduNRE_1r$90gx^mv{k3 zq8M;Zvtp0;7oU)JCglv24NI{~OL($&{OK>N@^lY|DQr%S1$J#$Z@3{MP2yJHpmvgU z4w@ED=Y91=7sJLbo$7(l$;qx{qq1_=0D5fl?37G~!Iq?oY58aUju*JIeL_#!Gx2p0 z-0HU8nSN;Gsf9;=ur{5Uab!_LT!#8YgMpiCgsg2WfK)IJt%TEI=IjoA_7rFLLmj8G z1*I#q|3`x&HwSA-y^)LYRihC|gQE6pS?G`kdk9t#C9U$0NQCRz=MXdhS9{){-GeUM z^L}q70*6QN^L@=9^Zt-6Zb)d48^{AS!Xe>XPJwH~KV+Z(H>UZ!9G@oynmPGhi&Qb0 zH&ouWy<*X=Dagv50&6$JkSVno_u^B?1ebPE1Wt%-VrK|e*wcM^=?ut1JoGiBY{S&- z3rW8REGOv)%B5`6@Wp;sNC#VpK1*p`B!pSSreXnMzDw2^mE_9drl6E@pS#mX%(oRr z;7x*jHr}1F_ot84z&A2#xM$Nlnw=-Q5 zmS|CN{rx$ z*Bou>f_}T!8he(B^j0%~VmP(teVR}!pV@>+@($YjL#A>xtrq8KT4ss3@J>ZFpGoIZ zs`~^_ghF)QX#-Tdlq9ACCM7Jvc}xpNA;noeK4zt$kI@n)E)hB~ncf2~r~oodqe!!7h?0Yy_}b~R(q$)f`jnqq zM}esx*v2rlMP;&E6IP;6loNi(- zd5&Hm$)M`0XAd{pIvMXh@dq;VFAw;mcM<-ZUb?Ie0(q`<*DTa0i}yNrJmuNCMe#c9 zfJr<2IoerVr9iy2W~o`Io^|nXI=}GgG8NCV^v6K2WUGRvj%<uMWU?inq^Iwkz^(1!_lq5b%n!F|e5_kT<+~kCeGd*ulFQoDj6=0h-mB1g zz-VC+US{>++ti9WIaaiuwK*z74<&cIzN*i=;ta%G-nsFp1WoI{KKz%@_aF5gY}0?CZHa8MlatOyg>3%--zp82@?sj^ z5iiu_M*Cae!EA)ZdcdAC_tuB|Dez`x`?l(a2vz--fi04-aTjv{l&$wL_;=2}?xD{~ zHR`gwrwVj>L~u8Wa33qxrtY;BE&0Ihd%!YPN}&pti5*iJpUx>mm64AsSb~wOE%@h) z-3?bD5ez_q#BULRPEh-U3Le5`0?l(wbBqfNf%^a2hY!NIv}hoivhY%BN}$X10t#$+ zNTZt|EJ%aBKYR~=_{{{+?v_959OYK5PFO}NQ{Kr=(o$pJ;Yv%$9=pcz{^iH$(DU(r z{2m0-t45eden=89@Q_;~L(t-42bw~9AhrIs`=Cu2wFj9u&W`7624NeBYQo+&d|XT! zpa)^VJV|s2s7*A@Qb~E6?zn_AZyM&1w)6CxPS2=jrG@j|`PLhoA~%a@Fl0IiU z0eOUKHI|m6;xj@F+LcTmBIWoV#uKMEEf{k!PK#XhHk|g8Z2?oa~UI{4~X7W{3S{Z5Yq+{CxMOr&OvY&d^-YGC>08G5lQAI zTe$tUFkn!}wXar3;zukL84vxgxeFwz!~xR9+sXV#Um_$t6zGsz!_mXxM<4|i4`1Vw zAAxl8c5rcnbVhQpq&7AEPtX>>eu2pM3qiS3b1=k;0x`6JG^Fk#e)TM% z0ohAw=7shP|4Dd4JQ>K}pM>ZCAItoYKxDK)#i8e$mhH-re(eUjm78o{$?NG*`m?8> zWmTucYN%b4!zr=cde@PS4-xHw4g@5y>uRkgGq)dQeXv27=6`eX>Z2KoQ|HACTjp90 z`5vJ$#{a|JTYy#7Ze7DPNOw2VwdoL0xF#b2X$eW`l9uk4?go*NZWK@n1(Ez0 zpn^U=$8)~#JLkOriX0pSUYL*S1Gyq4->* zO?9z(W%6N3%}j;cJST5!r6D=`_!Fc{BLZOfub##)5eopO#ycj0R-Mx=FPdPRMOTI^ zg^BM*vvI6zwhGYf=OD?Boh>1v9Lqw47Ddz+vIm7cr?$z%>z4+4&qs00(DBDRwZ;cD z&jKBr-blQ8&;S<{NTf0#N-ST8p5S|k8>sc}D~Q7sT)Q^j)5j0qa_VzWn5G>giU-%#4Y=o23 zG5(f@o~Uir`TrZ8c*m^YM{i~U1VaK5Be7&t)4 zZ1vqpCzE@VIBYarhZG5eX*c?;FP080N&OyT{UMh8@veyF6q=MJ+;e8e<*#|X{&rPj z3aZ_K&<#FlHFmf2U_(9&$-KRjO!#fE&p(MXgYbd?6y?b^5c?=q*RbqP@KPR;w$ zRVB{?e)(=5r{EJ} zlDTvMZ5*r|b@WZ_E=zIeb8~3u5AV?bKo~SY-~mdL-jLr2JP^<~e#O-Fs9Z?qJ2wX& z169t!O8NY=N$;9inAjWWvwRyt0f~YBmZsm-$mvo`Bmc9fbtOSPV%Uw2k7`U33@Ej|lF0KCOt~CuXlgR^o86rVM{7 zeBx6NLR?<;ByAizUV9%l&?6m1w7w7d3u`0k9(!h1xYh6oj3?^?TkxIbsOvMWVmJpH zCz(@cDUxbQYiw&bW4_!5{6Rujj@EIb(|kkOU<(>;`mG7=wytOOA)FDP9v@7jVYDYX zIkps4LzsHG=8F0(L9f*+w?uJ;N!aL-zsE6vjSiBY59?HeUoBbI(lkTMNBruyDYAY5 zWw*P2svh@r&#u_4!ed}m9fJNY&th40G^5ayiLvr<;c9b?ow?cl_JhFNuN?Lw+akt- z0*1ri&sfX_wi?*P1S3J7BsD$6E{L4oICXI^+${cr-8VfzNxw>Rl<<5>uAf%{QDP0b zp{K$TMt%(q!_QU^5^4d8lb#e0;+_2qlBynM!)*u38KV|t9qoW}fmb=l8B;_huSzKt z=S3VXJ_x>PDI>2^Ae`qQnn`n_V_9L`TV0**UN~FzoIub^J!4Blsbj#x+K4S5Nv~|& zeHufIA4X)Jsl!$4Z^t$f8L-x?BF_@m>Y#_`bUJ5_j1sp+-Lr??blZiM@(416f`=#DJ&n ziTS$|(j+s*e@Zp|pD$|fzoPOY#utFcmU#~IFsH~ygBhCHXbnTur=4^EQ!^DJQl+@Q z#zBQ`k60EYF11pi^CQQN7HB(wLOh#qCCzB$_PO@HW?iD>q2(}6b zjWQH;$SIr4 znN1#5wdl4^=&ot$7OscX1HImmbmg%Z%=OA7Lp&`@NANjV43A`7^*YUCMfgUn+N5yc z55h-O((&Z77-I#eVDIP3PKAd=i7g6jN1dR8aqr!FcW1G}QW>AL-%2&)1Cwaj`1-Tk zZ%Y~GdB@40&iKA0w;DcJ>Ev053gBz2+f;J3@QlB?XAXXJ5L*)UaPwruYRAbKi9?^F zphhVT@|BDb-pql+1LcgbIg&01#mKd2sqWRLAJ~VhsC2pUpCBH*J7Ibq{unlbj%eIN z-One!gd6Vmy5?67*p(h#OO?kjWTU^-btkTcrh|8k8#cM{h*EFi&!A5g6kqnXsTMXd|B6oIEcvO_joha==2YvZNBlKXuBk#3XiV#YI~ z{vax~8{ET#6G)!e70y|_Pws{UWsQl&?lPd()+>@XgUgx-r+hBkvN(7@wXAiPQE06U9#4HkkJtd6&V$Qy9Uw(q?a;^m;1!|eUpAGb^`GPK-dIE z5M2mGv7I0O2r2$2+~l9iEDa9Nwspy^ZWb-LIu<-?n7lbwQ++(JEwr%d9H6Y3n4m}` zgBY~`ddT{-eC3;GP|ITeHiA<0+jI;{kmC|<3q0H(cGdZAi_|~k*U7&(fYi86O09}4 z@)!#LN!CORCTIAtq+6Q95x$vS>A_&`4TfEXu{KPR8vm^QV0xaZ3^v8dLtFeWN^7yA|2>>?m|vmd)T z@}!f*RB;zoc0aQxN~x__)lOzsezmZv`S32fHKMr)X+GMU&v^SIN%CB8535>PZb^+| z#us+s?`dcq!q&JWk&OEgmtO`Y|6&2N67q}VEgf%D^gLXJO-Qn+rqjXR>;4F^L@x@M z%KTeVV+~VwWvY!u;e~P3v8UjrCGuc3GAjgR_5>cyA2m(rD2vs{iKa$edOpR{F8Dv0 zgL;6n^I%lpPddJs5{kG-EH`$}yNtm4dD4Ed4a=+>bQZ(w+FtSf-rfDTg|!m5>#?g_ zEIx1CD1QH`@-1{qHgS-G-1sxEe*0(pwNu%Y(Dp8B9(M%1rK!+BmW#IqyTrjb#`a!+ zQ55jvpOQ39DBnWmU)!{L)lDwm*FOZ#5;=*xOx}2d7+*lGY{d*w(e;t=y_&!*w~2KA z82|oVDt1QG$m9h4VbGGsJ*X0`U{VjK7XE1OS7Hgb_?&C3(uR@r)18TF?>%eFRK$FE zfqdNaSlrs&!R~^3&u0CNb#;k*`Z2}sA6_10Jb?RX0QZkBagPSpq&{7>OK90Fv*`+P zi}Rh!^@n_3+7!5E2E^o9E+b1I=LdIAggC$E_tq3h42;We6E@i&T&TIBzp7?BU!7;ZuOB{=n=ZT z1__L&A3?Szt_WCN{cFot^2jiSn;$DHT3*&~a-&F)M|4?@)Y#std)ypiUR^J4M@Hv& zRxnPJjyD!-%3E7tA^LtzrfoV$qeH_xu0TpHZ;c)f5!Jq4cb``h%J7XGAyxJphv!L6 zMcQ)w>h=_6MVE@v+1`gsr_k2j8SU}7m##H)LT7T+m{UP7iDlFBX34B#H8u2-G7xF(#x^e9?+}^ba&R>%@RC zIWRF88Q8w9EDRhkqcj#EO2e0ibG5v}uNQ#dM*w~ezU|w8>6z8OhF2-s?;9;V2BCte z@O_!f)-lrW8@TX&CWgC;B1|mjf)^KrY%*XccCZEJG+fLC1gf~-=8uXhU$Cx$bl^q& z#s%U8{;&cY@wpfa&=h-h2>SQm!JjZ+|M4%&xJi$TH%dQcy`VZ z!owGpJkDpa4qup8^30%oMS8QBj6+Y9WOY$8ZIB0HxfzB0WDEIXtb)hVk%#6a1Nq1G znYdSp%_~)cQnneCvy*f+!L@i>lHF~qeYzF0_H*n@qIm@9^q=(wXegW?-*Oxh6{GsCnBA)42$rFdYmAvvUBE?vBp(5kH7 z$)PM{3esxL-(TXtUEYHh#&UP!x#ZQ3dxdEZsXdwE+Y{d01^G4xI1W#fm7cBr(rob? z%Jpw>n)77+{lOh0jkXrUt~=7P$4@ZA)!MgGd$oeAUsUgmSL#;>mDdpTPaPE)1_%zm zJ6@S44#@sMElU6ax+&&z3iZS~_Kw}F<`xya1d}Z4`21vD-+j3jh8_y6H#F7xlo*v_ zi~bO2R8QLjB8ikw@r-trRy;GzlJcDvSgl5Hb zo%n34cDjtmx#xtO`U}8fM=rX(C3?^1=pn=;<@Yrr(AXE!D=RUfaha<_F<E~8*3 z;(^d~eCmR&)k}>~mWKKPa_gvY== zAB!SxMJjUs`K02uRu0zRXw86~y#y)EkC!iZT!2XQ6VLg_FtQ7*0;9iKfe|ObzZdOK z*AGGek(>Ballolp#D)s4WZJ{c2`vf#jmFutl`SK}&j!ZjDmJN_PA@+sO0HXb@+;%& z!C6i1_7C5F453J_i2A0?YqZ&cU;1&EQ=5QuK0ah6sTs2=eQ8I4NBc|Sl9o53)K+<1 zs$ZT^O}t^;&&8=GvE{s%jdR-|E^?aAQX~B|U;$z7@oEUx;$|Q3*b;g=2IHI1Vl8z3 zR5)n3D)lS_ZYa@s;tXwV`wqb@TU`R(4iYOZe4$1NIfI-c3S84;XUJTc$DVD6`D({$ zcQSkNuusdnw>0gLJ~}ld?7PI(m%?Z`zAc~^NWZ8FZSDe^iWl@Dp?;q5ijuN%2Y!dCcSvlqn zQApup5>itoGdOg&myO~bVL)DTu%IP&59w-P%D}BD>n|ShRHT@Sl=+r+ert(j$?)dh z$TkO zF1m*FoF=KXmQGEjkPD@l=<#&J^9x&nt#9C9Z>MK$a2}qUSy^1}?dKU-qNIE2SU*e# zWX5^+6)+i3zL^ZFUwv_#YbN8To^X+GS0Fu)rGZPF>o9+h!7+ds{CkM~Qw)C9W%ZZ0 zUk2fVm&w`-_nil52nYQ4@9sM=wCr+z$$#ON{)acD>t z&2H#~L`#0Q($B!xHq6YuL+(2{nzicu4A~gGuvSK$ckp#hj?kU?p^Q532d0q(1%wGx zaP*YaUri{)cNR7oTod;&Acj5I-CI-mz#io9O(E{F^3fN_PK~$C`9$^RAjY#I!$~MV zG(DPHR8<9+)Up-i!-4@1)hNuXc~&uyviahjDWg35H1C$WgWS~gCzh`tZQ@wl6|qDR zza}buD4fTIOU>{PlKiLu9fo&zY);iBam18RD8FOu#gH*d%*vupoTE;6g!{Mv*iwY- zlf`8CwZhmDqE6mNef3k2>|>!1!S_sItFfyrr5^uo_h)HyA*kC^n7~;GbY;XbhcBm3 zX8Sc9fc}d+@Eb%&=|3ps(SJ+3iE*md7L1|N4Rv$d-ldRLl0G!=4LU?F#O#BHQJXUUeYFy+ki!AhcN#s0050Uo?K*3}I% zo$wVFvQYNYFU%ZLeyCG#gSf~VALuRY`US8kj4ERKS-X5@f^njDU?!;v`g+Lxw4Ph!PhQCy>fPsb_7iHG)#2}JbL)#_ewJV;x$hE7DLP>GL%x2WUMqw$aY zgzNj}=+zLkvcAd%qEUg$IM6=?j4?USQ?Y#G0EB=k{=hQC9RSCC0F@&P0`;~Du~*V| zg48Fwvs#JtmDyiWt#u96fFp2i9w~5@b5-?k+dmhG<8u3Fy4>|yNM#*#ff1=!(e~dv z0X%@D1HgT}_yI7?3eY=17c+>?hbaErZ{Q!5@>cPhEHadJ7~>^u_KoIhLpG~Z{5|0# zkPo>ji^T%GSM73A6K`rDk@Oo_B9;s*`{F)HfJsD6vzxC_8^eF@kTr!HL7(t;*GWPCqwW{xG@~M{Y{C~E`eG- z?KeITRuawAHLOniCmB<&g50YDu}+O%6)wsa@VVH`pkon`^lG5A$Vbtk#ZS2n zA#!4jam=9NJ=ln90c&yyn>;*mgqqfU8Ey(WDaJ8*;C`9dA^C~6b(z;S&~>mgu>@wr z>*)aTAwc7*Q60TncTvE)3kTNS*Kd2sPjhjhfPBvNVOPLvyV4c;g|T%(u>Hp8g2ech z&-HEOje*d&djWVNj2DsN#njq!KKo^^2WZLVyx_B+AO2gf{g2jI-CLY+2!m2~B|gbk zxv}{dueicqz4fval-Ev7PQ#&cF6=6OM-|0dImZ^l%RIfC;HqX9m!ZCX6l6!B{0DZ5Ly-PolPIu%tvy{QST*LP+S|&SiB$JcygAA_D_1cy{x&l1 zLU!o4FJH6Tz%TrKErXW822|Q?v8g|D3JV=BQ#=t?o*&mgZOv~I1#k}YS zVexJ{E_=H}rXAr<$jnyZ*K)^-$flWSRN}_I?ptcU+IY%Qxk?vC6Y0Crw71i_u$V*& zjl%D)R&Exsa?^mn@V^U~&R4Ei@HIpE_cW<*9p|tZ2qF%)x;mDQCg$b_EGPiPFZ6R@ zF1Z-rnNvUu`ZsdMPa)KI?+H*g|Ms$?i3LE$(y_2Ur&fK-YjT~_n=WkX1-JaXE^$?w z_#bt*{|Fu9^s3G}qW%gS>~3;NA4=AkaFI_Jv~s9lSM)5nKe&gDY^SK*@_7F_(>kx; zO)S1?aVWjEl=dimwfVcQpC*Ng_)uM4D5t|ux8>e~#s$Gnp3}^`G)BEluEJcV@SDgL zT)3O*QbLa(ynApfNI%(C+Q_w-cKS`$ewv>&gms;1J@Za(A=i+!o zGMLbYXh@nx9Mf-RmZk% zj+VYk>O?k|nec3|6sN=E0qQ6r?4;L(#_yZdXIFFGP~lna6){+X{UCiKs#U>3nB2uQ zy~m}pcz8Do0wrHxEM<5dEAy)i9d1{FyU~wz44DIX@tMFne)>BLe4bJNCFZ`ez=D8M z9*}P%y>Dp_82HPX%U7dLe|h!NMgRSdPkNc8V+C;l8$FN(8sGEHD0#oN~D;?D5WtrI$B%RI8?jb#YjQL18%A2DVJ$FA%9_hf9P`ZsAC zBuOgB-q5lxX^o2=3y1NPbb)}0SGAZ@Uv(}Gkyv9z5Iq|3QN7) zo>CpKA7+-Ux>|I1mTkwOy6ue+4g>Pjz`L!sF^fmy2jrf4d|=}4Y8Vug<+ojSp-fH; zphqR0&8lI29g?k1FaH{&B{q#Hdh$uO&8o9aqEIY*ky;#{2syC| z=rq^cU3i4wc)Tz_(e=W-4FQAjAK{nfd{h9iTR~z_{=%R7 zJ>D89eHo7`XU{bp3}_GMBF#STCB32Iw`fqV#-B}Z%xWxv!i%9}q?cncO6 zI`qV+V8d_{m%un^PX#}&ZtsI5zx(7|l<6&LoR+b$1_N&1=wW^(&U^DNDlBxwZyp#( zs*=We5+uTS6MKV70rQ$5w z7z`2_vV3s_$LoFssah2+NtBIF^{x}qabel8Z$l%S>f>s^R)f(CaBAfAUd4`5*JvUe zVkz1n$Qe`7mP|ZNE6#zo^pfgRb?znk`U4T+weXjhmcScA9@seUf%w1cGy*!27sa*j z#~^Tjvhxy~9iXLVrDtc&^nLYO85-Id1H*7Hh}eJWGV%sL7Y_tx4|#*50kHuR@b?DH zjSFqaMpZCykk=8&YxMgyARs_qUHD$@@&@K6I+l6{q*j(d2fG33->pOgQe78P9ZMHd zYaLslYy%?(HaZ^}|1Q1~YWNF)H6 z1UMkov$E7Tu?K`X>`1K)Ndc8o2Ga8~;+2AjwXKdGFxcC`j^X0`pYH3*fiobLwF0i< z!UQ7!@vXqIv9A>;zdtu7U5jf;*I;Rj53gx!VesDb@Z@gC`kMA_%>zTh&z~KTbj=2N zWq4x#?wm9)-%KyB|2oRNFOAdBrXS`PV|Brr2pYw#JpG&y`2ue=)58`wY|_|W{^qQa z6_0Cso+kg2YKe?>oUhJ1f@Kq2MX6`#4dvP-eC<<>mI>DxH0R-Qjh5=MLe_Xl-k^R(N*)$3Hw<#QIx+LKmnnx( z=8{zQVIy{%{h;)_*K)YxAJuU!E+;tL0jN@{ck(d?4O)^NxVQ_Pu`d&t-Bh zrsuKnUew)zce9*p*0AvKaFZ(klqveNY7GJg_V>4Zs|epSuy?YuH9Ox)fR-!{p#SIM z=X_QHNlcLo)Gh{3i(6bB9K*X-Ukrvkll2>)yK*5ig<2`@OTF1fPCsHX?^&~o zr-t2I`+V0q#bQ&;|FG7-M{&2Ty?9iNP^||GbcSTU$B1k(_}J<1(owcdUmw5Pu{ml_ z+3(Pl3%V0mV|G{bfX$e6rdZQ(qT3n^@US znHRxr>qT;{y=({J6gu@wa^wxY347I8jT<9wXR1ifuFqJ7o%rBkh1>()as;yZ#tJnu$8fHB33N4xdTGRlv2>mXGKaYK6uOS3r zCji6p&Vc}rfpU$Vz+`D)|6S`F0T6cnJt5)TfBMcwxRB@u=E8v3dCnK?^}~O|760VR zl$W1Aer-{@h3&4Ag=paz#4O#Ue{}a_(Do-<_r0@^bPMb2br1E)6B4W#c&SX}pyR1# z#t2PqIujldC(pW@cRn>Tk`g$uDZ!)8y@8k=-6Z`K@lYx5)|+?aY0@^_E(NiXCgp)1 z8)U{XahNerMszsqEvS`KR6aI0E1$3qWln~+QcQ&8e0oD!5W8Z{{ke*_BKcMTeS8olH?Y;iO8m?|`is+YEsX`NoQrMC_)c!l%a!{Y zF6GdbIOWPYc?HDSs}&tE<`}S*VL_lf|0H+!^R7dKWmjsST9LbUG^3)fkG zl&(yR!dE!-1aRmM;86b(hp4y(m8K^qRam@w=EYNo?PEpfB=a> z^Fwbz*4D&A#};4<{p6xIz#$z6dG3omK9As0c<^fl$1 zA6S!fs00M#TOe_wumaM(R84Er? z$Pqc;Xw+rl^x#%l@_0B_RJ{;8Y75WTQfdK@@gRqevf`N6>2rxIagC1_*S!j>td1v; zrxw^tkno+}F2lubsU9ZzR&y4&&KHb)MuoAq;kbn9zevkv7?Tx@#R}dIn5b}jfvV!U4lpgPa=fvyy#jM4~Q6-x=4&KIR8%2de zW#Lu}$7C`bdTfD`51@&J+#FM}Jp7r?#5v z{tktlNNxSW1yWJW3|uS?fOy63a>KkxE{rZ*W8$j*~;9KWUhJ_E=m@NyDTACLzA8>3(-HD-w4p%N6N-ZZkHbe7dFo>MT`u%jy2D zdyBUb^!*a*R6R!8bYJUJrjM4z@;Pbf(XmAy4|pRbDn>uqtK57#@bFbHh`A>~ta1Pe ztpYdf`GxHdSB%Khj%H-q_jG%D zDJyzBwb^oK-BKZ%VkqG?d$efXDsa4lExhoCCw|2C;A>*reF&}^t&|hb|ilJFA*tpW)*Cq3hC82e`B(#JD zf0=8sRZS5)oD=aldnlW%nf-acli=d;PszvMo^WmJ{?60KXEBKvYF)kKm;OAmO>Z=e zj3)<=?9}zRP3F!g`ghU=5AQyB);Z&WQ0%T1?Pu1|WmVVGc+kmfB>k)t+C<vj~7_(R`=4q9@dq3m7fyH%c_>T#vu5oW^>jt@UbppdEV{{4LJuk0tU`yHTGfv`(;}3e9pQ&8w=2& zdVU5x2K?0--~SWx`hQ*|5CLf<7GS*M`Omo*ef}Mz1Qqh z<=ab>asus$)=?N>dn^Va+*KBo45f9mk4bt_+gof=J|EFb+}eCr|JCLmLk5aBKO%im z>_io&KdQ^iTNs{BPvI6NM@)5@Ni+{*jOPQXqq(2MObGP!Q9VGin=9#Fr$Y9@>fCx5 zJOZWNE16BRZ*ptDubU=fH91H}g{#0GbH;vw_oFQ{Q_|7!%cebkutgZQci!|x3fa8a zc28#okx6-*D_*3nm)#F%V%1((>8pi`G&Wx4rqXsOd+u}=fw@&gDtTOZ2TS4=1d9%y zW=-r?p;NVff@_mj3&vKW?h%stf}#m_F65Nuy3aEk$4(PJZ=9>G`PW>|U%cci7dvcQ z`f(1E=*=P-*+adA;JKw)g8E+;&BfL%eP_B^Ht)0>aqCNrqNwD{7_b|H1?3q2{xq;` zy=H6nwRK>OMVaug_jYzrf|~4%qW5PKRu>#9nF&rCEo0LCR4_CdsA zLV+gM4}M`aivrJyf6Kr|!h4Hy#Q)CVEe3z*9vx=Px{uRJR`b3ep>N1E z(7dr7e61^MK)e|l>%%fxUfC!PlJ z*#iI*7*q&R_|2h)C{U*|MYxj~hTyVWBu43U{Xw6{x#rilX~3brQWgC%tKbjQ4ZgM8 zL1K{qc!vaVtE7V8@0Ii$Bmet0{*Q(n{AcgxPw4LKU$t918hyFS$jF*Kzv^|nXMj?& z%7(6OEQ;MI9iFg6%Ov|wX?t~9*l=8CuHXaS*E3P$eAD*anNs~Sl-^&YvJ}v{KYo(5 zu!-={tIE&TYRmLJxUVbMc+l~FnmckCW)&_1v7JUx>8MXF5X-~n9Y>Rl?G64$UT)ck zPAmi=#9Rkgr+ORsH+IhDZK8HIW zUca@;P$Sy6C5@8!i3Ywb0x5dG;7dycIqn+izDsofi?a?&1=>s?51PcmN8_mQ;eZi> z`t)r-ZN$Gl;o3(0J%%R4hl!n;NP5l}Uc6uTas$x5t_wtv_9AMpdclc0`X*+LbVQQ%?u+5JhB^lx6yJ zoi&w4xOPgtG|mm?iaugt;~rS*mJ#(Y8)UV{=t+D@O)1Bo>WO*-@5S>dsf|*(K7n~Z zQk=*=SZBh>aC%1~bpijMQ@<=m7n?DV`t{(w3Zl=)96;d%xQ75zzrhb3lzkQb5Wt3t zxg`cmGk?XqSMSe&|63B@6)X4m3E018cX|H#?5-$C_AIszoFPtP^Im)3BB~pg=fkNGuJZiK zT}f2ud*F^7dgz?9hV|f3oEb{SW9ghX3i8RQ6k!T)_hK#-^cKPpMK2vB?<{DawLW&B zzuP}``XrugqwZ8dabo0w^E993P$~u(ehqcnN~2LsZ)!(*(rk}I$|fj5D`Q}?$Qkc8 z#k%@5Z9}0_H-X|)z5RFD8(m!J>KU}e5R=m+w<;!3l*PTUprnd@s9$xc2DHrX=e@|l zoifg|K$BZ+GBA4{*A!>P(d16#3HXpJI z6_jau+E)lrlmAQu|5Mw#Ho=XAEVR`xder1SOR!rCf%p6rW~L=HZ{T zZ}~%yabs%7XGqV%#Mm(GPFIm+Zr%QPVMuVUg<97nPcNsxsYmZ!c@T?$C7A_0h>lAS z0+}cs44D4*zFOPUIi%{>A|1%(nmPH2>Ho{@wu^52Z^GdS7zDq(dR+|lLdNUDI1v4V zvq--WfMWwh`8YV(S-HVLxS&E z3Ons1ZpJth-$+eNh?bJt({+c)=`A=?gL34V)7tr3-t-AlRcR!zdKrrR)j`x0IUHEX zYj-M*ekYf=49+|`RCdVe8k8n}_mz+nwmNG?7FGD?NfgOftqk(me0e_&x;84s7KNar zV6rXATDM6)!Kjy;n}|bK+v4?Mi-d6qj&w&icC$7`sZ6YLdMNQAd1Xtj@Ka05=!EFK zUS)Q&dI6k=R!)c#;KH;ev$ta`*P` zS?8{f4#dQv8WTpc{W=f-%$fnD2P)BsuCaQzo zUsd&b3WouyI5FhjMF zi{E!K=c7(k?O49|FKc~=6lph;{uzb0NrwV8FiGN$r8QXj>pCtGRWw%!(|~O*_HDfN zf>8szeUqp9QM@jGv?bW|h~BqhlDbY%=~GY`s#2D*nkG33>nQQ%`SIVABN8rTrt@#V z;~Da5cKe_~V%0H>FcEiQ5Kw`xy-S;L)fxc5N5v=p!xBId0)7Q9U=6@7EdlsX6z%ii z;reK_|I-mlSK4EO-{&rUcLjbkK#7f;?Oc8H`v9ej!~fK6{0Y=CF{5OX+Dm5d1Yr^9 z+81UpCy!^;)F08k$y(8mwEJ8qV zVK%q3B~)PnnVV-^TBomM^y0-WH`<9>gU)KGF zSHWPRPe3w&G+PUP7^BC|Dj^IKed=sske5mM9%tK2Y>k=BJ_JUBB?)+T;K zDE+9Cg?Vz=UE^TR%m>$*ONIFz8?4bhahDlgv|~}2O2+nQ`HEZxxS@snuU!>_PhJu# zbMBs&RjoR{93wY)ar^X@VIe}jS-k(&?MI(*S$o|&m-F?-q7SG{CY5~L7-C@09x#Yx zbgr)F&ZOyis*!1u4JjyY*I5Nl=j25X1uxt56BCe%z%{#8-8pGr;aDWXCLFG(4;{Ce zy!0y06ShC}JXo(6`e^7!^?82S637_9jzj`ph3lm)K?Cz^kpA>$YT0BzYC@|mON8PV z&ke+X?U(y|Igcytwjbn_?=`-QX$9ZaJV1b^I$$$c&c!``sCoQfe*B+o!HjIoF!}+< z2%NKPmAv(d)yJV)v_1`|#rNwTP$A>}R(8TF+68RzBJUx!2t98`tmZ^0qkDf@p#MBw zq{9@58e(Q%R}RrI#@QjkMX|K4#wE{&gTC}iTc(j&5N&xMhY~S3qM0DxEnXR^_~S^u zxXQANq#Ju6^-bTo()a7C_fGH4t2GK17Ql7jB5#c-d^8_UMhC|Tneo*95}hj&AZ2q; zTPbCl0?$Pm7V)+of_lkPqX*V;6q~9bw|)C!Snxbm0ZC=>t!m*1W+gYXEy9D_Z8tR7 z;;Q@RG~KqMb_fJ|d&pWk;vn+U_a8bX?s>#0u@f4ZH17y4ix(Wz5E?3dvjtBqtKmhqPl`fUWpXwT4 z?)!rLS%v^s$g z?9}4e3wpk70Ijho4C!yL(q>ecsnP{ctBc z+1H+@c81swdy1C8p8~AsWuS+pX88M<4YRMLt)fD3i9*e1~w8Csc9i+xcffi3>am9E;GWi;UE4YwB zd^^+&<^>W6aq|lw3MtWyt=Pvbi0+4NJ<29`J8)Yf+z`evz!K}X+9U+Tv`PKw#=@%x zf>ZlhXRA-{D3!?)Di`&KILUO8%DiB4+%k>~3MYp1QZ6er$&erJBW$POCy773`wm+# zv=c6LpJjjKaMf|Pk}xtua$o>_z<40nq%LEV2q`I(G`l6W%LaQuSO% z&G3qbmLqvH)mL9$-mgz9kKSwVyc>in>7IQ783y_kH=ntd$uj?%5J7Clmh^VfM`*rG zw%Z6i1=h}X((&~3pjO3_oLfq1r`R+DLJjtop3~GKF9t<4MhU{>kcfq%O2HVQhV3&T zpvm?027D@yS}b(UOdL)$tOaZLn%w6bTUhPL$%0kA+^`~C>z4H;N**6^Qcgt=@7%=1 znZ@-q6Qkf!+zZvc0YwxQo}IWxxg;c-R})^?2p5)%AcPw=WXrQyD!f25RQ*=X9K%eq z{A?N5JusL}qkwJV#n&lbr5;t(uX$T)RYTI!^K=(>A-OZhm zV7#u@vlZ7H+xO701g=w&!fR!qR`T}#eM>G08g7)1#<#}SCp@t-BVBP3vU%+yyxc@iq$E8=%f}$XPFhdd!xktB{iOjH_6T^&;11;HSvN)(#N_kosoZ$K-BbrloQM) zHI>}#>DaE$NDV`ux778g{GBhr0-3IZKw|&Smb261t4zuvdCsDj^3cG`=NtJEc-+N# z?pQLPsxm^dK8Nm$kHr!ij0}0lx$_JOAeS4S%oc(kyd$d}d_3TxfC2$er zc{Vfq@he@_La>tFU?T0i!m4zU`#>}DB~nuHxUs{G$j!vgQlm3@tE@X zc8=IQ9ajbl@$N%Yhhn5zwq79rs?YFTEd;l#(Dqtm63}M|4fGj8{x|y!FOmFfpCO0` z&>Lb06bAk?eTD#1A^wU~h;yVu07!)Z2kRFUC0gf~LEV2^D%i82*@sl!ByRV5TS;cN z6Y;Rr5ZZLWxnc%l`kvRPi5KoR^$vQe8q2VV67MP7AxS@TqjOAJ};93!Z(AYU$> zeoUrc>|d`!PB$*@r6S_3tkB?(36605*gjLOXr~UXGEr5{vx3X{2AeypIHY=emXE|| z6=h2=PHNoy?-OZSM=K`W5d{$G=X;?hIzu;9@8x7>;S!pQ#$^b;VjStR2*KMabgA~b z-2mfF&4{WBUFi&6%RG%}79Q?_`GEUn)J=@lSIL<3uf1i&wmo^|Sy7gK%Up$bHRrT$ z6U{D{5u~QkQ9xQUfnz;U&vtO=iq&bH^Pd@&m~NnJl2V#__el1r!V{+^stKHbW2(-5 zLDdMSR&^o3U(Con8C6`Bb(q85g)Tf@4Hb=oqma3OMe5;;Zt7j1In9@vPH*33S?aYS zY3K|;9WhrUL++)?7^GW|?vfaau_B73?C$JrX+eZ8plTm+7+It!dr$7b+YcI|NO{t!P)52QvIRNQbx4JnERz&u1Ol{+Yfu>X%v_fDL++M ze|y5OY13cxqQL4iGJ~nr61_zy%~rlfVD{i1d4FwnCS}iy_HD%&1pQB?s`oYJj>}@* zs0~_Id*31mQY|W0?2{EM@iePp2b(_8k-?Qi+Z@d^wm&ygevN+3gZpmd;kLaaVhmt0a%ZZeJI)AMBxu^w(FA|+>d0*lKoi=*b)qeJ8lOxxxGxu?4L zAjC4-bCI)?1lImX`f|vdDpZcV%f#e-t=XKjcv~-y(LYf&KVb2@oAhRAKC{1{_SspK zg`+wKTN3XJm=ahGv`xH8T4EFFS&CP$kxKq_!x)IR) z_I3C=O=Ogtv0E%1yb+@x1UKpmq|WFRC1)3$Dr4FUxndB!!={ALy6b({XFz-kl$^fl}ifZDNj3dN)~D8odS~O_ug> ztmS@Kk%@)EH2AYhbzZFnWSXDC z$nj?GMUW0y1<D5!31_S_u26UAF7>ACiri0+a+W4Oz3g&>o$4)tcU+2>-GWFM>7IO!~yT zUsf_BGm{MB@N~(KZCTf$G}_y(8P&w*?urLd)~3&X+(0ju2-%`Hn!eS~9!K{DPW+6# z*lp+Y<`Opq8?FNlL5ib6K>(!fF1I+*)4k{L0Sc&?FFjWg%QZr9J`&>*`iEc|IX{i; zBPNsl^7u7wQH97tt|QUv{?rDIsjp$Z z?kLTo_AN*UcsGYX;(pr{vlv^KkS~Pt`uUp_EH<>hFWxSDmCb_6k&E+6kcARMuXmYB zyBL-4>f6(?49+;@DvD>m5VF1Tb`c_5ybNkU2xCzPalx6FoHU(KTgd;(m#no5oFiUQ zJTF8}aJzDG+pgg40>Ik=fVajayuT4Vv82`7qJDX#AeC#_781QSZR3i|NowiHXs5&S zZ4Mg(2JAQX=e7A8*G~TS;OGfSPhe;hEBCjqp8i$%C4`>~zr%kjGWZp5Pni!lyRsHU*puHgEZ>2g^huQCs}6%1d1 z$wNAsju(nG=7If*U-^1hPXhPQ`68WT#%Js;pNZ(a3h5Fnb3pcghZi(vVLs-J9i6`3 z4bQ!~dlTcno#HbLKVE`*V)n{l=%=+#!KKqAq!IZy6fDCB-MH*)t;HkA<@B&!ib{(F zso=Wt=wFHDNsQ~$P57{%G0?S`;|WW_`n`SazE5VnwXrMz{PDB!p(}L$>{a|mm-UMF zsqJQnFNze~8z{^C2x@>m=j`}I`j@42fzENex9;~HheMj)*QGbIchIm_x*wY-G0->M zNKt4q)67GYs9J@~DDUOhk$Ek4qg*G~8o z?tyj$Yq_Y{IH>tHt*9}q9!$Zcb`1x8ETl6f(0l)|Go&qsT0OD-yyN+LlM^O%3H^kH z=Kn6 z5KBhP^InOUo3*Z|1%WN|G+K$ z3BF6W7SU|yax!0MsN~6}haotH_oQciL?4WK2!4aKAN<*id!TBCFT(96U@FN=A>^}9 zVD5l<-54As@M)SKxMd@@G;Y`hUG7MY9p;uo9R28HwL}Ko)OfKgA`gtgV<`=idYps* zue+}Rt7=W#raPoVknY-aNQVeg(x7yAN~&}z2na|>N|(|lDIg`%ouY&w-68&KZ$MGc zoHO(NGxN=STo+z0_S$Q$cklP<=eh6v`Zf9yXD<)8c&z|)+q+a8w;B{0m$Yp@+Bdjf zX*hx23mD6hyrRjGdyjCa??t`z9G&G(0_TAYlK$gCy)ps+hO|6cxd*~Mih9;Ax~aE# zBaXHoo z3;S_)xT*aT{4F^Y1;m_HSs~qWuk?uKS9Cw3jGx6f@b_kmAL0u;t;DU~C->TPBYp1b z)#lg|p+2>rqK-d2;nyew$VPP~^5)&d!A3cnl1x-oF4~!S3AgL+j+9PKcyf!$zmcVS zsO@y8iA=Mr$|ljnc`=S5AFKSMeQH{_TyT6;Xr%pIJ|;?)g*q&df=)hJ4}%0lleCG4*Hls0bG`(_UB z`o^%kKK^vU5=OUefg}MRo6PtJDPhKH9+e&eC4_y}r4|htYXb_xA-F;}L1qDOtL&9m zc(|WOLz=4jtmh)FAAK{fcBRn(HD0Ao|1kM^M*4nv88s3-=nG37YJ*gRQg!b3N*pwH zVSDh~I4->~6v4Njhhk!ErXli;1z<`znp&7x8$*2T3t;9Zgpc2a8(_Hfg~J4dd;d(h z0T|n#KTVMN&(eGj*#bsTzqmL6vub2+YiDg|W&uW`fI#H|w)D)qX83X1MFI8Ch9l46 zm^t~`A@nAf5C4r%@>dYel^pG-pB=K`0t(TvjA!1#UlrY8{8qTausV{G2N#q+co>q&r8glF>B}=_Dp*`q?fW%R zK=?}g^>qXjQ;+9FghJmOZVQ4~_3DLOol0~NtedIS6PN;MpOR$5lztLHe}&}kTg4-^ zoH)Q;T5Hj{`z~qet8o~CH>a(xtWJE#wV<*j;>ICc9BwMzndf>!>%;plZHT`h0cdSG`E6$-dt+IXwa+ddp|`MxN}FXU~=Tj8;soGMUc)NfJzk~Pnv%zVOyJjEV$#Oqk(pPk5@<7} zkVf;&I$2%*9qUVPb1WV?Vv0RPaM)^9LcO0M6o%j z6veucK<18N*nk=PWtNSMAR3}Pey-QDf5!uH>IwUmZ)_-Ak+dA&9D_$*a^gPr}DwJz+P z(W9hMq3STTV|K)L$~?CB)KSz1W+Z|ruuL9346mb@w&D=E>dzGepCrb;@^t0dRGyXy zw2Do<;_Cbyqjp47bxRgrPrKAgmd=wz;SFPIm(1>bV!Mh_&)WvJSzbZybCvU4lVZWk z$fEU5Plc=&??HTuUknr&(KA=E8NJP{p1Er*r<>*8;zPXT>y9fASMIVP2Mt@<=-;1z z*&0EGc2~CdRk6-?TLsF*EM64)6l`sq%cJrs#pdTY_o|>97dn9ExvG%Kf{ZE0RfV*D z#ae`c<#uCd&o?n*i6%~(n-K|umc?-$EkU(CQZ`a^wv-~LwV3R8m$uH@lyL7k+X5I( zfWdWia<((H1V)`9F)zw4>swKKV#ft3ll1VC59ehowdJ_`j056qvSrXr=R zs;s7>N`4M(bHT5GibHs*tp)t_ki;CgujK*~6cz_pO;v#fe2E+2m9Z#7mIjHN!Oc!! zkToDyzUX}d4!J;_Jlg-U&;3_^`};f}k@R!}w>)+zwHT~qI!rQ>8G+}%=AcGd1JX@4 zjH7z@{Yt`7I>uQzI39pElNK@WV@#qejvOL(&jg z8$Li|i(e!DFdD-(VeC%-t%eor&HU1xr#FwKQQugP7jpQCZD-Dl*?%>OusJ%q-Evs> zjEM-2dB7%na>L8c&t%RrKPd1_#?pOWfqV)scTm3lGq-(w)z}#~5mzvODn7UF4!!(i z!H!XoIN0=)!CePN>UmSSQ#k|K&$k+Q2K%S2#`Z@W4AM*mCfOsUfdl7ikpO@;cz8ru z*zf;CLO_9lw)yg+z{33^Hjp46iA=eeSJG|b>-*~Qm}hZ$YR2B>+M-hwnXOIRddza| z(%KfwOB>wWJH0g9?O7Q?vUOLBosjAVn>#DGUuy-rvUg{DXhlQAa=U`r zMye^U{gJwk@S22zuoc~tUV&QysComdmf82Z`m}@C`0wFpI~KwCq||R<`m2%yfaHT8 zJyis`P)Z|!QW^l1((7}jL^$4;O#5Kz zwJe2Z_dBcWzlHe!s^%*oY~cAP40v(=1I<_5kZEsVUKCuRJhBdb z5)y+4cd|ZO-r}w63X}J11*J${GtHhdz#M8Ir5gv}(d}*)wzG%mP%bg%Wr>%DA5^PV z7FXUXJq>?|sPSc8V#3rA&!9&iJ!5qGV7A#1Nk|oEMW$0rHGp=WDg0{6%5GZZ8%~)~ z2_sA8Tm9in_P6ExLM%Mn?DtA1v7IM8b#AE-JZr#nO)J`YL9_LWm&r;{Qm+4N)_oXE} z)eRc}Y?87!Ze5HuWr;(6sP}649lgmGbRH71^z`B3{ioVU7Ubw-!Zx;o=(eK^2$7|V3DJP40Q86BJ%FRt1)}=snd(A+%(BA)^p9|n zfa-HUQ+;q!R!XYBe3T%cqMv=RABa!@=PUTq=UETH(t*7$R2-12t1IjIZNUI;Y!XT; z_~=jeuiP+YmA^(@Osw#>uQ4XLsN);^V@}wKN_kfn@+lJqrItgr{HhL}9v)s1Qx8bJ$9!IE(Z0btU5J|7_x@yZ%*Bhr;B7DeiZ75g z*-PV9GQrCgk}i4*y$X`i#TRgthXdoI=ack45DM>KHPvsbj0x;nU4a9JCA~4hyX|am zK(>kx@Q0r_%jNkw^N3Go8CfdcZGom4oBOvUj{WN{gU0@imysC*ZwBr?Koo<51L|{E zk<@uv*#)>*L9j4z5x+WY*0#uIY<|@ z6L)-mo&cqf^UeOD9+te!)lxiV&koh`hNPHRRtclYpEo~Agw0_|3N*Z`^AmScew_C@ zo1tgdm;^<>uQsnBg|YXWm)H1%<>FNkO_TpPSN|P1KlLw(Jk7LoSbJtNq)+ohk5|5V ztOdwsD|v5Z-<6GK)q{^0R2G}v z%s|=&^j|*IzXP&{;{prk?*z!<0XVR@&zvT(b^$if_rrhk-Tq4OvwEm8>RIjRpQ8?V`P(01mv%J->Am#|94G6P7HmFZ*8hfcu-%E6wp zSpd?FZccWnHdd{N?@E2>=hA{_G>EaX@r;OUW!GFA9$}Wl+`sy)szwXeWvLI)+~qf_Sh^@Whpg{B_>jurpLRG9Ez?D9 z7)f3`g*r6$?r@n7g~=)MZPL|(_O7Mb)E%~n$MVNTJXiOKJOXBIwhVBB@21Q~q1=vr zr2YO?{?L9Na-M$OE*f-D5`xtx@K|b-nplmkMQuO!BgCkI3x+I? zXJapyRm2}&_~)_$M9AZPRDwv%V*?|<%*s|tqUQS)&?yc#Rgp-zm7*n_EHew*8eEmX z#ju+KPfFWV_1O=~P^uyqDXKb`^A=&kn}eWWg^4K#F5)KD@f#wu1C04Ls+79|hTY_L zH4GsmQ;}-}cV7sn-4WZJnKzbT`8>p*-~VE!@^NpYHxY?cBTMMg0ZWFnx=bs4xgy@Q zt)v@&P|m~G+wO#suXpT{nl?hYLv^5!n{BGsC2ibqus=jO&Gl{iww`ZG-lEi@mn8q3 zAQWvLx+7K0(n;kgQ>o0B2J={saObP?*b|H5B`nP8;L&4Jnf<)!m>zPsH~QEUG@_xF zClAH>M2)fclYKr!o$=J80=X7DV><(bGa49_UFufD?-CBj19&GuM<*=tnS}o~B?$7o znJ_KXGcvy=xw#9?3Q6sHF{TJYkmV&Ww}d^ zy0O+#VR;kp<&J6sHcGQc38((tc!=6IrRMhZWY4-^;ET{`#T4_cxQHA6bZssTAK!5^ zKh{MwHt}t|S(FobXprJUu9OqmW?H`DW(cdk@rW2_nLYhlYW!Eey*)Y(O*_P0tEyvM zrdO4D?}m-^oI=Op<8%0Ox(M8OZWnw`-f%klopNm7wXG_6=o?cIhm)T^QDR7p* z8domeI?vE|7(v)(m{{-EM(Zj3h^DP^Drte+{0eze_~>+hvwtGG?h;$ad8G3T(`G6b z3YGA)O~fyAuNc;SGrf928D)R1R6NhLhBL?!#FxsG$`#0QNo$;Ka3cdqI0NjZAN4;I z6%$7nFn&EG*#o>Ul_L=J+dCn;=1<=D2bu**{RC#?`O>$HqhZgtlHTtXTUz&^G~Z=a z)Z)sR!?`Ritm%A#!PFlPQzBHPRe=7uP?WjWQ0uHJ*6{TNyQ)o5dnZI6-b=p{UUqwL z^G!obwR2zv%LA)-{o6OD*xt@sHaBy@GCz1WrTqpY8zsI8{&7AU+xA_79&27T{X1s&BpA`pCp5fb3Il6);lI zvMNGcSz$+Y4?Pw)fC zZ`eqS3uNd$QFw+SxF(6lC89To#cS<3-nOkcBy*5XXh4xVt={m;Zilh@`!luR3 zbqCyL{sM>WNMyTD4hW?+S{k(OPzL<}7XS=jiTd<0W8#THqH1;)I~PUq1X- z-~O*GYA+tYa&koeB|e9OV|aj}RiO~b?DA#WOX_^@N- zRN?n|K1um`;+hOkqRID7KSayF-hx*zpq`~|=VGCp>rvglVws?$+{=Pu#f^`A#lP3G zQvd;qSNhXK4Mma1D`r)}d9C#-Y9)~^52}j-h!EUZCk%*>0(NC1(-!fEp1k0niLSCI zqZfI6BC2cTC+NpW9BfdV=-mCeE->LM#xr6v|Z{3%H; zI^uiBXBHJa0`|knMhVDuHGz-2FY0rE8OzMKiSk9T=dbPQC6jhB0wyPrE?H15RooW! zupJdee8za0WKGK&sU}3vvQsuD*&`gWbzI8P*8xMI|D9cSSsK;rJ?fM$g458f_iy?q z-i4hwoWL?PS?h4>8CRHG53wV3aoe4Iag&TlC*!#wwZ%?0#lNk*Ij3ao5oNe&yHnNB*e=hV@LyL0lV_(665}s0*G#@%B(zZz|+f zIN!jwj$Gp!`jQa2C|MuD?l>d^vj;Q3L$-2%?3r5bw=a(l?{UYD?|K?Q|KK_DW_-v=*)nq9%`lc^J$$EoW>e?R*H-3rvpFkXm+5;~h3xH_BI zn>aez*#bVSqlt-)fra&1Ny96|*z1R^0+h3`0Oc%9=9#Qs!4}$B9A~7I&fp7~eYDnL z_KOk%`Se|q-M`JJcn&d*h=VL)U~fXMYUgVE-HXP-x*$&kD0}W%I|JN^?DQboGubBl z;r0NGKI9jk54og;3qYQ0XUl$$TLlZ?RzVg?u5`Xi@*C&N1dk+ukuV|2lznt)WN3Vn zi;sfk;6&jiriqjwe%XEvfsiSfL({*Wk$G;le6s`~viW8ycswvq++7s8k1F&)T6 z`LdwWgWUEGqXTsdmm76mR>pACb!#?!zn2y+Njw;v5-^F^;`9gSw^a3ugou5NrT6cokJ&Xdpl0{y`pE1x z+XUd!OG!fSINXh4#l<9M>dUoi(lZmn-*hB@Rgd3^0n+Q}%8X)eHdDRkNco7$#X6ew zwz73n%d9la$h(FOZ%;y7nn^>0;jGgpQm?VnuVHtku4unCF-}-v-i1{hzG--T7M&9P zM7eA7E7@)}>+*Mrg9!wr%@>#lUOBgpKh7Q+~_iRM91eLDSQMr2B=md&f#AtCllw(?hE#@~i%D7ttV9DRUlFFpG zEhV;sugSwYH1eE9WtVjlI_PLdyE5DLWrHXoOD7?iDc>X`T%F-6RwvYeWBD<+@f zjU$@_R_H=&Vu8lxomSLsd;FR$hQ@LSQmQbD7Q>|`oM&A-%_dkq% zE+9>PD9OHW*qAr%Ij2j&|wvg4N~0Tk>2f%MA;>1&opSl7nMJLWDqg$Lf(Xh@F1VrHftA4 z?8y;JA)|p-h8e9~?^3Pu9eZ*(%|4Hg42xPn0^>sX$F;qh@54fOS2o0DP?KWm%s6a6 zyo|ylv9BeUXCs_`8oXp3pn*mF`Qb-eEY%lM&(!=nK_N?%qv@-R-XdP^CK|$c^LjpbC7tca*xxz1hEuSuImGOgaR^^1R%naU37 zQK=b+(xz|lojIt%Ayo?W{rUtH&TymXnh^ImpCLY>Y~e!1ZR_b*hAYs$*QifD!m)|5 z&8v=0<8g7N?!H`nX+hw_q|Mu*%eeD)F72-B^DI@Uo{i0>wm1;+bsqeQblc^xg(Yvs z*I}e_9yM;3vKK0nd{9h$g^8B5?}k3Q!>#T;UTH%Ro^;K}_`_+dR865(HHwFV;w}HR zTbmE2upo*A?YxTX#pYnkCxz79jAcvgb!~Y|z^hvrb z31E;DpT_{#dJqiYkag4haj9Mn*~Wau8_E9d6}x^%&Qi%0^VO8aD4tCe++~i>OT6Tt$d2{i43Y$D;6ZcUH87wK&uw?0KjB{ ztRHw2I`BXoAVr0Pg@FQ?8KH@Q4Fq)D`9fa-4$we8)2TiasXn6_K0_d%{{I7e@Pf++ z76(p3S&kh9l&4Z@0xw!;eiIvIIX19hL2}EN%iRD+GIoBGjgonvB8-b5=U5u!8_oSN9F*fvapmiw2d!7o_n+2pHV+NOSi-$# zeoxC|($4;NaZTi-#yx)zto0j;ggXOquXBPpY8>|j=YNXMG>B|EZJJ_U$RD=z(u}-ZJz5tNA!V?BE;0 z;xJy;e1AjNk<)|k%y8D?%+A5V#m>tOkbr`#+(3s9aLC0D%=ZH-@4s_df8`Jr%HPVx z4lG$tCr8A?H)dqI)z^S3EB|EG+a=Si(oM9{Nxa>>aYBV@O1H`-jyvixangMp0SvM` zmDhUasd29r`{af_sCs903w9F*Z8ASolp4y*IXW!~iJ>$YbvMX0Nv-=+^TQEKKQ%v%5B(0 zMMrQrv80Cq_K+<@sbuixdw34DM_)^fNztnyE%o(+>bK9D3f&un7FfEpjbT z$HN1!ZXN0g9;GS)R0M5QEryJFWW#~wmcF?@pgMr(49>;u}=;!?86sI-ggNS zsIimY5n-if&+Tp^;i>mDY%<-~O>p_F714U%j~mP6Hbkc&83A2u_iWDE@tEZ#nZK(O zSip3_q5=S-czLPL@N@-c#hFPSnWxr>rF3Jx{^@a|#aY)7tQ&r0q=ZpUiJdcg<> z3#98Hx4al0<^Xp*0dQ+PXIXRrv-SJo|M&I(O1|C~H?a;V-tVS)PbjR|5^Cpd>C}Gb z_QCW1$=6VKi&IbT!LIpi1g}vke_p`j3@czkZgn|i;`a{u6niToGso?~Ny0P3plDR{ z-3M#ahl$(Bx@t!LLpkf)#jGIn(iXwd0^6{7?Fa>~NuGpopJ1g*n`h$4+aoc4=wi2u zEUgYsFdrJGn6<3Z>RqA5L{i+y(4c=GUbQN zIgGc@)Uj;$Kbz*#j(WwYtfB-2*C;Y%iihe}oCJ_V<(Z?V5eGmgw%joC4X&UpUOUaZ zq4ltbn|Y{WTxb6#C$4J6%9!2z?%?74tK-kElWLvG*WZ%`^93e(tHRy`5UDjiYekYz zt;_g@U-;V=R#CY254!pWEs%@(tj!%@RT}jX@YWN#P?NwB%dH6Inc1-ncAuKC+qYiL zf8v?iLu*SM<9fQ^ ziBz{!i{lP!oGj2v*x_wq>H1wuys!N7E6g}{j+PnW zM6LbQ^J0rt@Ao01H!U%^I~h#zD59B{^ckNA$ck=TJ)-`CfY0m%5tu6%Ey0jM-ZQc^ z8n3Wo&hLT)1LV75fP6P}Cd?JVNcJwWz22)B301w44cPU+3Xt9<0Rr-Hf0Lbs7sL&* z&N!@Rqq~1^+LX~}vMV!i zq7xrAURg?shWn$T_HmAlVfC!RXp+(FGv-Lb=Y4@CbMs1$s!o8)qk1r05b(lCs?Cw^ z-HzPbdk+2l>x$wV_hwKc-aa9>i^Du9pwhEv;K}F+Tr5r??^4MOSQM&%kZ?*Z#X0GM zw~G0~!C20O)yG^a`w!!7z}vgxsGJLrOT>XBw$W;Z^6nuf1yT1Wvq`<&s|%e=PDzxb zakfsd29d4zi=;$tC6mI6ik~?fu%PEk^=CX~98S0wYb&DiRVrSeG>1vrYa@@tczSlTH?&N1CYA8*!j45Il#Uh5Ceb@fqyx{;p~6pQ~#A| znOW1k@`A}$t>sAr>kZ_^StLwWCJ&tGt95%7-cL;6qoA(UzM8{)LWGVj{iUEV{fO26 zVA}RrT^ui&_3k>=G(|PM3mp-r;&5|fS$#B-(N-1~%8JU(#QH6U>-bB=sd8BzJA_*1 zjrLnAP>s4uzM1NFJcqKgl7Xr63d7R2GO}G}BUvr*)laVNoP6tE6*E@piNm9Q zxdG~PMD6^nZnL{S<5q7_Q(4y#-RW z3@3B@Lve$muk||{@(GxcdAyX4#3o-p69D?OLbN*45m&GB7M|R%zb&IZEr6nmgfI0b zzBs5m)O^+g_H&CuT*>uN{8Efmv^b^bQMvZW?ab-nGcccK9RxPZs2o%Cpl4>{gmINp z*=g(OKWl?%?;U#TlZ0(|E797((Iw0bp-V|KSTQfSjO8*s;F#**5v+U3y@{1f`Z_`c zTUz1C$U{s+CsJivJ`zHiuOR1ymU&9H(Z;aVNDn!va7Qnl@u{nirK}dGEMjw7)#WhJ z_EJ0|dG}&{XQv!2zPX6#%M14G#~;4c*y&K?cdKD`@5l;f+ChS-B78$&q}9U4&e6ok z&e#Op1P#$%j6QklaYg&MuA6z%wvG{3SjfN*?9rT zPXN*vZ2G{lBQMzW0f(S}+k^a-s%UpeAjE#+F>#o1BKB%@YX|vBp~$Hjui$tGtx|EZ zaMzN86Vz78k(e&-f(=VS23>-?xvQ$dGdj)%sbvD*=6u4gJ^L~KW~N^w%4rT>zCZE z@jSkgRSRx}oCXe2cUZzw++uuJY|d1LHb@hMb0(}nHs-sq!d}Yiw2N`w#lwS}7v1X1 zPq3qY>JcQa4f>ss81}bl@lt6FT+#(Qv&znSF}El~+k~EFoa!90mDjFppng{8Bki+6 zPpdV5ywU2NNzL_j>lqeUZ@1m;ckTF@ap1rsg3x8X(GW`2ROUM2&M-gcyzx=i^ znvSB6*(&%kS(Ylxgh}CUxvs9nhh?$STETSm<((f`M}#q6pjS~!!hY;CDiRY&+s$Cv zcew_q8t=v-I>K~cz9uWN$lVsPKJ?4l2%p8BCNy>Pl+%^I5ADH+Tissu0cDbAP)fo( zw6Mm@t`C-Ug-Lj&+lQAkws{0&-|#!aM-$OBkMN3NHjxEA`kGh&x!73a)5O!Xo)0oh z*U2Jrw41}nXf$QKr7_>azAX6IP}!JwhTx6qaL>-g!1#g(oDedmh7Rrl+M6yo&l|hnZe4tezoCa_>~;Td`*o-)xh?S?K|Vl<2p}l z1=EGckA3H-w(gd|bJ{)PdEbkp@U1}>jY}@8nW9b!PHm<5b<(laHDkPKHRwu|m8iNO=7o<6UNg&12*1l%gtCcTUM z2jUY2)~vLxO2aCL-Y34P&%DKkUz}`y9l`G9gOr2mFYg$#tYAL!bS zjN#f6aav?w_Ya9`QBlK5yX_`=P}T8b&9g>X+%Fk-6<%3eOFcXGBuNB?VRTY45(B4p zIwoW0aeRHjbI#!Pa-UaM-%_fy@3pPP;uf{ucT;ZPcyH^f@1OOV(S>|f6Pf@N^_lqb ztdr50<xg|b4~fR=Ph&S!!-|X3g=j$ zjl2$Y=y0kMxt>IGYy6w&%9$?mg$8C3p(B6q4e|K^)==bdK4T!CVUW)N0y1Royf%0l=P|O>BUSF)Ls<&nNa_ zpz$frohNXT_d@v3W=SAD;YRjOm%TNFOUiev5ogv{Lil)%&5Yw2_uYxAE|^}BE%@W0 zf&;jjym9~Ngfy89>3@>w`u?taV8IyLiiN4naz~9@cKfDk`BYqMiwxts1|aGpyzO(f z!nC1gyX9e>jrgqdqkl?a@MF?^{IENw1Y`I+kG=b+4oX~_Pxx^1(5A&Lm~6KNSG?&a zcC#eWQ?%8zP>0Z!Z??Wn*<$l1i%yMf z%@8B~YpllvQE~D5(RZnOwCQ4XQQ;Ayc&}Zz;91E{HXse>7=MB`>@4hwOg#?mD&2Cu zn=3SaxAOyy0cVNU)j8V{UX2R$T7GlCU*LC32CE79rmEn~ z%y~K!hD-fd*HrwHDFd=GKW2-iP3#~}=ozBg4?Fh#@6y(GfRFqmrOC|!CXfJrz+NX9 zhW_FZ^v}4*UpbWH?+A@RUv~(oh}9q7nGv++`{YpR7CBg(HY#_JBT)hSS)KwBDR^9y z&6J;^4&Lo?65kShrR771jD;5ctfF=APa*V}$uz^Oe%pmvk!^7u;)L9|NriDYp0X-- zZU#v-;m2sOD6NOEczb9RZmsEA^+SbK;~wDRagR0LNcVJXk8J2rW9sgW6;7lzemC>p zkI11@VPSB{Gnc4aZMywSzb>E3{9VORmQy7vo)goBt|uA%L{OD6F#N#wI^|>SBZW`c zlNYwbL?nI1d@Wp`f9{A!1&4o7mzHTlCz9)H6`_ho$0 zj$R|vl7rQ!!!sqW0=oUX0{>AaX!M9P4+}ZYhc`yUdXV?Pq^k3s!cQf}KRn?NJW1}4 z43_h3I;u|?l%iAOiE%%LyD=I@zo0Wq?(HGgmHymRlF>6IMhvg;{MMSRotknfbs8_q zim?kLEA#f(>-QoWjvPkYgn0YQ;bRP|v!+9Ycs%)BZ^jm6k%zNpb)dZ|iI;+EdyjRS zl5#e4xdQJdvhlL6qVqnyaN8qgv^& z)p3n&BXz;a9h%?7N5luxE}_M;#+5>-%_{N%!8;Q17H7*XkR1Q}48{1;A;9 zf`KBqNQ-_aoBfVqO5?$@Joa4<;pzZyvKo-ZwDY8uC~=E1MJWyiEXM0k*u<@*mxU7C z$nR74vsC`g9O*yEU=55~{{w(ze2{TWplZqXox%DCiS3ye`zPc7eBk5-BmoOn2%NkC zO4E)yO^K-mk2 zuOR07z1@BBx%q}5!w@~F zTQjXwpYBO=hzVSCu(jwyy>|ntud|;irnl#~TGYxoR73s*2g}`mRabS7D+LL9`w9&L zf$aDusfVdmoW5zs*m^&!@8-rj^0H(Hp5+{@E$2W%iW*eg9+G8rwcg|`=cd2@;T<}x zvJ?ER*XowuG-2n7u>WuvlM2@(i<{CZD%eABmJvBz5c^^giGGnpNZ2fUa8Lxhz-;FE zDcaTOovqyA0}S-Z_G<2Gdqtxo>LY8vQ0b)WM%xL8E*vqD#jdpl3H8OF*eTxn#Hedy z6u%iP&eAH_H0r97Bh`wKU5~)0C)0j;<=97w56$}Brcm>)(Z|w{6dlz3pTFXn-q^W{ z)hq9m{@});&}xpJ;ozpo!K||e6Je51SquGmbZn;mN&#s-BG$&x#MFG~#t=u5--5YFHq72CZoVVV2uahxU=(J)SUiLE!G8e1pyKAJ;Fc(&_X_NP?WHS zP;lAm9`}{Ujh|z%+#S^|cq()Xy+9-@gbRD?NS}^;%rC^^NcC+3p{^RE@if9-nC$h! zD}p9M5y5aFvmk@gmpahdp40bB>N`ygpaNfxhkN#h6v~roC5RQ*N_$Tx8#W)N|EJ?3 zmEuQ!UCXllRL&|B9^~fZ{bjzm{PLEEH3#^lVL+x7XoR%-+I*hs;B6^660ZOSthR!X_b&FGsio0 zw=v9IWi;?~=$qbdoJSXs&11#zi1W9chA($C z)ep*lOYumaE54slm>r1h6x6qv@DV`hwLPvWwQn>Fe!)GMo>2U?@Xb2=QBL*tG1A+} zzGH@%^nZ{DE@2c31hr`86+pQ5xZ?dIv;(XUuP=Y=uoh4tQ(zlT9n5M--^pG;X|CJ# zeiX}%el|>w;uzrkXOE! zU&vMLtnWDkXI#LFg9~bqHa_BCPCO5V!9Fphv185um=b;EdwyZFo32cAK*S-Fb*S$FLAgc+ql2BY9j z*N>_9v!V- z@oUwMF$y(DLv#0c%?%o!e1VVEyHhlh9>CQ?osEte6SdwIJ(^6GbT`1JE$^iw8D)8Q zOkqv-yTg1`53e)F$H3SavJFk#02C8o?DM=UfzDaw`$mKl00KM!ECu%3nF{?KD8=s5 zX8fBx?&m{is5qoz#>QvK7pe1`lB=pJeTUDbJR^^S#Uc9rJOD!FVjBW}2shAq3N({) z@&Vfr@QZ#Ng8uCf^j9%c1}!9z>REo%kcIFgkeOj8n2G)D&27M7Y+Se4nF;p+FacDoryZd9T$nN$pj z+u@Z|c^l>HU6nj{2nS;7G(k9W7l z(>#p&7G9^dGQHuc$3b7HGkWOmnT?Dtnr}H3{-}9xFO*mu{`R2MZc4Txg*hI%gkb#Q z{W|K=+(-haU=j7J?0ke}4wwnu?HI{VSg(Evjq~dwW8ajNdkg0zWe zog9XCf;%QT3hPj^5$!d#r_rOn1lpdxwQb=FfpBN88U*{n#Q>;p07eheX2%ZEGsL$L z-%NbhGcYTF!CM4=m0*7RFhM@AFMKCNoU7`w2I zS?5k0H;5B#-%xRwzrX#g^$q}tKP$aly4v^IobOOgKcRWMoUa8^Vqph!>Rg%|$Fi_B zwG+L33dC%JTcEf(fIdAgu)czHL|q*Im#^;6tna9nuSZDLvzjb6b30AeY*i8j+nwdG zo3-rG1RL85wIx;DPhE<7Gc%z_pkT2niI5JyVNpGQkGR`lK}>t9@VU<`iCL6X%iK2W zK(i=`ID9~4bCL+bCkJCzV5(h33K?Mm)4usgGz()+9UhZV{)F7O&q>WW%*8R4G>Nov zO2pwe>w7){u4FDGv%^e+5Iqy4@Ab@+;8f9}(71idwSQepZAoP52|Odk7Gi&Sw(@CW zamCynR|3&x$6=~2dLNEvD0jjyS_B~-Z!NDmbbPIJ&ZLpDXuX+F^g-$ojTO<_{A=u8 zul=mB+szwE&Xu{sshQs@WMFZ|Dc`L+_%g-!2vqK}IG*80<6IOu?9ZYABZKn@=0?O1 z`dye3KqOuQzue~$j9|&mO%$lP(-rFLy86P+R+oKQkWbttTl^;_j~{TV-$R)1wGS}M z%%8+CK;zb#qsa389T!o|k76iTB)<#M-x<~X=RW%1h;;CZm%hT{Nz50l1o2`SuJ`-# zC_j+WK$Q*iRJ|@>tA_{EsFc-1!}g%_W>uS#5eXv&()|RUQPk5u+Ez_=5IxPdj!t@2 zMP}L4Rcq#yl_`mk7lOBLMv^Lhp`97lXRV|7Mu^;Zeb)_cc(vz!A+dTEJo?xfrpuIP$HFnWQo$XOtqoYx{dPXYQpjFfInx&k(&&&n#DF`(5wDHUPfmYhZ(?pKWkhILXFeY$@pB zrCkloC7k<+C^$qHa|xGulE_t9#aJ%|KHyz>&*qo9`uELwaWTN*JU~Qjf(fG~}|JR@Iul&!C#}CpSYu;>h;0EnlK`VT)6-BJEq0{l& zzr#|h-F90qKZ7I7AgIC?Gq4{76MHaXp^-+&uVZQK{uWxRK#*OQ?|wgA|1J6@a=q(_ zFW$*JO>DnZY*Qc7&VCjG;Q5&kQUz+!^&r#L7T7xak$@a$W?y{n|KNO&sE#q&6HgWH z>WBn?p&EVb9P#U&#!oN#WH{fs1f=i-?bXR!*rB%%?tfzO+AYvq!A~h>>8p7cDefvq z(-FaEH?i^V_{p_cE#V=3g#~!}RT+1jTQxT)*bW^B_&ZO@M!6h!%S3zFp_{)>UVeuKod2RDPHI)l9>k=_}W>l-H#ZRTfm=Stz& zw=PR`&(ck&KD^u#yVDt`?&oCxDUi6IU95(!o&`tS#ZF;K!3RU+4lHFVcD<=4mTVVn zOBo|0%QJ#me%0EW11@w)2`mU%9bfqS^CwagQ0ZW}8Hz&1 | $HEAD -n 1` + # Check that this is likely to be GCC. +- $COMPILER --version 2>&1 | $GREP "Free Software Foundation" > /dev/null ++ $COMPILER --version 2>&1 | $GREP -E "(Free Software Foundation|clang)" > /dev/null + if test $? -ne 0; then + AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler.]) + AC_MSG_NOTICE([The result from running with --version was: "$COMPILER_VERSION_TEST"]) +@@ -458,7 +458,7 @@ + + # objcopy is used for moving debug symbols to separate files when + # full debug symbols are enabled. +- if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then ++ if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xbsd ; then + AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy]) + # Only call fixup if objcopy was found. + if test -n "$OBJCOPY"; then +@@ -526,9 +526,11 @@ + SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1' + SET_SHARED_LIBRARY_MAPFILE='' + SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' +- SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" + POST_STRIP_CMD="$STRIP -S" + fi ++ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then ++ SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" ++ fi + else + if test "x$OPENJDK_TARGET_OS" = xsolaris; then + # If it is not gcc, then assume it is the Oracle Solaris Studio Compiler +--- hotspot/make/bsd/makefiles/build_vm_def.sh ++++ hotspot/make/bsd/makefiles/build_vm_def.sh +@@ -1,12 +1,21 @@ + #!/bin/sh + + # If we're cross compiling use that path for nm +-if [ "$CROSS_COMPILE_ARCH" != "" ]; then ++if [ "$CROSS_COMPILE_ARCH" != "" ]; then + NM=$ALT_COMPILER_PATH/nm + else + NM=nm + fi + +-$NM -Uj $* | awk ' +- { if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 } +- ' ++case `uname` in ++ *BSD ) ++ $NM --defined-only $* | awk ' ++ { if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 ";" } ++ ' ++ ;; ++ Darwin ) ++ $NM -Uj $* | awk ' ++ { if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 } ++ ' ++ ;; ++esac +--- hotspot/make/bsd/makefiles/defs.make ++++ hotspot/make/bsd/makefiles/defs.make +@@ -254,7 +254,7 @@ + endif # BUILD_FLAVOR + endif # JDK_6_OR_EARLIER + +-JDK_INCLUDE_SUBDIR=bsd ++JDK_INCLUDE_SUBDIR=$(shell uname -s | ${TR} "[:upper:]" "[:lower:]") + + # Library suffix + ifeq ($(OS_VENDOR),Darwin) +--- hotspot/make/bsd/makefiles/gcc.make ++++ hotspot/make/bsd/makefiles/gcc.make +@@ -201,12 +201,15 @@ + endif + + ifeq ($(USE_CLANG), true) +- # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm' +- # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment') +- ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0" +- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mstack-alignment=16 +- else +- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mllvm -stack-alignment=16 ++ STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer ++ ifeq ($(OS_VENDOR), Darwin) ++ # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm' ++ # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment') ++ ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0" ++ STACK_ALIGNMENT_OPT += -mstack-alignment=16 ++ else ++ STACK_ALIGNMENT_OPT += -mllvm -stack-alignment=16 ++ endif + endif + endif + +--- hotspot/make/bsd/makefiles/launcher.make ++++ hotspot/make/bsd/makefiles/launcher.make +@@ -0,0 +1,117 @@ ++# ++# Copyright (c) 2005, 2012, 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. ++# ++# ++ ++# Rules to build gamma launcher, used by vm.make ++ ++ ++LAUNCHER_SCRIPT = hotspot ++LAUNCHER = gamma ++ ++LAUNCHERDIR := $(GAMMADIR)/src/os/posix/launcher ++LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher ++LAUNCHERFLAGS := $(ARCHFLAG) \ ++ -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \ ++ -I$(LAUNCHERDIR_SHARE) \ ++ -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \ ++ -DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \ ++ -DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \ ++ -DARCH=\"$(LIBARCH)\" \ ++ -DGAMMA \ ++ -DLAUNCHER_TYPE=\"gamma\" \ ++ -DLINK_INTO_$(LINK_INTO) \ ++ $(TARGET_DEFINES) ++# Give the launcher task_for_pid() privileges so that it can be used to run JStack, JInfo, et al. ++ifeq ($(OS_VENDOR), Darwin) ++LFLAGS_LAUNCHER += -sectcreate __TEXT __info_plist $(GAMMADIR)/src/os/bsd/launcher/Info-privileged.plist ++endif ++ ++ifeq ($(LINK_INTO),AOUT) ++ LAUNCHER.o = launcher.o $(JVM_OBJ_FILES) ++ LAUNCHER_MAPFILE = mapfile_reorder ++ LFLAGS_LAUNCHER$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LAUNCHER_MAPFILE)) ++ LFLAGS_LAUNCHER += $(SONAMEFLAG:SONAME=$(LIBJVM)) $(STATIC_LIBGCC) ++ LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS) ++else ++ LAUNCHER.o = launcher.o ++ LFLAGS_LAUNCHER += -L`pwd` ++ ++ # The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a ++ # freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting ++ # the library searchpath using ({DY}LD_LIBRARY_PATH) to find the local JVM ++ # first. Gamma dlopen()s libjava from $JAVA_HOME/jre/lib{/$arch}, which is ++ # statically linked with CoreFoundation framework libs. Unfortunately, gamma's ++ # unique searchpath results in some unresolved symbols in the framework ++ # libraries, because JDK libraries are inadvertently discovered first on the ++ # searchpath, e.g. libjpeg. On Mac OS X, filenames are case *insensitive*. ++ # So, the actual filename collision is libjpeg.dylib and libJPEG.dylib. ++ # To resolve this, gamma needs to also statically link with the CoreFoundation ++ # framework libraries. ++ ++ ifeq ($(OS_VENDOR),Darwin) ++ LFLAGS_LAUNCHER += -framework CoreFoundation ++ endif ++ ++ LIBS_LAUNCHER += -l$(JVM) $(LIBS) ++endif ++ ++LINK_LAUNCHER = $(LINK.CC) ++ ++LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CXX/PRE_HOOK) ++LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CXX/POST_HOOK) ++ ++LAUNCHER_OUT = launcher ++ ++SUFFIXES += .d ++ ++SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c") ++SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c") ++ ++OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE)) ++ ++DEPFILES := $(patsubst %.o,%.d,$(OBJS)) ++-include $(DEPFILES) ++ ++$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c ++ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); } ++ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS) ++ ++$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c ++ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); } ++ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS) ++ ++$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE) ++ $(QUIETLY) echo Linking launcher... ++ $(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK) ++ $(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(sort $(OBJS)) $(LIBS_LAUNCHER) ++ $(QUIETLY) $(LINK_LAUNCHER/POST_HOOK) ++ # Sign the launcher with the development certificate (if present) so that it can be used ++ # to run JStack, JInfo, et al. ++ $(QUIETLY) -codesign -s openjdk_codesign $@ ++ ++$(LAUNCHER): $(LAUNCHER_SCRIPT) ++ ++$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script ++ $(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@ ++ $(QUIETLY) chmod +x $@ ++ +--- hotspot/make/bsd/makefiles/mapfile-vers-debug ++++ hotspot/make/bsd/makefiles/mapfile-vers-debug +@@ -24,238 +24,245 @@ + # Only used for OSX/Darwin builds + + # Define public interface. +- # _JNI +- _JNI_CreateJavaVM +- _JNI_GetCreatedJavaVMs +- _JNI_GetDefaultJavaVMInitArgs +- +- # _JVM +- _JVM_Accept +- _JVM_ActiveProcessorCount +- _JVM_AllocateNewArray +- _JVM_AllocateNewObject +- _JVM_ArrayCopy +- _JVM_AssertionStatusDirectives +- _JVM_Available +- _JVM_Bind +- _JVM_ClassDepth +- _JVM_ClassLoaderDepth +- _JVM_Clone +- _JVM_Close +- _JVM_CX8Field +- _JVM_CompileClass +- _JVM_CompileClasses +- _JVM_CompilerCommand +- _JVM_Connect +- _JVM_ConstantPoolGetClassAt +- _JVM_ConstantPoolGetClassAtIfLoaded +- _JVM_ConstantPoolGetDoubleAt +- _JVM_ConstantPoolGetFieldAt +- _JVM_ConstantPoolGetFieldAtIfLoaded +- _JVM_ConstantPoolGetFloatAt +- _JVM_ConstantPoolGetIntAt +- _JVM_ConstantPoolGetLongAt +- _JVM_ConstantPoolGetMethodAt +- _JVM_ConstantPoolGetMethodAtIfLoaded +- _JVM_ConstantPoolGetMemberRefInfoAt +- _JVM_ConstantPoolGetSize +- _JVM_ConstantPoolGetStringAt +- _JVM_ConstantPoolGetUTF8At +- _JVM_CountStackFrames +- _JVM_CurrentClassLoader +- _JVM_CurrentLoadedClass +- _JVM_CurrentThread +- _JVM_CurrentTimeMillis +- _JVM_DefineClass +- _JVM_DefineClassWithSource +- _JVM_DefineClassWithSourceCond +- _JVM_DesiredAssertionStatus +- _JVM_DisableCompiler +- _JVM_DoPrivileged +- _JVM_DTraceGetVersion +- _JVM_DTraceActivate +- _JVM_DTraceIsProbeEnabled +- _JVM_DTraceIsSupported +- _JVM_DTraceDispose +- _JVM_DumpAllStacks +- _JVM_DumpThreads +- _JVM_EnableCompiler +- _JVM_Exit +- _JVM_FillInStackTrace +- _JVM_FindClassFromClass +- _JVM_FindClassFromClassLoader +- _JVM_FindClassFromBootLoader +- _JVM_FindLibraryEntry +- _JVM_FindLoadedClass +- _JVM_FindPrimitiveClass +- _JVM_FindSignal +- _JVM_FreeMemory +- _JVM_GC +- _JVM_GetAllThreads +- _JVM_GetArrayElement +- _JVM_GetArrayLength +- _JVM_GetCPClassNameUTF +- _JVM_GetCPFieldClassNameUTF +- _JVM_GetCPFieldModifiers +- _JVM_GetCPFieldNameUTF +- _JVM_GetCPFieldSignatureUTF +- _JVM_GetCPMethodClassNameUTF +- _JVM_GetCPMethodModifiers +- _JVM_GetCPMethodNameUTF +- _JVM_GetCPMethodSignatureUTF +- _JVM_GetCallerClass +- _JVM_GetClassAccessFlags +- _JVM_GetClassAnnotations +- _JVM_GetClassCPEntriesCount +- _JVM_GetClassCPTypes +- _JVM_GetClassConstantPool +- _JVM_GetClassContext +- _JVM_GetClassDeclaredConstructors +- _JVM_GetClassDeclaredFields +- _JVM_GetClassDeclaredMethods +- _JVM_GetClassFieldsCount +- _JVM_GetClassInterfaces +- _JVM_GetClassLoader +- _JVM_GetClassMethodsCount +- _JVM_GetClassModifiers +- _JVM_GetClassName +- _JVM_GetClassNameUTF +- _JVM_GetClassSignature +- _JVM_GetClassSigners +- _JVM_GetClassTypeAnnotations +- _JVM_GetComponentType +- _JVM_GetDeclaredClasses +- _JVM_GetDeclaringClass +- _JVM_GetEnclosingMethodInfo +- _JVM_GetFieldAnnotations +- _JVM_GetFieldIxModifiers +- _JVM_GetFieldTypeAnnotations +- _JVM_GetHostName +- _JVM_GetInheritedAccessControlContext +- _JVM_GetInterfaceVersion +- _JVM_GetLastErrorString +- _JVM_GetManagement +- _JVM_GetMethodAnnotations +- _JVM_GetMethodDefaultAnnotationValue +- _JVM_GetMethodIxArgsSize +- _JVM_GetMethodIxByteCode +- _JVM_GetMethodIxByteCodeLength +- _JVM_GetMethodIxExceptionIndexes +- _JVM_GetMethodIxExceptionTableEntry +- _JVM_GetMethodIxExceptionTableLength +- _JVM_GetMethodIxExceptionsCount +- _JVM_GetMethodIxLocalsCount +- _JVM_GetMethodIxMaxStack +- _JVM_GetMethodIxModifiers +- _JVM_GetMethodIxNameUTF +- _JVM_GetMethodIxSignatureUTF +- _JVM_GetMethodParameterAnnotations +- _JVM_GetMethodParameters +- _JVM_GetMethodTypeAnnotations +- _JVM_GetPrimitiveArrayElement +- _JVM_GetProtectionDomain +- _JVM_GetSockName +- _JVM_GetSockOpt +- _JVM_GetStackAccessControlContext +- _JVM_GetStackTraceDepth +- _JVM_GetStackTraceElement +- _JVM_GetSystemPackage +- _JVM_GetSystemPackages +- _JVM_GetThreadStateNames +- _JVM_GetThreadStateValues +- _JVM_GetVersionInfo +- _JVM_Halt +- _JVM_HoldsLock +- _JVM_IHashCode +- _JVM_InitAgentProperties +- _JVM_InitProperties +- _JVM_InitializeCompiler +- _JVM_InitializeSocketLibrary +- _JVM_InternString +- _JVM_Interrupt +- _JVM_InvokeMethod +- _JVM_IsArrayClass +- _JVM_IsConstructorIx +- _JVM_IsInterface +- _JVM_IsInterrupted +- _JVM_IsNaN +- _JVM_IsPrimitiveClass +- _JVM_IsSameClassPackage +- _JVM_IsSilentCompiler +- _JVM_IsSupportedJNIVersion +- _JVM_IsThreadAlive +- _JVM_IsVMGeneratedMethodIx +- _JVM_LatestUserDefinedLoader +- _JVM_Listen +- _JVM_LoadClass0 +- _JVM_LoadLibrary +- _JVM_Lseek +- _JVM_MaxObjectInspectionAge +- _JVM_MaxMemory +- _JVM_MonitorNotify +- _JVM_MonitorNotifyAll +- _JVM_MonitorWait +- _JVM_NanoTime +- _JVM_NativePath +- _JVM_NewArray +- _JVM_NewInstanceFromConstructor +- _JVM_NewMultiArray +- _JVM_OnExit +- _JVM_Open +- _JVM_RaiseSignal +- _JVM_RawMonitorCreate +- _JVM_RawMonitorDestroy +- _JVM_RawMonitorEnter +- _JVM_RawMonitorExit +- _JVM_Read +- _JVM_Recv +- _JVM_RecvFrom +- _JVM_RegisterSignal +- _JVM_ReleaseUTF +- _JVM_ResolveClass +- _JVM_ResumeThread +- _JVM_Send +- _JVM_SendTo +- _JVM_SetArrayElement +- _JVM_SetClassSigners +- _JVM_SetLength +- _JVM_SetNativeThreadName +- _JVM_SetPrimitiveArrayElement +- _JVM_SetSockOpt +- _JVM_SetThreadPriority +- _JVM_Sleep +- _JVM_Socket +- _JVM_SocketAvailable +- _JVM_SocketClose +- _JVM_SocketShutdown +- _JVM_StartThread +- _JVM_StopThread +- _JVM_SuspendThread +- _JVM_SupportsCX8 +- _JVM_Sync +- _JVM_Timeout +- _JVM_TotalMemory +- _JVM_TraceInstructions +- _JVM_TraceMethodCalls +- _JVM_UnloadLibrary +- _JVM_Write +- _JVM_Yield +- _JVM_handle_bsd_signal +- +- # debug _JVM +- _JVM_AccessVMBooleanFlag +- _JVM_AccessVMIntFlag +- _JVM_VMBreakPoint ++ ++SUNWprivate_1.1 { ++ global: ++ # JNI ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; ++ ++ # JVM ++ JVM_Accept; ++ JVM_ActiveProcessorCount; ++ JVM_AllocateNewArray; ++ JVM_AllocateNewObject; ++ JVM_ArrayCopy; ++ JVM_AssertionStatusDirectives; ++ JVM_Available; ++ JVM_Bind; ++ JVM_ClassDepth; ++ JVM_ClassLoaderDepth; ++ JVM_Clone; ++ JVM_Close; ++ JVM_CX8Field; ++ JVM_CompileClass; ++ JVM_CompileClasses; ++ JVM_CompilerCommand; ++ JVM_Connect; ++ JVM_ConstantPoolGetClassAt; ++ JVM_ConstantPoolGetClassAtIfLoaded; ++ JVM_ConstantPoolGetDoubleAt; ++ JVM_ConstantPoolGetFieldAt; ++ JVM_ConstantPoolGetFieldAtIfLoaded; ++ JVM_ConstantPoolGetFloatAt; ++ JVM_ConstantPoolGetIntAt; ++ JVM_ConstantPoolGetLongAt; ++ JVM_ConstantPoolGetMethodAt; ++ JVM_ConstantPoolGetMethodAtIfLoaded; ++ JVM_ConstantPoolGetMemberRefInfoAt; ++ JVM_ConstantPoolGetSize; ++ JVM_ConstantPoolGetStringAt; ++ JVM_ConstantPoolGetUTF8At; ++ JVM_CountStackFrames; ++ JVM_CurrentClassLoader; ++ JVM_CurrentLoadedClass; ++ JVM_CurrentThread; ++ JVM_CurrentTimeMillis; ++ JVM_DefineClass; ++ JVM_DefineClassWithSource; ++ JVM_DefineClassWithSourceCond; ++ JVM_DesiredAssertionStatus; ++ JVM_DisableCompiler; ++ JVM_DoPrivileged; ++ JVM_DTraceGetVersion; ++ JVM_DTraceActivate; ++ JVM_DTraceIsProbeEnabled; ++ JVM_DTraceIsSupported; ++ JVM_DTraceDispose; ++ JVM_DumpAllStacks; ++ JVM_DumpThreads; ++ JVM_EnableCompiler; ++ JVM_Exit; ++ JVM_FillInStackTrace; ++ JVM_FindClassFromClass; ++ JVM_FindClassFromClassLoader; ++ JVM_FindClassFromBootLoader; ++ JVM_FindLibraryEntry; ++ JVM_FindLoadedClass; ++ JVM_FindPrimitiveClass; ++ JVM_FindSignal; ++ JVM_FreeMemory; ++ JVM_GC; ++ JVM_GetAllThreads; ++ JVM_GetArrayElement; ++ JVM_GetArrayLength; ++ JVM_GetCPClassNameUTF; ++ JVM_GetCPFieldClassNameUTF; ++ JVM_GetCPFieldModifiers; ++ JVM_GetCPFieldNameUTF; ++ JVM_GetCPFieldSignatureUTF; ++ JVM_GetCPMethodClassNameUTF; ++ JVM_GetCPMethodModifiers; ++ JVM_GetCPMethodNameUTF; ++ JVM_GetCPMethodSignatureUTF; ++ JVM_GetCallerClass; ++ JVM_GetClassAccessFlags; ++ JVM_GetClassAnnotations; ++ JVM_GetClassCPEntriesCount; ++ JVM_GetClassCPTypes; ++ JVM_GetClassConstantPool; ++ JVM_GetClassContext; ++ JVM_GetClassDeclaredConstructors; ++ JVM_GetClassDeclaredFields; ++ JVM_GetClassDeclaredMethods; ++ JVM_GetClassFieldsCount; ++ JVM_GetClassInterfaces; ++ JVM_GetClassLoader; ++ JVM_GetClassMethodsCount; ++ JVM_GetClassModifiers; ++ JVM_GetClassName; ++ JVM_GetClassNameUTF; ++ JVM_GetClassSignature; ++ JVM_GetClassSigners; ++ JVM_GetClassTypeAnnotations; ++ JVM_GetComponentType; ++ JVM_GetDeclaredClasses; ++ JVM_GetDeclaringClass; ++ JVM_GetEnclosingMethodInfo; ++ JVM_GetFieldAnnotations; ++ JVM_GetFieldIxModifiers; ++ JVM_GetFieldTypeAnnotations; ++ JVM_GetHostName; ++ JVM_GetInheritedAccessControlContext; ++ JVM_GetInterfaceVersion; ++ JVM_GetLastErrorString; ++ JVM_GetManagement; ++ JVM_GetMethodAnnotations; ++ JVM_GetMethodDefaultAnnotationValue; ++ JVM_GetMethodIxArgsSize; ++ JVM_GetMethodIxByteCode; ++ JVM_GetMethodIxByteCodeLength; ++ JVM_GetMethodIxExceptionIndexes; ++ JVM_GetMethodIxExceptionTableEntry; ++ JVM_GetMethodIxExceptionTableLength; ++ JVM_GetMethodIxExceptionsCount; ++ JVM_GetMethodIxLocalsCount; ++ JVM_GetMethodIxMaxStack; ++ JVM_GetMethodIxModifiers; ++ JVM_GetMethodIxNameUTF; ++ JVM_GetMethodIxSignatureUTF; ++ JVM_GetMethodParameterAnnotations; ++ JVM_GetMethodParameters; ++ JVM_GetMethodTypeAnnotations; ++ JVM_GetPrimitiveArrayElement; ++ JVM_GetProtectionDomain; ++ JVM_GetSockName; ++ JVM_GetSockOpt; ++ JVM_GetStackAccessControlContext; ++ JVM_GetStackTraceDepth; ++ JVM_GetStackTraceElement; ++ JVM_GetSystemPackage; ++ JVM_GetSystemPackages; ++ JVM_GetThreadStateNames; ++ JVM_GetThreadStateValues; ++ JVM_GetVersionInfo; ++ JVM_Halt; ++ JVM_HoldsLock; ++ JVM_IHashCode; ++ JVM_InitAgentProperties; ++ JVM_InitProperties; ++ JVM_InitializeCompiler; ++ JVM_InitializeSocketLibrary; ++ JVM_InternString; ++ JVM_Interrupt; ++ JVM_InvokeMethod; ++ JVM_IsArrayClass; ++ JVM_IsConstructorIx; ++ JVM_IsInterface; ++ JVM_IsInterrupted; ++ JVM_IsNaN; ++ JVM_IsPrimitiveClass; ++ JVM_IsSameClassPackage; ++ JVM_IsSilentCompiler; ++ JVM_IsSupportedJNIVersion; ++ JVM_IsThreadAlive; ++ JVM_IsVMGeneratedMethodIx; ++ JVM_LatestUserDefinedLoader; ++ JVM_Listen; ++ JVM_LoadClass0; ++ JVM_LoadLibrary; ++ JVM_Lseek; ++ JVM_MaxObjectInspectionAge; ++ JVM_MaxMemory; ++ JVM_MonitorNotify; ++ JVM_MonitorNotifyAll; ++ JVM_MonitorWait; ++ JVM_NanoTime; ++ JVM_NativePath; ++ JVM_NewArray; ++ JVM_NewInstanceFromConstructor; ++ JVM_NewMultiArray; ++ JVM_OnExit; ++ JVM_Open; ++ JVM_RaiseSignal; ++ JVM_RawMonitorCreate; ++ JVM_RawMonitorDestroy; ++ JVM_RawMonitorEnter; ++ JVM_RawMonitorExit; ++ JVM_Read; ++ JVM_Recv; ++ JVM_RecvFrom; ++ JVM_RegisterSignal; ++ JVM_ReleaseUTF; ++ JVM_ResolveClass; ++ JVM_ResumeThread; ++ JVM_Send; ++ JVM_SendTo; ++ JVM_SetArrayElement; ++ JVM_SetClassSigners; ++ JVM_SetLength; ++ JVM_SetNativeThreadName; ++ JVM_SetPrimitiveArrayElement; ++ JVM_SetSockOpt; ++ JVM_SetThreadPriority; ++ JVM_Sleep; ++ JVM_Socket; ++ JVM_SocketAvailable; ++ JVM_SocketClose; ++ JVM_SocketShutdown; ++ JVM_StartThread; ++ JVM_StopThread; ++ JVM_SuspendThread; ++ JVM_SupportsCX8; ++ JVM_Sync; ++ JVM_Timeout; ++ JVM_TotalMemory; ++ JVM_TraceInstructions; ++ JVM_TraceMethodCalls; ++ JVM_UnloadLibrary; ++ JVM_Write; ++ JVM_Yield; ++ JVM_handle_bsd_signal; ++ ++ # debug JVM ++ JVM_AccessVMBooleanFlag; ++ JVM_AccessVMIntFlag; ++ JVM_VMBreakPoint; + + # miscellaneous functions +- _jio_fprintf +- _jio_printf +- _jio_snprintf +- _jio_vfprintf +- _jio_vsnprintf ++ jio_fprintf; ++ jio_printf; ++ jio_snprintf; ++ jio_vfprintf; ++ jio_vsnprintf; + + # This is for Forte Analyzer profiling support. +- _AsyncGetCallTrace ++ AsyncGetCallTrace; + + # INSERT VTABLE SYMBOLS HERE + ++ local: ++ *; ++}; ++ +--- hotspot/make/bsd/makefiles/mapfile-vers-product ++++ hotspot/make/bsd/makefiles/mapfile-vers-product +@@ -24,233 +24,239 @@ + # Only used for OSX/Darwin builds + + # Define public interface. +- # _JNI +- _JNI_CreateJavaVM +- _JNI_GetCreatedJavaVMs +- _JNI_GetDefaultJavaVMInitArgs +- +- # _JVM +- _JVM_Accept +- _JVM_ActiveProcessorCount +- _JVM_AllocateNewArray +- _JVM_AllocateNewObject +- _JVM_ArrayCopy +- _JVM_AssertionStatusDirectives +- _JVM_Available +- _JVM_Bind +- _JVM_ClassDepth +- _JVM_ClassLoaderDepth +- _JVM_Clone +- _JVM_Close +- _JVM_CX8Field +- _JVM_CompileClass +- _JVM_CompileClasses +- _JVM_CompilerCommand +- _JVM_Connect +- _JVM_ConstantPoolGetClassAt +- _JVM_ConstantPoolGetClassAtIfLoaded +- _JVM_ConstantPoolGetDoubleAt +- _JVM_ConstantPoolGetFieldAt +- _JVM_ConstantPoolGetFieldAtIfLoaded +- _JVM_ConstantPoolGetFloatAt +- _JVM_ConstantPoolGetIntAt +- _JVM_ConstantPoolGetLongAt +- _JVM_ConstantPoolGetMethodAt +- _JVM_ConstantPoolGetMethodAtIfLoaded +- _JVM_ConstantPoolGetMemberRefInfoAt +- _JVM_ConstantPoolGetSize +- _JVM_ConstantPoolGetStringAt +- _JVM_ConstantPoolGetUTF8At +- _JVM_CountStackFrames +- _JVM_CurrentClassLoader +- _JVM_CurrentLoadedClass +- _JVM_CurrentThread +- _JVM_CurrentTimeMillis +- _JVM_DefineClass +- _JVM_DefineClassWithSource +- _JVM_DefineClassWithSourceCond +- _JVM_DesiredAssertionStatus +- _JVM_DisableCompiler +- _JVM_DoPrivileged +- _JVM_DTraceGetVersion +- _JVM_DTraceActivate +- _JVM_DTraceIsProbeEnabled +- _JVM_DTraceIsSupported +- _JVM_DTraceDispose +- _JVM_DumpAllStacks +- _JVM_DumpThreads +- _JVM_EnableCompiler +- _JVM_Exit +- _JVM_FillInStackTrace +- _JVM_FindClassFromClass +- _JVM_FindClassFromClassLoader +- _JVM_FindClassFromBootLoader +- _JVM_FindLibraryEntry +- _JVM_FindLoadedClass +- _JVM_FindPrimitiveClass +- _JVM_FindSignal +- _JVM_FreeMemory +- _JVM_GC +- _JVM_GetAllThreads +- _JVM_GetArrayElement +- _JVM_GetArrayLength +- _JVM_GetCPClassNameUTF +- _JVM_GetCPFieldClassNameUTF +- _JVM_GetCPFieldModifiers +- _JVM_GetCPFieldNameUTF +- _JVM_GetCPFieldSignatureUTF +- _JVM_GetCPMethodClassNameUTF +- _JVM_GetCPMethodModifiers +- _JVM_GetCPMethodNameUTF +- _JVM_GetCPMethodSignatureUTF +- _JVM_GetCallerClass +- _JVM_GetClassAccessFlags +- _JVM_GetClassAnnotations +- _JVM_GetClassCPEntriesCount +- _JVM_GetClassCPTypes +- _JVM_GetClassConstantPool +- _JVM_GetClassContext +- _JVM_GetClassDeclaredConstructors +- _JVM_GetClassDeclaredFields +- _JVM_GetClassDeclaredMethods +- _JVM_GetClassFieldsCount +- _JVM_GetClassInterfaces +- _JVM_GetClassLoader +- _JVM_GetClassMethodsCount +- _JVM_GetClassModifiers +- _JVM_GetClassName +- _JVM_GetClassNameUTF +- _JVM_GetClassSignature +- _JVM_GetClassSigners +- _JVM_GetClassTypeAnnotations +- _JVM_GetComponentType +- _JVM_GetDeclaredClasses +- _JVM_GetDeclaringClass +- _JVM_GetEnclosingMethodInfo +- _JVM_GetFieldAnnotations +- _JVM_GetFieldIxModifiers +- _JVM_GetFieldTypeAnnotations +- _JVM_GetHostName +- _JVM_GetInheritedAccessControlContext +- _JVM_GetInterfaceVersion +- _JVM_GetLastErrorString +- _JVM_GetManagement +- _JVM_GetMethodAnnotations +- _JVM_GetMethodDefaultAnnotationValue +- _JVM_GetMethodIxArgsSize +- _JVM_GetMethodIxByteCode +- _JVM_GetMethodIxByteCodeLength +- _JVM_GetMethodIxExceptionIndexes +- _JVM_GetMethodIxExceptionTableEntry +- _JVM_GetMethodIxExceptionTableLength +- _JVM_GetMethodIxExceptionsCount +- _JVM_GetMethodIxLocalsCount +- _JVM_GetMethodIxMaxStack +- _JVM_GetMethodIxModifiers +- _JVM_GetMethodIxNameUTF +- _JVM_GetMethodIxSignatureUTF +- _JVM_GetMethodParameterAnnotations +- _JVM_GetMethodParameters +- _JVM_GetMethodTypeAnnotations +- _JVM_GetPrimitiveArrayElement +- _JVM_GetProtectionDomain +- _JVM_GetSockName +- _JVM_GetSockOpt +- _JVM_GetStackAccessControlContext +- _JVM_GetStackTraceDepth +- _JVM_GetStackTraceElement +- _JVM_GetSystemPackage +- _JVM_GetSystemPackages +- _JVM_GetThreadStateNames +- _JVM_GetThreadStateValues +- _JVM_GetVersionInfo +- _JVM_Halt +- _JVM_HoldsLock +- _JVM_IHashCode +- _JVM_InitAgentProperties +- _JVM_InitProperties +- _JVM_InitializeCompiler +- _JVM_InitializeSocketLibrary +- _JVM_InternString +- _JVM_Interrupt +- _JVM_InvokeMethod +- _JVM_IsArrayClass +- _JVM_IsConstructorIx +- _JVM_IsInterface +- _JVM_IsInterrupted +- _JVM_IsNaN +- _JVM_IsPrimitiveClass +- _JVM_IsSameClassPackage +- _JVM_IsSilentCompiler +- _JVM_IsSupportedJNIVersion +- _JVM_IsThreadAlive +- _JVM_IsVMGeneratedMethodIx +- _JVM_LatestUserDefinedLoader +- _JVM_Listen +- _JVM_LoadClass0 +- _JVM_LoadLibrary +- _JVM_Lseek +- _JVM_MaxObjectInspectionAge +- _JVM_MaxMemory +- _JVM_MonitorNotify +- _JVM_MonitorNotifyAll +- _JVM_MonitorWait +- _JVM_NanoTime +- _JVM_NativePath +- _JVM_NewArray +- _JVM_NewInstanceFromConstructor +- _JVM_NewMultiArray +- _JVM_OnExit +- _JVM_Open +- _JVM_RaiseSignal +- _JVM_RawMonitorCreate +- _JVM_RawMonitorDestroy +- _JVM_RawMonitorEnter +- _JVM_RawMonitorExit +- _JVM_Read +- _JVM_Recv +- _JVM_RecvFrom +- _JVM_RegisterSignal +- _JVM_ReleaseUTF +- _JVM_ResolveClass +- _JVM_ResumeThread +- _JVM_Send +- _JVM_SendTo +- _JVM_SetArrayElement +- _JVM_SetClassSigners +- _JVM_SetLength +- _JVM_SetNativeThreadName +- _JVM_SetPrimitiveArrayElement +- _JVM_SetSockOpt +- _JVM_SetThreadPriority +- _JVM_Sleep +- _JVM_Socket +- _JVM_SocketAvailable +- _JVM_SocketClose +- _JVM_SocketShutdown +- _JVM_StartThread +- _JVM_StopThread +- _JVM_SuspendThread +- _JVM_SupportsCX8 +- _JVM_Sync +- _JVM_Timeout +- _JVM_TotalMemory +- _JVM_TraceInstructions +- _JVM_TraceMethodCalls +- _JVM_UnloadLibrary +- _JVM_Write +- _JVM_Yield +- _JVM_handle_bsd_signal ++SUNWprivate_1.1 { ++ global: ++ # JNI ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; ++ ++ # JVM ++ JVM_Accept; ++ JVM_ActiveProcessorCount; ++ JVM_AllocateNewArray; ++ JVM_AllocateNewObject; ++ JVM_ArrayCopy; ++ JVM_AssertionStatusDirectives; ++ JVM_Available; ++ JVM_Bind; ++ JVM_ClassDepth; ++ JVM_ClassLoaderDepth; ++ JVM_Clone; ++ JVM_Close; ++ JVM_CX8Field; ++ JVM_CompileClass; ++ JVM_CompileClasses; ++ JVM_CompilerCommand; ++ JVM_Connect; ++ JVM_ConstantPoolGetClassAt; ++ JVM_ConstantPoolGetClassAtIfLoaded; ++ JVM_ConstantPoolGetDoubleAt; ++ JVM_ConstantPoolGetFieldAt; ++ JVM_ConstantPoolGetFieldAtIfLoaded; ++ JVM_ConstantPoolGetFloatAt; ++ JVM_ConstantPoolGetIntAt; ++ JVM_ConstantPoolGetLongAt; ++ JVM_ConstantPoolGetMethodAt; ++ JVM_ConstantPoolGetMethodAtIfLoaded; ++ JVM_ConstantPoolGetMemberRefInfoAt; ++ JVM_ConstantPoolGetSize; ++ JVM_ConstantPoolGetStringAt; ++ JVM_ConstantPoolGetUTF8At; ++ JVM_CountStackFrames; ++ JVM_CurrentClassLoader; ++ JVM_CurrentLoadedClass; ++ JVM_CurrentThread; ++ JVM_CurrentTimeMillis; ++ JVM_DefineClass; ++ JVM_DefineClassWithSource; ++ JVM_DefineClassWithSourceCond; ++ JVM_DesiredAssertionStatus; ++ JVM_DisableCompiler; ++ JVM_DoPrivileged; ++ JVM_DTraceGetVersion; ++ JVM_DTraceActivate; ++ JVM_DTraceIsProbeEnabled; ++ JVM_DTraceIsSupported; ++ JVM_DTraceDispose; ++ JVM_DumpAllStacks; ++ JVM_DumpThreads; ++ JVM_EnableCompiler; ++ JVM_Exit; ++ JVM_FillInStackTrace; ++ JVM_FindClassFromClass; ++ JVM_FindClassFromClassLoader; ++ JVM_FindClassFromBootLoader; ++ JVM_FindLibraryEntry; ++ JVM_FindLoadedClass; ++ JVM_FindPrimitiveClass; ++ JVM_FindSignal; ++ JVM_FreeMemory; ++ JVM_GC; ++ JVM_GetAllThreads; ++ JVM_GetArrayElement; ++ JVM_GetArrayLength; ++ JVM_GetCPClassNameUTF; ++ JVM_GetCPFieldClassNameUTF; ++ JVM_GetCPFieldModifiers; ++ JVM_GetCPFieldNameUTF; ++ JVM_GetCPFieldSignatureUTF; ++ JVM_GetCPMethodClassNameUTF; ++ JVM_GetCPMethodModifiers; ++ JVM_GetCPMethodNameUTF; ++ JVM_GetCPMethodSignatureUTF; ++ JVM_GetCallerClass; ++ JVM_GetClassAccessFlags; ++ JVM_GetClassAnnotations; ++ JVM_GetClassCPEntriesCount; ++ JVM_GetClassCPTypes; ++ JVM_GetClassConstantPool; ++ JVM_GetClassContext; ++ JVM_GetClassDeclaredConstructors; ++ JVM_GetClassDeclaredFields; ++ JVM_GetClassDeclaredMethods; ++ JVM_GetClassFieldsCount; ++ JVM_GetClassInterfaces; ++ JVM_GetClassLoader; ++ JVM_GetClassMethodsCount; ++ JVM_GetClassModifiers; ++ JVM_GetClassName; ++ JVM_GetClassNameUTF; ++ JVM_GetClassSignature; ++ JVM_GetClassSigners; ++ JVM_GetClassTypeAnnotations; ++ JVM_GetComponentType; ++ JVM_GetDeclaredClasses; ++ JVM_GetDeclaringClass; ++ JVM_GetEnclosingMethodInfo; ++ JVM_GetFieldAnnotations; ++ JVM_GetFieldIxModifiers; ++ JVM_GetFieldTypeAnnotations; ++ JVM_GetHostName; ++ JVM_GetInheritedAccessControlContext; ++ JVM_GetInterfaceVersion; ++ JVM_GetLastErrorString; ++ JVM_GetManagement; ++ JVM_GetMethodAnnotations; ++ JVM_GetMethodDefaultAnnotationValue; ++ JVM_GetMethodIxArgsSize; ++ JVM_GetMethodIxByteCode; ++ JVM_GetMethodIxByteCodeLength; ++ JVM_GetMethodIxExceptionIndexes; ++ JVM_GetMethodIxExceptionTableEntry; ++ JVM_GetMethodIxExceptionTableLength; ++ JVM_GetMethodIxExceptionsCount; ++ JVM_GetMethodIxLocalsCount; ++ JVM_GetMethodIxMaxStack; ++ JVM_GetMethodIxModifiers; ++ JVM_GetMethodIxNameUTF; ++ JVM_GetMethodIxSignatureUTF; ++ JVM_GetMethodParameterAnnotations; ++ JVM_GetMethodParameters; ++ JVM_GetMethodTypeAnnotations; ++ JVM_GetPrimitiveArrayElement; ++ JVM_GetProtectionDomain; ++ JVM_GetSockName; ++ JVM_GetSockOpt; ++ JVM_GetStackAccessControlContext; ++ JVM_GetStackTraceDepth; ++ JVM_GetStackTraceElement; ++ JVM_GetSystemPackage; ++ JVM_GetSystemPackages; ++ JVM_GetThreadStateNames; ++ JVM_GetThreadStateValues; ++ JVM_GetVersionInfo; ++ JVM_Halt; ++ JVM_HoldsLock; ++ JVM_IHashCode; ++ JVM_InitAgentProperties; ++ JVM_InitProperties; ++ JVM_InitializeCompiler; ++ JVM_InitializeSocketLibrary; ++ JVM_InternString; ++ JVM_Interrupt; ++ JVM_InvokeMethod; ++ JVM_IsArrayClass; ++ JVM_IsConstructorIx; ++ JVM_IsInterface; ++ JVM_IsInterrupted; ++ JVM_IsNaN; ++ JVM_IsPrimitiveClass; ++ JVM_IsSameClassPackage; ++ JVM_IsSilentCompiler; ++ JVM_IsSupportedJNIVersion; ++ JVM_IsThreadAlive; ++ JVM_IsVMGeneratedMethodIx; ++ JVM_LatestUserDefinedLoader; ++ JVM_Listen; ++ JVM_LoadClass0; ++ JVM_LoadLibrary; ++ JVM_Lseek; ++ JVM_MaxObjectInspectionAge; ++ JVM_MaxMemory; ++ JVM_MonitorNotify; ++ JVM_MonitorNotifyAll; ++ JVM_MonitorWait; ++ JVM_NanoTime; ++ JVM_NativePath; ++ JVM_NewArray; ++ JVM_NewInstanceFromConstructor; ++ JVM_NewMultiArray; ++ JVM_OnExit; ++ JVM_Open; ++ JVM_RaiseSignal; ++ JVM_RawMonitorCreate; ++ JVM_RawMonitorDestroy; ++ JVM_RawMonitorEnter; ++ JVM_RawMonitorExit; ++ JVM_Read; ++ JVM_Recv; ++ JVM_RecvFrom; ++ JVM_RegisterSignal; ++ JVM_ReleaseUTF; ++ JVM_ResolveClass; ++ JVM_ResumeThread; ++ JVM_Send; ++ JVM_SendTo; ++ JVM_SetArrayElement; ++ JVM_SetClassSigners; ++ JVM_SetLength; ++ JVM_SetNativeThreadName; ++ JVM_SetPrimitiveArrayElement; ++ JVM_SetSockOpt; ++ JVM_SetThreadPriority; ++ JVM_Sleep; ++ JVM_Socket; ++ JVM_SocketAvailable; ++ JVM_SocketClose; ++ JVM_SocketShutdown; ++ JVM_StartThread; ++ JVM_StopThread; ++ JVM_SuspendThread; ++ JVM_SupportsCX8; ++ JVM_Sync; ++ JVM_Timeout; ++ JVM_TotalMemory; ++ JVM_TraceInstructions; ++ JVM_TraceMethodCalls; ++ JVM_UnloadLibrary; ++ JVM_Write; ++ JVM_Yield; ++ JVM_handle_bsd_signal; + + # miscellaneous functions +- _jio_fprintf +- _jio_printf +- _jio_snprintf +- _jio_vfprintf +- _jio_vsnprintf ++ jio_fprintf; ++ jio_printf; ++ jio_snprintf; ++ jio_vfprintf; ++ jio_vsnprintf; + + # This is for Forte Analyzer profiling support. +- _AsyncGetCallTrace ++ AsyncGetCallTrace; + + # INSERT VTABLE SYMBOLS HERE + ++ local: ++ *; ++}; ++ +--- hotspot/make/bsd/makefiles/rules.make ++++ hotspot/make/bsd/makefiles/rules.make +@@ -34,7 +34,7 @@ + CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS) + CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS) + +-AS.S = $(AS) $(ASFLAGS) ++AS.S = $(AS) -x assembler-with-cpp $(ASFLAGS) + + COMPILE.CC = $(CC_COMPILE) -c + GENASM.CC = $(CC_COMPILE) -S +--- hotspot/src/cpu/x86/vm/jni_x86.h ++++ hotspot/src/cpu/x86/vm/jni_x86.h +@@ -34,7 +34,7 @@ + #ifndef __has_attribute + #define __has_attribute(x) 0 + #endif +-#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2))) || __has_attribute(visibility) ++#if (defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)))) || __has_attribute(visibility) + #define JNIEXPORT __attribute__((visibility("default"))) + #define JNIIMPORT __attribute__((visibility("default"))) + #else +--- hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp ++++ hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp +@@ -107,10 +107,6 @@ + return Address(rsp, Interpreter::expr_offset_in_bytes(2)); + } + +-static inline Address at_tos_p3() { +- return Address(rsp, Interpreter::expr_offset_in_bytes(3)); +-} +- + // Condition conversion + static Assembler::Condition j_not(TemplateTable::Condition cc) { + switch (cc) { +--- hotspot/src/cpu/x86/vm/x86_32.ad ++++ hotspot/src/cpu/x86/vm/x86_32.ad +@@ -1201,8 +1201,9 @@ + if( dst_second_rc == rc_int && src_second_rc == rc_stack ) + return impl_helper(cbuf,do_size,true ,ra_->reg2offset(src_second),dst_second,0x8B,"MOV ",size, st); + +- ++ assert(0," foo "); + Unimplemented(); ++ return 0; + } + + #ifndef PRODUCT +--- hotspot/src/os/bsd/vm/decoder_bsd.cpp ++++ hotspot/src/os/bsd/vm/decoder_bsd.cpp +@@ -0,0 +1,47 @@ ++/* ++ * Copyright (c) 1997, 2012, 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. ++ * ++ */ ++ ++#ifndef __APPLE__ ++#include "prims/jvm.h" ++#include "utilities/decoder_elf.hpp" ++ ++#include ++ ++bool ElfDecoder::demangle(const char* symbol, char *buf, int buflen) { ++ int status; ++ char* result; ++ size_t size = (size_t)buflen; ++ ++ // Don't pass buf to __cxa_demangle. In case of the 'buf' is too small, ++ // __cxa_demangle will call system "realloc" for additional memory, which ++ // may use different malloc/realloc mechanism that allocates 'buf'. ++ if ((result = abi::__cxa_demangle(symbol, NULL, NULL, &status)) != NULL) { ++ jio_snprintf(buf, buflen, "%s", result); ++ // call c library's free ++ ::free(result); ++ return true; ++ } ++ return false; ++} ++#endif +--- hotspot/src/os/bsd/vm/osThread_bsd.cpp ++++ hotspot/src/os/bsd/vm/osThread_bsd.cpp +@@ -30,7 +30,7 @@ + + void OSThread::pd_initialize() { + assert(this != NULL, "check"); +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(__FreeBSD__) + _thread_id = 0; + #else + _thread_id = NULL; +--- hotspot/src/os/bsd/vm/os_bsd.cpp ++++ hotspot/src/os/bsd/vm/os_bsd.cpp +@@ -102,6 +102,12 @@ + # include + # include + ++#if __FreeBSD_version > 900030 ++# include ++#else ++# include ++#endif ++ + #if defined(__FreeBSD__) || defined(__NetBSD__) + # include + #endif +@@ -434,8 +440,12 @@ + #else + ld_library_path = (char *) malloc(sizeof(REG_DIR) + sizeof("/lib/") + + strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH)); ++#ifdef __FreeBSD__ ++ sprintf(ld_library_path, DEFAULT_LIBPATH ":/usr/local/lib"); ++#else + sprintf(ld_library_path, REG_DIR "/lib/%s:" DEFAULT_LIBPATH, cpu_arch); + #endif ++#endif + + /* + * Get the user setting of LD_LIBRARY_PATH, and prepended it. It +@@ -1148,7 +1158,13 @@ + return retval; + + #elif __FreeBSD__ +- retval = syscall(SYS_thr_self); ++#if __FreeBSD_version > 900030 ++ return ::pthread_getthreadid_np(); ++#else ++ long tid; ++ thr_self(&tid); ++ return (pid_t)tid; ++#endif + #elif __OpenBSD__ + retval = syscall(SYS_getthrid); + #elif __NetBSD__ +@@ -1158,11 +1174,14 @@ + if (retval == -1) { + return getpid(); + } ++ return retval; + } + + intx os::current_thread_id() { +-#ifdef __APPLE__ ++#if defined(__APPLE__) + return (intx)::pthread_mach_thread_np(::pthread_self()); ++#elif defined(__FreeBSD__) ++ return os::Bsd::gettid(); + #else + return (intx)::pthread_self(); + #endif +@@ -1562,24 +1581,6 @@ + return dlsym(handle, name); + } + +- +-static bool _print_ascii_file(const char* filename, outputStream* st) { +- int fd = ::open(filename, O_RDONLY); +- if (fd == -1) { +- return false; +- } +- +- char buf[32]; +- int bytes; +- while ((bytes = ::read(fd, buf, sizeof(buf))) > 0) { +- st->print_raw(buf, bytes); +- } +- +- ::close(fd); +- +- return true; +-} +- + void os::print_dll_info(outputStream *st) { + st->print_cr("Dynamic libraries:"); + #ifdef RTLD_DI_LINKMAP +@@ -1629,14 +1630,14 @@ + } + + void os::print_os_info_brief(outputStream* st) { +- st->print("Bsd"); ++ st->print_cr("BSD"); + + os::Posix::print_uname_info(st); + } + + void os::print_os_info(outputStream* st) { + st->print("OS:"); +- st->print("Bsd"); ++ st->print_cr("BSD"); + + os::Posix::print_uname_info(st); + +@@ -1659,11 +1660,6 @@ + st->print("(" UINT64_FORMAT "k free)", + os::available_memory() >> 10); + st->cr(); +- +- // meminfo +- st->print("\n/proc/meminfo:\n"); +- _print_ascii_file("/proc/meminfo", st); +- st->cr(); + } + + // Taken from /usr/include/bits/siginfo.h Supposed to be architecture specific +@@ -1943,7 +1939,7 @@ + os_semaphore_t _semaphore; + }; + +-Semaphore::Semaphore() : _semaphore(0) { ++Semaphore::Semaphore() { + SEM_INIT(_semaphore, 0); + } + +@@ -2746,6 +2742,7 @@ + return OS_OK; + #elif defined(__FreeBSD__) + int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri); ++ return (ret == 0) ? OS_OK : OS_ERR; + #elif defined(__APPLE__) || defined(__NetBSD__) + struct sched_param sp; + int policy; +--- hotspot/src/os/bsd/vm/vmError_bsd.cpp ++++ hotspot/src/os/bsd/vm/vmError_bsd.cpp +@@ -44,7 +44,7 @@ + jio_snprintf(p, buflen - len, + "\n\n" + "Do you want to debug the problem?\n\n" +- "To debug, run 'gdb /proc/%d/exe %d'; then switch to thread " INTX_FORMAT " (" INTPTR_FORMAT ")\n" ++ "To debug, run 'gdb /proc/%d/file %d'; then switch to thread " INTX_FORMAT " (" INTPTR_FORMAT ")\n" + "Enter 'yes' to launch gdb automatically (PATH must include gdb)\n" + "Otherwise, press RETURN to abort...", + os::current_process_id(), os::current_process_id(), +@@ -54,7 +54,7 @@ + + if (yes) { + // yes, user asked VM to launch debugger +- jio_snprintf(buf, buflen, "gdb /proc/%d/exe %d", ++ jio_snprintf(buf, buflen, "gdb /proc/%d/file %d", + os::current_process_id(), os::current_process_id()); + + os::fork_and_exec(buf); +--- hotspot/src/share/vm/code/relocInfo.hpp ++++ hotspot/src/share/vm/code/relocInfo.hpp +@@ -364,7 +364,7 @@ + // "immediate" in the prefix header word itself. This optimization + // is invisible outside this module.) + +- inline friend relocInfo prefix_relocInfo(int datalen = 0); ++ inline friend relocInfo prefix_relocInfo(int datalen); + + protected: + // an immediate relocInfo optimizes a prefix with one 10-bit unsigned value +@@ -459,7 +459,7 @@ + return relocInfo(relocInfo::none, relocInfo::offset_limit() - relocInfo::offset_unit); + } + +-inline relocInfo prefix_relocInfo(int datalen) { ++inline relocInfo prefix_relocInfo(int datalen = 0) { + assert(relocInfo::fits_into_immediate(datalen), "datalen in limits"); + return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen); + } +--- hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp ++++ hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp +@@ -110,7 +110,7 @@ + if (e.should_commit()) { + e.set_gcId(_shared_gc_info.id()); + e.set_data(to_trace_struct(pf_info)); +- e.set_thread(pf_info.thread()->thread_id()); ++ e.set_thread((uintptr_t) pf_info.thread()->thread_id()); + e.commit(); + } + } +--- hotspot/src/share/vm/opto/node.cpp ++++ hotspot/src/share/vm/opto/node.cpp +@@ -285,6 +285,10 @@ + #ifdef _MSC_VER // the IDX_INIT hack falls foul of warning C4355 + #pragma warning( disable:4355 ) // 'this' : used in base member initializer list + #endif ++#ifdef __clang__ ++#pragma clang diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif + + // Out-of-line code from node constructors. + // Executed only when extra debug info. is being passed around. +@@ -468,6 +472,10 @@ + _in[6] = n6; if (n6 != NULL) n6->add_out((Node *)this); + } + ++#ifdef __clang__ ++#pragma clang diagnostic pop ++#endif ++ + + //------------------------------clone------------------------------------------ + // Clone a Node. +--- hotspot/src/share/vm/prims/jvmtiTagMap.cpp ++++ hotspot/src/share/vm/prims/jvmtiTagMap.cpp +@@ -2790,6 +2790,7 @@ + return true; + } + ++#ifdef ASSERT + // verify that a static oop field is in range + static inline bool verify_static_oop(InstanceKlass* ik, + oop mirror, int offset) { +@@ -2804,6 +2805,7 @@ + return false; + } + } ++#endif // #ifdef ASSERT + + // a class references its super class, interfaces, class loader, ... + // and finally its static fields +--- hotspot/src/share/vm/runtime/mutex.cpp ++++ hotspot/src/share/vm/runtime/mutex.cpp +@@ -280,16 +280,6 @@ + return x & 0x7FFFFFFF ; + } + +-static inline jint MarsagliaXOR (jint * const a) { +- jint x = *a ; +- if (x == 0) x = UNS(a)|1 ; +- x ^= x << 6; +- x ^= ((unsigned)x) >> 21; +- x ^= x << 7 ; +- *a = x ; +- return x & 0x7FFFFFFF ; +-} +- + static int Stall (int its) { + static volatile jint rv = 1 ; + volatile int OnFrame = 0 ; +--- hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp ++++ hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp +@@ -261,7 +261,7 @@ + #endif + + // GCC 4.3 does not allow 0.0/0.0 to produce a NAN value +-#if (__GNUC__ == 4) && (__GNUC_MINOR__ > 2) ++#if defined(__clang__) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 2)) + #define CAN_USE_NAN_DEFINE 1 + #endif + +--- jdk/make/CompileDemos.gmk ++++ jdk/make/CompileDemos.gmk +@@ -313,7 +313,7 @@ + $(eval $(call SetupJVMTIDemo,heapViewer, agent_util)) + $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \ + -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, C, \ +- -ldl, ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread)) ++ $(LIBDL), ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread)) + + $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo)) + $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo)) +--- jdk/make/CompileJavaClasses.gmk ++++ jdk/make/CompileJavaClasses.gmk +@@ -125,23 +125,32 @@ + sun/nio/fs/LinuxFileStore.java \ + sun/nio/fs/LinuxFileSystem.java \ + sun/nio/fs/LinuxFileSystemProvider.java \ +- sun/nio/fs/MagicFileTypeDetector.java \ + sun/nio/fs/LinuxNativeDispatcher.java \ + sun/nio/fs/LinuxUserDefinedFileAttributeView.java \ + sun/nio/fs/LinuxWatchService.java + endif + ++ifeq (, $(filter $(OPENJDK_TARGET_OS), linux bsd)) ++ EXFILES += sun/nio/fs/MagicFileTypeDetector.java ++endif ++ + ifneq ($(OPENJDK_TARGET_OS), macosx) ++ EXFILES += sun/nio/fs/MacOSXFileSystemProvider.java \ ++ sun/nio/fs/MacOSXFileSystem.java \ ++ sun/nio/fs/MacOSXNativeDispatcher.java ++endif ++ ++ifeq (, $(filter $(OPENJDK_TARGET_OS), bsd macosx)) + EXFILES += sun/nio/ch/BsdAsynchronousChannelProvider.java \ + sun/nio/ch/KQueue.java \ ++ sun/nio/ch/KQueueArrayWrapper.java \ + sun/nio/ch/KQueuePort.java \ ++ sun/nio/ch/KQueueSelectorImpl.java \ ++ sun/nio/ch/KQueueSelectorProvider.java \ + sun/nio/fs/BsdFileStore.java \ + sun/nio/fs/BsdFileSystem.java \ + sun/nio/fs/BsdFileSystemProvider.java \ + sun/nio/fs/BsdNativeDispatcher.java \ +- sun/nio/fs/MacOSXFileSystemProvider.java \ +- sun/nio/fs/MacOSXFileSystem.java \ +- sun/nio/fs/MacOSXNativeDispatcher.java \ + sun/tools/attach/BsdAttachProvider.java \ + sun/tools/attach/BsdVirtualMachine.java + endif +@@ -217,9 +226,9 @@ + # Exclude another implicitly not included file. + EXFILES += sun/util/locale/AsciiUtil.java + +-ifeq (, $(filter $(OPENJDK_TARGET_OS), solaris macosx)) ++ifeq (, $(filter $(OPENJDK_TARGET_OS), solaris bsd macosx)) + # +- # only solaris and macosx ++ # only solaris and BSD + # + EXFILES += sun/nio/fs/PollingWatchService.java + endif +@@ -259,21 +268,26 @@ + $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes + endif + +-MACOSX_SRC_DIRS := ++BSD_SRC_DIRS := ++ifneq (, $(filter $(OPENJDK_TARGET_OS), bsd macosx)) ++ BSD_SRC_DIRS += $(JDK_TOPDIR)/src/bsd/classes ++ ++ # these files are duplicated in BSD_SRC_DIRS ++ EXFILES += $(JDK_TOPDIR)/src/solaris/classes/java/net/DefaultInterface.java \ ++ $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java ++endif ++ + ifeq ($(OPENJDK_TARGET_OS), macosx) +- MACOSX_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/classes ++ BSD_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/classes + +- # this files are duplicated in MACOSX_SRC_DIRS +- EXFILES += $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java \ +- $(JDK_TOPDIR)/src/solaris/classes/sun/java2d/BackBufferCapsProvider.java \ +- $(JDK_TOPDIR)/src/solaris/classes/java/net/DefaultInterface.java \ ++ # these files are duplicated in BSD_SRC_DIRS ++ EXFILES += $(JDK_TOPDIR)/src/solaris/classes/sun/java2d/BackBufferCapsProvider.java \ + $(JDK_TOPDIR)/src/solaris/classes/java/lang/ClassLoaderHelper.java \ + $(JDK_TOPDIR)/src/solaris/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java \ + $(JDK_TOPDIR)/src/solaris/classes/sun/nio/fs/GnomeFileTypeDetector.java \ + $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/sctp/SctpChannelImpl.java \ + $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java \ + $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java +- + endif + + # The security classes should not end up in the classes directory as that will prevent them +@@ -312,7 +326,7 @@ + SETUP:=GENERATE_JDKBYTECODE,\ + SRC:=$(JDK_TOPDIR)/src/share/classes \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \ +- $(MACOSX_SRC_DIRS) \ ++ $(BSD_SRC_DIRS) \ + $(JDK_OUTPUTDIR)/gensrc \ + $(JDK_OUTPUTDIR)/gensrc_no_srczip \ + $(CLOSED_SRC_DIRS),\ +@@ -331,7 +345,7 @@ + SETUP := GENERATE_JDKBYTECODE, \ + SRC := $(JDK_TOPDIR)/src/share/classes \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \ +- $(MACOSX_SRC_DIRS) \ ++ $(BSD_SRC_DIRS) \ + $(CLOSED_SRC_DIRS), \ + INCLUDES := $(SECURITY_PKGS), \ + EXCLUDES := $(EXCLUDES), \ +--- jdk/make/CompileLaunchers.gmk ++++ jdk/make/CompileLaunchers.gmk +@@ -60,7 +60,7 @@ + # System.loadLibrary("jawt") first. This was the behaviour described in the + # devloper documentation of JAWT and what worked with OpenJDK6. + # +-ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris), ) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris bsd), ) + ORIGIN_ARG += $(call SET_EXECUTABLE_ORIGIN,$(ORIGIN_ROOT)/lib$(OPENJDK_TARGET_CPU_LIBDIR)) + endif + +@@ -150,11 +150,13 @@ + $2, \ + CFLAGS_linux := -fPIC, \ + CFLAGS_solaris := -KPIC -DHAVE_GETHRTIME, \ ++ CFLAGS_bsd := -fPIC, \ + LDFLAGS := $(LDFLAGS_JDKEXE) \ + $(ORIGIN_ARG) \ + $$($1_LDFLAGS), \ + LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_NAME,$1), \ + LDFLAGS_linux := -lpthread \ ++ LDFLAGS_bsd := -pthread \ + $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \ + LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \ + $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \ +@@ -165,6 +167,7 @@ + $(JDK_OUTPUTDIR)/objs/libjava/java.lib advapi32.lib $5, \ + LDFLAGS_SUFFIX_linux := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_solaris := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -lthread $(LIBDL) -lc, \ ++ LDFLAGS_SUFFIX_bsd := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/$1_objs$(OUTPUT_SUBDIR), \ + OUTPUT_DIR := $$($1_OUTPUT_DIR_ARG)$(OUTPUT_SUBDIR), \ + PROGRAM := $1, \ +@@ -457,6 +460,7 @@ + CFLAGS_linux := -fPIC, \ + CFLAGS_solaris := -KPIC, \ + CFLAGS_macosx := -fPIC, \ ++ CFLAGS_bsd := -fPIC, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libunpack/mapfile-vers-unpack200, \ + LDFLAGS := $(UNPACKEXE_ZIPOBJS), \ + LDFLAGS_windows := $(CXXFLAGS_JDKEXE), \ +@@ -465,6 +469,7 @@ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_linux := -lc, \ + LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \ ++ LDFLAGS_bsd := -lc, \ + LDFLAGS_SUFFIX := $(LIBCXX), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \ +@@ -522,6 +527,10 @@ + BUILD_JEXEC := 1 + endif # OPENJDK_TARGET_OS + ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ BUILD_JEXEC := 1 ++endif # OPENJDK_TARGET_OS ++ + # + # jdk/make/java/jexec/Makefile + # +@@ -554,6 +563,7 @@ + $(BUILD_JEXEC_INC), \ + CFLAGS_linux := -fPIC, \ + CFLAGS_solaris := -KPIC, \ ++ CFLAGS_bsd := -fPIC, \ + LDFLAGS := $(LDFLAGS_JDKEXE) \ + $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/jexec_obj, \ +@@ -576,6 +586,9 @@ + ifeq ($(OPENJDK_TARGET_OS), solaris) + BUILD_LAUNCHERS += $(JAVA_RMI_CGI) + endif ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ BUILD_LAUNCHERS += $(JAVA_RMI_CGI) ++endif + + # TODO: + # On windows java-rmi.cgi shouldn't be bundled since Java 1.2, but has been built all +@@ -601,11 +614,11 @@ + LINK_JSPAWNHELPER_OBJECTS := $(JDK_OUTPUTDIR)/objs/libjava/childproc.o + LINK_JSPAWNHELPER_FLAGS := + +-ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris), ) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris bsd), ) + BUILD_JSPAWNHELPER := 1 + endif + +-ifeq ($(OPENJDK_TARGET_OS), macosx) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx bsd), ) + BUILD_JSPAWNHELPER_DST_DIR := $(JDK_OUTPUTDIR)/lib + endif + +--- jdk/make/CopyFiles.gmk ++++ jdk/make/CopyFiles.gmk +@@ -31,6 +31,8 @@ + OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/win32 + else ifeq ($(OPENJDK_TARGET_OS), macosx) + OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/darwin ++else ifeq ($(OPENJDK_TARGET_OS), bsd) ++ OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/$(shell uname -s | ${TR} "[:upper:]" "[:lower:]") + endif + + # +@@ -323,23 +325,23 @@ + $(RM) $(@) + # Now check for other permutations + ifeq ($(JVM_VARIANT_SERVER), true) +- $(PRINTF) "-server KNOWN\n">>$(@) +- $(PRINTF) "-client ALIASED_TO -server\n">>$(@) ++ $(PRINTF) -- "-server KNOWN\n">>$(@) ++ $(PRINTF) -- "-client ALIASED_TO -server\n">>$(@) + ifeq ($(JVM_VARIANT_MINIMAL1), true) +- $(PRINTF) "-minimal KNOWN\n">>$(@) ++ $(PRINTF) -- "-minimal KNOWN\n">>$(@) + endif + else + ifeq ($(JVM_VARIANT_CLIENT), true) +- $(PRINTF) "-client KNOWN\n">>$(@) +- $(PRINTF) "-server ALIASED_TO -client\n">>$(@) ++ $(PRINTF) -- "-client KNOWN\n">>$(@) ++ $(PRINTF) -- "-server ALIASED_TO -client\n">>$(@) + ifeq ($(JVM_VARIANT_MINIMAL1), true) +- $(PRINTF) "-minimal KNOWN\n">>$(@) ++ $(PRINTF) -- "-minimal KNOWN\n">>$(@) + endif + else + ifeq ($(JVM_VARIANT_MINIMAL1), true) +- $(PRINTF) "-minimal KNOWN\n">>$(@) +- $(PRINTF) "-server ALIASED_TO -minimal\n">>$(@) +- $(PRINTF) "-client ALIASED_TO -minimal\n">>$(@) ++ $(PRINTF) -- "-minimal KNOWN\n">>$(@) ++ $(PRINTF) -- "-server ALIASED_TO -minimal\n">>$(@) ++ $(PRINTF) -- "-client ALIASED_TO -minimal\n">>$(@) + endif + endif + endif +--- jdk/make/Images.gmk ++++ jdk/make/Images.gmk +@@ -237,8 +237,11 @@ + ifeq ($(OPENJDK_TARGET_OS), linux) + JDK_LIB_FILES += jexec + endif ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ JDK_LIB_FILES += jexec ++endif + +-ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris),) # If Linux or Solaris ++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris bsd),) # If Linux, Solaris, or BSD + JDK_LIB_FILES += $(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \ + $(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) + endif +@@ -393,6 +396,10 @@ + MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc + MAN1_SUBDIR = man + endif ++ ifeq ($(OPENJDK_TARGET_OS), bsd) ++ MAN_SRC_DIR := $(MAN_SRC_BASEDIR)/bsd/doc ++ MAN1_SUBDIR := man ++ endif + + $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% + $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) +@@ -465,6 +472,16 @@ + $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja + endif + ++ ifeq ($(OPENJDK_TARGET_OS), bsd) ++ $(JRE_IMAGE_DIR)/man/ja: ++ $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) ++ $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja ++ ++ $(JDK_IMAGE_DIR)/man/ja: ++ $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) ++ $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja ++ endif ++ + ifeq ($(OPENJDK_TARGET_OS), linux) + JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ + $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ +@@ -497,6 +514,16 @@ + $(JDK_IMAGE_DIR)/man/ja + endif + ++ ifeq ($(OPENJDK_TARGET_OS), bsd) ++ JRE_MAN_PAGE_LIST := $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ ++ $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ ++ $(JRE_IMAGE_DIR)/man/ja ++ ++ JDK_MAN_PAGE_LIST := $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ ++ $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ ++ $(JDK_IMAGE_DIR)/man/ja ++ endif ++ + endif # Windows + + ################################################################################ +--- jdk/make/data/classlist/classlist.bsd ++++ jdk/make/data/classlist/classlist.bsd +@@ -0,0 +1,2803 @@ ++com/sun/java/swing/SwingUtilities3 ++com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI ++com/sun/swing/internal/plaf/basic/resources/basic ++com/sun/swing/internal/plaf/metal/resources/metal ++java/applet/Applet ++java/awt/AWTEvent ++java/awt/AWTEvent$1 ++java/awt/AWTEvent$2 ++java/awt/AWTEventMulticaster ++java/awt/AWTKeyStroke ++java/awt/AWTKeyStroke$1 ++java/awt/ActiveEvent ++java/awt/Adjustable ++java/awt/AlphaComposite ++java/awt/BasicStroke ++java/awt/BorderLayout ++java/awt/BufferCapabilities ++java/awt/Canvas ++java/awt/CardLayout ++java/awt/CardLayout$Card ++java/awt/Color ++java/awt/Component ++java/awt/Component$1 ++java/awt/Component$3 ++java/awt/Component$AWTTreeLock ++java/awt/Component$AccessibleAWTComponent ++java/awt/Component$BaselineResizeBehavior ++java/awt/Component$BltBufferStrategy ++java/awt/Component$BltSubRegionBufferStrategy ++java/awt/Component$DummyRequestFocusController ++java/awt/Component$FlipBufferStrategy ++java/awt/ComponentOrientation ++java/awt/Composite ++java/awt/Conditional ++java/awt/Container ++java/awt/Container$1 ++java/awt/Container$AccessibleAWTContainer ++java/awt/Container$EventTargetFilter ++java/awt/Container$MouseEventTargetFilter ++java/awt/ContainerOrderFocusTraversalPolicy ++java/awt/Cursor ++java/awt/Cursor$1 ++java/awt/DefaultFocusTraversalPolicy ++java/awt/DefaultKeyboardFocusManager ++java/awt/DefaultKeyboardFocusManager$1 ++java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent ++java/awt/DefaultKeyboardFocusManager$TypeAheadMarker ++java/awt/Dialog ++java/awt/Dialog$1 ++java/awt/Dialog$3 ++java/awt/Dialog$ModalExclusionType ++java/awt/Dialog$ModalityType ++java/awt/Dimension ++java/awt/Event ++java/awt/EventDispatchThread ++java/awt/EventDispatchThread$1 ++java/awt/EventDispatchThread$HierarchyEventFilter ++java/awt/EventFilter ++java/awt/EventFilter$FilterAction ++java/awt/EventQueue ++java/awt/EventQueue$1 ++java/awt/EventQueue$1AWTInvocationLock ++java/awt/EventQueue$2 ++java/awt/EventQueue$3 ++java/awt/EventQueue$4 ++java/awt/EventQueue$5 ++java/awt/FlowLayout ++java/awt/FocusTraversalPolicy ++java/awt/Font ++java/awt/Font$FontAccessImpl ++java/awt/FontFormatException ++java/awt/FontMetrics ++java/awt/Frame ++java/awt/Frame$1 ++java/awt/Graphics ++java/awt/Graphics2D ++java/awt/GraphicsCallback ++java/awt/GraphicsCallback$PaintCallback ++java/awt/GraphicsConfiguration ++java/awt/GraphicsDevice ++java/awt/GraphicsEnvironment ++java/awt/GraphicsEnvironment$1 ++java/awt/GridLayout ++java/awt/Image ++java/awt/Image$1 ++java/awt/ImageCapabilities ++java/awt/ImageMediaEntry ++java/awt/Insets ++java/awt/ItemSelectable ++java/awt/KeyEventDispatcher ++java/awt/KeyEventPostProcessor ++java/awt/KeyboardFocusManager ++java/awt/KeyboardFocusManager$1 ++java/awt/KeyboardFocusManager$2 ++java/awt/KeyboardFocusManager$3 ++java/awt/KeyboardFocusManager$HeavyweightFocusRequest ++java/awt/KeyboardFocusManager$LightweightFocusRequest ++java/awt/Label ++java/awt/LayoutManager ++java/awt/LayoutManager2 ++java/awt/LightweightDispatcher ++java/awt/LightweightDispatcher$1 ++java/awt/LightweightDispatcher$2 ++java/awt/MediaEntry ++java/awt/MediaTracker ++java/awt/MenuBar ++java/awt/MenuComponent ++java/awt/MenuContainer ++java/awt/ModalEventFilter ++java/awt/ModalEventFilter$1 ++java/awt/ModalEventFilter$ApplicationModalEventFilter ++java/awt/Paint ++java/awt/Panel ++java/awt/Point ++java/awt/PrintGraphics ++java/awt/Queue ++java/awt/Rectangle ++java/awt/RenderingHints ++java/awt/RenderingHints$Key ++java/awt/SecondaryLoop ++java/awt/SentEvent ++java/awt/SequencedEvent ++java/awt/SequencedEvent$1 ++java/awt/Shape ++java/awt/SplashScreen ++java/awt/Stroke ++java/awt/SystemColor ++java/awt/Toolkit ++java/awt/Toolkit$1 ++java/awt/Toolkit$2 ++java/awt/Toolkit$3 ++java/awt/Toolkit$4 ++java/awt/Toolkit$5 ++java/awt/Toolkit$DesktopPropertyChangeSupport ++java/awt/Toolkit$DesktopPropertyChangeSupport$1 ++java/awt/Toolkit$SelectiveAWTEventListener ++java/awt/Toolkit$ToolkitEventMulticaster ++java/awt/Transparency ++java/awt/TrayIcon ++java/awt/VKCollection ++java/awt/WaitDispatchSupport ++java/awt/WaitDispatchSupport$1 ++java/awt/WaitDispatchSupport$2 ++java/awt/WaitDispatchSupport$5 ++java/awt/Window ++java/awt/Window$1 ++java/awt/Window$1DisposeAction ++java/awt/Window$Type ++java/awt/Window$WindowDisposerRecord ++java/awt/color/ColorSpace ++java/awt/color/ICC_ColorSpace ++java/awt/color/ICC_Profile ++java/awt/color/ICC_Profile$1 ++java/awt/color/ICC_ProfileRGB ++java/awt/datatransfer/Clipboard ++java/awt/datatransfer/ClipboardOwner ++java/awt/datatransfer/DataFlavor ++java/awt/datatransfer/FlavorMap ++java/awt/datatransfer/FlavorTable ++java/awt/datatransfer/MimeType ++java/awt/datatransfer/MimeTypeParameterList ++java/awt/datatransfer/MimeTypeParseException ++java/awt/datatransfer/SystemFlavorMap ++java/awt/datatransfer/SystemFlavorMap$1 ++java/awt/datatransfer/SystemFlavorMap$2 ++java/awt/datatransfer/Transferable ++java/awt/dnd/DropTarget ++java/awt/dnd/DropTargetContext ++java/awt/dnd/DropTargetListener ++java/awt/dnd/peer/DragSourceContextPeer ++java/awt/dnd/peer/DropTargetContextPeer ++java/awt/dnd/peer/DropTargetPeer ++java/awt/event/AWTEventListener ++java/awt/event/AWTEventListenerProxy ++java/awt/event/ActionEvent ++java/awt/event/ActionListener ++java/awt/event/AdjustmentEvent ++java/awt/event/AdjustmentListener ++java/awt/event/ComponentAdapter ++java/awt/event/ComponentEvent ++java/awt/event/ComponentListener ++java/awt/event/ContainerEvent ++java/awt/event/ContainerListener ++java/awt/event/FocusAdapter ++java/awt/event/FocusEvent ++java/awt/event/FocusListener ++java/awt/event/HierarchyBoundsListener ++java/awt/event/HierarchyEvent ++java/awt/event/HierarchyListener ++java/awt/event/InputEvent ++java/awt/event/InputEvent$1 ++java/awt/event/InputMethodEvent ++java/awt/event/InputMethodListener ++java/awt/event/InvocationEvent ++java/awt/event/InvocationEvent$1 ++java/awt/event/ItemEvent ++java/awt/event/ItemListener ++java/awt/event/KeyAdapter ++java/awt/event/KeyEvent ++java/awt/event/KeyEvent$1 ++java/awt/event/KeyListener ++java/awt/event/MouseAdapter ++java/awt/event/MouseEvent ++java/awt/event/MouseListener ++java/awt/event/MouseMotionAdapter ++java/awt/event/MouseMotionListener ++java/awt/event/MouseWheelEvent ++java/awt/event/MouseWheelListener ++java/awt/event/NativeLibLoader ++java/awt/event/NativeLibLoader$1 ++java/awt/event/PaintEvent ++java/awt/event/TextListener ++java/awt/event/WindowAdapter ++java/awt/event/WindowEvent ++java/awt/event/WindowFocusListener ++java/awt/event/WindowListener ++java/awt/event/WindowStateListener ++java/awt/font/FontRenderContext ++java/awt/font/GlyphVector ++java/awt/font/LineMetrics ++java/awt/font/TextAttribute ++java/awt/geom/AffineTransform ++java/awt/geom/Dimension2D ++java/awt/geom/GeneralPath ++java/awt/geom/Line2D ++java/awt/geom/Line2D$Float ++java/awt/geom/Path2D ++java/awt/geom/Path2D$Float ++java/awt/geom/Path2D$Float$CopyIterator ++java/awt/geom/Path2D$Iterator ++java/awt/geom/PathIterator ++java/awt/geom/Point2D ++java/awt/geom/Point2D$Double ++java/awt/geom/Point2D$Float ++java/awt/geom/RectIterator ++java/awt/geom/Rectangle2D ++java/awt/geom/Rectangle2D$Double ++java/awt/geom/Rectangle2D$Float ++java/awt/geom/RectangularShape ++java/awt/im/InputContext ++java/awt/im/InputMethodRequests ++java/awt/im/spi/InputMethod ++java/awt/im/spi/InputMethodContext ++java/awt/im/spi/InputMethodDescriptor ++java/awt/image/BufferStrategy ++java/awt/image/BufferedImage ++java/awt/image/BufferedImage$1 ++java/awt/image/ColorModel ++java/awt/image/ColorModel$1 ++java/awt/image/ComponentSampleModel ++java/awt/image/DataBuffer ++java/awt/image/DataBuffer$1 ++java/awt/image/DataBufferByte ++java/awt/image/DataBufferInt ++java/awt/image/DirectColorModel ++java/awt/image/FilteredImageSource ++java/awt/image/ImageConsumer ++java/awt/image/ImageFilter ++java/awt/image/ImageObserver ++java/awt/image/ImageProducer ++java/awt/image/IndexColorModel ++java/awt/image/PackedColorModel ++java/awt/image/PixelInterleavedSampleModel ++java/awt/image/RGBImageFilter ++java/awt/image/Raster ++java/awt/image/RenderedImage ++java/awt/image/SampleModel ++java/awt/image/SinglePixelPackedSampleModel ++java/awt/image/VolatileImage ++java/awt/image/WritableRaster ++java/awt/image/WritableRenderedImage ++java/awt/peer/CanvasPeer ++java/awt/peer/ComponentPeer ++java/awt/peer/ContainerPeer ++java/awt/peer/DialogPeer ++java/awt/peer/FramePeer ++java/awt/peer/KeyboardFocusManagerPeer ++java/awt/peer/LabelPeer ++java/awt/peer/LightweightPeer ++java/awt/peer/PanelPeer ++java/awt/peer/SystemTrayPeer ++java/awt/peer/WindowPeer ++java/awt/print/PrinterGraphics ++java/beans/ChangeListenerMap ++java/beans/PropertyChangeEvent ++java/beans/PropertyChangeListener ++java/beans/PropertyChangeListenerProxy ++java/beans/PropertyChangeSupport ++java/beans/PropertyChangeSupport$PropertyChangeListenerMap ++java/beans/VetoableChangeListener ++java/io/Bits ++java/io/BufferedInputStream ++java/io/BufferedOutputStream ++java/io/BufferedReader ++java/io/BufferedWriter ++java/io/ByteArrayInputStream ++java/io/ByteArrayOutputStream ++java/io/Closeable ++java/io/DataInput ++java/io/DataInputStream ++java/io/DataOutput ++java/io/DataOutputStream ++java/io/DefaultFileSystem ++java/io/EOFException ++java/io/ExpiringCache ++java/io/ExpiringCache$1 ++java/io/ExpiringCache$Entry ++java/io/Externalizable ++java/io/File ++java/io/File$PathStatus ++java/io/FileDescriptor ++java/io/FileDescriptor$1 ++java/io/FileInputStream ++java/io/FileInputStream$1 ++java/io/FileNotFoundException ++java/io/FileOutputStream ++java/io/FileOutputStream$1 ++java/io/FilePermission ++java/io/FilePermission$1 ++java/io/FilePermissionCollection ++java/io/FileReader ++java/io/FileSystem ++java/io/FileWriter ++java/io/FilenameFilter ++java/io/FilterInputStream ++java/io/FilterOutputStream ++java/io/FilterReader ++java/io/Flushable ++java/io/IOException ++java/io/InputStream ++java/io/InputStreamReader ++java/io/InterruptedIOException ++java/io/NotSerializableException ++java/io/ObjectInput ++java/io/ObjectInputStream ++java/io/ObjectInputStream$BlockDataInputStream ++java/io/ObjectInputStream$GetField ++java/io/ObjectInputStream$GetFieldImpl ++java/io/ObjectInputStream$HandleTable ++java/io/ObjectInputStream$HandleTable$HandleList ++java/io/ObjectInputStream$PeekInputStream ++java/io/ObjectInputStream$ValidationList ++java/io/ObjectOutput ++java/io/ObjectOutputStream ++java/io/ObjectOutputStream$BlockDataOutputStream ++java/io/ObjectOutputStream$HandleTable ++java/io/ObjectOutputStream$ReplaceTable ++java/io/ObjectStreamClass ++java/io/ObjectStreamClass$1 ++java/io/ObjectStreamClass$2 ++java/io/ObjectStreamClass$3 ++java/io/ObjectStreamClass$4 ++java/io/ObjectStreamClass$5 ++java/io/ObjectStreamClass$Caches ++java/io/ObjectStreamClass$ClassDataSlot ++java/io/ObjectStreamClass$EntryFuture ++java/io/ObjectStreamClass$ExceptionInfo ++java/io/ObjectStreamClass$FieldReflector ++java/io/ObjectStreamClass$FieldReflectorKey ++java/io/ObjectStreamClass$MemberSignature ++java/io/ObjectStreamClass$WeakClassKey ++java/io/ObjectStreamConstants ++java/io/ObjectStreamException ++java/io/ObjectStreamField ++java/io/OutputStream ++java/io/OutputStreamWriter ++java/io/PrintStream ++java/io/PrintWriter ++java/io/PushbackInputStream ++java/io/RandomAccessFile ++java/io/RandomAccessFile$1 ++java/io/Reader ++java/io/SerialCallbackContext ++java/io/Serializable ++java/io/StreamTokenizer ++java/io/StringReader ++java/io/StringWriter ++java/io/UnixFileSystem ++java/io/UnsupportedEncodingException ++java/io/Writer ++java/lang/AbstractStringBuilder ++java/lang/Appendable ++java/lang/ApplicationShutdownHooks ++java/lang/ApplicationShutdownHooks$1 ++java/lang/ArithmeticException ++java/lang/ArrayIndexOutOfBoundsException ++java/lang/ArrayStoreException ++java/lang/AssertionError ++java/lang/AutoCloseable ++java/lang/Boolean ++java/lang/BootstrapMethodError ++java/lang/Byte ++java/lang/CharSequence ++java/lang/Character ++java/lang/Character$CharacterCache ++java/lang/CharacterData ++java/lang/CharacterData00 ++java/lang/CharacterDataLatin1 ++java/lang/Class ++java/lang/Class$1 ++java/lang/Class$3 ++java/lang/Class$4 ++java/lang/Class$AnnotationData ++java/lang/Class$Atomic ++java/lang/Class$ReflectionData ++java/lang/ClassCastException ++java/lang/ClassFormatError ++java/lang/ClassLoader ++java/lang/ClassLoader$2 ++java/lang/ClassLoader$3 ++java/lang/ClassLoader$NativeLibrary ++java/lang/ClassLoader$ParallelLoaders ++java/lang/ClassLoaderHelper ++java/lang/ClassNotFoundException ++java/lang/ClassValue$ClassValueMap ++java/lang/CloneNotSupportedException ++java/lang/Cloneable ++java/lang/Comparable ++java/lang/Compiler ++java/lang/Compiler$1 ++java/lang/Double ++java/lang/Enum ++java/lang/Error ++java/lang/Exception ++java/lang/ExceptionInInitializerError ++java/lang/Float ++java/lang/IllegalAccessError ++java/lang/IllegalAccessException ++java/lang/IllegalArgumentException ++java/lang/IllegalMonitorStateException ++java/lang/IllegalStateException ++java/lang/IncompatibleClassChangeError ++java/lang/IndexOutOfBoundsException ++java/lang/InheritableThreadLocal ++java/lang/InstantiationException ++java/lang/Integer ++java/lang/Integer$IntegerCache ++java/lang/InternalError ++java/lang/InterruptedException ++java/lang/Iterable ++java/lang/LinkageError ++java/lang/Long ++java/lang/Long$LongCache ++java/lang/Math ++java/lang/NoClassDefFoundError ++java/lang/NoSuchFieldException ++java/lang/NoSuchMethodError ++java/lang/NoSuchMethodException ++java/lang/NullPointerException ++java/lang/Number ++java/lang/NumberFormatException ++java/lang/Object ++java/lang/OutOfMemoryError ++java/lang/Package ++java/lang/Process ++java/lang/ProcessBuilder ++java/lang/ProcessBuilder$NullInputStream ++java/lang/ProcessBuilder$NullOutputStream ++java/lang/ProcessEnvironment ++java/lang/ProcessEnvironment$ExternalData ++java/lang/ProcessEnvironment$StringEnvironment ++java/lang/ProcessEnvironment$Value ++java/lang/ProcessEnvironment$Variable ++java/lang/ProcessImpl ++java/lang/Readable ++java/lang/ReflectiveOperationException ++java/lang/Runnable ++java/lang/Runtime ++java/lang/RuntimeException ++java/lang/RuntimePermission ++java/lang/SecurityException ++java/lang/SecurityManager ++java/lang/Short ++java/lang/Short$ShortCache ++java/lang/Shutdown ++java/lang/Shutdown$Lock ++java/lang/StackOverflowError ++java/lang/StackTraceElement ++java/lang/StrictMath ++java/lang/String ++java/lang/String$CaseInsensitiveComparator ++java/lang/StringBuffer ++java/lang/StringBuilder ++java/lang/StringCoding ++java/lang/StringCoding$StringDecoder ++java/lang/StringCoding$StringEncoder ++java/lang/StringIndexOutOfBoundsException ++java/lang/System ++java/lang/System$2 ++java/lang/SystemClassLoaderAction ++java/lang/Terminator ++java/lang/Terminator$1 ++java/lang/Thread ++java/lang/Thread$State ++java/lang/Thread$UncaughtExceptionHandler ++java/lang/ThreadDeath ++java/lang/ThreadGroup ++java/lang/ThreadLocal ++java/lang/ThreadLocal$ThreadLocalMap ++java/lang/ThreadLocal$ThreadLocalMap$Entry ++java/lang/Throwable ++java/lang/Throwable$PrintStreamOrWriter ++java/lang/Throwable$WrappedPrintStream ++java/lang/Throwable$WrappedPrintWriter ++java/lang/UNIXProcess ++java/lang/UNIXProcess$1 ++java/lang/UNIXProcess$2 ++java/lang/UNIXProcess$3 ++java/lang/UNIXProcess$4 ++java/lang/UNIXProcess$LaunchMechanism ++java/lang/UNIXProcess$ProcessPipeInputStream ++java/lang/UNIXProcess$ProcessPipeOutputStream ++java/lang/UNIXProcess$ProcessReaperThreadFactory ++java/lang/UNIXProcess$ProcessReaperThreadFactory$1 ++java/lang/UnsatisfiedLinkError ++java/lang/UnsupportedOperationException ++java/lang/VirtualMachineError ++java/lang/Void ++java/lang/annotation/Annotation ++java/lang/invoke/CallSite ++java/lang/invoke/ConstantCallSite ++java/lang/invoke/DirectMethodHandle ++java/lang/invoke/Invokers ++java/lang/invoke/LambdaForm ++java/lang/invoke/LambdaForm$NamedFunction ++java/lang/invoke/MemberName ++java/lang/invoke/MemberName$Factory ++java/lang/invoke/MethodHandle ++java/lang/invoke/MethodHandleImpl ++java/lang/invoke/MethodHandleNatives ++java/lang/invoke/MethodHandleStatics ++java/lang/invoke/MethodHandleStatics$1 ++java/lang/invoke/MethodType ++java/lang/invoke/MethodType$ConcurrentWeakInternSet ++java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry ++java/lang/invoke/MethodTypeForm ++java/lang/invoke/MutableCallSite ++java/lang/invoke/VolatileCallSite ++java/lang/ref/FinalReference ++java/lang/ref/Finalizer ++java/lang/ref/Finalizer$FinalizerThread ++java/lang/ref/PhantomReference ++java/lang/ref/Reference ++java/lang/ref/Reference$Lock ++java/lang/ref/Reference$ReferenceHandler ++java/lang/ref/ReferenceQueue ++java/lang/ref/ReferenceQueue$Lock ++java/lang/ref/ReferenceQueue$Null ++java/lang/ref/SoftReference ++java/lang/ref/WeakReference ++java/lang/reflect/AccessibleObject ++java/lang/reflect/AnnotatedElement ++java/lang/reflect/Array ++java/lang/reflect/Constructor ++java/lang/reflect/Executable ++java/lang/reflect/Field ++java/lang/reflect/GenericDeclaration ++java/lang/reflect/InvocationHandler ++java/lang/reflect/InvocationTargetException ++java/lang/reflect/Member ++java/lang/reflect/Method ++java/lang/reflect/Modifier ++java/lang/reflect/Parameter ++java/lang/reflect/Proxy ++java/lang/reflect/Proxy$KeyFactory ++java/lang/reflect/Proxy$ProxyClassFactory ++java/lang/reflect/ReflectAccess ++java/lang/reflect/ReflectPermission ++java/lang/reflect/Type ++java/lang/reflect/WeakCache ++java/math/BigInteger ++java/math/BigInteger$UnsafeHolder ++java/math/MutableBigInteger ++java/math/RoundingMode ++java/math/SignedMutableBigInteger ++java/net/AbstractPlainDatagramSocketImpl ++java/net/AbstractPlainDatagramSocketImpl$1 ++java/net/AbstractPlainSocketImpl ++java/net/AbstractPlainSocketImpl$1 ++java/net/Authenticator ++java/net/BindException ++java/net/ConnectException ++java/net/DatagramPacket ++java/net/DatagramPacket$1 ++java/net/DatagramSocket ++java/net/DatagramSocket$1 ++java/net/DatagramSocketImpl ++java/net/DefaultDatagramSocketImplFactory ++java/net/DefaultInterface ++java/net/FileNameMap ++java/net/HttpURLConnection ++java/net/Inet4Address ++java/net/Inet4AddressImpl ++java/net/Inet6Address ++java/net/Inet6Address$Inet6AddressHolder ++java/net/Inet6AddressImpl ++java/net/InetAddress ++java/net/InetAddress$1 ++java/net/InetAddress$2 ++java/net/InetAddress$Cache ++java/net/InetAddress$Cache$Type ++java/net/InetAddress$CacheEntry ++java/net/InetAddress$InetAddressHolder ++java/net/InetAddressImpl ++java/net/InetAddressImplFactory ++java/net/InetSocketAddress ++java/net/InetSocketAddress$InetSocketAddressHolder ++java/net/InterfaceAddress ++java/net/JarURLConnection ++java/net/MalformedURLException ++java/net/MulticastSocket ++java/net/NetworkInterface ++java/net/NetworkInterface$1 ++java/net/NetworkInterface$2 ++java/net/NoRouteToHostException ++java/net/Parts ++java/net/PlainDatagramSocketImpl ++java/net/PlainSocketImpl ++java/net/Proxy ++java/net/Proxy$Type ++java/net/ProxySelector ++java/net/ServerSocket ++java/net/Socket ++java/net/SocketAddress ++java/net/SocketException ++java/net/SocketImpl ++java/net/SocketImplFactory ++java/net/SocketOptions ++java/net/SocksConsts ++java/net/SocksSocketImpl ++java/net/SocksSocketImpl$3 ++java/net/URI ++java/net/URI$Parser ++java/net/URL ++java/net/URLClassLoader ++java/net/URLClassLoader$1 ++java/net/URLClassLoader$2 ++java/net/URLClassLoader$3 ++java/net/URLClassLoader$3$1 ++java/net/URLClassLoader$7 ++java/net/URLConnection ++java/net/URLConnection$1 ++java/net/URLStreamHandler ++java/net/URLStreamHandlerFactory ++java/net/UnknownHostException ++java/nio/Bits ++java/nio/Bits$1 ++java/nio/Buffer ++java/nio/BufferUnderflowException ++java/nio/ByteBuffer ++java/nio/ByteBufferAsIntBufferB ++java/nio/ByteBufferAsShortBufferB ++java/nio/ByteOrder ++java/nio/CharBuffer ++java/nio/DirectByteBuffer ++java/nio/DirectByteBuffer$Deallocator ++java/nio/DirectByteBufferR ++java/nio/DirectLongBufferU ++java/nio/HeapByteBuffer ++java/nio/HeapCharBuffer ++java/nio/IntBuffer ++java/nio/LongBuffer ++java/nio/MappedByteBuffer ++java/nio/ShortBuffer ++java/nio/channels/ByteChannel ++java/nio/channels/Channel ++java/nio/channels/FileChannel ++java/nio/channels/FileChannel$MapMode ++java/nio/channels/GatheringByteChannel ++java/nio/channels/InterruptibleChannel ++java/nio/channels/NetworkChannel ++java/nio/channels/ReadableByteChannel ++java/nio/channels/ScatteringByteChannel ++java/nio/channels/SeekableByteChannel ++java/nio/channels/SelectableChannel ++java/nio/channels/SocketChannel ++java/nio/channels/WritableByteChannel ++java/nio/channels/spi/AbstractInterruptibleChannel ++java/nio/channels/spi/AbstractInterruptibleChannel$1 ++java/nio/channels/spi/AbstractSelectableChannel ++java/nio/charset/Charset ++java/nio/charset/Charset$ExtendedProviderHolder ++java/nio/charset/Charset$ExtendedProviderHolder$1 ++java/nio/charset/CharsetDecoder ++java/nio/charset/CharsetEncoder ++java/nio/charset/CoderResult ++java/nio/charset/CoderResult$1 ++java/nio/charset/CoderResult$2 ++java/nio/charset/CoderResult$Cache ++java/nio/charset/CodingErrorAction ++java/nio/charset/StandardCharsets ++java/nio/charset/spi/CharsetProvider ++java/nio/file/Path ++java/nio/file/Watchable ++java/nio/file/attribute/FileAttribute ++java/rmi/MarshalledObject ++java/rmi/Remote ++java/security/AccessControlContext ++java/security/AccessControlException ++java/security/AccessController ++java/security/AlgorithmParameters ++java/security/AlgorithmParametersSpi ++java/security/AllPermission ++java/security/AllPermissionCollection ++java/security/AuthProvider ++java/security/BasicPermission ++java/security/BasicPermissionCollection ++java/security/CodeSigner ++java/security/CodeSource ++java/security/DigestException ++java/security/GeneralSecurityException ++java/security/Guard ++java/security/InvalidAlgorithmParameterException ++java/security/InvalidKeyException ++java/security/InvalidParameterException ++java/security/Key ++java/security/KeyException ++java/security/KeyFactory ++java/security/KeyFactorySpi ++java/security/MessageDigest ++java/security/MessageDigest$Delegate ++java/security/MessageDigestSpi ++java/security/NoSuchAlgorithmException ++java/security/Permission ++java/security/PermissionCollection ++java/security/Permissions ++java/security/Principal ++java/security/PrivateKey ++java/security/PrivilegedAction ++java/security/PrivilegedActionException ++java/security/PrivilegedExceptionAction ++java/security/ProtectionDomain ++java/security/ProtectionDomain$1 ++java/security/ProtectionDomain$3 ++java/security/ProtectionDomain$Key ++java/security/Provider ++java/security/Provider$EngineDescription ++java/security/Provider$Service ++java/security/Provider$ServiceKey ++java/security/Provider$UString ++java/security/ProviderException ++java/security/PublicKey ++java/security/SecureClassLoader ++java/security/SecureRandomSpi ++java/security/Security ++java/security/Security$1 ++java/security/SecurityPermission ++java/security/Signature ++java/security/Signature$Delegate ++java/security/SignatureException ++java/security/SignatureSpi ++java/security/UnresolvedPermission ++java/security/cert/CertPath ++java/security/cert/Certificate ++java/security/cert/CertificateFactory ++java/security/cert/CertificateFactorySpi ++java/security/cert/Extension ++java/security/cert/X509Certificate ++java/security/cert/X509Extension ++java/security/interfaces/DSAKey ++java/security/interfaces/DSAParams ++java/security/interfaces/DSAPrivateKey ++java/security/interfaces/DSAPublicKey ++java/security/interfaces/RSAKey ++java/security/interfaces/RSAPrivateCrtKey ++java/security/interfaces/RSAPrivateKey ++java/security/interfaces/RSAPublicKey ++java/security/spec/AlgorithmParameterSpec ++java/security/spec/DSAParameterSpec ++java/security/spec/DSAPublicKeySpec ++java/security/spec/EncodedKeySpec ++java/security/spec/InvalidKeySpecException ++java/security/spec/KeySpec ++java/security/spec/PKCS8EncodedKeySpec ++java/security/spec/RSAPrivateCrtKeySpec ++java/security/spec/RSAPrivateKeySpec ++java/security/spec/RSAPublicKeySpec ++java/security/spec/X509EncodedKeySpec ++java/text/AttributedCharacterIterator ++java/text/AttributedCharacterIterator$Attribute ++java/text/AttributedString ++java/text/AttributedString$AttributedStringIterator ++java/text/CharacterIterator ++java/text/Collator ++java/text/DateFormat ++java/text/DateFormat$Field ++java/text/DateFormatSymbols ++java/text/DecimalFormat ++java/text/DecimalFormatSymbols ++java/text/DigitList ++java/text/DontCareFieldPosition ++java/text/DontCareFieldPosition$1 ++java/text/EntryPair ++java/text/FieldPosition ++java/text/Format ++java/text/Format$Field ++java/text/Format$FieldDelegate ++java/text/MergeCollation ++java/text/MessageFormat ++java/text/MessageFormat$Field ++java/text/Normalizer ++java/text/Normalizer$Form ++java/text/NumberFormat ++java/text/NumberFormat$Field ++java/text/ParseException ++java/text/PatternEntry ++java/text/PatternEntry$Parser ++java/text/RBCollationTables ++java/text/RBCollationTables$BuildAPI ++java/text/RBTableBuilder ++java/text/RuleBasedCollator ++java/text/SimpleDateFormat ++java/text/spi/BreakIteratorProvider ++java/text/spi/CollatorProvider ++java/text/spi/DateFormatProvider ++java/text/spi/DateFormatSymbolsProvider ++java/text/spi/DecimalFormatSymbolsProvider ++java/text/spi/NumberFormatProvider ++java/util/AbstractCollection ++java/util/AbstractList ++java/util/AbstractList$Itr ++java/util/AbstractList$ListItr ++java/util/AbstractMap ++java/util/AbstractQueue ++java/util/AbstractSequentialList ++java/util/AbstractSet ++java/util/ArrayDeque ++java/util/ArrayList ++java/util/ArrayList$1 ++java/util/ArrayList$Itr ++java/util/ArrayList$ListItr ++java/util/ArrayList$SubList ++java/util/ArrayList$SubList$1 ++java/util/Arrays ++java/util/Arrays$ArrayList ++java/util/Arrays$LegacyMergeSort ++java/util/Base64 ++java/util/Base64$Decoder ++java/util/Base64$Encoder ++java/util/BitSet ++java/util/Calendar ++java/util/Calendar$Builder ++java/util/Collection ++java/util/Collections ++java/util/Collections$3 ++java/util/Collections$EmptyEnumeration ++java/util/Collections$EmptyIterator ++java/util/Collections$EmptyList ++java/util/Collections$EmptyMap ++java/util/Collections$EmptySet ++java/util/Collections$SetFromMap ++java/util/Collections$SynchronizedCollection ++java/util/Collections$SynchronizedMap ++java/util/Collections$SynchronizedSet ++java/util/Collections$SynchronizedSortedSet ++java/util/Collections$UnmodifiableCollection ++java/util/Collections$UnmodifiableCollection$1 ++java/util/Collections$UnmodifiableList ++java/util/Collections$UnmodifiableList$1 ++java/util/Collections$UnmodifiableMap ++java/util/Collections$UnmodifiableRandomAccessList ++java/util/Collections$UnmodifiableSet ++java/util/Collections$UnmodifiableSortedSet ++java/util/ComparableTimSort ++java/util/Comparator ++java/util/Currency ++java/util/Currency$1 ++java/util/Currency$CurrencyNameGetter ++java/util/Date ++java/util/Deque ++java/util/Dictionary ++java/util/Enumeration ++java/util/EventListener ++java/util/EventListenerProxy ++java/util/EventObject ++java/util/GregorianCalendar ++java/util/HashMap ++java/util/HashMap$EntryIterator ++java/util/HashMap$EntrySet ++java/util/HashMap$HashIterator ++java/util/HashMap$KeyIterator ++java/util/HashMap$KeySet ++java/util/HashMap$Node ++java/util/HashMap$TreeNode ++java/util/HashMap$ValueIterator ++java/util/HashMap$Values ++java/util/HashSet ++java/util/Hashtable ++java/util/Hashtable$Entry ++java/util/Hashtable$EntrySet ++java/util/Hashtable$Enumerator ++java/util/Hashtable$ValueCollection ++java/util/IdentityHashMap ++java/util/IdentityHashMap$IdentityHashMapIterator ++java/util/IdentityHashMap$KeyIterator ++java/util/IdentityHashMap$KeySet ++java/util/IdentityHashMap$ValueIterator ++java/util/IdentityHashMap$Values ++java/util/Iterator ++java/util/LinkedHashMap ++java/util/LinkedHashMap$Entry ++java/util/LinkedHashMap$LinkedEntryIterator ++java/util/LinkedHashMap$LinkedEntrySet ++java/util/LinkedHashMap$LinkedHashIterator ++java/util/LinkedHashMap$LinkedKeyIterator ++java/util/LinkedHashMap$LinkedKeySet ++java/util/LinkedHashSet ++java/util/LinkedList ++java/util/LinkedList$ListItr ++java/util/LinkedList$Node ++java/util/List ++java/util/ListIterator ++java/util/ListResourceBundle ++java/util/Locale ++java/util/Locale$1 ++java/util/Locale$Cache ++java/util/Locale$Category ++java/util/Locale$LocaleKey ++java/util/Map ++java/util/Map$Entry ++java/util/MissingResourceException ++java/util/NavigableMap ++java/util/NavigableSet ++java/util/Objects ++java/util/PriorityQueue ++java/util/Properties ++java/util/Properties$LineReader ++java/util/PropertyResourceBundle ++java/util/Queue ++java/util/Random ++java/util/RandomAccess ++java/util/ResourceBundle ++java/util/ResourceBundle$1 ++java/util/ResourceBundle$BundleReference ++java/util/ResourceBundle$CacheKey ++java/util/ResourceBundle$CacheKeyReference ++java/util/ResourceBundle$Control ++java/util/ResourceBundle$Control$1 ++java/util/ResourceBundle$Control$CandidateListCache ++java/util/ResourceBundle$LoaderReference ++java/util/ResourceBundle$RBClassLoader ++java/util/ResourceBundle$RBClassLoader$1 ++java/util/ResourceBundle$SingleFormatControl ++java/util/ServiceLoader ++java/util/ServiceLoader$1 ++java/util/ServiceLoader$LazyIterator ++java/util/Set ++java/util/SortedMap ++java/util/SortedSet ++java/util/Stack ++java/util/StringTokenizer ++java/util/TimSort ++java/util/TimeZone ++java/util/TimeZone$1 ++java/util/TreeMap ++java/util/TreeMap$Entry ++java/util/TreeMap$KeyIterator ++java/util/TreeMap$KeySet ++java/util/TreeMap$PrivateEntryIterator ++java/util/TreeSet ++java/util/Vector ++java/util/Vector$1 ++java/util/Vector$Itr ++java/util/Vector$ListItr ++java/util/WeakHashMap ++java/util/WeakHashMap$Entry ++java/util/WeakHashMap$HashIterator ++java/util/WeakHashMap$KeyIterator ++java/util/WeakHashMap$KeySet ++java/util/concurrent/AbstractExecutorService ++java/util/concurrent/BlockingQueue ++java/util/concurrent/ConcurrentHashMap ++java/util/concurrent/ConcurrentHashMap$BaseIterator ++java/util/concurrent/ConcurrentHashMap$CollectionView ++java/util/concurrent/ConcurrentHashMap$CounterCell ++java/util/concurrent/ConcurrentHashMap$EntrySetView ++java/util/concurrent/ConcurrentHashMap$ForwardingNode ++java/util/concurrent/ConcurrentHashMap$KeyIterator ++java/util/concurrent/ConcurrentHashMap$KeySetView ++java/util/concurrent/ConcurrentHashMap$Node ++java/util/concurrent/ConcurrentHashMap$Segment ++java/util/concurrent/ConcurrentHashMap$Traverser ++java/util/concurrent/ConcurrentHashMap$ValueIterator ++java/util/concurrent/ConcurrentHashMap$ValuesView ++java/util/concurrent/ConcurrentMap ++java/util/concurrent/ConcurrentNavigableMap ++java/util/concurrent/ConcurrentSkipListMap ++java/util/concurrent/ConcurrentSkipListMap$EntrySet ++java/util/concurrent/ConcurrentSkipListMap$HeadIndex ++java/util/concurrent/ConcurrentSkipListMap$Index ++java/util/concurrent/ConcurrentSkipListMap$KeySet ++java/util/concurrent/ConcurrentSkipListMap$Node ++java/util/concurrent/ConcurrentSkipListMap$Values ++java/util/concurrent/ConcurrentSkipListSet ++java/util/concurrent/CopyOnWriteArrayList ++java/util/concurrent/DelayQueue ++java/util/concurrent/Delayed ++java/util/concurrent/Executor ++java/util/concurrent/ExecutorService ++java/util/concurrent/Executors ++java/util/concurrent/RejectedExecutionHandler ++java/util/concurrent/SynchronousQueue ++java/util/concurrent/SynchronousQueue$TransferStack ++java/util/concurrent/SynchronousQueue$TransferStack$SNode ++java/util/concurrent/SynchronousQueue$Transferer ++java/util/concurrent/ThreadFactory ++java/util/concurrent/ThreadLocalRandom ++java/util/concurrent/ThreadPoolExecutor ++java/util/concurrent/ThreadPoolExecutor$AbortPolicy ++java/util/concurrent/ThreadPoolExecutor$Worker ++java/util/concurrent/TimeUnit ++java/util/concurrent/TimeUnit$1 ++java/util/concurrent/TimeUnit$2 ++java/util/concurrent/TimeUnit$3 ++java/util/concurrent/TimeUnit$4 ++java/util/concurrent/TimeUnit$5 ++java/util/concurrent/TimeUnit$6 ++java/util/concurrent/TimeUnit$7 ++java/util/concurrent/atomic/AtomicBoolean ++java/util/concurrent/atomic/AtomicInteger ++java/util/concurrent/atomic/AtomicLong ++java/util/concurrent/atomic/AtomicMarkableReference ++java/util/concurrent/atomic/AtomicMarkableReference$Pair ++java/util/concurrent/atomic/AtomicReferenceFieldUpdater ++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl ++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 ++java/util/concurrent/locks/AbstractOwnableSynchronizer ++java/util/concurrent/locks/AbstractQueuedSynchronizer ++java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject ++java/util/concurrent/locks/AbstractQueuedSynchronizer$Node ++java/util/concurrent/locks/Condition ++java/util/concurrent/locks/Lock ++java/util/concurrent/locks/LockSupport ++java/util/concurrent/locks/ReadWriteLock ++java/util/concurrent/locks/ReentrantLock ++java/util/concurrent/locks/ReentrantLock$NonfairSync ++java/util/concurrent/locks/ReentrantLock$Sync ++java/util/concurrent/locks/ReentrantReadWriteLock ++java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync ++java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock ++java/util/concurrent/locks/ReentrantReadWriteLock$Sync ++java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter ++java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock ++java/util/function/BiFunction ++java/util/jar/Attributes ++java/util/jar/Attributes$Name ++java/util/jar/JarEntry ++java/util/jar/JarFile ++java/util/jar/JarFile$JarEntryIterator ++java/util/jar/JarFile$JarFileEntry ++java/util/jar/JarVerifier ++java/util/jar/JarVerifier$3 ++java/util/jar/JarVerifier$VerifierStream ++java/util/jar/JavaUtilJarAccessImpl ++java/util/jar/Manifest ++java/util/jar/Manifest$FastInputStream ++java/util/logging/Handler ++java/util/logging/Level ++java/util/logging/Level$KnownLevel ++java/util/logging/LogManager ++java/util/logging/LogManager$1 ++java/util/logging/LogManager$2 ++java/util/logging/LogManager$3 ++java/util/logging/LogManager$5 ++java/util/logging/LogManager$Cleaner ++java/util/logging/LogManager$LogNode ++java/util/logging/LogManager$LoggerContext ++java/util/logging/LogManager$LoggerContext$1 ++java/util/logging/LogManager$LoggerWeakRef ++java/util/logging/LogManager$RootLogger ++java/util/logging/LogManager$SystemLoggerContext ++java/util/logging/Logger ++java/util/logging/Logger$1 ++java/util/logging/LoggingPermission ++java/util/logging/LoggingProxyImpl ++java/util/regex/MatchResult ++java/util/regex/Matcher ++java/util/regex/Pattern ++java/util/regex/Pattern$4 ++java/util/regex/Pattern$BnM ++java/util/regex/Pattern$GroupHead ++java/util/regex/Pattern$LastNode ++java/util/regex/Pattern$Node ++java/util/regex/Pattern$Slice ++java/util/regex/Pattern$SliceNode ++java/util/regex/Pattern$Start ++java/util/regex/Pattern$TreeInfo ++java/util/spi/CalendarDataProvider ++java/util/spi/CurrencyNameProvider ++java/util/spi/LocaleNameProvider ++java/util/spi/LocaleServiceProvider ++java/util/spi/ResourceBundleControlProvider ++java/util/spi/TimeZoneNameProvider ++java/util/zip/CRC32 ++java/util/zip/Checksum ++java/util/zip/DeflaterOutputStream ++java/util/zip/GZIPInputStream ++java/util/zip/Inflater ++java/util/zip/InflaterInputStream ++java/util/zip/ZStreamRef ++java/util/zip/ZipCoder ++java/util/zip/ZipConstants ++java/util/zip/ZipEntry ++java/util/zip/ZipException ++java/util/zip/ZipFile ++java/util/zip/ZipFile$1 ++java/util/zip/ZipFile$ZipEntryIterator ++java/util/zip/ZipFile$ZipFileInflaterInputStream ++java/util/zip/ZipFile$ZipFileInputStream ++java/util/zip/ZipInputStream ++java/util/zip/ZipUtils ++javax/accessibility/Accessible ++javax/accessibility/AccessibleAction ++javax/accessibility/AccessibleBundle ++javax/accessibility/AccessibleComponent ++javax/accessibility/AccessibleContext ++javax/accessibility/AccessibleExtendedComponent ++javax/accessibility/AccessibleRelationSet ++javax/accessibility/AccessibleState ++javax/accessibility/AccessibleText ++javax/accessibility/AccessibleValue ++javax/security/auth/Destroyable ++javax/security/auth/login/FailedLoginException ++javax/security/auth/login/LoginException ++javax/security/auth/x500/X500Principal ++javax/sound/sampled/Control$Type ++javax/sound/sampled/DataLine ++javax/sound/sampled/DataLine$Info ++javax/sound/sampled/FloatControl$Type ++javax/sound/sampled/Line ++javax/sound/sampled/Line$Info ++javax/sound/sampled/LineUnavailableException ++javax/sound/sampled/UnsupportedAudioFileException ++javax/swing/AbstractAction ++javax/swing/AbstractButton ++javax/swing/AbstractButton$AccessibleAbstractButton ++javax/swing/AbstractButton$Handler ++javax/swing/AbstractCellEditor ++javax/swing/AbstractListModel ++javax/swing/Action ++javax/swing/ActionMap ++javax/swing/AncestorNotifier ++javax/swing/ArrayTable ++javax/swing/Autoscroller ++javax/swing/BorderFactory ++javax/swing/BoundedRangeModel ++javax/swing/Box ++javax/swing/Box$Filler ++javax/swing/BoxLayout ++javax/swing/BufferStrategyPaintManager ++javax/swing/BufferStrategyPaintManager$BufferInfo ++javax/swing/ButtonGroup ++javax/swing/ButtonModel ++javax/swing/CellEditor ++javax/swing/CellRendererPane ++javax/swing/ClientPropertyKey ++javax/swing/ClientPropertyKey$1 ++javax/swing/ComboBoxEditor ++javax/swing/ComboBoxModel ++javax/swing/ComponentInputMap ++javax/swing/DefaultBoundedRangeModel ++javax/swing/DefaultButtonModel ++javax/swing/DefaultCellEditor ++javax/swing/DefaultCellEditor$1 ++javax/swing/DefaultCellEditor$EditorDelegate ++javax/swing/DefaultComboBoxModel ++javax/swing/DefaultListCellRenderer ++javax/swing/DefaultListCellRenderer$UIResource ++javax/swing/DefaultListModel ++javax/swing/DefaultListSelectionModel ++javax/swing/DefaultSingleSelectionModel ++javax/swing/DropMode ++javax/swing/FocusManager ++javax/swing/GrayFilter ++javax/swing/Icon ++javax/swing/ImageIcon ++javax/swing/ImageIcon$1 ++javax/swing/ImageIcon$2 ++javax/swing/ImageIcon$2$1 ++javax/swing/ImageIcon$3 ++javax/swing/InputMap ++javax/swing/InternalFrameFocusTraversalPolicy ++javax/swing/JButton ++javax/swing/JCheckBox ++javax/swing/JCheckBoxMenuItem ++javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem ++javax/swing/JComboBox ++javax/swing/JComboBox$1 ++javax/swing/JComboBox$KeySelectionManager ++javax/swing/JComponent ++javax/swing/JComponent$1 ++javax/swing/JComponent$2 ++javax/swing/JComponent$AccessibleJComponent ++javax/swing/JDialog ++javax/swing/JEditorPane ++javax/swing/JFrame ++javax/swing/JInternalFrame ++javax/swing/JLabel ++javax/swing/JLayer ++javax/swing/JLayeredPane ++javax/swing/JList ++javax/swing/JList$3 ++javax/swing/JList$ListSelectionHandler ++javax/swing/JMenu ++javax/swing/JMenu$MenuChangeListener ++javax/swing/JMenu$WinListener ++javax/swing/JMenuBar ++javax/swing/JMenuItem ++javax/swing/JMenuItem$AccessibleJMenuItem ++javax/swing/JMenuItem$MenuItemFocusListener ++javax/swing/JPanel ++javax/swing/JPasswordField ++javax/swing/JPopupMenu ++javax/swing/JPopupMenu$Separator ++javax/swing/JProgressBar ++javax/swing/JProgressBar$ModelListener ++javax/swing/JRadioButton ++javax/swing/JRadioButtonMenuItem ++javax/swing/JRootPane ++javax/swing/JRootPane$1 ++javax/swing/JRootPane$RootLayout ++javax/swing/JScrollBar ++javax/swing/JScrollBar$ModelListener ++javax/swing/JScrollPane ++javax/swing/JScrollPane$ScrollBar ++javax/swing/JSeparator ++javax/swing/JSlider ++javax/swing/JSlider$ModelListener ++javax/swing/JSplitPane ++javax/swing/JTabbedPane ++javax/swing/JTabbedPane$ModelListener ++javax/swing/JTabbedPane$Page ++javax/swing/JTable ++javax/swing/JTable$2 ++javax/swing/JTable$5 ++javax/swing/JTable$Resizable2 ++javax/swing/JTable$Resizable3 ++javax/swing/JTextArea ++javax/swing/JTextField ++javax/swing/JTextField$NotifyAction ++javax/swing/JTextField$ScrollRepainter ++javax/swing/JToggleButton ++javax/swing/JToggleButton$ToggleButtonModel ++javax/swing/JToolBar ++javax/swing/JToolBar$DefaultToolBarLayout ++javax/swing/JToolBar$Separator ++javax/swing/JToolTip ++javax/swing/JTree ++javax/swing/JTree$TreeModelHandler ++javax/swing/JTree$TreeSelectionRedirector ++javax/swing/JViewport ++javax/swing/JViewport$ViewListener ++javax/swing/JWindow ++javax/swing/KeyStroke ++javax/swing/KeyboardManager ++javax/swing/KeyboardManager$ComponentKeyStrokePair ++javax/swing/LayoutComparator ++javax/swing/LayoutFocusTraversalPolicy ++javax/swing/ListCellRenderer ++javax/swing/ListModel ++javax/swing/ListSelectionModel ++javax/swing/LookAndFeel ++javax/swing/MenuElement ++javax/swing/MenuSelectionManager ++javax/swing/MultiUIDefaults ++javax/swing/MutableComboBoxModel ++javax/swing/PopupFactory ++javax/swing/RepaintManager ++javax/swing/RepaintManager$2 ++javax/swing/RepaintManager$3 ++javax/swing/RepaintManager$DisplayChangedHandler ++javax/swing/RepaintManager$PaintManager ++javax/swing/RepaintManager$ProcessingRunnable ++javax/swing/RootPaneContainer ++javax/swing/ScrollPaneConstants ++javax/swing/ScrollPaneLayout ++javax/swing/ScrollPaneLayout$UIResource ++javax/swing/Scrollable ++javax/swing/SingleSelectionModel ++javax/swing/SizeRequirements ++javax/swing/SortingFocusTraversalPolicy ++javax/swing/SwingConstants ++javax/swing/SwingContainerOrderFocusTraversalPolicy ++javax/swing/SwingDefaultFocusTraversalPolicy ++javax/swing/SwingHeavyWeight ++javax/swing/SwingPaintEventDispatcher ++javax/swing/SwingUtilities ++javax/swing/SwingUtilities$SharedOwnerFrame ++javax/swing/Timer ++javax/swing/Timer$DoPostEvent ++javax/swing/TimerQueue ++javax/swing/TimerQueue$1 ++javax/swing/TimerQueue$DelayedTimer ++javax/swing/ToolTipManager ++javax/swing/ToolTipManager$AccessibilityKeyListener ++javax/swing/ToolTipManager$MoveBeforeEnterListener ++javax/swing/ToolTipManager$insideTimerAction ++javax/swing/ToolTipManager$outsideTimerAction ++javax/swing/ToolTipManager$stillInsideTimerAction ++javax/swing/TransferHandler ++javax/swing/TransferHandler$DropHandler ++javax/swing/TransferHandler$HasGetTransferHandler ++javax/swing/TransferHandler$SwingDropTarget ++javax/swing/TransferHandler$TransferAction ++javax/swing/TransferHandler$TransferAction$1 ++javax/swing/TransferHandler$TransferAction$2 ++javax/swing/TransferHandler$TransferSupport ++javax/swing/UIDefaults ++javax/swing/UIDefaults$ActiveValue ++javax/swing/UIDefaults$LazyInputMap ++javax/swing/UIDefaults$LazyValue ++javax/swing/UIDefaults$TextAndMnemonicHashMap ++javax/swing/UIManager ++javax/swing/UIManager$1 ++javax/swing/UIManager$2 ++javax/swing/UIManager$LAFState ++javax/swing/UIManager$LookAndFeelInfo ++javax/swing/UnsupportedLookAndFeelException ++javax/swing/ViewportLayout ++javax/swing/WindowConstants ++javax/swing/border/AbstractBorder ++javax/swing/border/BevelBorder ++javax/swing/border/Border ++javax/swing/border/CompoundBorder ++javax/swing/border/EmptyBorder ++javax/swing/border/EtchedBorder ++javax/swing/border/LineBorder ++javax/swing/border/MatteBorder ++javax/swing/border/TitledBorder ++javax/swing/event/AncestorEvent ++javax/swing/event/AncestorListener ++javax/swing/event/CaretEvent ++javax/swing/event/CaretListener ++javax/swing/event/CellEditorListener ++javax/swing/event/ChangeEvent ++javax/swing/event/ChangeListener ++javax/swing/event/DocumentEvent ++javax/swing/event/DocumentEvent$ElementChange ++javax/swing/event/DocumentEvent$EventType ++javax/swing/event/DocumentListener ++javax/swing/event/EventListenerList ++javax/swing/event/ListDataEvent ++javax/swing/event/ListDataListener ++javax/swing/event/ListSelectionEvent ++javax/swing/event/ListSelectionListener ++javax/swing/event/MenuDragMouseListener ++javax/swing/event/MenuEvent ++javax/swing/event/MenuKeyListener ++javax/swing/event/MenuListener ++javax/swing/event/MouseInputAdapter ++javax/swing/event/MouseInputListener ++javax/swing/event/PopupMenuListener ++javax/swing/event/RowSorterListener ++javax/swing/event/SwingPropertyChangeSupport ++javax/swing/event/TableColumnModelEvent ++javax/swing/event/TableColumnModelListener ++javax/swing/event/TableModelEvent ++javax/swing/event/TableModelListener ++javax/swing/event/TreeExpansionListener ++javax/swing/event/TreeModelEvent ++javax/swing/event/TreeModelListener ++javax/swing/event/TreeSelectionEvent ++javax/swing/event/TreeSelectionListener ++javax/swing/event/UndoableEditEvent ++javax/swing/event/UndoableEditListener ++javax/swing/filechooser/FileFilter ++javax/swing/plaf/ActionMapUIResource ++javax/swing/plaf/BorderUIResource ++javax/swing/plaf/BorderUIResource$CompoundBorderUIResource ++javax/swing/plaf/BorderUIResource$EmptyBorderUIResource ++javax/swing/plaf/BorderUIResource$LineBorderUIResource ++javax/swing/plaf/ButtonUI ++javax/swing/plaf/ColorUIResource ++javax/swing/plaf/ComboBoxUI ++javax/swing/plaf/ComponentInputMapUIResource ++javax/swing/plaf/ComponentUI ++javax/swing/plaf/DimensionUIResource ++javax/swing/plaf/FontUIResource ++javax/swing/plaf/IconUIResource ++javax/swing/plaf/InputMapUIResource ++javax/swing/plaf/InsetsUIResource ++javax/swing/plaf/LabelUI ++javax/swing/plaf/ListUI ++javax/swing/plaf/MenuBarUI ++javax/swing/plaf/MenuItemUI ++javax/swing/plaf/PanelUI ++javax/swing/plaf/PopupMenuUI ++javax/swing/plaf/ProgressBarUI ++javax/swing/plaf/RootPaneUI ++javax/swing/plaf/ScrollBarUI ++javax/swing/plaf/ScrollPaneUI ++javax/swing/plaf/SeparatorUI ++javax/swing/plaf/SliderUI ++javax/swing/plaf/SplitPaneUI ++javax/swing/plaf/TabbedPaneUI ++javax/swing/plaf/TableHeaderUI ++javax/swing/plaf/TableUI ++javax/swing/plaf/TextUI ++javax/swing/plaf/ToolBarUI ++javax/swing/plaf/TreeUI ++javax/swing/plaf/UIResource ++javax/swing/plaf/ViewportUI ++javax/swing/plaf/basic/BasicArrowButton ++javax/swing/plaf/basic/BasicBorders ++javax/swing/plaf/basic/BasicBorders$ButtonBorder ++javax/swing/plaf/basic/BasicBorders$MarginBorder ++javax/swing/plaf/basic/BasicBorders$RadioButtonBorder ++javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder ++javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder ++javax/swing/plaf/basic/BasicBorders$SplitPaneBorder ++javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder ++javax/swing/plaf/basic/BasicButtonListener ++javax/swing/plaf/basic/BasicButtonUI ++javax/swing/plaf/basic/BasicCheckBoxMenuItemUI ++javax/swing/plaf/basic/BasicComboBoxEditor ++javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField ++javax/swing/plaf/basic/BasicComboBoxEditor$UIResource ++javax/swing/plaf/basic/BasicComboBoxRenderer ++javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource ++javax/swing/plaf/basic/BasicComboBoxUI ++javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager ++javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager ++javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler ++javax/swing/plaf/basic/BasicComboBoxUI$Handler ++javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler ++javax/swing/plaf/basic/BasicComboPopup ++javax/swing/plaf/basic/BasicComboPopup$1 ++javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass ++javax/swing/plaf/basic/BasicComboPopup$Handler ++javax/swing/plaf/basic/BasicGraphicsUtils ++javax/swing/plaf/basic/BasicHTML ++javax/swing/plaf/basic/BasicIconFactory ++javax/swing/plaf/basic/BasicIconFactory$MenuItemArrowIcon ++javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon ++javax/swing/plaf/basic/BasicLabelUI ++javax/swing/plaf/basic/BasicListUI ++javax/swing/plaf/basic/BasicListUI$FocusHandler ++javax/swing/plaf/basic/BasicListUI$Handler ++javax/swing/plaf/basic/BasicListUI$ListTransferHandler ++javax/swing/plaf/basic/BasicListUI$MouseInputHandler ++javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler ++javax/swing/plaf/basic/BasicLookAndFeel ++javax/swing/plaf/basic/BasicLookAndFeel$1 ++javax/swing/plaf/basic/BasicLookAndFeel$2 ++javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper ++javax/swing/plaf/basic/BasicMenuBarUI ++javax/swing/plaf/basic/BasicMenuBarUI$Handler ++javax/swing/plaf/basic/BasicMenuItemUI ++javax/swing/plaf/basic/BasicMenuItemUI$Handler ++javax/swing/plaf/basic/BasicMenuUI ++javax/swing/plaf/basic/BasicMenuUI$ChangeHandler ++javax/swing/plaf/basic/BasicMenuUI$Handler ++javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler ++javax/swing/plaf/basic/BasicPanelUI ++javax/swing/plaf/basic/BasicPopupMenuUI ++javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener ++javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener ++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper ++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 ++javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber ++javax/swing/plaf/basic/BasicProgressBarUI ++javax/swing/plaf/basic/BasicProgressBarUI$Handler ++javax/swing/plaf/basic/BasicRadioButtonMenuItemUI ++javax/swing/plaf/basic/BasicRadioButtonUI ++javax/swing/plaf/basic/BasicRootPaneUI ++javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap ++javax/swing/plaf/basic/BasicScrollBarUI ++javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener ++javax/swing/plaf/basic/BasicScrollBarUI$Handler ++javax/swing/plaf/basic/BasicScrollBarUI$ModelListener ++javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler ++javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener ++javax/swing/plaf/basic/BasicScrollBarUI$TrackListener ++javax/swing/plaf/basic/BasicScrollPaneUI ++javax/swing/plaf/basic/BasicScrollPaneUI$Handler ++javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler ++javax/swing/plaf/basic/BasicSeparatorUI ++javax/swing/plaf/basic/BasicSliderUI ++javax/swing/plaf/basic/BasicSliderUI$Actions ++javax/swing/plaf/basic/BasicSliderUI$Handler ++javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler ++javax/swing/plaf/basic/BasicSliderUI$ScrollListener ++javax/swing/plaf/basic/BasicSliderUI$TrackListener ++javax/swing/plaf/basic/BasicSplitPaneDivider ++javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout ++javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler ++javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler ++javax/swing/plaf/basic/BasicSplitPaneUI ++javax/swing/plaf/basic/BasicSplitPaneUI$1 ++javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager ++javax/swing/plaf/basic/BasicSplitPaneUI$Handler ++javax/swing/plaf/basic/BasicTabbedPaneUI ++javax/swing/plaf/basic/BasicTabbedPaneUI$Handler ++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout ++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout ++javax/swing/plaf/basic/BasicTableHeaderUI ++javax/swing/plaf/basic/BasicTableHeaderUI$1 ++javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler ++javax/swing/plaf/basic/BasicTableUI ++javax/swing/plaf/basic/BasicTableUI$Handler ++javax/swing/plaf/basic/BasicTableUI$TableTransferHandler ++javax/swing/plaf/basic/BasicTextAreaUI ++javax/swing/plaf/basic/BasicTextFieldUI ++javax/swing/plaf/basic/BasicTextUI ++javax/swing/plaf/basic/BasicTextUI$BasicCaret ++javax/swing/plaf/basic/BasicTextUI$BasicCursor ++javax/swing/plaf/basic/BasicTextUI$BasicHighlighter ++javax/swing/plaf/basic/BasicTextUI$DragListener ++javax/swing/plaf/basic/BasicTextUI$FocusAction ++javax/swing/plaf/basic/BasicTextUI$RootView ++javax/swing/plaf/basic/BasicTextUI$TextActionWrapper ++javax/swing/plaf/basic/BasicTextUI$TextTransferHandler ++javax/swing/plaf/basic/BasicTextUI$TextTransferHandler$TextTransferable ++javax/swing/plaf/basic/BasicTextUI$UpdateHandler ++javax/swing/plaf/basic/BasicToggleButtonUI ++javax/swing/plaf/basic/BasicToolBarSeparatorUI ++javax/swing/plaf/basic/BasicToolBarUI ++javax/swing/plaf/basic/BasicToolBarUI$DockingListener ++javax/swing/plaf/basic/BasicToolBarUI$Handler ++javax/swing/plaf/basic/BasicTransferable ++javax/swing/plaf/basic/BasicTreeUI ++javax/swing/plaf/basic/BasicTreeUI$Actions ++javax/swing/plaf/basic/BasicTreeUI$Handler ++javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler ++javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler ++javax/swing/plaf/basic/BasicViewportUI ++javax/swing/plaf/basic/ComboPopup ++javax/swing/plaf/basic/DefaultMenuLayout ++javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag ++javax/swing/plaf/basic/LazyActionMap ++javax/swing/plaf/metal/DefaultMetalTheme ++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate ++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 ++javax/swing/plaf/metal/MetalBorders ++javax/swing/plaf/metal/MetalBorders$ButtonBorder ++javax/swing/plaf/metal/MetalBorders$Flush3DBorder ++javax/swing/plaf/metal/MetalBorders$MenuBarBorder ++javax/swing/plaf/metal/MetalBorders$MenuItemBorder ++javax/swing/plaf/metal/MetalBorders$PopupMenuBorder ++javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder ++javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder ++javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder ++javax/swing/plaf/metal/MetalBorders$TextFieldBorder ++javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder ++javax/swing/plaf/metal/MetalBorders$ToolBarBorder ++javax/swing/plaf/metal/MetalBumps ++javax/swing/plaf/metal/MetalButtonUI ++javax/swing/plaf/metal/MetalCheckBoxUI ++javax/swing/plaf/metal/MetalComboBoxButton ++javax/swing/plaf/metal/MetalComboBoxButton$1 ++javax/swing/plaf/metal/MetalComboBoxEditor ++javax/swing/plaf/metal/MetalComboBoxEditor$1 ++javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder ++javax/swing/plaf/metal/MetalComboBoxEditor$UIResource ++javax/swing/plaf/metal/MetalComboBoxIcon ++javax/swing/plaf/metal/MetalComboBoxUI ++javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager ++javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener ++javax/swing/plaf/metal/MetalIconFactory ++javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon ++javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon ++javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 ++javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon ++javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon ++javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon ++javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon ++javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon ++javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon ++javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon ++javax/swing/plaf/metal/MetalLabelUI ++javax/swing/plaf/metal/MetalLookAndFeel ++javax/swing/plaf/metal/MetalLookAndFeel$AATextListener ++javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue ++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue ++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 ++javax/swing/plaf/metal/MetalPopupMenuSeparatorUI ++javax/swing/plaf/metal/MetalProgressBarUI ++javax/swing/plaf/metal/MetalRadioButtonUI ++javax/swing/plaf/metal/MetalRootPaneUI ++javax/swing/plaf/metal/MetalScrollBarUI ++javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener ++javax/swing/plaf/metal/MetalScrollButton ++javax/swing/plaf/metal/MetalScrollPaneUI ++javax/swing/plaf/metal/MetalScrollPaneUI$1 ++javax/swing/plaf/metal/MetalSeparatorUI ++javax/swing/plaf/metal/MetalSliderUI ++javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener ++javax/swing/plaf/metal/MetalSplitPaneDivider ++javax/swing/plaf/metal/MetalSplitPaneDivider$1 ++javax/swing/plaf/metal/MetalSplitPaneDivider$2 ++javax/swing/plaf/metal/MetalSplitPaneUI ++javax/swing/plaf/metal/MetalTabbedPaneUI ++javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout ++javax/swing/plaf/metal/MetalTextFieldUI ++javax/swing/plaf/metal/MetalTheme ++javax/swing/plaf/metal/MetalToggleButtonUI ++javax/swing/plaf/metal/MetalToolBarUI ++javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener ++javax/swing/plaf/metal/MetalTreeUI ++javax/swing/plaf/metal/MetalTreeUI$LineListener ++javax/swing/plaf/metal/OceanTheme ++javax/swing/plaf/metal/OceanTheme$1 ++javax/swing/plaf/metal/OceanTheme$2 ++javax/swing/plaf/metal/OceanTheme$3 ++javax/swing/plaf/metal/OceanTheme$4 ++javax/swing/plaf/metal/OceanTheme$5 ++javax/swing/plaf/metal/OceanTheme$6 ++javax/swing/plaf/synth/SynthConstants ++javax/swing/plaf/synth/SynthUI ++javax/swing/table/AbstractTableModel ++javax/swing/table/DefaultTableCellRenderer ++javax/swing/table/DefaultTableColumnModel ++javax/swing/table/DefaultTableModel ++javax/swing/table/JTableHeader ++javax/swing/table/TableCellEditor ++javax/swing/table/TableCellRenderer ++javax/swing/table/TableColumn ++javax/swing/table/TableColumnModel ++javax/swing/table/TableModel ++javax/swing/text/AbstractDocument ++javax/swing/text/AbstractDocument$1 ++javax/swing/text/AbstractDocument$AbstractElement ++javax/swing/text/AbstractDocument$AttributeContext ++javax/swing/text/AbstractDocument$BidiElement ++javax/swing/text/AbstractDocument$BidiRootElement ++javax/swing/text/AbstractDocument$BranchElement ++javax/swing/text/AbstractDocument$Content ++javax/swing/text/AbstractDocument$DefaultDocumentEvent ++javax/swing/text/AbstractDocument$ElementEdit ++javax/swing/text/AbstractDocument$LeafElement ++javax/swing/text/AttributeSet ++javax/swing/text/AttributeSet$CharacterAttribute ++javax/swing/text/AttributeSet$ColorAttribute ++javax/swing/text/AttributeSet$FontAttribute ++javax/swing/text/AttributeSet$ParagraphAttribute ++javax/swing/text/Caret ++javax/swing/text/DefaultCaret ++javax/swing/text/DefaultCaret$1 ++javax/swing/text/DefaultCaret$Handler ++javax/swing/text/DefaultEditorKit ++javax/swing/text/DefaultEditorKit$BeepAction ++javax/swing/text/DefaultEditorKit$BeginAction ++javax/swing/text/DefaultEditorKit$BeginLineAction ++javax/swing/text/DefaultEditorKit$BeginParagraphAction ++javax/swing/text/DefaultEditorKit$BeginWordAction ++javax/swing/text/DefaultEditorKit$CopyAction ++javax/swing/text/DefaultEditorKit$CutAction ++javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction ++javax/swing/text/DefaultEditorKit$DeleteNextCharAction ++javax/swing/text/DefaultEditorKit$DeletePrevCharAction ++javax/swing/text/DefaultEditorKit$DeleteWordAction ++javax/swing/text/DefaultEditorKit$DumpModelAction ++javax/swing/text/DefaultEditorKit$EndAction ++javax/swing/text/DefaultEditorKit$EndLineAction ++javax/swing/text/DefaultEditorKit$EndParagraphAction ++javax/swing/text/DefaultEditorKit$EndWordAction ++javax/swing/text/DefaultEditorKit$InsertBreakAction ++javax/swing/text/DefaultEditorKit$InsertContentAction ++javax/swing/text/DefaultEditorKit$InsertTabAction ++javax/swing/text/DefaultEditorKit$NextVisualPositionAction ++javax/swing/text/DefaultEditorKit$NextWordAction ++javax/swing/text/DefaultEditorKit$PageAction ++javax/swing/text/DefaultEditorKit$PasteAction ++javax/swing/text/DefaultEditorKit$PreviousWordAction ++javax/swing/text/DefaultEditorKit$ReadOnlyAction ++javax/swing/text/DefaultEditorKit$SelectAllAction ++javax/swing/text/DefaultEditorKit$SelectLineAction ++javax/swing/text/DefaultEditorKit$SelectParagraphAction ++javax/swing/text/DefaultEditorKit$SelectWordAction ++javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction ++javax/swing/text/DefaultEditorKit$UnselectAction ++javax/swing/text/DefaultEditorKit$VerticalPageAction ++javax/swing/text/DefaultEditorKit$WritableAction ++javax/swing/text/DefaultHighlighter ++javax/swing/text/DefaultHighlighter$DefaultHighlightPainter ++javax/swing/text/DefaultHighlighter$HighlightInfo ++javax/swing/text/DefaultHighlighter$LayeredHighlightInfo ++javax/swing/text/DefaultHighlighter$SafeDamager ++javax/swing/text/Document ++javax/swing/text/EditorKit ++javax/swing/text/Element ++javax/swing/text/FieldView ++javax/swing/text/GapContent ++javax/swing/text/GapContent$InsertUndo ++javax/swing/text/GapContent$MarkData ++javax/swing/text/GapContent$MarkVector ++javax/swing/text/GapContent$StickyPosition ++javax/swing/text/GapVector ++javax/swing/text/Highlighter ++javax/swing/text/Highlighter$Highlight ++javax/swing/text/Highlighter$HighlightPainter ++javax/swing/text/JTextComponent ++javax/swing/text/JTextComponent$1 ++javax/swing/text/JTextComponent$DefaultKeymap ++javax/swing/text/JTextComponent$KeymapActionMap ++javax/swing/text/JTextComponent$KeymapWrapper ++javax/swing/text/JTextComponent$MutableCaretEvent ++javax/swing/text/Keymap ++javax/swing/text/LayeredHighlighter ++javax/swing/text/LayeredHighlighter$LayerPainter ++javax/swing/text/MutableAttributeSet ++javax/swing/text/PlainDocument ++javax/swing/text/PlainView ++javax/swing/text/Position ++javax/swing/text/Position$Bias ++javax/swing/text/Segment ++javax/swing/text/SegmentCache ++javax/swing/text/SegmentCache$CachedSegment ++javax/swing/text/SimpleAttributeSet ++javax/swing/text/SimpleAttributeSet$EmptyAttributeSet ++javax/swing/text/Style ++javax/swing/text/StyleConstants ++javax/swing/text/StyleConstants$CharacterConstants ++javax/swing/text/StyleConstants$ColorConstants ++javax/swing/text/StyleConstants$FontConstants ++javax/swing/text/StyleConstants$ParagraphConstants ++javax/swing/text/StyleContext ++javax/swing/text/StyleContext$FontKey ++javax/swing/text/StyleContext$KeyEnumeration ++javax/swing/text/StyleContext$NamedStyle ++javax/swing/text/StyleContext$SmallAttributeSet ++javax/swing/text/TabExpander ++javax/swing/text/TextAction ++javax/swing/text/Utilities ++javax/swing/text/View ++javax/swing/text/ViewFactory ++javax/swing/tree/AbstractLayoutCache ++javax/swing/tree/AbstractLayoutCache$NodeDimensions ++javax/swing/tree/DefaultMutableTreeNode ++javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration ++javax/swing/tree/DefaultTreeCellEditor ++javax/swing/tree/DefaultTreeCellEditor$1 ++javax/swing/tree/DefaultTreeCellEditor$DefaultTextField ++javax/swing/tree/DefaultTreeCellEditor$EditorContainer ++javax/swing/tree/DefaultTreeCellRenderer ++javax/swing/tree/DefaultTreeModel ++javax/swing/tree/DefaultTreeSelectionModel ++javax/swing/tree/MutableTreeNode ++javax/swing/tree/PathPlaceHolder ++javax/swing/tree/RowMapper ++javax/swing/tree/TreeCellEditor ++javax/swing/tree/TreeCellRenderer ++javax/swing/tree/TreeModel ++javax/swing/tree/TreeNode ++javax/swing/tree/TreePath ++javax/swing/tree/TreeSelectionModel ++javax/swing/tree/VariableHeightLayoutCache ++javax/swing/tree/VariableHeightLayoutCache$TreeStateNode ++javax/swing/undo/AbstractUndoableEdit ++javax/swing/undo/CompoundEdit ++javax/swing/undo/UndoableEdit ++javax/xml/parsers/DocumentBuilder ++javax/xml/parsers/DocumentBuilderFactory ++javax/xml/parsers/FactoryFinder ++javax/xml/parsers/FactoryFinder$1 ++javax/xml/parsers/ParserConfigurationException ++javax/xml/parsers/SecuritySupport ++javax/xml/parsers/SecuritySupport$2 ++javax/xml/parsers/SecuritySupport$5 ++org/w3c/dom/Attr ++org/w3c/dom/CDATASection ++org/w3c/dom/CharacterData ++org/w3c/dom/Comment ++org/w3c/dom/DOMException ++org/w3c/dom/Document ++org/w3c/dom/DocumentFragment ++org/w3c/dom/DocumentType ++org/w3c/dom/Element ++org/w3c/dom/Entity ++org/w3c/dom/EntityReference ++org/w3c/dom/NamedNodeMap ++org/w3c/dom/Node ++org/w3c/dom/NodeList ++org/w3c/dom/Notation ++org/w3c/dom/ProcessingInstruction ++org/w3c/dom/Text ++org/w3c/dom/events/DocumentEvent ++org/w3c/dom/events/Event ++org/w3c/dom/events/EventException ++org/w3c/dom/events/EventTarget ++org/w3c/dom/events/MutationEvent ++org/w3c/dom/ranges/DocumentRange ++org/w3c/dom/ranges/Range ++org/w3c/dom/traversal/DocumentTraversal ++org/w3c/dom/traversal/NodeIterator ++org/w3c/dom/traversal/TreeWalker ++org/xml/sax/AttributeList ++org/xml/sax/ContentHandler ++org/xml/sax/DTDHandler ++org/xml/sax/EntityResolver ++org/xml/sax/ErrorHandler ++org/xml/sax/InputSource ++org/xml/sax/Locator ++org/xml/sax/SAXException ++org/xml/sax/SAXNotRecognizedException ++org/xml/sax/SAXNotSupportedException ++org/xml/sax/SAXParseException ++org/xml/sax/helpers/DefaultHandler ++sun/awt/AWTAccessor ++sun/awt/AWTAccessor$AWTEventAccessor ++sun/awt/AWTAccessor$ClientPropertyKeyAccessor ++sun/awt/AWTAccessor$ComponentAccessor ++sun/awt/AWTAccessor$ContainerAccessor ++sun/awt/AWTAccessor$CursorAccessor ++sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor ++sun/awt/AWTAccessor$EventQueueAccessor ++sun/awt/AWTAccessor$FrameAccessor ++sun/awt/AWTAccessor$InputEventAccessor ++sun/awt/AWTAccessor$InvocationEventAccessor ++sun/awt/AWTAccessor$KeyEventAccessor ++sun/awt/AWTAccessor$KeyboardFocusManagerAccessor ++sun/awt/AWTAccessor$SequencedEventAccessor ++sun/awt/AWTAccessor$ToolkitAccessor ++sun/awt/AWTAccessor$WindowAccessor ++sun/awt/AWTAutoShutdown ++sun/awt/AWTIcon32_java_icon16_png ++sun/awt/AWTIcon32_java_icon24_png ++sun/awt/AWTIcon32_java_icon32_png ++sun/awt/AWTIcon32_java_icon48_png ++sun/awt/AWTIcon64_java_icon16_png ++sun/awt/AWTIcon64_java_icon24_png ++sun/awt/AWTIcon64_java_icon32_png ++sun/awt/AWTIcon64_java_icon48_png ++sun/awt/AppContext ++sun/awt/AppContext$1 ++sun/awt/AppContext$2 ++sun/awt/AppContext$3 ++sun/awt/AppContext$6 ++sun/awt/AppContext$GetAppContextLock ++sun/awt/AppContext$State ++sun/awt/CausedFocusEvent ++sun/awt/CausedFocusEvent$Cause ++sun/awt/ComponentFactory ++sun/awt/ConstrainableGraphics ++sun/awt/DisplayChangedListener ++sun/awt/EmbeddedFrame ++sun/awt/EventQueueDelegate ++sun/awt/EventQueueItem ++sun/awt/FontConfiguration ++sun/awt/FontConfiguration$1 ++sun/awt/FontDescriptor ++sun/awt/GlobalCursorManager ++sun/awt/GlobalCursorManager$NativeUpdater ++sun/awt/HeadlessToolkit ++sun/awt/IconInfo ++sun/awt/InputMethodSupport ++sun/awt/KeyboardFocusManagerPeerImpl ++sun/awt/KeyboardFocusManagerPeerProvider ++sun/awt/LightweightFrame ++sun/awt/ModalExclude ++sun/awt/ModalityEvent ++sun/awt/ModalityListener ++sun/awt/MostRecentKeyValue ++sun/awt/Mutex ++sun/awt/NullComponentPeer ++sun/awt/OSInfo ++sun/awt/OSInfo$1 ++sun/awt/OSInfo$OSType ++sun/awt/OSInfo$WindowsVersion ++sun/awt/PaintEventDispatcher ++sun/awt/PeerEvent ++sun/awt/PostEventQueue ++sun/awt/RepaintArea ++sun/awt/RequestFocusController ++sun/awt/SubRegionShowable ++sun/awt/SunDisplayChanger ++sun/awt/SunGraphicsCallback ++sun/awt/SunHints ++sun/awt/SunHints$Key ++sun/awt/SunHints$LCDContrastKey ++sun/awt/SunHints$Value ++sun/awt/SunToolkit ++sun/awt/SunToolkit$1 ++sun/awt/SunToolkit$ModalityListenerList ++sun/awt/TimedWindowEvent ++sun/awt/UNIXToolkit ++sun/awt/WindowClosingListener ++sun/awt/WindowClosingSupport ++sun/awt/X11/AwtGraphicsConfigData ++sun/awt/X11/AwtScreenData ++sun/awt/X11/MotifColorUtilities ++sun/awt/X11/MotifDnDConstants ++sun/awt/X11/MotifDnDDragSourceProtocol ++sun/awt/X11/MotifDnDDropTargetProtocol ++sun/awt/X11/Native ++sun/awt/X11/Native$1 ++sun/awt/X11/OwnershipListener ++sun/awt/X11/PropMwmHints ++sun/awt/X11/UnsafeXDisposerRecord ++sun/awt/X11/WindowDimensions ++sun/awt/X11/WindowPropertyGetter ++sun/awt/X11/XAWTXSettings ++sun/awt/X11/XAnyEvent ++sun/awt/X11/XAtom ++sun/awt/X11/XAtomList ++sun/awt/X11/XAwtState ++sun/awt/X11/XBaseWindow ++sun/awt/X11/XBaseWindow$1 ++sun/awt/X11/XBaseWindow$InitialiseState ++sun/awt/X11/XBaseWindow$StateLock ++sun/awt/X11/XCanvasPeer ++sun/awt/X11/XClientMessageEvent ++sun/awt/X11/XClipboard ++sun/awt/X11/XComponentPeer ++sun/awt/X11/XComponentPeer$1 ++sun/awt/X11/XConfigureEvent ++sun/awt/X11/XContentWindow ++sun/awt/X11/XCreateWindowParams ++sun/awt/X11/XDecoratedPeer ++sun/awt/X11/XDnDConstants ++sun/awt/X11/XDnDDragSourceProtocol ++sun/awt/X11/XDnDDropTargetProtocol ++sun/awt/X11/XDragAndDropProtocols ++sun/awt/X11/XDragSourceContextPeer ++sun/awt/X11/XDragSourceProtocol ++sun/awt/X11/XDragSourceProtocolListener ++sun/awt/X11/XDropTargetContextPeer ++sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl ++sun/awt/X11/XDropTargetEventProcessor ++sun/awt/X11/XDropTargetProtocol ++sun/awt/X11/XDropTargetProtocolListener ++sun/awt/X11/XDropTargetRegistry ++sun/awt/X11/XEmbeddedFramePeer ++sun/awt/X11/XErrorEvent ++sun/awt/X11/XErrorHandler ++sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler ++sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler ++sun/awt/X11/XErrorHandler$XBaseErrorHandler ++sun/awt/X11/XErrorHandlerUtil ++sun/awt/X11/XEvent ++sun/awt/X11/XEventDispatcher ++sun/awt/X11/XExposeEvent ++sun/awt/X11/XFocusChangeEvent ++sun/awt/X11/XFocusProxyWindow ++sun/awt/X11/XFramePeer ++sun/awt/X11/XGlobalCursorManager ++sun/awt/X11/XInputMethod ++sun/awt/X11/XInputMethodDescriptor ++sun/awt/X11/XKeyboardFocusManagerPeer ++sun/awt/X11/XLabelPeer ++sun/awt/X11/XLayerProtocol ++sun/awt/X11/XMSelection ++sun/awt/X11/XMSelection$1 ++sun/awt/X11/XMSelection$3 ++sun/awt/X11/XMSelectionListener ++sun/awt/X11/XModifierKeymap ++sun/awt/X11/XNETProtocol ++sun/awt/X11/XPanelPeer ++sun/awt/X11/XPropertyCache ++sun/awt/X11/XPropertyEvent ++sun/awt/X11/XProtocol ++sun/awt/X11/XRepaintArea ++sun/awt/X11/XReparentEvent ++sun/awt/X11/XRootWindow ++sun/awt/X11/XSelection ++sun/awt/X11/XSelection$IncrementalTransferHandler ++sun/awt/X11/XSelection$SelectionEventHandler ++sun/awt/X11/XSetWindowAttributes ++sun/awt/X11/XSizeHints ++sun/awt/X11/XStateProtocol ++sun/awt/X11/XSystemTrayPeer ++sun/awt/X11/XToolkit ++sun/awt/X11/XToolkit$1 ++sun/awt/X11/XToolkit$2 ++sun/awt/X11/XToolkit$2$1 ++sun/awt/X11/XToolkit$3 ++sun/awt/X11/XToolkit$4 ++sun/awt/X11/XToolkit$5 ++sun/awt/X11/XTranslateCoordinates ++sun/awt/X11/XUnmapEvent ++sun/awt/X11/XVisibilityEvent ++sun/awt/X11/XVisualInfo ++sun/awt/X11/XWINProtocol ++sun/awt/X11/XWM ++sun/awt/X11/XWM$1 ++sun/awt/X11/XWMHints ++sun/awt/X11/XWindow ++sun/awt/X11/XWindowAttributes ++sun/awt/X11/XWindowAttributesData ++sun/awt/X11/XWindowPeer ++sun/awt/X11/XWindowPeer$2 ++sun/awt/X11/XWindowPeer$4 ++sun/awt/X11/XWrapperBase ++sun/awt/X11/XlibUtil ++sun/awt/X11/XlibWrapper ++sun/awt/X11ComponentPeer ++sun/awt/X11FontManager ++sun/awt/X11GraphicsConfig ++sun/awt/X11GraphicsConfig$X11GCDisposerRecord ++sun/awt/X11GraphicsDevice ++sun/awt/X11GraphicsEnvironment ++sun/awt/X11GraphicsEnvironment$1 ++sun/awt/X11InputMethod ++sun/awt/X11InputMethodDescriptor ++sun/awt/XSettings ++sun/awt/XSettings$Update ++sun/awt/datatransfer/DataTransferer ++sun/awt/datatransfer/DataTransferer$1 ++sun/awt/datatransfer/DataTransferer$CharsetComparator ++sun/awt/datatransfer/DataTransferer$IndexOrderComparator ++sun/awt/datatransfer/DataTransferer$IndexedComparator ++sun/awt/datatransfer/DataTransferer$RMI ++sun/awt/datatransfer/DataTransferer$StandardEncodingsHolder ++sun/awt/datatransfer/SunClipboard ++sun/awt/datatransfer/ToolkitThreadBlockedHandler ++sun/awt/datatransfer/TransferableProxy ++sun/awt/dnd/SunDragSourceContextPeer ++sun/awt/dnd/SunDropTargetContextPeer ++sun/awt/dnd/SunDropTargetEvent ++sun/awt/event/IgnorePaintEvent ++sun/awt/geom/PathConsumer2D ++sun/awt/im/CompositionAreaHandler ++sun/awt/im/ExecutableInputMethodManager ++sun/awt/im/ExecutableInputMethodManager$3 ++sun/awt/im/InputContext ++sun/awt/im/InputMethodAdapter ++sun/awt/im/InputMethodContext ++sun/awt/im/InputMethodLocator ++sun/awt/im/InputMethodManager ++sun/awt/im/InputMethodWindow ++sun/awt/image/BufImgSurfaceData ++sun/awt/image/BufImgSurfaceData$ICMColorData ++sun/awt/image/BufImgSurfaceManager ++sun/awt/image/BufferedImageGraphicsConfig ++sun/awt/image/ByteComponentRaster ++sun/awt/image/ByteInterleavedRaster ++sun/awt/image/BytePackedRaster ++sun/awt/image/FetcherInfo ++sun/awt/image/GifFrame ++sun/awt/image/GifImageDecoder ++sun/awt/image/ImageConsumerQueue ++sun/awt/image/ImageDecoder ++sun/awt/image/ImageDecoder$1 ++sun/awt/image/ImageFetchable ++sun/awt/image/ImageFetcher ++sun/awt/image/ImageFetcher$1 ++sun/awt/image/ImageRepresentation ++sun/awt/image/ImageWatched ++sun/awt/image/ImageWatched$Link ++sun/awt/image/ImageWatched$WeakLink ++sun/awt/image/InputStreamImageSource ++sun/awt/image/IntegerComponentRaster ++sun/awt/image/IntegerInterleavedRaster ++sun/awt/image/NativeLibLoader ++sun/awt/image/NativeLibLoader$1 ++sun/awt/image/OffScreenImage ++sun/awt/image/OffScreenImageSource ++sun/awt/image/PNGFilterInputStream ++sun/awt/image/PNGImageDecoder ++sun/awt/image/PixelConverter ++sun/awt/image/PixelConverter$Argb ++sun/awt/image/PixelConverter$ArgbBm ++sun/awt/image/PixelConverter$ArgbPre ++sun/awt/image/PixelConverter$Bgrx ++sun/awt/image/PixelConverter$ByteGray ++sun/awt/image/PixelConverter$Rgba ++sun/awt/image/PixelConverter$RgbaPre ++sun/awt/image/PixelConverter$Rgbx ++sun/awt/image/PixelConverter$Ushort4444Argb ++sun/awt/image/PixelConverter$Ushort555Rgb ++sun/awt/image/PixelConverter$Ushort555Rgbx ++sun/awt/image/PixelConverter$Ushort565Rgb ++sun/awt/image/PixelConverter$UshortGray ++sun/awt/image/PixelConverter$Xbgr ++sun/awt/image/PixelConverter$Xrgb ++sun/awt/image/SunVolatileImage ++sun/awt/image/SunWritableRaster ++sun/awt/image/SunWritableRaster$DataStealer ++sun/awt/image/SurfaceManager ++sun/awt/image/SurfaceManager$FlushableCacheData ++sun/awt/image/SurfaceManager$ImageAccessor ++sun/awt/image/SurfaceManager$ProxiedGraphicsConfig ++sun/awt/image/ToolkitImage ++sun/awt/image/URLImageSource ++sun/awt/image/VolatileSurfaceManager ++sun/awt/motif/MFontConfiguration ++sun/awt/resources/awt ++sun/awt/util/IdentityArrayList ++sun/awt/util/IdentityLinkedList ++sun/awt/util/IdentityLinkedList$Entry ++sun/awt/util/IdentityLinkedList$ListItr ++sun/font/AttributeValues ++sun/font/CMap$CMapFormat12 ++sun/font/CMap$NullCMapClass ++sun/font/CharToGlyphMapper ++sun/font/CompositeFont ++sun/font/CompositeFontDescriptor ++sun/font/CompositeGlyphMapper ++sun/font/CompositeStrike ++sun/font/CoreMetrics ++sun/font/EAttribute ++sun/font/FcFontConfiguration ++sun/font/FileFont ++sun/font/FileFontStrike ++sun/font/Font2D ++sun/font/Font2DHandle ++sun/font/FontAccess ++sun/font/FontConfigManager ++sun/font/FontConfigManager$FcCompFont ++sun/font/FontConfigManager$FontConfigFont ++sun/font/FontConfigManager$FontConfigInfo ++sun/font/FontDesignMetrics ++sun/font/FontDesignMetrics$KeyReference ++sun/font/FontDesignMetrics$MetricsKey ++sun/font/FontFamily ++sun/font/FontLineMetrics ++sun/font/FontManager ++sun/font/FontManagerFactory ++sun/font/FontManagerFactory$1 ++sun/font/FontManagerForSGE ++sun/font/FontManagerNativeLibrary ++sun/font/FontManagerNativeLibrary$1 ++sun/font/FontScaler ++sun/font/FontStrike ++sun/font/FontStrikeDesc ++sun/font/FontStrikeDisposer ++sun/font/FontUtilities ++sun/font/FontUtilities$1 ++sun/font/GlyphDisposedListener ++sun/font/GlyphList ++sun/font/PhysicalFont ++sun/font/PhysicalStrike ++sun/font/StandardGlyphVector ++sun/font/StandardGlyphVector$GlyphStrike ++sun/font/StrikeCache ++sun/font/StrikeCache$1 ++sun/font/StrikeCache$DisposableStrike ++sun/font/StrikeCache$SoftDisposerRef ++sun/font/StrikeMetrics ++sun/font/SunFontManager ++sun/font/SunFontManager$1 ++sun/font/SunFontManager$11 ++sun/font/SunFontManager$13 ++sun/font/SunFontManager$2 ++sun/font/SunFontManager$3 ++sun/font/SunFontManager$FontRegistrationInfo ++sun/font/SunFontManager$T1Filter ++sun/font/SunFontManager$TTFilter ++sun/font/TrueTypeFont ++sun/font/TrueTypeFont$1 ++sun/font/TrueTypeFont$DirectoryEntry ++sun/font/TrueTypeFont$TTDisposerRecord ++sun/font/TrueTypeGlyphMapper ++sun/font/Type1Font ++sun/font/Type1Font$1 ++sun/font/X11TextRenderer ++sun/font/XRGlyphCache ++sun/font/XRGlyphCacheEntry ++sun/font/XRTextRenderer ++sun/java2d/BackBufferCapsProvider ++sun/java2d/DefaultDisposerRecord ++sun/java2d/DestSurfaceProvider ++sun/java2d/Disposer ++sun/java2d/Disposer$1 ++sun/java2d/Disposer$2 ++sun/java2d/Disposer$PollDisposable ++sun/java2d/DisposerRecord ++sun/java2d/DisposerTarget ++sun/java2d/FontSupport ++sun/java2d/InvalidPipeException ++sun/java2d/NullSurfaceData ++sun/java2d/StateTrackable ++sun/java2d/StateTrackable$State ++sun/java2d/StateTrackableDelegate ++sun/java2d/StateTrackableDelegate$1 ++sun/java2d/StateTrackableDelegate$2 ++sun/java2d/StateTracker ++sun/java2d/StateTracker$1 ++sun/java2d/StateTracker$2 ++sun/java2d/SunGraphics2D ++sun/java2d/SunGraphicsEnvironment ++sun/java2d/SunGraphicsEnvironment$1 ++sun/java2d/Surface ++sun/java2d/SurfaceData ++sun/java2d/SurfaceData$PixelToPgramLoopConverter ++sun/java2d/SurfaceData$PixelToShapeLoopConverter ++sun/java2d/SurfaceDataProxy ++sun/java2d/SurfaceDataProxy$1 ++sun/java2d/SurfaceManagerFactory ++sun/java2d/UnixSurfaceManagerFactory ++sun/java2d/cmm/CMSManager ++sun/java2d/cmm/ProfileActivator ++sun/java2d/cmm/ProfileDeferralInfo ++sun/java2d/cmm/ProfileDeferralMgr ++sun/java2d/jules/JulesPathBuf ++sun/java2d/jules/JulesPathBuf$1 ++sun/java2d/loops/Blit ++sun/java2d/loops/BlitBg ++sun/java2d/loops/CompositeType ++sun/java2d/loops/CustomComponent ++sun/java2d/loops/DrawGlyphList ++sun/java2d/loops/DrawGlyphListAA ++sun/java2d/loops/DrawGlyphListLCD ++sun/java2d/loops/DrawLine ++sun/java2d/loops/DrawParallelogram ++sun/java2d/loops/DrawPath ++sun/java2d/loops/DrawPolygons ++sun/java2d/loops/DrawRect ++sun/java2d/loops/FillParallelogram ++sun/java2d/loops/FillPath ++sun/java2d/loops/FillRect ++sun/java2d/loops/FillSpans ++sun/java2d/loops/FontInfo ++sun/java2d/loops/GeneralRenderer ++sun/java2d/loops/GraphicsPrimitive ++sun/java2d/loops/GraphicsPrimitiveMgr ++sun/java2d/loops/GraphicsPrimitiveMgr$1 ++sun/java2d/loops/GraphicsPrimitiveMgr$2 ++sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec ++sun/java2d/loops/GraphicsPrimitiveProxy ++sun/java2d/loops/MaskBlit ++sun/java2d/loops/MaskFill ++sun/java2d/loops/ProcessPath ++sun/java2d/loops/ProcessPath$1 ++sun/java2d/loops/ProcessPath$ActiveEdgeList ++sun/java2d/loops/ProcessPath$DrawHandler ++sun/java2d/loops/ProcessPath$Edge ++sun/java2d/loops/ProcessPath$EndSubPathHandler ++sun/java2d/loops/ProcessPath$FillData ++sun/java2d/loops/ProcessPath$FillProcessHandler ++sun/java2d/loops/ProcessPath$Point ++sun/java2d/loops/ProcessPath$ProcessHandler ++sun/java2d/loops/RenderCache ++sun/java2d/loops/RenderCache$Entry ++sun/java2d/loops/RenderLoops ++sun/java2d/loops/ScaledBlit ++sun/java2d/loops/SurfaceType ++sun/java2d/loops/TransformBlit ++sun/java2d/loops/TransformHelper ++sun/java2d/loops/XORComposite ++sun/java2d/opengl/GLXGraphicsConfig ++sun/java2d/opengl/OGLAnyCompositeBlit ++sun/java2d/opengl/OGLBlitLoops ++sun/java2d/opengl/OGLContext ++sun/java2d/opengl/OGLContext$OGLContextCaps ++sun/java2d/opengl/OGLDrawImage ++sun/java2d/opengl/OGLGeneralBlit ++sun/java2d/opengl/OGLGraphicsConfig ++sun/java2d/opengl/OGLMaskBlit ++sun/java2d/opengl/OGLMaskFill ++sun/java2d/opengl/OGLRTTSurfaceToSurfaceBlit ++sun/java2d/opengl/OGLRTTSurfaceToSurfaceScale ++sun/java2d/opengl/OGLRTTSurfaceToSurfaceTransform ++sun/java2d/opengl/OGLRenderQueue ++sun/java2d/opengl/OGLRenderQueue$1 ++sun/java2d/opengl/OGLRenderQueue$QueueFlusher ++sun/java2d/opengl/OGLRenderer ++sun/java2d/opengl/OGLSurfaceData ++sun/java2d/opengl/OGLSurfaceData$1 ++sun/java2d/opengl/OGLSurfaceDataProxy ++sun/java2d/opengl/OGLSurfaceToSurfaceBlit ++sun/java2d/opengl/OGLSurfaceToSurfaceScale ++sun/java2d/opengl/OGLSurfaceToSurfaceTransform ++sun/java2d/opengl/OGLSurfaceToSwBlit ++sun/java2d/opengl/OGLSwToSurfaceBlit ++sun/java2d/opengl/OGLSwToSurfaceScale ++sun/java2d/opengl/OGLSwToSurfaceTransform ++sun/java2d/opengl/OGLSwToTextureBlit ++sun/java2d/opengl/OGLTextRenderer ++sun/java2d/opengl/OGLTextureToSurfaceBlit ++sun/java2d/opengl/OGLTextureToSurfaceScale ++sun/java2d/opengl/OGLTextureToSurfaceTransform ++sun/java2d/pipe/AAShapePipe ++sun/java2d/pipe/AATextRenderer ++sun/java2d/pipe/AlphaColorPipe ++sun/java2d/pipe/AlphaPaintPipe ++sun/java2d/pipe/BufferedContext ++sun/java2d/pipe/BufferedMaskBlit ++sun/java2d/pipe/BufferedMaskFill ++sun/java2d/pipe/BufferedPaints ++sun/java2d/pipe/BufferedRenderPipe ++sun/java2d/pipe/BufferedRenderPipe$AAParallelogramPipe ++sun/java2d/pipe/BufferedRenderPipe$BufferedDrawHandler ++sun/java2d/pipe/BufferedTextPipe ++sun/java2d/pipe/CompositePipe ++sun/java2d/pipe/DrawImage ++sun/java2d/pipe/DrawImagePipe ++sun/java2d/pipe/GeneralCompositePipe ++sun/java2d/pipe/GlyphListLoopPipe ++sun/java2d/pipe/GlyphListPipe ++sun/java2d/pipe/LCDTextRenderer ++sun/java2d/pipe/LoopBasedPipe ++sun/java2d/pipe/LoopPipe ++sun/java2d/pipe/NullPipe ++sun/java2d/pipe/OutlineTextRenderer ++sun/java2d/pipe/ParallelogramPipe ++sun/java2d/pipe/PixelDrawPipe ++sun/java2d/pipe/PixelFillPipe ++sun/java2d/pipe/PixelToParallelogramConverter ++sun/java2d/pipe/PixelToShapeConverter ++sun/java2d/pipe/Region ++sun/java2d/pipe/Region$ImmutableRegion ++sun/java2d/pipe/RegionIterator ++sun/java2d/pipe/RenderBuffer ++sun/java2d/pipe/RenderQueue ++sun/java2d/pipe/RenderingEngine ++sun/java2d/pipe/RenderingEngine$1 ++sun/java2d/pipe/ShapeDrawPipe ++sun/java2d/pipe/ShapeSpanIterator ++sun/java2d/pipe/SolidTextRenderer ++sun/java2d/pipe/SpanClipRenderer ++sun/java2d/pipe/SpanIterator ++sun/java2d/pipe/SpanShapeRenderer ++sun/java2d/pipe/SpanShapeRenderer$Composite ++sun/java2d/pipe/TextPipe ++sun/java2d/pipe/TextRenderer ++sun/java2d/pipe/ValidatePipe ++sun/java2d/pipe/hw/AccelGraphicsConfig ++sun/java2d/pipe/hw/AccelSurface ++sun/java2d/pipe/hw/BufferedContextProvider ++sun/java2d/pipe/hw/ContextCapabilities ++sun/java2d/x11/X11Renderer ++sun/java2d/x11/X11SurfaceData ++sun/java2d/x11/X11SurfaceData$LazyPipe ++sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData ++sun/java2d/x11/X11VolatileSurfaceManager ++sun/java2d/x11/XSurfaceData ++sun/java2d/xr/DirtyRegion ++sun/java2d/xr/GrowableEltArray ++sun/java2d/xr/GrowableIntArray ++sun/java2d/xr/GrowableRectArray ++sun/java2d/xr/MaskTile ++sun/java2d/xr/MaskTileManager ++sun/java2d/xr/MutableInteger ++sun/java2d/xr/XRBackend ++sun/java2d/xr/XRBackendNative ++sun/java2d/xr/XRColor ++sun/java2d/xr/XRCompositeManager ++sun/java2d/xr/XRCompositeManager$1 ++sun/java2d/xr/XRDrawImage ++sun/java2d/xr/XRDrawLine ++sun/java2d/xr/XRGraphicsConfig ++sun/java2d/xr/XRMaskBlit ++sun/java2d/xr/XRMaskFill ++sun/java2d/xr/XRMaskImage ++sun/java2d/xr/XRPMBlit ++sun/java2d/xr/XRPMBlitLoops ++sun/java2d/xr/XRPMScaledBlit ++sun/java2d/xr/XRPMTransformedBlit ++sun/java2d/xr/XRPaints ++sun/java2d/xr/XRPaints$XRGradient ++sun/java2d/xr/XRPaints$XRLinearGradient ++sun/java2d/xr/XRPaints$XRRadialGradient ++sun/java2d/xr/XRPaints$XRTexture ++sun/java2d/xr/XRRenderer ++sun/java2d/xr/XRRenderer$XRDrawHandler ++sun/java2d/xr/XRSolidSrcPict ++sun/java2d/xr/XRSurfaceData ++sun/java2d/xr/XRSurfaceData$XRInternalSurfaceData ++sun/java2d/xr/XRSurfaceData$XRPixmapSurfaceData ++sun/java2d/xr/XRSurfaceData$XRWindowSurfaceData ++sun/java2d/xr/XRSurfaceDataProxy ++sun/java2d/xr/XRUtils ++sun/java2d/xr/XRVolatileSurfaceManager ++sun/java2d/xr/XrSwToPMBlit ++sun/java2d/xr/XrSwToPMScaledBlit ++sun/java2d/xr/XrSwToPMTransformedBlit ++sun/launcher/LauncherHelper ++sun/launcher/LauncherHelper$FXHelper ++sun/misc/ASCIICaseInsensitiveComparator ++sun/misc/Cleaner ++sun/misc/CompoundEnumeration ++sun/misc/ExtensionDependency ++sun/misc/FDBigInteger ++sun/misc/FileURLMapper ++sun/misc/FloatingDecimal ++sun/misc/FloatingDecimal$1 ++sun/misc/FloatingDecimal$ASCIIToBinaryBuffer ++sun/misc/FloatingDecimal$ASCIIToBinaryConverter ++sun/misc/FloatingDecimal$BinaryToASCIIBuffer ++sun/misc/FloatingDecimal$BinaryToASCIIConverter ++sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer ++sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer ++sun/misc/IOUtils ++sun/misc/JarIndex ++sun/misc/JavaAWTAccess ++sun/misc/JavaIOFileDescriptorAccess ++sun/misc/JavaLangAccess ++sun/misc/JavaNetAccess ++sun/misc/JavaNioAccess ++sun/misc/JavaSecurityAccess ++sun/misc/JavaSecurityProtectionDomainAccess ++sun/misc/JavaUtilJarAccess ++sun/misc/JavaUtilZipFileAccess ++sun/misc/Launcher ++sun/misc/Launcher$AppClassLoader ++sun/misc/Launcher$AppClassLoader$1 ++sun/misc/Launcher$BootClassPathHolder ++sun/misc/Launcher$BootClassPathHolder$1 ++sun/misc/Launcher$ExtClassLoader ++sun/misc/Launcher$ExtClassLoader$1 ++sun/misc/Launcher$Factory ++sun/misc/MetaIndex ++sun/misc/NativeSignalHandler ++sun/misc/OSEnvironment ++sun/misc/Perf ++sun/misc/Perf$GetPerfAction ++sun/misc/PerfCounter ++sun/misc/PerfCounter$CoreCounters ++sun/misc/PerformanceLogger ++sun/misc/PerformanceLogger$TimeData ++sun/misc/Resource ++sun/misc/SharedSecrets ++sun/misc/Signal ++sun/misc/SignalHandler ++sun/misc/SoftCache ++sun/misc/SoftCache$ValueCell ++sun/misc/URLClassPath ++sun/misc/URLClassPath$1 ++sun/misc/URLClassPath$2 ++sun/misc/URLClassPath$3 ++sun/misc/URLClassPath$FileLoader ++sun/misc/URLClassPath$JarLoader ++sun/misc/URLClassPath$JarLoader$1 ++sun/misc/URLClassPath$JarLoader$2 ++sun/misc/URLClassPath$Loader ++sun/misc/Unsafe ++sun/misc/VM ++sun/misc/Version ++sun/net/DefaultProgressMeteringPolicy ++sun/net/InetAddressCachePolicy ++sun/net/InetAddressCachePolicy$1 ++sun/net/InetAddressCachePolicy$2 ++sun/net/NetHooks ++sun/net/NetHooks$Provider ++sun/net/NetProperties ++sun/net/NetProperties$1 ++sun/net/ProgressMeteringPolicy ++sun/net/ProgressMonitor ++sun/net/ResourceManager ++sun/net/sdp/SdpProvider ++sun/net/spi/DefaultProxySelector ++sun/net/spi/DefaultProxySelector$1 ++sun/net/spi/DefaultProxySelector$3 ++sun/net/spi/DefaultProxySelector$NonProxyInfo ++sun/net/spi/nameservice/NameService ++sun/net/util/IPAddressUtil ++sun/net/util/URLUtil ++sun/net/www/MessageHeader ++sun/net/www/MimeEntry ++sun/net/www/MimeTable ++sun/net/www/MimeTable$1 ++sun/net/www/MimeTable$DefaultInstanceHolder ++sun/net/www/MimeTable$DefaultInstanceHolder$1 ++sun/net/www/ParseUtil ++sun/net/www/URLConnection ++sun/net/www/protocol/file/FileURLConnection ++sun/net/www/protocol/file/Handler ++sun/net/www/protocol/http/Handler ++sun/net/www/protocol/jar/Handler ++sun/net/www/protocol/jar/JarFileFactory ++sun/net/www/protocol/jar/JarURLConnection ++sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream ++sun/net/www/protocol/jar/URLJarFile ++sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController ++sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry ++sun/nio/ByteBuffered ++sun/nio/ch/DirectBuffer ++sun/nio/ch/FileChannelImpl ++sun/nio/ch/FileChannelImpl$Unmapper ++sun/nio/ch/FileDispatcher ++sun/nio/ch/FileDispatcherImpl ++sun/nio/ch/IOStatus ++sun/nio/ch/IOUtil ++sun/nio/ch/IOUtil$1 ++sun/nio/ch/Interruptible ++sun/nio/ch/NativeDispatcher ++sun/nio/ch/NativeThread ++sun/nio/ch/NativeThreadSet ++sun/nio/ch/Util ++sun/nio/ch/Util$1 ++sun/nio/ch/Util$4 ++sun/nio/ch/Util$BufferCache ++sun/nio/cs/AbstractCharsetProvider ++sun/nio/cs/ArrayDecoder ++sun/nio/cs/ArrayEncoder ++sun/nio/cs/FastCharsetProvider ++sun/nio/cs/HistoricallyNamedCharset ++sun/nio/cs/ISO_8859_1 ++sun/nio/cs/ISO_8859_1$Decoder ++sun/nio/cs/ISO_8859_1$Encoder ++sun/nio/cs/StandardCharsets ++sun/nio/cs/StandardCharsets$Aliases ++sun/nio/cs/StandardCharsets$Cache ++sun/nio/cs/StandardCharsets$Classes ++sun/nio/cs/StreamDecoder ++sun/nio/cs/StreamEncoder ++sun/nio/cs/Surrogate ++sun/nio/cs/Surrogate$Parser ++sun/nio/cs/US_ASCII ++sun/nio/cs/US_ASCII$Decoder ++sun/nio/cs/UTF_16 ++sun/nio/cs/UTF_16$Decoder ++sun/nio/cs/UTF_16BE ++sun/nio/cs/UTF_16LE ++sun/nio/cs/UTF_8 ++sun/nio/cs/UTF_8$Decoder ++sun/nio/cs/UTF_8$Encoder ++sun/nio/cs/Unicode ++sun/nio/cs/UnicodeDecoder ++sun/nio/cs/ext/DelegatableDecoder ++sun/nio/cs/ext/DoubleByte ++sun/nio/cs/ext/DoubleByte$Decoder ++sun/nio/cs/ext/EUC_KR ++sun/nio/cs/ext/ExtendedCharsets ++sun/print/PrinterGraphicsConfig ++sun/reflect/AccessorGenerator ++sun/reflect/BootstrapConstructorAccessorImpl ++sun/reflect/ByteVector ++sun/reflect/ByteVectorFactory ++sun/reflect/ByteVectorImpl ++sun/reflect/CallerSensitive ++sun/reflect/ClassDefiner ++sun/reflect/ClassDefiner$1 ++sun/reflect/ClassFileAssembler ++sun/reflect/ClassFileConstants ++sun/reflect/ConstantPool ++sun/reflect/ConstructorAccessor ++sun/reflect/ConstructorAccessorImpl ++sun/reflect/DelegatingClassLoader ++sun/reflect/DelegatingConstructorAccessorImpl ++sun/reflect/DelegatingMethodAccessorImpl ++sun/reflect/FieldAccessor ++sun/reflect/FieldAccessorImpl ++sun/reflect/Label ++sun/reflect/Label$PatchInfo ++sun/reflect/LangReflectAccess ++sun/reflect/MagicAccessorImpl ++sun/reflect/MethodAccessor ++sun/reflect/MethodAccessorGenerator ++sun/reflect/MethodAccessorGenerator$1 ++sun/reflect/MethodAccessorImpl ++sun/reflect/NativeConstructorAccessorImpl ++sun/reflect/NativeMethodAccessorImpl ++sun/reflect/Reflection ++sun/reflect/ReflectionFactory ++sun/reflect/ReflectionFactory$1 ++sun/reflect/ReflectionFactory$GetReflectionFactoryAction ++sun/reflect/SerializationConstructorAccessorImpl ++sun/reflect/UTF8 ++sun/reflect/UnsafeBooleanFieldAccessorImpl ++sun/reflect/UnsafeFieldAccessorFactory ++sun/reflect/UnsafeFieldAccessorImpl ++sun/reflect/UnsafeObjectFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl ++sun/reflect/UnsafeStaticFieldAccessorImpl ++sun/reflect/annotation/AnnotationType ++sun/reflect/generics/repository/AbstractRepository ++sun/reflect/generics/repository/ClassRepository ++sun/reflect/generics/repository/GenericDeclRepository ++sun/reflect/misc/MethodUtil ++sun/reflect/misc/MethodUtil$1 ++sun/reflect/misc/ReflectUtil ++sun/security/action/GetBooleanAction ++sun/security/action/GetIntegerAction ++sun/security/action/GetPropertyAction ++sun/security/action/PutAllAction ++sun/security/jca/GetInstance ++sun/security/jca/GetInstance$Instance ++sun/security/jca/ProviderConfig ++sun/security/jca/ProviderConfig$1 ++sun/security/jca/ProviderConfig$2 ++sun/security/jca/ProviderConfig$3 ++sun/security/jca/ProviderList ++sun/security/jca/ProviderList$1 ++sun/security/jca/ProviderList$2 ++sun/security/jca/ProviderList$3 ++sun/security/jca/ProviderList$ServiceList ++sun/security/jca/ProviderList$ServiceList$1 ++sun/security/jca/Providers ++sun/security/jca/ServiceId ++sun/security/pkcs/ContentInfo ++sun/security/pkcs/PKCS7 ++sun/security/pkcs/PKCS8Key ++sun/security/pkcs/PKCS9Attribute ++sun/security/pkcs/SignerInfo ++sun/security/provider/ByteArrayAccess ++sun/security/provider/DSA ++sun/security/provider/DSA$LegacyDSA ++sun/security/provider/DSA$SHA1withDSA ++sun/security/provider/DSAKeyFactory ++sun/security/provider/DSAParameters ++sun/security/provider/DSAPublicKey ++sun/security/provider/DSAPublicKeyImpl ++sun/security/provider/DigestBase ++sun/security/provider/NativePRNG ++sun/security/provider/NativePRNG$1 ++sun/security/provider/NativePRNG$2 ++sun/security/provider/NativePRNG$Blocking ++sun/security/provider/NativePRNG$NonBlocking ++sun/security/provider/NativePRNG$RandomIO ++sun/security/provider/NativePRNG$Variant ++sun/security/provider/SHA ++sun/security/provider/SHA2 ++sun/security/provider/SHA2$SHA256 ++sun/security/provider/Sun ++sun/security/provider/SunEntries ++sun/security/provider/SunEntries$1 ++sun/security/provider/X509Factory ++sun/security/provider/certpath/X509CertPath ++sun/security/rsa/RSACore ++sun/security/rsa/RSAKeyFactory ++sun/security/rsa/RSAPadding ++sun/security/rsa/RSAPrivateCrtKeyImpl ++sun/security/rsa/RSAPrivateKeyImpl ++sun/security/rsa/RSAPublicKeyImpl ++sun/security/rsa/RSASignature ++sun/security/rsa/RSASignature$SHA256withRSA ++sun/security/rsa/SunRsaSign ++sun/security/rsa/SunRsaSignEntries ++sun/security/util/BitArray ++sun/security/util/ByteArrayLexOrder ++sun/security/util/ByteArrayTagOrder ++sun/security/util/Cache ++sun/security/util/Cache$EqualByteArray ++sun/security/util/Debug ++sun/security/util/DerEncoder ++sun/security/util/DerIndefLenConverter ++sun/security/util/DerInputBuffer ++sun/security/util/DerInputStream ++sun/security/util/DerOutputStream ++sun/security/util/DerValue ++sun/security/util/Length ++sun/security/util/ManifestDigester ++sun/security/util/ManifestDigester$Entry ++sun/security/util/ManifestDigester$Position ++sun/security/util/ManifestEntryVerifier ++sun/security/util/ManifestEntryVerifier$SunProviderHolder ++sun/security/util/MemoryCache ++sun/security/util/MemoryCache$CacheEntry ++sun/security/util/MemoryCache$HardCacheEntry ++sun/security/util/MemoryCache$SoftCacheEntry ++sun/security/util/ObjectIdentifier ++sun/security/util/PropertyExpander ++sun/security/util/SignatureFileVerifier ++sun/security/x509/AVA ++sun/security/x509/AVAKeyword ++sun/security/x509/AlgorithmId ++sun/security/x509/AuthorityKeyIdentifierExtension ++sun/security/x509/BasicConstraintsExtension ++sun/security/x509/CertAttrSet ++sun/security/x509/CertificateAlgorithmId ++sun/security/x509/CertificateExtensions ++sun/security/x509/CertificateSerialNumber ++sun/security/x509/CertificateValidity ++sun/security/x509/CertificateVersion ++sun/security/x509/CertificateX509Key ++sun/security/x509/Extension ++sun/security/x509/GeneralName ++sun/security/x509/GeneralNameInterface ++sun/security/x509/GeneralNames ++sun/security/x509/KeyIdentifier ++sun/security/x509/KeyUsageExtension ++sun/security/x509/NetscapeCertTypeExtension ++sun/security/x509/NetscapeCertTypeExtension$MapEntry ++sun/security/x509/OIDMap ++sun/security/x509/OIDMap$OIDInfo ++sun/security/x509/PKIXExtensions ++sun/security/x509/RDN ++sun/security/x509/RFC822Name ++sun/security/x509/SerialNumber ++sun/security/x509/SubjectAlternativeNameExtension ++sun/security/x509/SubjectKeyIdentifierExtension ++sun/security/x509/X500Name ++sun/security/x509/X500Name$1 ++sun/security/x509/X509AttributeName ++sun/security/x509/X509CertImpl ++sun/security/x509/X509CertInfo ++sun/security/x509/X509Key ++sun/swing/DefaultLookup ++sun/swing/ImageIconUIResource ++sun/swing/JLightweightFrame ++sun/swing/MenuItemLayoutHelper ++sun/swing/MenuItemLayoutHelper$ColumnAlignment ++sun/swing/MenuItemLayoutHelper$LayoutResult ++sun/swing/MenuItemLayoutHelper$RectSize ++sun/swing/PrintColorUIResource ++sun/swing/StringUIClientPropertyKey ++sun/swing/SwingAccessor ++sun/swing/SwingAccessor$JTextComponentAccessor ++sun/swing/SwingLazyValue ++sun/swing/SwingLazyValue$1 ++sun/swing/SwingUtilities2 ++sun/swing/SwingUtilities2$2 ++sun/swing/SwingUtilities2$AATextInfo ++sun/swing/SwingUtilities2$LSBCacheEntry ++sun/swing/UIAction ++sun/swing/UIClientPropertyKey ++sun/swing/table/DefaultTableCellHeaderRenderer ++sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon ++sun/text/ComposedCharIter ++sun/text/IntHashtable ++sun/text/UCompactIntArray ++sun/text/normalizer/CharTrie ++sun/text/normalizer/CharTrie$FriendAgent ++sun/text/normalizer/ICUBinary ++sun/text/normalizer/ICUBinary$Authenticate ++sun/text/normalizer/ICUData ++sun/text/normalizer/IntTrie ++sun/text/normalizer/NormalizerBase ++sun/text/normalizer/NormalizerBase$1 ++sun/text/normalizer/NormalizerBase$Mode ++sun/text/normalizer/NormalizerBase$NFCMode ++sun/text/normalizer/NormalizerBase$NFDMode ++sun/text/normalizer/NormalizerBase$NFKCMode ++sun/text/normalizer/NormalizerBase$NFKDMode ++sun/text/normalizer/NormalizerBase$QuickCheckResult ++sun/text/normalizer/NormalizerDataReader ++sun/text/normalizer/NormalizerImpl ++sun/text/normalizer/NormalizerImpl$AuxTrieImpl ++sun/text/normalizer/NormalizerImpl$DecomposeArgs ++sun/text/normalizer/NormalizerImpl$FCDTrieImpl ++sun/text/normalizer/NormalizerImpl$NormTrieImpl ++sun/text/normalizer/Trie ++sun/text/normalizer/Trie$DataManipulate ++sun/text/normalizer/UTF16 ++sun/text/normalizer/UnicodeMatcher ++sun/text/normalizer/UnicodeSet ++sun/text/resources/CollationData ++sun/text/resources/FormatData ++sun/text/resources/en/FormatData_en ++sun/text/resources/en/FormatData_en_US ++sun/util/CoreResourceBundleControl ++sun/util/PreHashedMap ++sun/util/ResourceBundleEnumeration ++sun/util/calendar/AbstractCalendar ++sun/util/calendar/BaseCalendar ++sun/util/calendar/BaseCalendar$Date ++sun/util/calendar/CalendarDate ++sun/util/calendar/CalendarSystem ++sun/util/calendar/CalendarUtils ++sun/util/calendar/Gregorian ++sun/util/calendar/Gregorian$Date ++sun/util/calendar/ZoneInfo ++sun/util/calendar/ZoneInfoFile ++sun/util/calendar/ZoneInfoFile$1 ++sun/util/calendar/ZoneInfoFile$Checksum ++sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule ++sun/util/locale/BaseLocale ++sun/util/locale/BaseLocale$Cache ++sun/util/locale/BaseLocale$Key ++sun/util/locale/LanguageTag ++sun/util/locale/LocaleObjectCache ++sun/util/locale/LocaleObjectCache$CacheEntry ++sun/util/locale/LocaleUtils ++sun/util/locale/provider/AuxLocaleProviderAdapter ++sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider ++sun/util/locale/provider/AvailableLanguageTags ++sun/util/locale/provider/CalendarDataProviderImpl ++sun/util/locale/provider/CalendarDataUtility ++sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter ++sun/util/locale/provider/CalendarProviderImpl ++sun/util/locale/provider/CollatorProviderImpl ++sun/util/locale/provider/CurrencyNameProviderImpl ++sun/util/locale/provider/DateFormatSymbolsProviderImpl ++sun/util/locale/provider/DecimalFormatSymbolsProviderImpl ++sun/util/locale/provider/JRELocaleProviderAdapter ++sun/util/locale/provider/JRELocaleProviderAdapter$1 ++sun/util/locale/provider/LocaleDataMetaInfo ++sun/util/locale/provider/LocaleProviderAdapter ++sun/util/locale/provider/LocaleProviderAdapter$1 ++sun/util/locale/provider/LocaleProviderAdapter$Type ++sun/util/locale/provider/LocaleResources ++sun/util/locale/provider/LocaleResources$ResourceReference ++sun/util/locale/provider/LocaleServiceProviderPool ++sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter ++sun/util/locale/provider/NumberFormatProviderImpl ++sun/util/locale/provider/ResourceBundleBasedAdapter ++sun/util/locale/provider/SPILocaleProviderAdapter ++sun/util/locale/provider/SPILocaleProviderAdapter$1 ++sun/util/locale/provider/TimeZoneNameProviderImpl ++sun/util/locale/provider/TimeZoneNameUtility ++sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter ++sun/util/logging/LoggingProxy ++sun/util/logging/LoggingSupport ++sun/util/logging/LoggingSupport$1 ++sun/util/logging/LoggingSupport$2 ++sun/util/logging/PlatformLogger ++sun/util/logging/PlatformLogger$1 ++sun/util/logging/PlatformLogger$DefaultLoggerProxy ++sun/util/logging/PlatformLogger$JavaLoggerProxy ++sun/util/logging/PlatformLogger$Level ++sun/util/logging/PlatformLogger$LoggerProxy ++sun/util/logging/resources/logging ++sun/util/resources/CalendarData ++sun/util/resources/CurrencyNames ++sun/util/resources/LocaleData ++sun/util/resources/LocaleData$1 ++sun/util/resources/LocaleData$LocaleDataResourceBundleControl ++sun/util/resources/LocaleNamesBundle ++sun/util/resources/OpenListResourceBundle ++sun/util/resources/ParallelListResourceBundle ++sun/util/resources/ParallelListResourceBundle$KeySet ++sun/util/resources/TimeZoneNames ++sun/util/resources/TimeZoneNamesBundle ++sun/util/resources/en/CalendarData_en ++sun/util/resources/en/CurrencyNames_en_US ++sun/util/resources/en/TimeZoneNames_en ++sun/util/spi/CalendarProvider ++# ca392e7ee7285d72 +--- jdk/make/gendata/GendataFontConfig.gmk ++++ jdk/make/gendata/GendataFontConfig.gmk +@@ -66,6 +66,13 @@ + GENDATA_FONT_CONFIG_SRC_PREFIX := macosx. + endif + ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ GENDATA_FONT_CONFIG_SRC_DIR := \ ++ $(JDK_TOPDIR)/src/solaris/classes/sun/awt/fontconfigs ++ GENDATA_FONT_CONFIG_SRC_FILES := fontconfig.properties ++ GENDATA_FONT_CONFIG_SRC_PREFIX := bsd. ++endif ++ + ### + + $(GENDATA_FONT_CONFIG_DST)/%.src: \ +--- jdk/make/lib/Awt2dLibraries.gmk ++++ jdk/make/lib/Awt2dLibraries.gmk +@@ -305,7 +305,7 @@ + debug_trace.c \ + debug_util.c + +-ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux)) ++ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux bsd)) + LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c + endif + +@@ -473,6 +473,7 @@ + LDFLAGS_solaris := -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ + LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \ ++ LDFLAGS_SUFFIX_bsd := -ljvm $(LIBM) -ljava, \ + LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \ + -framework Cocoa \ + -framework OpenGL \ +@@ -550,6 +551,16 @@ + endif + endif + ++ ifeq ($(OPENJDK_TARGET_OS), bsd) ++ ifndef OPENJDK ++ include $(JDK_TOPDIR)/make/closed/xawt.gmk ++ endif ++ ++ ifeq ($(DISABLE_XRENDER), true) ++ LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true ++ endif ++ endif ++ + ifeq ($(MILESTONE), internal) + LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD + endif +@@ -619,6 +630,11 @@ + LIBAWT_XAWT_LDFLAGS += -lpthread + endif + ++ ifeq ($(OPENJDK_TARGET_OS), bsd) ++ # To match old build, add this to LDFLAGS instead of suffix. ++ LIBAWT_XAWT_LDFLAGS += -pthread ++ endif ++ + $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \ + LIBRARY := awt_xawt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ +@@ -681,6 +697,7 @@ + LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ + LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ ++ LDFLAGS_SUFFIX_bsd := -lm -lawt -ljava -ljvm, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=lcms.dll" \ +@@ -821,6 +838,7 @@ + LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \ + LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \ + -ljava -ljvm, \ ++ LDFLAGS_SUFFIX_bsd := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \ + $(WIN_AWT_LIB), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ +@@ -963,6 +981,7 @@ + CFLAGS := $(CFLAGS_JDKLIB), \ + CFLAGS_linux := $(HEADLESS_CFLAG), \ + CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \ ++ CFLAGS_bsd := $(HEADLESS_CFLAG), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjawt/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +@@ -971,6 +990,7 @@ + LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \ + LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \ + -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \ ++ LDFLAGS_SUFFIX_bsd := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +@@ -1169,6 +1189,7 @@ + REORDER := $(LIBAWT_HEADLESS_REORDER), \ + LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \ ++ LDFLAGS_SUFFIX_bsd := -ljvm -lawt -lm -ljava, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +--- jdk/make/lib/CoreLibraries.gmk ++++ jdk/make/lib/CoreLibraries.gmk +@@ -81,7 +81,7 @@ + endif + + LIBVERIFY_OPTIMIZATION := HIGH +-ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux bsd), ) + ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + LIBVERIFY_OPTIMIZATION := LOW + endif +@@ -202,6 +202,7 @@ + -framework CoreFoundation \ + -framework Foundation \ + -framework Security -framework SystemConfiguration, \ ++ LDFLAGS_SUFFIX_bsd := $(BUILD_LIBFDLIBM), \ + LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \ + jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ + shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \ +@@ -267,6 +268,7 @@ + LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ + LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ + LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ ++ LDFLAGS_SUFFIX_bsd := -ljvm -ljava $(LIBZ), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=zip.dll" \ +@@ -412,9 +414,11 @@ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ ++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ + LDFLAGS_SUFFIX_macosx := $(LIBZ), \ ++ LDFLAGS_SUFFIX_bsd := $(LIBZ) -pthread, \ + LDFLAGS_SUFFIX_windows := \ + -export:JLI_Launch \ + -export:JLI_ManifestIterate \ +@@ -479,6 +483,23 @@ + $(call install-file) + + BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a ++else ifeq ($(OPENJDK_TARGET_OS), bsd) ++ $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ ++ LIBRARY := jli_static, \ ++ OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ ++ SRC := $(BUILD_LIBJLI_SRC_DIRS), \ ++ INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ ++ LANG := C, \ ++ OPTIMIZATION := HIGH, \ ++ CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ ++ LDFLAGS := -nostdlib -r, \ ++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ ++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) ++ ++ $(JDK_OUTPUTDIR)/objs/libjli_static.a: $(BUILD_LIBJLI_STATIC) ++ $(call install-file) ++ ++ BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a + endif + + ########################################################################################## +@@ -496,6 +517,7 @@ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_macosx := -liconv, \ ++ LDFLAGS_bsd := -liconv, \ + LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ +--- jdk/make/lib/NetworkingLibraries.gmk ++++ jdk/make/lib/NetworkingLibraries.gmk +@@ -46,6 +46,10 @@ + LIBNET_EXCLUDE_FILES += bsd_close.c + endif + ++ifneq ($(OPENJDK_TARGET_OS), bsd) ++ LIBNET_EXCLUDE_FILES += bsd_close.c ++endif ++ + ifeq ($(OPENJDK_TARGET_OS), windows) + LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c + else +@@ -69,6 +73,7 @@ + LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \ + LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \ ++ LDFLAGS_SUFFIX_bsd := -ljvm -pthread -ljava, \ + LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \ + delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \ + -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \ +--- jdk/make/lib/NioLibraries.gmk ++++ jdk/make/lib/NioLibraries.gmk +@@ -77,9 +77,26 @@ + UnixNativeDispatcher.c + endif + ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) ++ BUILD_LIBNIO_FILES += \ ++ BsdNativeDispatcher.c \ ++ GnomeFileTypeDetector.c \ ++ InheritedChannel.c \ ++ KQueue.c \ ++ KQueueArrayWrapper.c \ ++ KQueuePort.c \ ++ MagicFileTypeDetector.c \ ++ NativeThread.c \ ++ PollArrayWrapper.c \ ++ UnixAsynchronousServerSocketChannelImpl.c \ ++ UnixAsynchronousSocketChannelImpl.c \ ++ UnixCopyFile.c \ ++ UnixNativeDispatcher.c ++endif ++ + ifeq ($(OPENJDK_TARGET_OS), macosx) + BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) +- BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch + BUILD_LIBNIO_FILES += \ + InheritedChannel.c \ + NativeThread.c \ +@@ -130,6 +147,7 @@ + LDFLAGS_SUFFIX_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \ + $(JDK_OUTPUTDIR)/objs/libnet/net.lib \ + advapi32.lib, \ ++ LDFLAGS_SUFFIX_bsd := -ljava -lnet -pthread, \ + LDFLAGS_SUFFIX_macosx := -ljava -lnet -pthread -framework CoreFoundation, \ + LDFLAGS_SUFFIX :=, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ +@@ -176,6 +194,7 @@ + LDFLAGS_SUFFIX_posix := -lnio -lnet, \ + LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \ ++ LDFLAGS_SUFFIX_bsd := -pthread -ljava -ljvm, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +--- jdk/make/lib/ServiceabilityLibraries.gmk ++++ jdk/make/lib/ServiceabilityLibraries.gmk +@@ -30,7 +30,7 @@ + ifneq ($(OPENJDK_TARGET_OS), linux) + LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c + endif +-ifneq ($(OPENJDK_TARGET_OS), macosx) ++ifeq (,$(findstring $(OPENJDK_TARGET_OS), bsd macosx)) + LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c + endif + +@@ -80,6 +80,7 @@ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libdt_socket/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ ++ LDFLAGS_SUFFIX_bsd := -pthread, \ + LDFLAGS_SUFFIX_linux := -lpthread, \ + LDFLAGS_SUFFIX_solaris := -lnsl -lsocket -lc, \ + LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) -export:jdwpTransport_OnLoad ws2_32.lib, \ +@@ -249,10 +250,12 @@ + $(LIBINSTRUMENT_LDFLAGS), \ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ ++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ + LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \ + -framework Cocoa -framework Security -framework ApplicationServices, \ + LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \ + LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \ ++ LDFLAGS_SUFFIX_bsd := -liconv $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli, \ + LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ +@@ -293,8 +296,12 @@ + BUILD_LIBMANAGEMENT_EXCLUDES += MacosxOperatingSystem.c + endif + ++ifneq ($(OPENJDK_TARGET_OS), bsd) ++ BUILD_LIBMANAGEMENT_EXCLUDES += BsdOperatingSystem.c ++endif ++ + LIBMANAGEMENT_OPTIMIZATION := HIGH +-ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux bsd), ) + ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + LIBMANAGEMENT_OPTIMIZATION := LOW + endif +@@ -337,7 +344,7 @@ + BUILD_LIBHPROF_LDFLAGS := + + LIBHPROF_OPTIMIZATION := HIGHEST +-ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux bsd), ) + ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + LIBHPROF_OPTIMIZATION := LOW + endif +--- jdk/make/lib/SoundLibraries.gmk ++++ jdk/make/lib/SoundLibraries.gmk +@@ -71,6 +71,11 @@ + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX + endif # OPENJDK_TARGET_OS linux + ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ EXTRA_SOUND_JNI_LIBS += jsoundalsa ++ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_BSD ++endif # OPENJDK_TARGET_OS bsd ++ + ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBJSOUND_LANG := C++ + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \ +@@ -188,12 +193,14 @@ + CFLAGS := $(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \ + $(LIBJSOUND_CFLAGS) \ + -DUSE_DAUDIO=TRUE \ +- -DUSE_PORTS=TRUE \ +- -DUSE_PLATFORM_MIDI_OUT=TRUE \ ++ -DUSE_PORTS=TRUE, \ ++ CFLAGS_linux := -DUSE_PLATFORM_MIDI_OUT=TRUE \ + -DUSE_PLATFORM_MIDI_IN=TRUE, \ ++ CFLAGS_bsd := -I/usr/local/include, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjsoundalsa/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ ++ LDFLAGS_bsd := -L/usr/local/lib, \ + LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundalsa, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) +--- jdk/make/mapfiles/launchers/mapfile-x86 ++++ jdk/make/mapfiles/launchers/mapfile-x86 +@@ -33,6 +33,7 @@ + environ; # Public symbols and required by Java run time + _environ; + __environ_lock; ++ __progname; + ___Argv; # The following are private, but as they are + _start; # exported from ctr1/crtn, the clever hacker + _init; # might know about them. However note, that +--- jdk/make/mapfiles/launchers/mapfile-x86_64 ++++ jdk/make/mapfiles/launchers/mapfile-x86_64 +@@ -33,6 +33,7 @@ + environ; # Public symbols and required by Java run time + _environ; + __environ_lock; ++ __progname; + + local: + *; +--- jdk/make/mapfiles/libattach/mapfile-bsd ++++ jdk/make/mapfiles/libattach/mapfile-bsd +@@ -0,0 +1,42 @@ ++# ++# Copyright (c) 2005, 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. ++# ++ ++# Define public interface. ++ ++SUNWprivate_1.1 { ++ global: ++ Java_sun_tools_attach_BsdVirtualMachine_checkPermissions; ++ Java_sun_tools_attach_BsdVirtualMachine_close; ++ Java_sun_tools_attach_BsdVirtualMachine_connect; ++ Java_sun_tools_attach_BsdVirtualMachine_getTempDir; ++ Java_sun_tools_attach_BsdVirtualMachine_open; ++ Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo; ++ Java_sun_tools_attach_BsdVirtualMachine_socket; ++ Java_sun_tools_attach_BsdVirtualMachine_read; ++ Java_sun_tools_attach_BsdVirtualMachine_write; ++ Java_sun_tools_attach_BsdVirtualMachine_createAttachFile; ++ local: ++ *; ++}; +--- jdk/make/mapfiles/libnio/mapfile-bsd ++++ jdk/make/mapfiles/libnio/mapfile-bsd +@@ -0,0 +1,189 @@ ++# ++# Copyright (c) 2001, 2013, 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. ++# ++ ++SUNWprivate_1.1 { ++ global: ++ Java_java_nio_MappedByteBuffer_force0; ++ Java_java_nio_MappedByteBuffer_isLoaded0; ++ Java_java_nio_MappedByteBuffer_load0; ++ Java_sun_nio_ch_DatagramChannelImpl_disconnect0; ++ Java_sun_nio_ch_DatagramChannelImpl_initIDs; ++ Java_sun_nio_ch_DatagramChannelImpl_receive0; ++ Java_sun_nio_ch_DatagramChannelImpl_send0; ++ Java_sun_nio_ch_DatagramDispatcher_read0; ++ Java_sun_nio_ch_DatagramDispatcher_readv0; ++ Java_sun_nio_ch_DatagramDispatcher_write0; ++ Java_sun_nio_ch_DatagramDispatcher_writev0; ++ Java_sun_nio_ch_FileChannelImpl_close0; ++ Java_sun_nio_ch_FileChannelImpl_initIDs; ++ Java_sun_nio_ch_FileChannelImpl_map0; ++ Java_sun_nio_ch_FileChannelImpl_position0; ++ Java_sun_nio_ch_FileChannelImpl_transferTo0; ++ Java_sun_nio_ch_FileChannelImpl_unmap0; ++ Java_sun_nio_ch_FileDispatcherImpl_close0; ++ Java_sun_nio_ch_FileDispatcherImpl_closeIntFD; ++ Java_sun_nio_ch_FileDispatcherImpl_force0; ++ Java_sun_nio_ch_FileDispatcherImpl_init; ++ Java_sun_nio_ch_FileDispatcherImpl_lock0; ++ Java_sun_nio_ch_FileDispatcherImpl_preClose0; ++ Java_sun_nio_ch_FileDispatcherImpl_pread0; ++ Java_sun_nio_ch_FileDispatcherImpl_pwrite0; ++ Java_sun_nio_ch_FileDispatcherImpl_read0; ++ Java_sun_nio_ch_FileDispatcherImpl_readv0; ++ Java_sun_nio_ch_FileDispatcherImpl_release0; ++ Java_sun_nio_ch_FileDispatcherImpl_size0; ++ Java_sun_nio_ch_FileDispatcherImpl_truncate0; ++ Java_sun_nio_ch_FileDispatcherImpl_write0; ++ Java_sun_nio_ch_FileDispatcherImpl_writev0; ++ Java_sun_nio_ch_FileKey_init; ++ Java_sun_nio_ch_FileKey_initIDs; ++ Java_sun_nio_ch_IOUtil_configureBlocking; ++ Java_sun_nio_ch_IOUtil_drain; ++ Java_sun_nio_ch_IOUtil_fdLimit; ++ Java_sun_nio_ch_IOUtil_fdVal; ++ Java_sun_nio_ch_IOUtil_initIDs; ++ Java_sun_nio_ch_IOUtil_iovMax; ++ Java_sun_nio_ch_IOUtil_makePipe; ++ Java_sun_nio_ch_IOUtil_randomBytes; ++ Java_sun_nio_ch_IOUtil_setfdVal; ++ Java_sun_nio_ch_InheritedChannel_close0; ++ Java_sun_nio_ch_InheritedChannel_dup2; ++ Java_sun_nio_ch_InheritedChannel_dup; ++ Java_sun_nio_ch_InheritedChannel_open0; ++ Java_sun_nio_ch_InheritedChannel_peerAddress0; ++ Java_sun_nio_ch_InheritedChannel_peerPort0; ++ Java_sun_nio_ch_InheritedChannel_soType0; ++ Java_sun_nio_ch_KQueueArrayWrapper_init; ++ Java_sun_nio_ch_KQueueArrayWrapper_initStructSizes; ++ Java_sun_nio_ch_KQueueArrayWrapper_interrupt; ++ Java_sun_nio_ch_KQueueArrayWrapper_kevent0; ++ Java_sun_nio_ch_KQueueArrayWrapper_register0; ++ Java_sun_nio_ch_KQueuePort_close0; ++ Java_sun_nio_ch_KQueuePort_drain1; ++ Java_sun_nio_ch_KQueuePort_interrupt; ++ Java_sun_nio_ch_KQueuePort_socketpair; ++ Java_sun_nio_ch_KQueue_filterOffset; ++ Java_sun_nio_ch_KQueue_flagsOffset; ++ Java_sun_nio_ch_KQueue_identOffset; ++ Java_sun_nio_ch_KQueue_keventPoll; ++ Java_sun_nio_ch_KQueue_keventRegister; ++ Java_sun_nio_ch_KQueue_keventSize; ++ Java_sun_nio_ch_KQueue_kqueue; ++ Java_sun_nio_ch_NativeThread_current; ++ Java_sun_nio_ch_NativeThread_init; ++ Java_sun_nio_ch_NativeThread_signal; ++ Java_sun_nio_ch_Net_bind0; ++ Java_sun_nio_ch_Net_blockOrUnblock4; ++ Java_sun_nio_ch_Net_blockOrUnblock6; ++ Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0; ++ Java_sun_nio_ch_Net_canJoin6WithIPv4Group0; ++ Java_sun_nio_ch_Net_connect0; ++ Java_sun_nio_ch_Net_getIntOption0; ++ Java_sun_nio_ch_Net_getInterface4; ++ Java_sun_nio_ch_Net_getInterface6; ++ Java_sun_nio_ch_Net_initIDs; ++ Java_sun_nio_ch_Net_isExclusiveBindAvailable; ++ Java_sun_nio_ch_Net_isIPv6Available0; ++ Java_sun_nio_ch_Net_joinOrDrop4; ++ Java_sun_nio_ch_Net_joinOrDrop6; ++ Java_sun_nio_ch_Net_listen; ++ Java_sun_nio_ch_Net_localInetAddress; ++ Java_sun_nio_ch_Net_localPort; ++ Java_sun_nio_ch_Net_poll; ++ Java_sun_nio_ch_Net_setIntOption0; ++ Java_sun_nio_ch_Net_setInterface4; ++ Java_sun_nio_ch_Net_setInterface6; ++ Java_sun_nio_ch_Net_shutdown; ++ Java_sun_nio_ch_Net_socket0; ++ Java_sun_nio_ch_PollArrayWrapper_interrupt; ++ Java_sun_nio_ch_PollArrayWrapper_poll0; ++ Java_sun_nio_ch_ServerSocketChannelImpl_accept0; ++ Java_sun_nio_ch_ServerSocketChannelImpl_initIDs; ++ Java_sun_nio_ch_SocketChannelImpl_checkConnect; ++ Java_sun_nio_ch_SocketChannelImpl_sendOutOfBandData; ++ Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0; ++ Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs; ++ Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect; ++ Java_sun_nio_fs_BsdNativeDispatcher_endfsstat; ++ Java_sun_nio_fs_BsdNativeDispatcher_fsstatEntry; ++ Java_sun_nio_fs_BsdNativeDispatcher_getfsstat; ++ Java_sun_nio_fs_BsdNativeDispatcher_initIDs; ++ Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio; ++ Java_sun_nio_fs_GnomeFileTypeDetector_initializeGnomeVfs; ++ Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGio; ++ Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGnomeVfs; ++ Java_sun_nio_fs_MagicFileTypeDetector_initialize0; ++ Java_sun_nio_fs_MagicFileTypeDetector_probe0; ++ Java_sun_nio_fs_UnixCopyFile_transfer; ++ Java_sun_nio_fs_UnixNativeDispatcher_access0; ++ Java_sun_nio_fs_UnixNativeDispatcher_chmod0; ++ Java_sun_nio_fs_UnixNativeDispatcher_chown0; ++ Java_sun_nio_fs_UnixNativeDispatcher_close; ++ Java_sun_nio_fs_UnixNativeDispatcher_closedir; ++ Java_sun_nio_fs_UnixNativeDispatcher_dup; ++ Java_sun_nio_fs_UnixNativeDispatcher_fchmod; ++ Java_sun_nio_fs_UnixNativeDispatcher_fchown; ++ Java_sun_nio_fs_UnixNativeDispatcher_fclose; ++ Java_sun_nio_fs_UnixNativeDispatcher_fdopendir; ++ Java_sun_nio_fs_UnixNativeDispatcher_fopen0; ++ Java_sun_nio_fs_UnixNativeDispatcher_fpathconf; ++ Java_sun_nio_fs_UnixNativeDispatcher_fstat; ++ Java_sun_nio_fs_UnixNativeDispatcher_fstatat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_futimes; ++ Java_sun_nio_fs_UnixNativeDispatcher_getcwd; ++ Java_sun_nio_fs_UnixNativeDispatcher_getgrgid; ++ Java_sun_nio_fs_UnixNativeDispatcher_getgrnam0; ++ Java_sun_nio_fs_UnixNativeDispatcher_getpwnam0; ++ Java_sun_nio_fs_UnixNativeDispatcher_getpwuid; ++ Java_sun_nio_fs_UnixNativeDispatcher_init; ++ Java_sun_nio_fs_UnixNativeDispatcher_lchown0; ++ Java_sun_nio_fs_UnixNativeDispatcher_link0; ++ Java_sun_nio_fs_UnixNativeDispatcher_lstat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_mkdir0; ++ Java_sun_nio_fs_UnixNativeDispatcher_mknod0; ++ Java_sun_nio_fs_UnixNativeDispatcher_open0; ++ Java_sun_nio_fs_UnixNativeDispatcher_openat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_opendir0; ++ Java_sun_nio_fs_UnixNativeDispatcher_pathconf0; ++ Java_sun_nio_fs_UnixNativeDispatcher_read; ++ Java_sun_nio_fs_UnixNativeDispatcher_readdir; ++ Java_sun_nio_fs_UnixNativeDispatcher_readlink0; ++ Java_sun_nio_fs_UnixNativeDispatcher_realpath0; ++ Java_sun_nio_fs_UnixNativeDispatcher_rename0; ++ Java_sun_nio_fs_UnixNativeDispatcher_renameat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_rmdir0; ++ Java_sun_nio_fs_UnixNativeDispatcher_stat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_statvfs0; ++ Java_sun_nio_fs_UnixNativeDispatcher_strerror; ++ Java_sun_nio_fs_UnixNativeDispatcher_symlink0; ++ Java_sun_nio_fs_UnixNativeDispatcher_unlink0; ++ Java_sun_nio_fs_UnixNativeDispatcher_unlinkat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_utimes0; ++ Java_sun_nio_fs_UnixNativeDispatcher_write; ++ handleSocketError; ++ ++ local: ++ *; ++}; +--- jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 ++++ jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 +@@ -26,6 +26,9 @@ + # Define library interface. + + SUNWprivate_1.1 { ++ global: ++ environ; ++ __progname; + local: + *; + }; +--- jdk/make/netbeans/common/bsd-sources.ent ++++ jdk/make/netbeans/common/bsd-sources.ent +@@ -0,0 +1,45 @@ ++ ++ ++ ++ ++ ++ ++ java ++ ${root}/src/bsd/classes ++ ${includes} ++ ${excludes} ++ US-ASCII ++ ++ ++ ++ ${root}/src/bsd/classes ++ +--- jdk/make/netbeans/common/bsd-view.ent ++++ jdk/make/netbeans/common/bsd-view.ent +@@ -0,0 +1,39 @@ ++ ++ ++ ++ ++ ++ ++ ${root}/src/bsd/classes ++ ${includes} ++ ${excludes} ++ +--- jdk/make/netbeans/j2se/nbproject/project.xml ++++ jdk/make/netbeans/j2se/nbproject/project.xml +@@ -34,6 +34,7 @@ + + ++ + + + +@@ -41,6 +42,7 @@ + + + ++ + + + +@@ -60,6 +62,7 @@ + + + &share-sources; ++ &bsd-sources; + &macosx-sources; + &unix-sources; + &windows-sources; +@@ -86,6 +89,7 @@ + + + &share-view; ++ &bsd-view; + &macosx-view; + &unix-view; + &windows-view; +--- jdk/make/netbeans/common/java-data-native.ent ++++ jdk/make/netbeans/common/java-data-native.ent +@@ -34,6 +34,7 @@ + + + ${root}/src/share/classes ++ ${root}/src/bsd/classes + ${root}/src/macosx/classes + ${root}/src/solaris/classes + ${root}/src/windows/classes +--- jdk/make/netbeans/common/make.xml ++++ jdk/make/netbeans/common/make.xml +@@ -32,16 +32,21 @@ + --> + + +- +- ++ ++ + + +- ++ + + + + + ++ ++ ++ ++ ++ + + + +@@ -56,7 +61,7 @@ + + + +- ++ + + + +--- jdk/make/netbeans/world/nbproject/project.xml ++++ jdk/make/netbeans/world/nbproject/project.xml +@@ -34,12 +34,14 @@ + + ++ + + + + + + ++ + + + +@@ -58,6 +60,7 @@ + + + &share-sources; ++ &bsd-sources; + &macosx-sources; + &unix-sources; + &windows-sources; +@@ -69,6 +72,7 @@ + + + &share-view; ++ &bsd-view; + &macosx-view; + &unix-view; + &windows-view; +--- jdk/src/share/bin/jli_util.h ++++ jdk/src/share/bin/jli_util.h +@@ -82,7 +82,7 @@ + #define _LARGFILE64_SOURCE + #define JLI_Lseek lseek64 + #endif +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + #define JLI_Lseek lseek + #endif + #endif /* _WIN32 */ +--- jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java ++++ jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java +@@ -1298,7 +1298,7 @@ + String osName = AccessController.doPrivileged( + new GetPropertyAction("os.name")); + if ("SunOS".equals(osName) || "Linux".equals(osName) +- || osName.contains("OS X")) { ++ || osName.endsWith("BSD") || osName.contains("OS X")) { + charset("x-COMPOUND_TEXT", "COMPOUND_TEXT", + new String[] { + "COMPOUND_TEXT", // JDK historical +--- jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider ++++ jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider +@@ -31,3 +31,4 @@ + #[windows]sun.tools.attach.WindowsAttachProvider + #[linux]sun.tools.attach.LinuxAttachProvider + #[macosx]sun.tools.attach.BsdAttachProvider ++#[bsd]sun.tools.attach.BsdAttachProvider +--- jdk/src/share/lib/security/java.security-bsd ++++ jdk/src/share/lib/security/java.security-bsd +@@ -0,0 +1,498 @@ ++# ++# This is the "master security properties file". ++# ++# An alternate java.security properties file may be specified ++# from the command line via the system property ++# ++# -Djava.security.properties= ++# ++# This properties file appends to the master security properties file. ++# If both properties files specify values for the same key, the value ++# from the command-line properties file is selected, as it is the last ++# one loaded. ++# ++# Also, if you specify ++# ++# -Djava.security.properties== (2 equals), ++# ++# then that properties file completely overrides the master security ++# properties file. ++# ++# To disable the ability to specify an additional properties file from ++# the command line, set the key security.overridePropertiesFile ++# to false in the master security properties file. It is set to true ++# by default. ++ ++# In this file, various security properties are set for use by ++# java.security classes. This is where users can statically register ++# Cryptography Package Providers ("providers" for short). The term ++# "provider" refers to a package or set of packages that supply a ++# concrete implementation of a subset of the cryptography aspects of ++# the Java Security API. A provider may, for example, implement one or ++# more digital signature algorithms or message digest algorithms. ++# ++# Each provider must implement a subclass of the Provider class. ++# To register a provider in this master security properties file, ++# specify the Provider subclass name and priority in the format ++# ++# security.provider.= ++# ++# This declares a provider, and specifies its preference ++# order n. The preference order is the order in which providers are ++# searched for requested algorithms (when no specific provider is ++# requested). The order is 1-based; 1 is the most preferred, followed ++# by 2, and so on. ++# ++# must specify the subclass of the Provider class whose ++# constructor sets the values of various properties that are required ++# for the Java Security API to look up the algorithms or other ++# facilities implemented by the provider. ++# ++# There must be at least one provider specification in java.security. ++# There is a default provider that comes standard with the JDK. It ++# is called the "SUN" provider, and its Provider subclass ++# named Sun appears in the sun.security.provider package. Thus, the ++# "SUN" provider is registered via the following: ++# ++# security.provider.1=sun.security.provider.Sun ++# ++# (The number 1 is used for the default provider.) ++# ++# Note: Providers can be dynamically registered instead by calls to ++# either the addProvider or insertProviderAt method in the Security ++# class. ++ ++# ++# List of providers and their preference orders (see above): ++# ++security.provider.1=sun.security.provider.Sun ++security.provider.2=sun.security.rsa.SunRsaSign ++security.provider.3=sun.security.ec.SunEC ++security.provider.4=com.sun.net.ssl.internal.ssl.Provider ++security.provider.5=com.sun.crypto.provider.SunJCE ++security.provider.6=sun.security.jgss.SunProvider ++security.provider.7=com.sun.security.sasl.Provider ++security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI ++security.provider.9=sun.security.smartcardio.SunPCSC ++ ++# ++# Sun Provider SecureRandom seed source. ++# ++# Select the primary source of seed data for the "SHA1PRNG" and ++# "NativePRNG" SecureRandom implementations in the "Sun" provider. ++# (Other SecureRandom implementations might also use this property.) ++# ++# On Unix-like systems (for example, Solaris/Linux/MacOS), the ++# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from ++# special device files such as file:/dev/random. ++# ++# On Windows systems, specifying the URLs "file:/dev/random" or ++# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding ++# mechanism for SHA1PRNG. ++# ++# By default, an attempt is made to use the entropy gathering device ++# specified by the "securerandom.source" Security property. If an ++# exception occurs while accessing the specified URL: ++# ++# SHA1PRNG: ++# the traditional system/thread activity algorithm will be used. ++# ++# NativePRNG: ++# a default value of /dev/random will be used. If neither ++# are available, the implementation will be disabled. ++# "file" is the only currently supported protocol type. ++# ++# The entropy gathering device can also be specified with the System ++# property "java.security.egd". For example: ++# ++# % java -Djava.security.egd=file:/dev/random MainClass ++# ++# Specifying this System property will override the ++# "securerandom.source" Security property. ++# ++# In addition, if "file:/dev/random" or "file:/dev/urandom" is ++# specified, the "NativePRNG" implementation will be more preferred than ++# SHA1PRNG in the Sun provider. ++# ++securerandom.source=file:/dev/random ++ ++# ++# A list of known strong SecureRandom implementations. ++# ++# To help guide applications in selecting a suitable strong ++# java.security.SecureRandom implementation, Java distributions should ++# indicate a list of known strong implementations using the property. ++# ++# This is a comma-separated list of algorithm and/or algorithm:provider ++# entries. ++# ++securerandom.strongAlgorithms=NativePRNGBlocking:SUN ++ ++# ++# Class to instantiate as the javax.security.auth.login.Configuration ++# provider. ++# ++login.configuration.provider=sun.security.provider.ConfigFile ++ ++# ++# Default login configuration file ++# ++#login.config.url.1=file:${user.home}/.java.login.config ++ ++# ++# Class to instantiate as the system Policy. This is the name of the class ++# that will be used as the Policy object. ++# ++policy.provider=sun.security.provider.PolicyFile ++ ++# The default is to have a single system-wide policy file, ++# and a policy file in the user's home directory. ++policy.url.1=file:${java.home}/lib/security/java.policy ++policy.url.2=file:${user.home}/.java.policy ++ ++# whether or not we expand properties in the policy file ++# if this is set to false, properties (${...}) will not be expanded in policy ++# files. ++policy.expandProperties=true ++ ++# whether or not we allow an extra policy to be passed on the command line ++# with -Djava.security.policy=somefile. Comment out this line to disable ++# this feature. ++policy.allowSystemProperty=true ++ ++# whether or not we look into the IdentityScope for trusted Identities ++# when encountering a 1.1 signed JAR file. If the identity is found ++# and is trusted, we grant it AllPermission. ++policy.ignoreIdentityScope=false ++ ++# ++# Default keystore type. ++# ++keystore.type=jks ++ ++# ++# List of comma-separated packages that start with or equal this string ++# will cause a security exception to be thrown when ++# passed to checkPackageAccess unless the ++# corresponding RuntimePermission ("accessClassInPackage."+package) has ++# been granted. ++package.access=sun.,\ ++ com.sun.xml.internal.,\ ++ com.sun.imageio.,\ ++ com.sun.istack.internal.,\ ++ com.sun.jmx.,\ ++ com.sun.media.sound.,\ ++ com.sun.naming.internal.,\ ++ com.sun.proxy.,\ ++ com.sun.corba.se.,\ ++ com.sun.org.apache.bcel.internal.,\ ++ com.sun.org.apache.regexp.internal.,\ ++ com.sun.org.apache.xerces.internal.,\ ++ com.sun.org.apache.xpath.internal.,\ ++ com.sun.org.apache.xalan.internal.extensions.,\ ++ com.sun.org.apache.xalan.internal.lib.,\ ++ com.sun.org.apache.xalan.internal.res.,\ ++ com.sun.org.apache.xalan.internal.templates.,\ ++ com.sun.org.apache.xalan.internal.utils.,\ ++ com.sun.org.apache.xalan.internal.xslt.,\ ++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ ++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\ ++ com.sun.org.apache.xalan.internal.xsltc.trax.,\ ++ com.sun.org.apache.xalan.internal.xsltc.util.,\ ++ com.sun.org.apache.xml.internal.res.,\ ++ com.sun.org.apache.xml.internal.security.,\ ++ com.sun.org.apache.xml.internal.serializer.utils.,\ ++ com.sun.org.apache.xml.internal.utils.,\ ++ com.sun.org.glassfish.,\ ++ com.oracle.xmlns.internal.,\ ++ com.oracle.webservices.internal.,\ ++ oracle.jrockit.jfr.,\ ++ org.jcp.xml.dsig.internal.,\ ++ jdk.internal.,\ ++ jdk.nashorn.internal.,\ ++ jdk.nashorn.tools. ++ ++ ++# ++# List of comma-separated packages that start with or equal this string ++# will cause a security exception to be thrown when ++# passed to checkPackageDefinition unless the ++# corresponding RuntimePermission ("defineClassInPackage."+package) has ++# been granted. ++# ++# by default, none of the class loaders supplied with the JDK call ++# checkPackageDefinition. ++# ++package.definition=sun.,\ ++ com.sun.xml.internal.,\ ++ com.sun.imageio.,\ ++ com.sun.istack.internal.,\ ++ com.sun.jmx.,\ ++ com.sun.media.sound.,\ ++ com.sun.naming.internal.,\ ++ com.sun.proxy.,\ ++ com.sun.corba.se.,\ ++ com.sun.org.apache.bcel.internal.,\ ++ com.sun.org.apache.regexp.internal.,\ ++ com.sun.org.apache.xerces.internal.,\ ++ com.sun.org.apache.xpath.internal.,\ ++ com.sun.org.apache.xalan.internal.extensions.,\ ++ com.sun.org.apache.xalan.internal.lib.,\ ++ com.sun.org.apache.xalan.internal.res.,\ ++ com.sun.org.apache.xalan.internal.templates.,\ ++ com.sun.org.apache.xalan.internal.utils.,\ ++ com.sun.org.apache.xalan.internal.xslt.,\ ++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ ++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\ ++ com.sun.org.apache.xalan.internal.xsltc.trax.,\ ++ com.sun.org.apache.xalan.internal.xsltc.util.,\ ++ com.sun.org.apache.xml.internal.res.,\ ++ com.sun.org.apache.xml.internal.security.,\ ++ com.sun.org.apache.xml.internal.serializer.utils.,\ ++ com.sun.org.apache.xml.internal.utils.,\ ++ com.sun.org.glassfish.,\ ++ com.oracle.xmlns.internal.,\ ++ com.oracle.webservices.internal.,\ ++ oracle.jrockit.jfr.,\ ++ org.jcp.xml.dsig.internal.,\ ++ jdk.internal.,\ ++ jdk.nashorn.internal.,\ ++ jdk.nashorn.tools. ++ ++ ++# ++# Determines whether this properties file can be appended to ++# or overridden on the command line via -Djava.security.properties ++# ++security.overridePropertiesFile=true ++ ++# ++# Determines the default key and trust manager factory algorithms for ++# the javax.net.ssl package. ++# ++ssl.KeyManagerFactory.algorithm=SunX509 ++ssl.TrustManagerFactory.algorithm=PKIX ++ ++# ++# The Java-level namelookup cache policy for successful lookups: ++# ++# any negative value: caching forever ++# any positive value: the number of seconds to cache an address for ++# zero: do not cache ++# ++# default value is forever (FOREVER). For security reasons, this ++# caching is made forever when a security manager is set. When a security ++# manager is not set, the default behavior in this implementation ++# is to cache for 30 seconds. ++# ++# NOTE: setting this to anything other than the default value can have ++# serious security implications. Do not set it unless ++# you are sure you are not exposed to DNS spoofing attack. ++# ++#networkaddress.cache.ttl=-1 ++ ++# The Java-level namelookup cache policy for failed lookups: ++# ++# any negative value: cache forever ++# any positive value: the number of seconds to cache negative lookup results ++# zero: do not cache ++# ++# In some Microsoft Windows networking environments that employ ++# the WINS name service in addition to DNS, name service lookups ++# that fail may take a noticeably long time to return (approx. 5 seconds). ++# For this reason the default caching policy is to maintain these ++# results for 10 seconds. ++# ++# ++networkaddress.cache.negative.ttl=10 ++ ++# ++# Properties to configure OCSP for certificate revocation checking ++# ++ ++# Enable OCSP ++# ++# By default, OCSP is not used for certificate revocation checking. ++# This property enables the use of OCSP when set to the value "true". ++# ++# NOTE: SocketPermission is required to connect to an OCSP responder. ++# ++# Example, ++# ocsp.enable=true ++ ++# ++# Location of the OCSP responder ++# ++# By default, the location of the OCSP responder is determined implicitly ++# from the certificate being validated. This property explicitly specifies ++# the location of the OCSP responder. The property is used when the ++# Authority Information Access extension (defined in RFC 3280) is absent ++# from the certificate or when it requires overriding. ++# ++# Example, ++# ocsp.responderURL=http://ocsp.example.net:80 ++ ++# ++# Subject name of the OCSP responder's certificate ++# ++# By default, the certificate of the OCSP responder is that of the issuer ++# of the certificate being validated. This property identifies the certificate ++# of the OCSP responder when the default does not apply. Its value is a string ++# distinguished name (defined in RFC 2253) which identifies a certificate in ++# the set of certificates supplied during cert path validation. In cases where ++# the subject name alone is not sufficient to uniquely identify the certificate ++# then both the "ocsp.responderCertIssuerName" and ++# "ocsp.responderCertSerialNumber" properties must be used instead. When this ++# property is set then those two properties are ignored. ++# ++# Example, ++# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp" ++ ++# ++# Issuer name of the OCSP responder's certificate ++# ++# By default, the certificate of the OCSP responder is that of the issuer ++# of the certificate being validated. This property identifies the certificate ++# of the OCSP responder when the default does not apply. Its value is a string ++# distinguished name (defined in RFC 2253) which identifies a certificate in ++# the set of certificates supplied during cert path validation. When this ++# property is set then the "ocsp.responderCertSerialNumber" property must also ++# be set. When the "ocsp.responderCertSubjectName" property is set then this ++# property is ignored. ++# ++# Example, ++# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp" ++ ++# ++# Serial number of the OCSP responder's certificate ++# ++# By default, the certificate of the OCSP responder is that of the issuer ++# of the certificate being validated. This property identifies the certificate ++# of the OCSP responder when the default does not apply. Its value is a string ++# of hexadecimal digits (colon or space separators may be present) which ++# identifies a certificate in the set of certificates supplied during cert path ++# validation. When this property is set then the "ocsp.responderCertIssuerName" ++# property must also be set. When the "ocsp.responderCertSubjectName" property ++# is set then this property is ignored. ++# ++# Example, ++# ocsp.responderCertSerialNumber=2A:FF:00 ++ ++# ++# Policy for failed Kerberos KDC lookups: ++# ++# When a KDC is unavailable (network error, service failure, etc), it is ++# put inside a blacklist and accessed less often for future requests. The ++# value (case-insensitive) for this policy can be: ++# ++# tryLast ++# KDCs in the blacklist are always tried after those not on the list. ++# ++# tryLess[:max_retries,timeout] ++# KDCs in the blacklist are still tried by their order in the configuration, ++# but with smaller max_retries and timeout values. max_retries and timeout ++# are optional numerical parameters (default 1 and 5000, which means once ++# and 5 seconds). Please notes that if any of the values defined here is ++# more than what is defined in krb5.conf, it will be ignored. ++# ++# Whenever a KDC is detected as available, it is removed from the blacklist. ++# The blacklist is reset when krb5.conf is reloaded. You can add ++# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is ++# reloaded whenever a JAAS authentication is attempted. ++# ++# Example, ++# krb5.kdc.bad.policy = tryLast ++# krb5.kdc.bad.policy = tryLess:2,2000 ++krb5.kdc.bad.policy = tryLast ++ ++# Algorithm restrictions for certification path (CertPath) processing ++# ++# In some environments, certain algorithms or key lengths may be undesirable ++# for certification path building and validation. For example, "MD2" is ++# generally no longer considered to be a secure hash algorithm. This section ++# describes the mechanism for disabling algorithms based on algorithm name ++# and/or key length. This includes algorithms used in certificates, as well ++# as revocation information such as CRLs and signed OCSP Responses. ++# ++# The syntax of the disabled algorithm string is described as this Java ++# BNF-style: ++# DisabledAlgorithms: ++# " DisabledAlgorithm { , DisabledAlgorithm } " ++# ++# DisabledAlgorithm: ++# AlgorithmName [Constraint] ++# ++# AlgorithmName: ++# (see below) ++# ++# Constraint: ++# KeySizeConstraint ++# ++# KeySizeConstraint: ++# keySize Operator DecimalInteger ++# ++# Operator: ++# <= | < | == | != | >= | > ++# ++# DecimalInteger: ++# DecimalDigits ++# ++# DecimalDigits: ++# DecimalDigit {DecimalDigit} ++# ++# DecimalDigit: one of ++# 1 2 3 4 5 6 7 8 9 0 ++# ++# The "AlgorithmName" is the standard algorithm name of the disabled ++# algorithm. See "Java Cryptography Architecture Standard Algorithm Name ++# Documentation" for information about Standard Algorithm Names. Matching ++# is performed using a case-insensitive sub-element matching rule. (For ++# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and ++# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a ++# sub-element of the certificate algorithm name, the algorithm will be ++# rejected during certification path building and validation. For example, ++# the assertion algorithm name "DSA" will disable all certificate algorithms ++# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion ++# will not disable algorithms related to "ECDSA". ++# ++# A "Constraint" provides further guidance for the algorithm being specified. ++# The "KeySizeConstraint" requires a key of a valid size range if the ++# "AlgorithmName" is of a key algorithm. The "DecimalInteger" indicates the ++# key size specified in number of bits. For example, "RSA keySize <= 1024" ++# indicates that any RSA key with key size less than or equal to 1024 bits ++# should be disabled, and "RSA keySize < 1024, RSA keySize > 2048" indicates ++# that any RSA key with key size less than 1024 or greater than 2048 should ++# be disabled. Note that the "KeySizeConstraint" only makes sense to key ++# algorithms. ++# ++# Note: This property is currently used by Oracle's PKIX implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 ++# ++# ++jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024 ++ ++# Algorithm restrictions for Secure Socket Layer/Transport Layer Security ++# (SSL/TLS) processing ++# ++# In some environments, certain algorithms or key lengths may be undesirable ++# when using SSL/TLS. This section describes the mechanism for disabling ++# algorithms during SSL/TLS security parameters negotiation, including cipher ++# suites selection, peer authentication and key exchange mechanisms. ++# ++# For PKI-based peer authentication and key exchange mechanisms, this list ++# of disabled algorithms will also be checked during certification path ++# building and validation, including algorithms used in certificates, as ++# well as revocation information such as CRLs and signed OCSP Responses. ++# This is in addition to the jdk.certpath.disabledAlgorithms property above. ++# ++# See the specification of "jdk.certpath.disabledAlgorithms" for the ++# syntax of the disabled algorithm string. ++# ++# Note: This property is currently used by Oracle's JSSE implementation. ++# It is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 +--- jdk/src/share/native/sun/awt/medialib/mlib_sys.c ++++ jdk/src/share/native/sun/awt/medialib/mlib_sys.c +@@ -26,7 +26,7 @@ + + #include + #include +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + #include + #include + #else +@@ -92,7 +92,7 @@ + * alignment. -- from stdlib.h of MS VC++5.0. + */ + return (void *) malloc(size); +-#elif defined(MACOSX) ++#elif defined(_ALLBSD_SOURCE) + return valloc(size); + #else + return (void *) memalign(8, size); +--- jdk/src/share/native/sun/management/DiagnosticCommandImpl.c ++++ jdk/src/share/native/sun/management/DiagnosticCommandImpl.c +@@ -26,6 +26,7 @@ + #include + #include "management.h" + #include "sun_management_DiagnosticCommandImpl.h" ++#include + + JNIEXPORT void JNICALL Java_sun_management_DiagnosticCommandImpl_setNotificationEnabled + (JNIEnv *env, jobject dummy, jboolean enabled) { +--- jdk/src/solaris/bin/ergo_i586.c ++++ jdk/src/solaris/bin/ergo_i586.c +@@ -106,7 +106,7 @@ + + #endif /* __solaris__ */ + +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + + /* + * A utility method for asking the CPU about itself. +--- jdk/src/solaris/bin/java_md_solinux.c ++++ jdk/src/solaris/bin/java_md_solinux.c +@@ -928,9 +928,13 @@ + } + } + } +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__FreeBSD__) + { ++#if defined(__FreeBSD__) ++ const char* self = "/proc/curproc/file"; ++#else + const char* self = "/proc/self/exe"; ++#endif + char buf[PATH_MAX+1]; + int len = readlink(self, buf, PATH_MAX); + if (len >= 0) { +@@ -938,7 +942,7 @@ + exec_path = JLI_StringDup(buf); + } + } +-#else /* !__solaris__ && !__linux__ */ ++#else /* !__solaris__ && !__linux__ && !__FreeBSD__ */ + { + /* Not implemented */ + } +@@ -1000,7 +1004,7 @@ + int + ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void * args) { + int rslt; +-#ifdef __linux__ ++#ifndef __solaris__ + pthread_t tid; + pthread_attr_t attr; + pthread_attr_init(&attr); +@@ -1025,7 +1029,7 @@ + } + + pthread_attr_destroy(&attr); +-#else /* ! __linux__ */ ++#else /* __solaris__ */ + thread_t tid; + long flags = 0; + if (thr_create(NULL, stack_size, (void *(*)(void *))continuation, args, flags, &tid) == 0) { +--- jdk/src/solaris/bin/java_md_solinux.h ++++ jdk/src/solaris/bin/java_md_solinux.h +@@ -54,10 +54,10 @@ + #endif + + #include +-#ifdef __linux__ +-#include +-#else ++#ifdef __solaris__ + #include ++#else ++#include + #endif + + #define JVM_DLL "libjvm.so" +--- jdk/src/solaris/classes/sun/net/PortConfig.java ++++ jdk/src/solaris/classes/sun/net/PortConfig.java +@@ -52,7 +52,7 @@ + } else if (os.startsWith("SunOS")) { + defaultLower = 32768; + defaultUpper = 65535; +- } else if (os.contains("OS X")) { ++ } else if (os.endsWith("BSD") || os.contains("OS X")) { + defaultLower = 49152; + defaultUpper = 65535; + } else { +--- jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java ++++ jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java +@@ -66,7 +66,7 @@ + return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider"); + if (osname.equals("Linux")) + return createProvider("sun.nio.ch.LinuxAsynchronousChannelProvider"); +- if (osname.contains("OS X")) ++ if (osname.endsWith("BSD") || osname.contains("OS X")) + return createProvider("sun.nio.ch.BsdAsynchronousChannelProvider"); + throw new InternalError("platform not recognized"); + } +--- jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java ++++ jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java +@@ -25,10 +25,14 @@ + + package sun.nio.fs; + ++import java.nio.file.*; ++import java.nio.file.spi.FileTypeDetector; + import java.io.IOException; ++import java.security.AccessController; ++import sun.security.action.GetPropertyAction; + + /** +- * Bsd implementation of FileSystemProvider ++ * BSD implementation of FileSystemProvider + */ + + public class BsdFileSystemProvider extends UnixFileSystemProvider { +@@ -45,4 +49,16 @@ + BsdFileStore getFileStore(UnixPath path) throws IOException { + return new BsdFileStore(path); + } ++ ++ @Override ++ FileTypeDetector getFileTypeDetector() { ++ Path userMimeTypes = Paths.get(AccessController.doPrivileged( ++ new GetPropertyAction("user.home")), ".mime.types"); ++ Path etcMimeTypes = Paths.get("/etc/mime.types"); ++ ++ return chain(new GnomeFileTypeDetector(), ++ new MimeTypesFileTypeDetector(userMimeTypes), ++ new MimeTypesFileTypeDetector(etcMimeTypes), ++ new MagicFileTypeDetector()); ++ } + } +--- jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java ++++ jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java +@@ -61,6 +61,8 @@ + return createProvider("sun.nio.fs.SolarisFileSystemProvider"); + if (osname.equals("Linux")) + return createProvider("sun.nio.fs.LinuxFileSystemProvider"); ++ if (osname.endsWith("BSD")) ++ return createProvider("sun.nio.fs.BsdFileSystemProvider"); + if (osname.contains("OS X")) + return createProvider("sun.nio.fs.MacOSXFileSystemProvider"); + throw new AssertionError("Platform not recognized"); +--- jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java ++++ jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java +@@ -266,7 +266,7 @@ + try { + b = s.getBytes("UTF-8"); + } catch (java.io.UnsupportedEncodingException x) { +- throw new InternalError(); ++ throw new InternalError(x); + } + BsdVirtualMachine.write(fd, b, 0, b.length); + } +--- jdk/src/solaris/native/common/jni_util_md.c ++++ jdk/src/solaris/native/common/jni_util_md.c +@@ -28,6 +28,7 @@ + #include "jni.h" + #include "jni_util.h" + #include "dlfcn.h" ++#include + + jstring nativeNewStringPlatform(JNIEnv *env, const char *str) { + return NULL; +--- jdk/src/solaris/native/java/net/Inet4AddressImpl.c ++++ jdk/src/solaris/native/java/net/Inet4AddressImpl.c +@@ -36,20 +36,13 @@ + #include + #include + +-#ifdef _ALLBSD_SOURCE +-#include +-#include +-#endif +- + #include "jvm.h" + #include "jni_util.h" + #include "net_util.h" + + #include "java_net_Inet4AddressImpl.h" + +-#if defined(__GLIBC__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 601104)) +-#define HAS_GLIBC_GETHOSTBY_R 1 +-#endif ++extern jobjectArray lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6); + + static jclass ni_iacls; + static jclass ni_ia4cls; +@@ -74,268 +67,6 @@ + return JNI_TRUE; + } + +- +-#if defined(_ALLBSD_SOURCE) && !defined(HAS_GLIBC_GETHOSTBY_R) +-extern jobjectArray lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6); +- +-/* Use getaddrinfo(3), which is thread safe */ +-/************************************************************************ +- * Inet4AddressImpl +- */ +- +-/* +- * Class: java_net_Inet4AddressImpl +- * Method: getLocalHostName +- * Signature: ()Ljava/lang/String; +- */ +-JNIEXPORT jstring JNICALL +-Java_java_net_Inet4AddressImpl_getLocalHostName(JNIEnv *env, jobject this) { +- char hostname[NI_MAXHOST+1]; +- +- hostname[0] = '\0'; +- if (JVM_GetHostName(hostname, NI_MAXHOST)) { +- /* Something went wrong, maybe networking is not setup? */ +- strcpy(hostname, "localhost"); +- } else { +- struct addrinfo hints, *res; +- int error; +- +- memset(&hints, 0, sizeof(hints)); +- hints.ai_flags = AI_CANONNAME; +- hints.ai_family = AF_UNSPEC; +- +- error = getaddrinfo(hostname, NULL, &hints, &res); +- +- if (error == 0) { +- /* host is known to name service */ +- error = getnameinfo(res->ai_addr, +- res->ai_addrlen, +- hostname, +- NI_MAXHOST, +- NULL, +- 0, +- NI_NAMEREQD); +- +- /* if getnameinfo fails hostname is still the value +- from gethostname */ +- +- freeaddrinfo(res); +- } +- } +- return (*env)->NewStringUTF(env, hostname); +-} +- +-/* +- * Find an internet address for a given hostname. Note that this +- * code only works for addresses of type INET. The translation +- * of %d.%d.%d.%d to an address (int) occurs in java now, so the +- * String "host" shouldn't *ever* be a %d.%d.%d.%d string +- * +- * Class: java_net_Inet4AddressImpl +- * Method: lookupAllHostAddr +- * Signature: (Ljava/lang/String;)[[B +- */ +- +-JNIEXPORT jobjectArray JNICALL +-Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, +- jstring host) { +- const char *hostname; +- jobject name; +- jobjectArray ret = 0; +- int retLen = 0; +- +- int error=0; +- struct addrinfo hints, *res, *resNew = NULL; +- +- if (!initializeInetClasses(env)) +- return NULL; +- +- if (IS_NULL(host)) { +- JNU_ThrowNullPointerException(env, "host is null"); +- return 0; +- } +- hostname = JNU_GetStringPlatformChars(env, host, JNI_FALSE); +- CHECK_NULL_RETURN(hostname, NULL); +- +- memset(&hints, 0, sizeof(hints)); +- hints.ai_flags = AI_CANONNAME; +- hints.ai_family = AF_INET; +- +- /* +- * Workaround for Solaris bug 4160367 - if a hostname contains a +- * white space then 0.0.0.0 is returned +- */ +- if (isspace((unsigned char)hostname[0])) { +- JNU_ThrowByName(env, JNU_JAVANETPKG "UnknownHostException", +- (char *)hostname); +- JNU_ReleaseStringPlatformChars(env, host, hostname); +- return NULL; +- } +- +-#ifdef MACOSX +- /* If we're looking up the local machine, bypass DNS lookups and get +- * address from getifaddrs. +- */ +- ret = lookupIfLocalhost(env, hostname, JNI_FALSE); +- if (ret != NULL || (*env)->ExceptionCheck(env)) { +- JNU_ReleaseStringPlatformChars(env, host, hostname); +- return ret; +- } +-#endif +- +- error = getaddrinfo(hostname, NULL, &hints, &res); +- +- if (error) { +- /* report error */ +- ThrowUnknownHostExceptionWithGaiError(env, hostname, error); +- JNU_ReleaseStringPlatformChars(env, host, hostname); +- return NULL; +- } else { +- int i = 0; +- struct addrinfo *itr, *last = NULL, *iterator = res; +- while (iterator != NULL) { +- int skip = 0; +- itr = resNew; +- +- while (itr != NULL) { +- struct sockaddr_in *addr1, *addr2; +- +- addr1 = (struct sockaddr_in *)iterator->ai_addr; +- addr2 = (struct sockaddr_in *)itr->ai_addr; +- if (addr1->sin_addr.s_addr == +- addr2->sin_addr.s_addr) { +- skip = 1; +- break; +- } +- +- itr = itr->ai_next; +- } +- +- if (!skip) { +- struct addrinfo *next +- = (struct addrinfo*) malloc(sizeof(struct addrinfo)); +- if (!next) { +- JNU_ThrowOutOfMemoryError(env, "Native heap allocation failed"); +- ret = NULL; +- goto cleanupAndReturn; +- } +- memcpy(next, iterator, sizeof(struct addrinfo)); +- next->ai_next = NULL; +- if (resNew == NULL) { +- resNew = next; +- } else { +- last->ai_next = next; +- } +- last = next; +- i++; +- } +- iterator = iterator->ai_next; +- } +- +- retLen = i; +- iterator = resNew; +- i = 0; +- +- name = (*env)->NewStringUTF(env, hostname); +- if (IS_NULL(name)) { +- goto cleanupAndReturn; +- } +- +- ret = (*env)->NewObjectArray(env, retLen, ni_iacls, NULL); +- if (IS_NULL(ret)) { +- /* we may have memory to free at the end of this */ +- goto cleanupAndReturn; +- } +- +- while (iterator != NULL) { +- /* We need 4 bytes to store ipv4 address; */ +- int len = 4; +- +- jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID); +- if (IS_NULL(iaObj)) { +- /* we may have memory to free at the end of this */ +- ret = NULL; +- goto cleanupAndReturn; +- } +- setInetAddress_addr(env, iaObj, ntohl(((struct sockaddr_in*)(iterator->ai_addr))->sin_addr.s_addr)); +- setInetAddress_hostName(env, iaObj, name); +- (*env)->SetObjectArrayElement(env, ret, retLen - i -1, iaObj); +- i++; +- iterator = iterator->ai_next; +- } +- } +- +-cleanupAndReturn: +- { +- struct addrinfo *iterator, *tmp; +- iterator = resNew; +- while (iterator != NULL) { +- tmp = iterator; +- iterator = iterator->ai_next; +- free(tmp); +- } +- JNU_ReleaseStringPlatformChars(env, host, hostname); +- } +- +- freeaddrinfo(res); +- +- return ret; +- +-} +- +-/* +- * Class: java_net_Inet4AddressImpl +- * Method: getHostByAddr +- * Signature: (I)Ljava/lang/String; +- */ +-JNIEXPORT jstring JNICALL +-Java_java_net_Inet4AddressImpl_getHostByAddr(JNIEnv *env, jobject this, +- jbyteArray addrArray) { +- jstring ret = NULL; +- +- char host[NI_MAXHOST+1]; +- jfieldID fid; +- int error = 0; +- jint family; +- struct sockaddr *him ; +- int len = 0; +- jbyte caddr[4]; +- jint addr; +- +- struct sockaddr_in him4; +- struct sockaddr *sa; +- +- /* +- * For IPv4 addresses construct a sockaddr_in structure. +- */ +- (*env)->GetByteArrayRegion(env, addrArray, 0, 4, caddr); +- addr = ((caddr[0]<<24) & 0xff000000); +- addr |= ((caddr[1] <<16) & 0xff0000); +- addr |= ((caddr[2] <<8) & 0xff00); +- addr |= (caddr[3] & 0xff); +- memset((char *) &him4, 0, sizeof(him4)); +- him4.sin_addr.s_addr = (uint32_t) htonl(addr); +- him4.sin_family = AF_INET; +- sa = (struct sockaddr *) &him4; +- len = sizeof(him4); +- +- error = getnameinfo(sa, len, host, NI_MAXHOST, NULL, 0, +- NI_NAMEREQD); +- +- if (!error) { +- ret = (*env)->NewStringUTF(env, host); +- } +- +- if (ret == NULL) { +- JNU_ThrowByName(env, JNU_JAVANETPKG "UnknownHostException", NULL); +- } +- +- return ret; +- +-} +- +-#else /* defined(_ALLBSD_SOURCE) && !defined(HAS_GLIBC_GETHOSTBY_R) */ +- + /* the initial size of our hostent buffers */ + #ifndef NI_MAXHOST + #define NI_MAXHOST 1025 +@@ -435,6 +166,17 @@ + } + #endif + ++#ifdef _ALLBSD_SOURCE ++ /* If we're looking up the local machine, bypass DNS lookups and get ++ * address from getifaddrs. ++ */ ++ ret = lookupIfLocalhost(env, hostname, JNI_FALSE); ++ if (ret != NULL || (*env)->ExceptionCheck(env)) { ++ JNU_ReleaseStringPlatformChars(env, host, hostname); ++ return ret; ++ } ++#endif ++ + error = getaddrinfo(hostname, NULL, &hints, &res); + + if (error) { +@@ -568,8 +310,6 @@ + return ret; + } + +-#endif /* _ALLBSD_SOURCE */ +- + #define SET_NONBLOCKING(fd) { \ + int flags = fcntl(fd, F_GETFL); \ + flags |= O_NONBLOCK; \ +--- jdk/src/solaris/native/java/net/Inet6AddressImpl.c ++++ jdk/src/solaris/native/java/net/Inet6AddressImpl.c +@@ -33,7 +33,7 @@ + #include + #include + #include +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + #include + #include + #include /* gethostname */ +@@ -155,9 +155,9 @@ + return JNI_TRUE; + } + +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + /* also called from Inet4AddressImpl.c */ +-__private_extern__ jobjectArray ++jobjectArray + lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6) + { + jobjectArray result = NULL; +@@ -307,7 +307,7 @@ + hostname = JNU_GetStringPlatformChars(env, host, JNI_FALSE); + CHECK_NULL_RETURN(hostname, NULL); + +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + /* + * If we're looking up the local machine, attempt to get the address + * from getifaddrs. This ensures we get an IPv6 address for the local +--- jdk/src/solaris/native/java/net/NetworkInterface.c ++++ jdk/src/solaris/native/java/net/NetworkInterface.c +@@ -60,14 +60,18 @@ + #include + #include + #include +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + #include + #include ++#elif defined(__OpenBSD__) ++#include ++#elif defined(__NetBSD__) ++#include ++#endif + #include + #include + #include + #endif +-#endif + + #include "jvm.h" + #include "jni_util.h" +--- jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c ++++ jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c +@@ -2176,7 +2176,7 @@ + } + } + #endif +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + if (family == AF_INET6 && index == 0) { + index = getDefaultScopeID(env); + } +--- jdk/src/solaris/native/java/net/net_util_md.c ++++ jdk/src/solaris/native/java/net/net_util_md.c +@@ -87,7 +87,7 @@ + + void setDefaultScopeID(JNIEnv *env, struct sockaddr *him) + { +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + static jclass ni_class = NULL; + static jfieldID ni_defaultIndexID; + if (ni_class == NULL) { +--- jdk/src/solaris/native/java/util/TimeZone_md.c ++++ jdk/src/solaris/native/java/util/TimeZone_md.c +@@ -123,7 +123,7 @@ + return NULL; + } + +-#if defined(__linux__) || defined(MACOSX) || (defined(__solaris__) \ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || (defined(__solaris__) \ + && (defined(_POSIX_PTHREAD_SEMANTICS) || defined(_LP64))) + while (readdir_r(dirp, entry, &dp) == 0 && dp != NULL) { + #else +@@ -211,7 +211,7 @@ + return tz; + } + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + + /* + * Performs Linux specific mapping and returns a zone ID +@@ -677,7 +677,7 @@ + * Returns a GMT-offset-based zone ID. (e.g., "GMT-08:00") + */ + +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + + char * + getGMTOffsetID() +@@ -693,10 +693,10 @@ + local_tm = localtime(&clock); + if (local_tm->tm_gmtoff >= 0) { + offset = (time_t) local_tm->tm_gmtoff; +- sign = "+"; ++ sign = '+'; + } else { + offset = (time_t) -local_tm->tm_gmtoff; +- sign = "-"; ++ sign = '-'; + } + sprintf(buf, (const char *)"GMT%c%02d:%02d", + sign, (int)(offset/3600), (int)((offset%3600)/60)); +--- jdk/src/solaris/native/sun/management/OperatingSystemImpl.c ++++ jdk/src/solaris/native/sun/management/OperatingSystemImpl.c +@@ -342,7 +342,13 @@ + size_t rlen; + + mib[0] = CTL_HW; ++#if defined (HW_MEMSIZE) // Apple + mib[1] = HW_MEMSIZE; ++#elif defined(HW_PHYSMEM) // Most of BSD ++ mib[1] = HW_PHYSMEM; ++#else ++ #error No ways to get physmem ++#endif + rlen = sizeof(result); + if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) { + throw_internal_error(env, "sysctl failed"); +--- jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h ++++ jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h +@@ -67,7 +67,7 @@ + + + +-#else /* __linux__ */ ++#elif defined(__linux__) + #include + #include + #include +@@ -319,9 +319,20 @@ + typedef int sctp_bindx_func(int sd, struct sockaddr *addrs, int addrcnt, int flags); + typedef int sctp_peeloff_func(int sock, sctp_assoc_t id); + ++#elif defined(__FreeBSD__) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include "jni.h" + + #endif /* __linux__ */ + ++#ifndef __FreeBSD__ ++ + sctp_getladdrs_func* nio_sctp_getladdrs; + sctp_freeladdrs_func* nio_sctp_freeladdrs; + sctp_getpaddrs_func* nio_sctp_getpaddrs; +@@ -329,6 +340,17 @@ + sctp_bindx_func* nio_sctp_bindx; + sctp_peeloff_func* nio_sctp_peeloff; + ++#else ++ ++#define nio_sctp_getladdrs sctp_getladdrs ++#define nio_sctp_freeladdrs sctp_freeladdrs ++#define nio_sctp_getpaddrs sctp_getpaddrs ++#define nio_sctp_freepaddrs sctp_freepaddrs ++#define nio_sctp_bindx sctp_bindx ++#define nio_sctp_peeloff sctp_peeloff ++ ++#endif ++ + jboolean loadSocketExtensionFuncs(JNIEnv* env); + + #endif /* !SUN_NIO_CH_SCTP_H */ +--- jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c ++++ jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c +@@ -58,6 +58,7 @@ + */ + jboolean loadSocketExtensionFuncs + (JNIEnv* env) { ++#ifndef __FreeBSD__ + if (dlopen(nativeSctpLib, RTLD_GLOBAL | RTLD_LAZY) == NULL) { + JNU_ThrowByName(env, "java/lang/UnsupportedOperationException", + dlerror()); +@@ -105,6 +106,7 @@ + dlerror()); + return JNI_FALSE; + } ++#endif + + funcsLoaded = JNI_TRUE; + return JNI_TRUE; +--- jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c ++++ jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c +@@ -31,6 +31,12 @@ + #include + #include + ++#ifdef __FreeBSD__ ++#define MAGIC_MAJOR_VERSION "4" ++#else ++#define MAGIC_MAJOR_VERSION "1" ++#endif ++ + #define MAGIC_MIME_TYPE 0x000010 /* Return the MIME type */ + + typedef struct magic_set magic_t; +@@ -54,7 +60,7 @@ + { + magic_handle = dlopen("libmagic.so", RTLD_LAZY); + if (magic_handle == NULL) { +- magic_handle = dlopen("libmagic.so.1", RTLD_LAZY); ++ magic_handle = dlopen("libmagic.so." MAGIC_MAJOR_VERSION, RTLD_LAZY); + if (magic_handle == NULL) { + return JNI_FALSE; + } +--- jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c ++++ jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c +@@ -37,7 +37,9 @@ + #include + #include + #include ++#ifndef __FreeBSD__ + #include ++#endif + #include + #include + +--- make/Main.gmk ++++ make/Main.gmk +@@ -58,7 +58,11 @@ + + # Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line, + # hence this workaround. ++ifdef JOBS ++ifneq ($(JOBS),0) + MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS) ++endif ++endif + + ### Main targets + +--- make/common/MakeBase.gmk ++++ make/common/MakeBase.gmk +@@ -365,8 +365,8 @@ + + # This is to be called by all SetupFoo macros + define LogSetupMacroEntry +- $(if $(27),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) +- $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) ++ $(if $(30),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) ++ $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) + endef + + # Make directory without forking mkdir if not needed +--- make/common/NativeCompilation.gmk ++++ make/common/NativeCompilation.gmk +@@ -151,9 +151,9 @@ + # CC the compiler to use, default is $(CC) + # LDEXE the linker to use for linking executables, default is $(LDEXE) + # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST +- $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) +- $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) +- $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) ++ $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) ++ $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26),$(27),$(28),$(29)) ++ $(if $(30),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) + + ifneq (,$$($1_BIN)) + $$(error BIN has been replaced with OBJECT_DIR) diff --git a/java/openjdk8/files/patch-bsd-test b/java/openjdk8/files/patch-bsd-test new file mode 100644 index 000000000000..96a7d4560270 --- /dev/null +++ b/java/openjdk8/files/patch-bsd-test @@ -0,0 +1,1344 @@ +--- hotspot/test/compiler/5091921/Test7005594.sh ++++ hotspot/test/compiler/5091921/Test7005594.sh +@@ -60,6 +60,15 @@ + # Windows/MKS + MEM=`"$ROOTDIR/mksnt/sysinf" memory -v | grep "Total Physical Memory: " | sed 's/Total Physical Memory: *//g'` + MEM="$(($machine_memory / 1024))" ++elif [ -x "/sbin/sysctl" ]; then ++ # BSD ++ MEM=`(/sbin/sysctl -n hw.physmem64 2> /dev/null || /sbin/sysctl -n hw.physmem)` ++ if [ -z "$MEM" ]; then ++ echo "Unable to determine amount of physical memory on the machine" ++ MEM=0 ++ else ++ MEM="$(($MEM / 1024 / 1024))" ++ fi + else + echo "Unable to determine amount of physical memory on the machine" + fi +--- hotspot/test/compiler/6894807/Test6894807.sh ++++ hotspot/test/compiler/6894807/Test6894807.sh +@@ -21,7 +21,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- hotspot/test/runtime/7110720/Test7110720.sh ++++ hotspot/test/runtime/7110720/Test7110720.sh +@@ -28,7 +28,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + FS="/" + RM=/bin/rm + CP=/bin/cp +--- hotspot/test/test_env.sh ++++ hotspot/test/test_env.sh +@@ -53,7 +53,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/com/sun/corba/5036554/TestCorbaBug.sh ++++ jdk/test/com/sun/corba/5036554/TestCorbaBug.sh +@@ -48,7 +48,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/com/sun/corba/cachedSocket/7056731.sh ++++ jdk/test/com/sun/corba/cachedSocket/7056731.sh +@@ -31,7 +31,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/com/sun/jdi/ImmutableResourceTest.sh ++++ jdk/test/com/sun/jdi/ImmutableResourceTest.sh +@@ -56,7 +56,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + ;; + +--- jdk/test/com/sun/jdi/JITDebug.sh ++++ jdk/test/com/sun/jdi/JITDebug.sh +@@ -63,7 +63,7 @@ + OS=`uname -s` + export TRANSPORT_METHOD + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + TRANSPORT_METHOD=dt_socket + ;; +--- jdk/test/com/sun/jdi/PrivateTransportTest.sh ++++ jdk/test/com/sun/jdi/PrivateTransportTest.sh +@@ -106,7 +106,7 @@ + xx=`find ${jreloc}/lib -name libdt_socket.so` + libloc=`dirname ${xx}` + ;; +- Darwin) ++ *BSD | Darwin) + libloc=${jreloc}/lib + ;; + Windows*) +--- jdk/test/com/sun/jdi/ShellScaffold.sh ++++ jdk/test/com/sun/jdi/ShellScaffold.sh +@@ -293,7 +293,7 @@ + psCmd=ps + jstack=jstack.exe + ;; +- SunOS | Linux | Darwin) ++ SunOS | Linux | *BSD | Darwin) + transport=dt_socket + address= + devnull=/dev/null +--- jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh ++++ jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh +@@ -45,7 +45,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + ;; + Windows* | CYGWIN*) +--- jdk/test/java/awt/JAWT/JAWT.sh ++++ jdk/test/java/awt/JAWT/JAWT.sh +@@ -62,6 +62,23 @@ + MAKE="make" + LD_LIBRARY_PATH="." + ;; ++ *BSD ) ++ NULL=/dev/null ++ PS=":" ++ FS="/" ++ ${TESTJAVA}${FS}bin${FS}java -version 2>&1 | grep '64-Bit' > $NULL ++ if [ $? -eq '0' ] ++ then ++ ARCH="amd64" ++ else ++ ARCH="i386" ++ fi ++ SYST="bsd" ++ MAKEFILE="Makefile.unix" ++ CC="cc" ++ MAKE="make" ++ LD_LIBRARY_PATH="." ++ ;; + SunOS ) + NULL=/dev/null + PS=":" +@@ -111,7 +128,7 @@ + MAKE="make" + ;; + Darwin ) +- echo "Test passed. This test is not for MacOS." ++ echo "Test passed. This test is not for BSD." + exit 0; + ;; + * ) +--- jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++++ jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh +@@ -78,8 +78,8 @@ + TMP="/tmp" + ;; + +- Darwin ) +- VAR="A different value for MacOSX" ++ *BSD | Darwin ) ++ VAR="A different value for BSD" + DEFAULT_JDK=/usr + FILESEP="/" + PATHSEP=":" +--- jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh ++++ jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh +@@ -77,9 +77,9 @@ + FILESEP="\\" + ;; + +- Darwin) +- VAR="Lets not forget about Mac" +- DEFAULT_JDK=$(/usr/libexec/java_home) ++ *BSD | Darwin ) ++ VAR="Lets not forget about BSD" ++ DEFAULT_JDK=/ + FILESEP="/" + ;; + +--- jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++++ jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh +@@ -111,9 +111,9 @@ + TMP="/tmp" + ;; + +- Darwin ) +- VAR="A different value for MacOSX" +- DEFAULT_JDK=/usr ++ *BSD | Darwin ) ++ VAR="A different value for BSD" ++ DEFAULT_JDK=/ + FILESEP="/" + PATHSEP=":" + TMP="/tmp" +--- jdk/test/java/io/File/GetXSpace.java ++++ jdk/test/java/io/File/GetXSpace.java +@@ -51,7 +51,7 @@ + private static final String dfFormat; + static { + if (name.equals("SunOS") || name.equals("Linux") +- || name.contains("OS X")) { ++ || name.endsWith("BSD") || name.contains("OS X")) { + // FileSystem Total Used Available Use% MountedOn + dfFormat = "([^\\s]+)\\s+(\\d+)\\s+\\d+\\s+(\\d+)\\s+\\d+%\\s+([^\\s]+)"; + } else if (name.startsWith("Windows")) { +--- jdk/test/java/io/File/GetXSpace.sh ++++ jdk/test/java/io/File/GetXSpace.sh +@@ -26,7 +26,7 @@ + # set platform-dependent variable + OS=`uname -s` + case "$OS" in +- SunOS | Linux ) TMP=/tmp ;; ++ SunOS | Linux | *BSD | Darwin ) TMP=/tmp ;; + Windows_98 ) return ;; + Windows* ) SID=`sid`; TMP="c:/temp" ;; + * ) +--- jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh ++++ jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh +@@ -45,7 +45,7 @@ + # Need to determine the classpath separator and filepath separator based on the + # operating system. + case "$OS" in +-SunOS | Linux | Darwin ) ++SunOS | Linux | *BSD | Darwin ) + PS=":" ;; + Windows* | CYGWIN* ) + PS=";" ;; +--- jdk/test/java/io/Serializable/serialver/classpath/run.sh ++++ jdk/test/java/io/Serializable/serialver/classpath/run.sh +@@ -47,7 +47,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" ;; + Windows* | CYGWIN* ) + PS=";" ;; +--- jdk/test/java/io/Serializable/serialver/nested/run.sh ++++ jdk/test/java/io/Serializable/serialver/nested/run.sh +@@ -47,7 +47,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" ;; + Windows* | CYGWIN* ) + PS=";" ;; +--- jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh ++++ jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh +@@ -55,7 +55,7 @@ + Linux ) + FS="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + FS="/" + ;; + Windows*) +--- jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh ++++ jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh +@@ -60,7 +60,7 @@ + Linux ) + FS="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + FS="/" + ;; + Windows* | CYGWIN* ) +--- jdk/test/java/lang/ProcessBuilder/DestroyTest.java ++++ jdk/test/java/lang/ProcessBuilder/DestroyTest.java +@@ -148,6 +148,9 @@ + } else if (osName.startsWith("Linux") == true) { + return new UnixTest( + File.createTempFile("ProcessTrap-", ".sh",null)); ++ } else if (osName.endsWith("BSD")) { ++ return new UnixTest( ++ File.createTempFile("ProcessTrap-", ".sh",null)); + } else if (osName.startsWith("Mac OS")) { + return new MacTest( + File.createTempFile("ProcessTrap-", ".sh",null)); +--- jdk/test/java/lang/ProcessBuilder/Zombies.java ++++ jdk/test/java/lang/ProcessBuilder/Zombies.java +@@ -34,7 +34,7 @@ + + static final String os = System.getProperty("os.name"); + +- static final String TrueCommand = os.contains("OS X")? ++ static final String TrueCommand = (os.endsWith("BSD") || os.contains("OS X")) ? + "/usr/bin/true" : "/bin/true"; + + public static void main(String[] args) throws Throwable { +--- jdk/test/java/lang/StringCoding/CheckEncodings.sh ++++ jdk/test/java/lang/StringCoding/CheckEncodings.sh +@@ -30,7 +30,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin) ;; ++ SunOS | Linux | *BSD | Darwin ) ;; + Windows* | CYGWIN* ) + echo "Passed"; exit 0 ;; + * ) echo "Unrecognized system!" ; exit 1 ;; +--- jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh ++++ jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh +@@ -48,7 +48,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/java/lang/instrument/MakeJAR2.sh ++++ jdk/test/java/lang/instrument/MakeJAR2.sh +@@ -55,7 +55,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux ) ++ SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + ;; + +--- jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh ++++ jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh +@@ -43,7 +43,7 @@ + PS=":" + FS="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java ++++ jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java +@@ -79,8 +79,10 @@ + System.out.println("Test passed."); + } + ++ private static String osName = System.getProperty("os.name"); ++ + private static String LOAD_AVERAGE_TEXT +- = System.getProperty("os.name").contains("OS X") ++ = (osName.endsWith("BSD") || osName.contains("OS X")) + ? "load averages:" + : "load average:"; + +@@ -99,7 +101,7 @@ + System.out.println("Load average returned from uptime = " + output); + System.out.println("getSystemLoadAverage() returned " + loadavg); + +- String[] lavg = System.getProperty("os.name").contains("OS X") ++ String[] lavg = (osName.endsWith("BSD") || osName.contains("OS X")) + ? output.split(" ") + : output.split(","); + double expected = Double.parseDouble(lavg[0]); +--- jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh ++++ jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh +@@ -61,7 +61,7 @@ + while true; do + echo "Run $i: TestSystemLoadAvg" + case `uname -s` in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + runOne GetSystemLoadAverage + ;; + * ) +--- jdk/test/java/net/Authenticator/B4933582.sh ++++ jdk/test/java/net/Authenticator/B4933582.sh +@@ -26,7 +26,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/net/DatagramSocket/Send12k.java ++++ jdk/test/java/net/DatagramSocket/Send12k.java +@@ -36,9 +36,10 @@ + + public static void main(String args[]) throws Exception { + +- int SEND_SIZE=0; ++ String osName = System.getProperty("os.name"); ++ int SEND_SIZE; + +- if(System.getProperty("os.name").contains("Mac")) { ++ if(osName.endsWith("BSD") || osName.contains("Mac")) { + SEND_SIZE = 16 * 576; + } else { + SEND_SIZE = 16 * 1024; +--- jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java ++++ jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java +@@ -45,6 +45,8 @@ + return (true); + if (p.getProperty ("os.name").equals ("Linux")) + return (true); ++ if (p.getProperty ("os.name").endsWith ("BSD")) ++ return (true); + if (p.getProperty ("os.name").startsWith ("Mac OS")) + return (true); + // Check for specific Solaris version from here +--- jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh ++++ jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh +@@ -27,7 +27,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Darwin ) ++ SunOS | *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/java/net/Socket/OldSocketImpl.sh ++++ jdk/test/java/net/Socket/OldSocketImpl.sh +@@ -28,7 +28,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/net/URL/B5086147.sh ++++ jdk/test/java/net/URL/B5086147.sh +@@ -26,7 +26,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + exit 0 + ;; + CYGWIN* ) +--- jdk/test/java/net/URLClassLoader/B5077773.sh ++++ jdk/test/java/net/URLClassLoader/B5077773.sh +@@ -34,7 +34,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Darwin ) ++ SunOS | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/net/URLClassLoader/sealing/checksealed.sh ++++ jdk/test/java/net/URLClassLoader/sealing/checksealed.sh +@@ -27,7 +27,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Darwin ) ++ SunOS | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/net/URLConnection/6212146/test.sh ++++ jdk/test/java/net/URLConnection/6212146/test.sh +@@ -33,7 +33,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Darwin ) ++ SunOS | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/nio/channels/FileChannel/Transfer.java ++++ jdk/test/java/nio/channels/FileChannel/Transfer.java +@@ -228,7 +228,7 @@ + // Windows and Linux can't handle the really large file sizes for a + // truncate or a positional write required by the test for 4563125 + String osName = System.getProperty("os.name"); +- if (!(osName.startsWith("SunOS") || osName.contains("OS X"))) ++ if (!(osName.startsWith("SunOS") || osName.endsWith("BSD") || osName.contains("OS X"))) + return; + File source = File.createTempFile("blah", null); + source.deleteOnExit(); +--- jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c ++++ jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c +@@ -17,6 +17,12 @@ + + #include "Launcher.h" + ++#ifdef _ALLBSD_SOURCE ++#define FD_DIR "/dev/fd" ++#else ++#define FD_DIR "/proc/self/fd" ++#endif ++ + /* + * Throws the exception of the given class name and detail message + */ +@@ -135,7 +141,7 @@ + } + close(thisFd); + +- if ((dp = opendir("/proc/self/fd")) == NULL) { ++ if ((dp = opendir(FD_DIR)) == NULL) { + _exit(-1); + } + +--- jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh ++++ jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh +@@ -34,7 +34,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ;; ++ SunOS | Linux | *BSD | Darwin ) ;; + # Skip locale test for Windows + Windows* | CYGWIN* ) + echo "Passed"; exit 0 ;; +--- jdk/test/java/nio/charset/spi/basic.sh ++++ jdk/test/java/nio/charset/spi/basic.sh +@@ -48,7 +48,7 @@ + + DIR=`pwd` + case `uname` in +- SunOS | Linux | Darwin ) CPS=':' ;; ++ SunOS | Linux | *BSD | Darwin ) CPS=':' ;; + Windows* ) CPS=';' ;; + CYGWIN* ) + DIR=`/usr/bin/cygpath -a -s -m $DIR` +--- jdk/test/java/nio/file/FileSystem/Basic.java ++++ jdk/test/java/nio/file/FileSystem/Basic.java +@@ -76,7 +76,7 @@ + checkSupported(fs, "posix", "unix", "owner", "acl", "user"); + if (os.equals("Linux")) + checkSupported(fs, "posix", "unix", "owner", "dos", "user"); +- if (os.contains("OS X")) ++ if (os.endsWith("BSD") || os.contains("OS X")) + checkSupported(fs, "posix", "unix", "owner"); + if (os.equals("Windows")) + checkSupported(fs, "owner", "dos", "acl", "user"); +--- jdk/test/java/nio/file/Files/CopyAndMove.java ++++ jdk/test/java/nio/file/Files/CopyAndMove.java +@@ -651,7 +651,7 @@ + + // check POSIX attributes are copied + String os = System.getProperty("os.name"); +- if ((os.equals("SunOS") || os.equals("Linux")) && ++ if ((os.equals("SunOS") || os.equals("Linux") || os.endsWith("BSD")) && + testPosixAttributes) + { + checkPosixAttributes( +@@ -1155,7 +1155,7 @@ + static void randomizeAttributes(Path file) throws IOException { + String os = System.getProperty("os.name"); + boolean isWindows = os.startsWith("Windows"); +- boolean isUnix = os.equals("SunOS") || os.equals("Linux"); ++ boolean isUnix = os.equals("SunOS") || os.equals("Linux") || os.endsWith("BSD"); + boolean isDirectory = isDirectory(file, NOFOLLOW_LINKS); + + if (isUnix) { +--- jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh ++++ jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh +@@ -33,7 +33,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + ;; + Windows* | CYGWIN* ) +--- jdk/test/java/rmi/registry/readTest/readTest.sh ++++ jdk/test/java/rmi/registry/readTest/readTest.sh +@@ -34,7 +34,7 @@ + REGARGS="" + + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + FILEURL="file:" +--- jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh ++++ jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh +@@ -58,7 +58,7 @@ + PATHSEP=":" + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh ++++ jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh +@@ -42,7 +42,7 @@ + PATHSEP=":" + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh ++++ jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh +@@ -66,7 +66,7 @@ + PATHSEP=";" + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/java/security/Security/signedfirst/Dyn.sh ++++ jdk/test/java/security/Security/signedfirst/Dyn.sh +@@ -58,7 +58,7 @@ + PATHSEP=":" + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/java/security/Security/signedfirst/Static.sh ++++ jdk/test/java/security/Security/signedfirst/Static.sh +@@ -58,7 +58,7 @@ + PATHSEP=":" + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/java/util/Currency/PropertiesTest.sh ++++ jdk/test/java/util/Currency/PropertiesTest.sh +@@ -52,7 +52,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/util/PluggableLocale/ExecTest.sh ++++ jdk/test/java/util/PluggableLocale/ExecTest.sh +@@ -62,7 +62,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/java/util/ResourceBundle/Bug6299235Test.sh ++++ jdk/test/java/util/ResourceBundle/Bug6299235Test.sh +@@ -31,7 +31,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/java/util/ServiceLoader/basic.sh ++++ jdk/test/java/util/ServiceLoader/basic.sh +@@ -43,9 +43,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Darwin ) +- SEP=':' ;; +- Linux ) ++ SunOS | Linux | *BSD | Darwin ) + SEP=':' ;; + * ) + SEP='\;' ;; +--- jdk/test/java/util/prefs/CheckUserPrefsStorage.sh ++++ jdk/test/java/util/prefs/CheckUserPrefsStorage.sh +@@ -31,7 +31,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh ++++ jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh +@@ -56,7 +56,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh ++++ jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh +@@ -89,7 +89,7 @@ + FILESEP="/" + ;; + +- Linux | Darwin ) ++ Linux | *BSD | Darwin ) + VAR="A different value for Linux" + DEFAULT_JDK=/none + #DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386 +--- jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh ++++ jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh +@@ -90,7 +90,7 @@ + FILESEP="/" + ;; + +- Linux | Darwin ) ++ Linux | *BSD | Darwin ) + VAR="A different value for Linux" + DEFAULT_JDK=/none + #DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386 +--- jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh ++++ jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh +@@ -92,7 +92,7 @@ + TMP="/tmp" + ;; + +- Darwin ) ++ *BSD | Darwin ) + VAR="A different value for MacOSX" + DEFAULT_JDK=/usr + FILESEP="/" +--- jdk/test/javax/script/CommonSetup.sh ++++ jdk/test/javax/script/CommonSetup.sh +@@ -36,7 +36,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/javax/security/auth/Subject/doAs/Test.sh ++++ jdk/test/javax/security/auth/Subject/doAs/Test.sh +@@ -43,7 +43,7 @@ + FS="/" + RM="/bin/rm -f" + ;; +- Darwin ) ++ *BSD | Darwin ) + PS=":" + FS="/" + RM="/bin/rm -f" +--- jdk/test/lib/security/java.policy/Ext_AllPolicy.sh ++++ jdk/test/lib/security/java.policy/Ext_AllPolicy.sh +@@ -53,7 +53,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java ++++ jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java +@@ -53,8 +53,13 @@ + return isOs("linux"); + } + ++ public static boolean isBSD() { ++ return isOs("bsd"); ++ } ++ + private static boolean isOs(String osname) { +- return osName.toLowerCase().startsWith(osname.toLowerCase()); ++ return (osName.toLowerCase().startsWith(osname.toLowerCase()) || ++ osName.toLowerCase().endsWith(osname.toLowerCase())); + } + + public static String getOsName() { +--- jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh ++++ jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh +@@ -42,7 +42,7 @@ + fi + + case $OS in +-SunOS | Linux | Darwin) ++SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + DFILESEP=$FILESEP +--- jdk/test/sun/net/ftp/MarkResetTest.sh ++++ jdk/test/sun/net/ftp/MarkResetTest.sh +@@ -28,7 +28,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/net/www/http/HttpClient/RetryPost.sh ++++ jdk/test/sun/net/www/http/HttpClient/RetryPost.sh +@@ -28,7 +28,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/net/www/protocol/jar/B5105410.sh ++++ jdk/test/sun/net/www/protocol/jar/B5105410.sh +@@ -31,7 +31,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/net/www/protocol/jar/jarbug/run.sh ++++ jdk/test/sun/net/www/protocol/jar/jarbug/run.sh +@@ -31,7 +31,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/nio/ch/SelProvider.java ++++ jdk/test/sun/nio/ch/SelProvider.java +@@ -39,7 +39,7 @@ + expected = "sun.nio.ch.DevPollSelectorProvider"; + } else if ("Linux".equals(osname)) { + expected = "sun.nio.ch.EPollSelectorProvider"; +- } else if (osname.contains("OS X")) { ++ } else if (osname.endsWith("BSD") || osname.contains("OS X")) { + expected = "sun.nio.ch.KQueueSelectorProvider"; + } else { + return; +--- jdk/test/sun/security/krb5/runNameEquals.sh ++++ jdk/test/sun/security/krb5/runNameEquals.sh +@@ -52,7 +52,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + NATIVE=true +--- jdk/test/sun/security/mscapi/ShortRSAKey1024.sh ++++ jdk/test/sun/security/mscapi/ShortRSAKey1024.sh +@@ -49,7 +49,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin | CYGWIN* ) ++ SunOS | Linux | *BSD | Darwin | CYGWIN* ) + FS="/" + ;; + Windows_* ) +--- jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh ++++ jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh +@@ -66,7 +66,7 @@ + CP="${FS}bin${FS}cp" + CHMOD="${FS}bin${FS}chmod" + ;; +- Darwin ) ++ *BSD | Darwin ) + FS="/" + PS=":" + CP="${FS}bin${FS}cp" +--- jdk/test/sun/security/pkcs11/Provider/Login.sh ++++ jdk/test/sun/security/pkcs11/Provider/Login.sh +@@ -67,7 +67,7 @@ + CP="${FS}bin${FS}cp" + CHMOD="${FS}bin${FS}chmod" + ;; +- Darwin ) ++ *BSD | Darwin ) + FS="/" + PS=":" + CP="${FS}bin${FS}cp" +--- jdk/test/sun/security/provider/KeyStore/DKSTest.sh ++++ jdk/test/sun/security/provider/KeyStore/DKSTest.sh +@@ -58,7 +58,7 @@ + PS=":" + FS="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh ++++ jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh +@@ -52,7 +52,7 @@ + PATHSEP=":" + FILESEP="/" + ;; +- Linux ) ++ Linux | *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh ++++ jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh +@@ -59,7 +59,7 @@ + PS=":" + FS="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh ++++ jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh +@@ -33,7 +33,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh ++++ jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh +@@ -46,7 +46,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + FILESEP="/" + PATHSEP=":" + ;; +--- jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh ++++ jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh +@@ -32,7 +32,7 @@ + HOSTNAME=`uname -n` + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh ++++ jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh +@@ -32,7 +32,7 @@ + HOSTNAME=`uname -n` + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PS=":" + FS="/" + ;; +--- jdk/test/sun/security/tools/jarsigner/AlgOptions.sh ++++ jdk/test/sun/security/tools/jarsigner/AlgOptions.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/jarsigner/PercentSign.sh ++++ jdk/test/sun/security/tools/jarsigner/PercentSign.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/jarsigner/diffend.sh ++++ jdk/test/sun/security/tools/jarsigner/diffend.sh +@@ -41,7 +41,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/jarsigner/oldsig.sh ++++ jdk/test/sun/security/tools/jarsigner/oldsig.sh +@@ -42,7 +42,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/keytool/AltProviderPath.sh ++++ jdk/test/sun/security/tools/keytool/AltProviderPath.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh ++++ jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh +@@ -55,7 +55,7 @@ + PATHSEP=":" + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/sun/security/tools/keytool/NoExtNPE.sh ++++ jdk/test/sun/security/tools/keytool/NoExtNPE.sh +@@ -48,7 +48,7 @@ + Linux ) + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + FILESEP="/" + ;; + CYGWIN* ) +--- jdk/test/sun/security/tools/keytool/SecretKeyKS.sh ++++ jdk/test/sun/security/tools/keytool/SecretKeyKS.sh +@@ -45,7 +45,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/keytool/StandardAlgName.sh ++++ jdk/test/sun/security/tools/keytool/StandardAlgName.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh ++++ jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh +@@ -54,7 +54,7 @@ + PATHSEP=":" + FILESEP="/" + ;; +- Darwin ) ++ *BSD | Darwin ) + PATHSEP=":" + FILESEP="/" + ;; +--- jdk/test/sun/security/tools/keytool/i18n.sh ++++ jdk/test/sun/security/tools/keytool/i18n.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux ) ++ SunOS | Linux | *BSD ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/keytool/printssl.sh ++++ jdk/test/sun/security/tools/keytool/printssl.sh +@@ -40,7 +40,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + FS="/" + ;; + CYGWIN* ) +--- jdk/test/sun/security/tools/keytool/resource.sh ++++ jdk/test/sun/security/tools/keytool/resource.sh +@@ -43,7 +43,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + FS="/" + ;; +--- jdk/test/sun/security/tools/keytool/standard.sh ++++ jdk/test/sun/security/tools/keytool/standard.sh +@@ -45,7 +45,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin | CYGWIN* ) ++ SunOS | Linux | *BSD | Darwin | CYGWIN* ) + FS="/" + ;; + Windows_* ) +--- jdk/test/sun/security/tools/policytool/Alias.sh ++++ jdk/test/sun/security/tools/policytool/Alias.sh +@@ -47,7 +47,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/policytool/ChangeUI.sh ++++ jdk/test/sun/security/tools/policytool/ChangeUI.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/policytool/OpenPolicy.sh ++++ jdk/test/sun/security/tools/policytool/OpenPolicy.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/policytool/SaveAs.sh ++++ jdk/test/sun/security/tools/policytool/SaveAs.sh +@@ -47,7 +47,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/policytool/UpdatePermissions.sh ++++ jdk/test/sun/security/tools/policytool/UpdatePermissions.sh +@@ -47,7 +47,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/policytool/UsePolicy.sh ++++ jdk/test/sun/security/tools/policytool/UsePolicy.sh +@@ -46,7 +46,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/security/tools/policytool/i18n.sh ++++ jdk/test/sun/security/tools/policytool/i18n.sh +@@ -49,7 +49,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + NULL=/dev/null + PS=":" + FS="/" +--- jdk/test/sun/tools/common/CommonSetup.sh ++++ jdk/test/sun/tools/common/CommonSetup.sh +@@ -47,6 +47,7 @@ + # isLinux - true if OS is Linux + # isSolaris - true if OS is Solaris + # isWindows - true if OS is Windows ++# isBSD - true if OS is BSD + # isMacos - true if OS is Macos X + + +@@ -82,6 +83,7 @@ + isSolaris=false + isUnknownOS=false + isWindows=false ++isBSD=false + isMacos=false + + OS=`uname -s` +@@ -105,6 +107,10 @@ + OS="Linux" + isLinux=true + ;; ++ *BSD ) ++ OS="BSD" ++ isBSD=true ++ ;; + Darwin ) + OS="Mac OS X" + isMacos=true +--- jdk/test/sun/tools/jconsole/ResourceCheckTest.sh ++++ jdk/test/sun/tools/jconsole/ResourceCheckTest.sh +@@ -54,7 +54,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin) ++ SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + ;; + +--- jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh ++++ jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh +@@ -56,7 +56,7 @@ + + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin ) ++ SunOS | Linux | *BSD | Darwin ) + PATHSEP=":" + ;; + +--- jdk/test/tools/launcher/ExecutionEnvironment.java ++++ jdk/test/tools/launcher/ExecutionEnvironment.java +@@ -180,7 +180,7 @@ + + Map env = new HashMap<>(); + +- if (TestHelper.isLinux || TestHelper.isMacOSX) { ++ if (TestHelper.isLinux || TestHelper.isBSD || TestHelper.isMacOSX) { + for (String x : LD_PATH_STRINGS) { + String pairs[] = x.split("="); + env.put(pairs[0], pairs[1]); +--- jdk/test/tools/launcher/RunpathTest.java ++++ jdk/test/tools/launcher/RunpathTest.java +@@ -69,7 +69,7 @@ + } + + public static void main(String... args) throws Exception { +- if (isSolaris || isLinux) { ++ if (isSolaris || isLinux || isBSD) { + RunpathTest rp = new RunpathTest(); + rp.testRpath(); + } +--- jdk/test/tools/launcher/Test7029048.java ++++ jdk/test/tools/launcher/Test7029048.java +@@ -223,7 +223,7 @@ + } else if (isSolaris && passes < 9) { + throw new Exception("Test7029048: FAIL: " + + "all tests did not run, expected " + 9 + " got " + passes); +- } else if (isLinux && passes < 6) { ++ } else if ((isLinux || isBSD) && passes < 6) { + throw new Exception("Test7029048: FAIL: " + + "all tests did not run, expected " + 6 + " got " + passes); + } else { +--- jdk/test/tools/launcher/TestHelper.java ++++ jdk/test/tools/launcher/TestHelper.java +@@ -92,6 +92,8 @@ + System.getProperty("os.name", "unknown").startsWith("SunOS"); + static final boolean isLinux = + System.getProperty("os.name", "unknown").startsWith("Linux"); ++ static final boolean isBSD = ++ System.getProperty("os.name", "unknown").endsWith("BSD"); + static final String LIBJVM = isWindows + ? "jvm.dll" + : "libjvm" + (isMacOSX ? ".dylib" : ".so"); +--- langtools/test/Makefile ++++ langtools/test/Makefile +@@ -36,6 +36,14 @@ + ARCH=i586 + endif + endif ++ifeq ($(OSNAME), FreeBSD) ++ PLATFORM = bsd ++ JT_PLATFORM = linux ++ ARCH = $(shell uname -p) ++ ifeq ($(ARCH), i386) ++ ARCH=i586 ++ endif ++endif + ifeq ($(OSNAME), Darwin) + PLATFORM = bsd + JT_PLATFORM = linux +--- langtools/test/tools/javah/ReadOldClass.sh ++++ langtools/test/tools/javah/ReadOldClass.sh +@@ -43,7 +43,7 @@ + # set platform-dependent variables + OS=`uname -s` + case "$OS" in +- SunOS | Linux | Darwin | CYGWIN* ) ++ SunOS | Linux | *BSD | Darwin | CYGWIN* ) + PS=":" + FS="/" + ;; diff --git a/java/openjdk8/files/patch-configure b/java/openjdk8/files/patch-configure new file mode 100644 index 000000000000..62ed12627b1b --- /dev/null +++ b/java/openjdk8/files/patch-configure @@ -0,0 +1,10 @@ +--- configure ++++ configure +@@ -26,4 +26,6 @@ + # make sure that is called using bash. + + this_script_dir=`dirname $0` +-bash $this_script_dir/common/autoconf/configure "$@" ++export CONFIG_SHELL=%%LOCALBASE%%/bin/bash ++export MAKE=%%LOCALBASE%%/bin/gmake ++%%LOCALBASE%%/bin/bash $this_script_dir/common/autoconf/configure "$@" diff --git a/java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp b/java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp new file mode 100644 index 000000000000..4bd1934069cb --- /dev/null +++ b/java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp @@ -0,0 +1,11 @@ +--- hotspot/src/os/bsd/vm/os_bsd.cpp ++++ hotspot/src/os/bsd/vm/os_bsd.cpp +@@ -441,7 +441,7 @@ + ld_library_path = (char *) malloc(sizeof(REG_DIR) + sizeof("/lib/") + + strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH)); + #ifdef __FreeBSD__ +- sprintf(ld_library_path, DEFAULT_LIBPATH ":/usr/local/lib"); ++ sprintf(ld_library_path, DEFAULT_LIBPATH ":%%LOCALBASE%%/lib"); + #else + sprintf(ld_library_path, REG_DIR "/lib/%s:" DEFAULT_LIBPATH, cpu_arch); + #endif diff --git a/java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk b/java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk new file mode 100644 index 000000000000..08e8d283b575 --- /dev/null +++ b/java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk @@ -0,0 +1,16 @@ +--- jdk/make/lib/CoreLibraries.gmk ++++ jdk/make/lib/CoreLibraries.gmk +@@ -513,11 +513,12 @@ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/npt \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ ++ CFLAGS_bsd := %%ICONV_CPPFLAGS%%, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnpt/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_macosx := -liconv, \ +- LDFLAGS_bsd := -liconv, \ ++ LDFLAGS_bsd := %%ICONV_LDFLAGS%%, \ + LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ diff --git a/java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk b/java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk new file mode 100644 index 000000000000..8fd6e4998dbf --- /dev/null +++ b/java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk @@ -0,0 +1,19 @@ +--- jdk/make/lib/ServiceabilityLibraries.gmk ++++ jdk/make/lib/ServiceabilityLibraries.gmk +@@ -244,6 +244,7 @@ + CFLAGS := $(LIBINSTRUMENT_CFLAGS), \ + CFLAGS_debug := -DJPLIS_LOGGING, \ + CFLAGS_release := -DNO_JPLIS_LOGGING, \ ++ CFLAGS_bsd := %%ICONV_CPPFLAGS%%, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libinstrument/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ +@@ -255,7 +256,7 @@ + -framework Cocoa -framework Security -framework ApplicationServices, \ + LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \ + LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \ +- LDFLAGS_SUFFIX_bsd := -liconv $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli, \ ++ LDFLAGS_SUFFIX_bsd := %%ICONV_LDFLAGS%% $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli, \ + LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ diff --git a/java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk b/java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk new file mode 100644 index 000000000000..a83b946603e8 --- /dev/null +++ b/java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk @@ -0,0 +1,16 @@ +--- jdk/make/lib/SoundLibraries.gmk ++++ jdk/make/lib/SoundLibraries.gmk +@@ -196,11 +196,11 @@ + -DUSE_PORTS=TRUE, \ + CFLAGS_linux := -DUSE_PLATFORM_MIDI_OUT=TRUE \ + -DUSE_PLATFORM_MIDI_IN=TRUE, \ +- CFLAGS_bsd := -I/usr/local/include, \ ++ CFLAGS_bsd := -I%%LOCALBASE%%/include, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjsoundalsa/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +- LDFLAGS_bsd := -L/usr/local/lib, \ ++ LDFLAGS_bsd := -L%%LOCALBASE%%/lib, \ + LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundalsa, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) diff --git a/java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java b/java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java new file mode 100644 index 000000000000..a846cb8af99e --- /dev/null +++ b/java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java @@ -0,0 +1,15 @@ +--- jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java ++++ jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java +@@ -477,10 +477,8 @@ + String[] dirs = new String[] { + userHome + sep + ".themes", + System.getProperty("swing.metacitythemedir"), +- "/usr/X11R6/share/themes", +- "/usr/X11R6/share/gnome/themes", +- "/usr/local/share/themes", +- "/usr/local/share/gnome/themes", ++ "%%LOCALBASE%%/share/themes", ++ "%%LOCALBASE%%/share/gnome/themes", + "/usr/share/themes", + "/usr/gnome/share/themes", // Debian/Redhat/Solaris + "/opt/gnome2/share/themes" // SuSE diff --git a/java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h b/java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h new file mode 100644 index 000000000000..123b860cb9aa --- /dev/null +++ b/java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h @@ -0,0 +1,12 @@ +--- jdk/src/solaris/bin/java_md_solinux.h ++++ jdk/src/solaris/bin/java_md_solinux.h +@@ -48,6 +48,9 @@ + #ifdef __linux__ + static const char *system_dir = "/usr/java"; + static const char *user_dir = "/java"; ++#elif defined(_ALLBSD_SOURCE) ++static const char *system_dir = "%%LOCALBASE%%/openjdk8"; ++static const char *user_dir = "/java"; + #else /* Solaris */ + static const char *system_dir = "/usr/jdk"; + static const char *user_dir = "/jdk"; diff --git a/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java new file mode 100644 index 000000000000..951b54497623 --- /dev/null +++ b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java @@ -0,0 +1,30 @@ +--- jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java ++++ jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java +@@ -26,6 +26,7 @@ + package sun.nio.fs; + + import java.nio.file.*; ++import java.nio.file.spi.FileSystemProvider; + import java.nio.file.spi.FileTypeDetector; + import java.io.IOException; + import java.security.AccessController; +@@ -40,6 +41,10 @@ + super(); + } + ++ public BsdFileSystemProvider(FileSystemProvider f) { ++ super(); ++ } ++ + @Override + BsdFileSystem newFileSystem(String dir) { + return new BsdFileSystem(this, dir); +@@ -54,7 +59,7 @@ + FileTypeDetector getFileTypeDetector() { + Path userMimeTypes = Paths.get(AccessController.doPrivileged( + new GetPropertyAction("user.home")), ".mime.types"); +- Path etcMimeTypes = Paths.get("/etc/mime.types"); ++ Path etcMimeTypes = Paths.get("%%LOCALBASE%%/etc/mime.types"); + + return chain(new GnomeFileTypeDetector(), + new MimeTypesFileTypeDetector(userMimeTypes), diff --git a/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java new file mode 100644 index 000000000000..ddb2a3d1fa0f --- /dev/null +++ b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java @@ -0,0 +1,38 @@ +--- jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java ++++ jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java +@@ -27,6 +27,8 @@ + + import java.nio.file.spi.FileSystemProvider; + import java.security.AccessController; ++import java.util.Set; ++import java.util.HashSet; + import sun.security.action.GetPropertyAction; + + /** +@@ -36,6 +38,15 @@ + public class DefaultFileSystemProvider { + private DefaultFileSystemProvider() { } + ++ private static final Set validFileSystemProviders ++ = new HashSet(); ++ static { ++ validFileSystemProviders.add("sun.nio.fs.SolarisFileSystemProvider"); ++ validFileSystemProviders.add("sun.nio.fs.LinuxFileSystemProvider"); ++ validFileSystemProviders.add("sun.nio.fs.BsdFileSystemProvider"); ++ validFileSystemProviders.add("sun.nio.fs.MacOSXFileSystemProvider"); ++ } ++ + @SuppressWarnings("unchecked") + private static FileSystemProvider createProvider(String cn) { + Class c; +@@ -57,6 +68,10 @@ + public static FileSystemProvider create() { + String osname = AccessController + .doPrivileged(new GetPropertyAction("os.name")); ++ String fileSystemProvider = System ++ .getProperty("java.nio.file.spi.DefaultFileSystemProvider"); ++ if (validFileSystemProviders.contains(fileSystemProvider)) ++ return createProvider(fileSystemProvider); + if (osname.equals("SunOS")) + return createProvider("sun.nio.fs.SolarisFileSystemProvider"); + if (osname.equals("Linux")) diff --git a/java/openjdk8/pkg-descr b/java/openjdk8/pkg-descr new file mode 100644 index 000000000000..e9c6f981cf97 --- /dev/null +++ b/java/openjdk8/pkg-descr @@ -0,0 +1,3 @@ +An open-source implementation of the Java Platform, Standard Edition, + +WWW: http://openjdk.java.net/ diff --git a/java/openjdk8/pkg-message b/java/openjdk8/pkg-message new file mode 100644 index 000000000000..a651593720d1 --- /dev/null +++ b/java/openjdk8/pkg-message @@ -0,0 +1,16 @@ +====================================================================== + +This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and +procfs(5) mounted on /proc. + +If you have not done it yet, please do the following: + + mount -t fdescfs fdesc /dev/fd + mount -t procfs proc /proc + +To make it permanent, you need the following lines in /etc/fstab: + + fdesc /dev/fd fdescfs rw 0 0 + proc /proc procfs rw 0 0 + +======================================================================