From lichray@gmail.com  Sun Apr  8 00:48:24 2012
Return-Path: <lichray@gmail.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 95DBA106566C
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  8 Apr 2012 00:48:24 +0000 (UTC)
	(envelope-from lichray@gmail.com)
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182])
	by mx1.freebsd.org (Postfix) with ESMTP id 5A3518FC0A
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  8 Apr 2012 00:48:24 +0000 (UTC)
Received: by iahk25 with SMTP id k25so6100168iah.13
        for <FreeBSD-gnats-submit@freebsd.org>; Sat, 07 Apr 2012 17:48:24 -0700 (PDT)
Received: by 10.50.149.131 with SMTP id ua3mr1892381igb.41.1333846104052;
        Sat, 07 Apr 2012 17:48:24 -0700 (PDT)
Received: from elitebook.hp (c-98-228-191-105.hsd1.il.comcast.net. [98.228.191.105])
        by mx.google.com with ESMTPS id p5sm9473269igl.2.2012.04.07.17.48.20
        (version=TLSv1/SSLv3 cipher=OTHER);
        Sat, 07 Apr 2012 17:48:23 -0700 (PDT)
Received: by elitebook.hp (sSMTP sendmail emulation); Sat, 07 Apr 2012 19:48:15 -0500
Message-Id: <4f80e057.a52a320a.5a56.ffffa14e@mx.google.com>
Date: Sat, 07 Apr 2012 19:48:15 -0500
From: Zhihao Yuan <lichray@gmail.com>
Reply-To: Zhihao Yuan <lichray@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc: scheidell@FreeBSD.org
Subject: [UPDATE] openjpeg to 1.5.0
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         166744
>Category:       ports
>Synopsis:       [UPDATE] graphics/openjpeg to 1.5.0
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    dinoex
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Apr 08 00:50:10 UTC 2012
>Closed-Date:    Sun Jun 03 14:49:41 CEST 2012
>Last-Modified:  Sun Jun  3 12:50:08 UTC 2012
>Originator:     Zhihao Yuan
>Release:        FreeBSD 8.3-PRERELEASE amd64
>Organization:
Northern Illinois University
>Environment:
System: FreeBSD elitebook.hp 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #5 r233751: Sat Mar 31 18:29:04 CDT 2012 lichray@elitebook.hp:/usr/obj/home/lichray/devel/freebsd-8/sys/HOUKAGO amd64


	
>Description:
	
	openjpeg is upgraded to 1.5.0. This version is based on 1.4.x, which is a bugfix version of the 1.3.x in the ports tree.
	https://code.google.com/p/openjpeg/wiki/WhatsNew?tm=6
	
	The library itself is backward compatible (tested with mupdf, poppler, mtpaint, etc.), but in order to promote the coming openjpeg2, its SO version is decreased from 2 to 1. So we need to bump revision of all of the ports (and change LIB_DEPENDS from openjpeg.2 to openjpeg.1) depends on openjpeg.

	In the patch, I changed the maintainer to myself, since the build system is moved to CMake, and all of the old patches are deprecated. If the original maintainer does not want to pass the maintainership, please change it back before committing.
>How-To-Repeat:
	
>Fix:

	

--- openjpeg-1.5.0.patch begins here ---
diff -ruN --exclude=CVS ../openjpeg.orig/Makefile ./Makefile
--- ../openjpeg.orig/Makefile	2011-08-07 04:33:00.000000000 -0500
+++ ./Makefile	2012-04-07 16:32:22.281070330 -0500
@@ -6,49 +6,32 @@
 #
 
 PORTNAME=	openjpeg
-PORTVERSION=	1.3
-PORTREVISION=	2
+PORTVERSION=	1.5.0
 CATEGORIES=	graphics
-MASTER_SITES=	http://www.openjpeg.org/ \
-		http://openjpeg.googlecode.com/files/
-DISTNAME=	${PORTNAME}_v${PORTVERSION:S/./_/g}
+MASTER_SITES=	${MASTER_SITE_GOOGLE_CODE}
 
-MAINTAINER=	dinoex@FreeBSD.org
+MAINTAINER=	lichray@gmail.com
 COMMENT=	An open-source JPEG 2000 codec
 
-LIB_DEPENDS=	tiff.4:${PORTSDIR}/graphics/tiff
-
 LICENSE=	BSD
-LICENSE_FILE=	${WRKSRC}/jp3d/LICENSE.txt
-MAKE_JOBS_UNSAFE=	yes
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	png.6:${PORTSDIR}/graphics/png \
+		tiff.4:${PORTSDIR}/graphics/tiff
+
+MAN1=		image_to_j2k.1 j2k_dump.1 j2k_to_image.1
+MAN3=		libopenjpeg.3
 
-USE_GMAKE=	yes
+USE_CMAKE=	yes
 USE_LDCONFIG=	yes
-WRKSRC=		${WRKDIR}/OpenJPEG_v1_3
-JPWL_BINS=	JPWL_image_to_j2k JPWL_j2k_to_image
-M2J_BINS=	extract_j2k_from_mj2 frames_to_mj2 mj2_to_frames wrap_j2k_in_mj2
-
-PLIST_FILES=	include/openjpeg.h \
-		lib/libopenjpeg.a \
-		lib/libopenjpeg.so.${SHLIB_VER} \
-		lib/libopenjpeg.so \
-		${JPWL_BINS:S|^|bin/|} \
-		${M2J_BINS:S|^|bin/|}
-
-SHLIB_VER=	2
-
-post-patch:	.SILENT
-		${FIND} ${WRKSRC} -type f -name Makefile -exec ${REINPLACE_CMD} 's|gcc|$$(CC)|g' {} +
-
-do-install:
-		${INSTALL_DATA} ${WRKSRC}/libopenjpeg/openjpeg.h ${PREFIX}/include/
-		${INSTALL_DATA} ${WRKSRC}/libopenjpeg.a ${PREFIX}/lib/
-		${INSTALL_DATA} ${WRKSRC}/libopenjpeg-2.1.3.0.so \
-			${PREFIX}/lib/libopenjpeg.so.${SHLIB_VER}
-		cd ${PREFIX}/lib && \
-			${LN} -sf libopenjpeg.so.${SHLIB_VER} libopenjpeg.so
-.for file in ${M2J_BINS:S|^|mj2/|} ${JPWL_BINS:S|^|jpwl/|}
-		${INSTALL_PROGRAM} ${WRKSRC}/${file} ${PREFIX}/bin/
-.endfor
+CMAKE_ARGS=	-DBUILD_MJ2=ON
+
+.include <bsd.port.pre.mk>
+
+.if exists(${LOCALBASE}/include/lcms.h) && !exists(${LOCALBASE}/include/lcms2.h)
+LIB_DEPENDS+=	lcms:${PORTSDIR}/graphics/lcms
+.else
+LIB_DEPENDS+=	lcms2:${PORTSDIR}/graphics/lcms2
+.endif
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff -ruN --exclude=CVS ../openjpeg.orig/distinfo ./distinfo
--- ../openjpeg.orig/distinfo	2011-07-03 09:11:44.000000000 -0500
+++ ./distinfo	2012-04-07 15:02:16.280015459 -0500
@@ -1,2 +1,2 @@
-SHA256 (openjpeg_v1_3.tar.gz) = 3bca2e1e040f9dcbbcb1e0627f17a76eeb95e153bf663d082070c044a21202bd
-SIZE (openjpeg_v1_3.tar.gz) = 1004678
+SHA256 (openjpeg-1.5.0.tar.gz) = c9908fab44432a2ed2550c457cb7e736da6d7c326f1203d23d1082d992364ace
+SIZE (openjpeg-1.5.0.tar.gz) = 2117572
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-CMakeLists.txt ./files/patch-CMakeLists.txt
--- ../openjpeg.orig/files/patch-CMakeLists.txt	1969-12-31 18:00:00.000000000 -0600
+++ ./files/patch-CMakeLists.txt	2012-04-07 15:23:21.837341692 -0500
@@ -0,0 +1,35 @@
+--- CMakeLists.txt.orig	2012-02-07 04:49:55.000000000 -0600
++++ CMakeLists.txt	2012-04-07 15:23:19.749296333 -0500
+@@ -99,7 +99,7 @@ IF(NOT OPENJPEG_INSTALL_INCLUDE_DIR)
+ ENDIF(NOT OPENJPEG_INSTALL_INCLUDE_DIR)
+ 
+ IF(NOT OPENJPEG_INSTALL_MAN_DIR)
+-  SET(OPENJPEG_INSTALL_MAN_DIR "share/man/")
++  SET(OPENJPEG_INSTALL_MAN_DIR "man/")
+ ENDIF(NOT OPENJPEG_INSTALL_MAN_DIR)
+ 
+ IF(NOT OPENJPEG_INSTALL_DOC_DIR)
+@@ -146,10 +146,7 @@ IF(UNIX)
+   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libopenjpeg1.pc.cmake
+     ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc @ONLY)
+   INSTALL( FILES  ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc DESTINATION
+-    ${OPENJPEG_INSTALL_SHARE_DIR}/pkgconfig )
+-  INSTALL( CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink
+-  \"libopenjpeg1.pc\"
+-  \"\$ENV{DESTDIR}${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig/libopenjpeg.pc\")")
++    libdata/pkgconfig )
+ ENDIF(UNIX)
+ 
+ #-----------------------------------------------------------------------------
+@@ -252,11 +249,4 @@ INSTALL( FILES ${OPENJPEG_BINARY_DIR}/Op
+   DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}
+ )
+ 
+-#-----------------------------------------------------------------------------
+-# install CHANGES and LICENSE
+-INSTALL(
+-  FILES       CHANGES 
+-              LICENSE
+-  DESTINATION ${OPENJPEG_INSTALL_DOC_DIR})
+-
+ INCLUDE (CMake/OpenJPEGCPack.cmake)
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-Makefile ./files/patch-Makefile
--- ../openjpeg.orig/files/patch-Makefile	2009-03-21 07:04:30.000000000 -0500
+++ ./files/patch-Makefile	1969-12-31 18:00:00.000000000 -0600
@@ -1,38 +0,0 @@
---- Makefile.orig	2007-12-21 11:39:41.000000000 +0100
-+++ Makefile	2009-03-21 11:51:26.000000000 +0100
-@@ -8,17 +8,16 @@
- INCLUDE = -Ilibopenjpeg
- 
- # General configuration variables:
--CC = gcc
--AR = ar
- 
--PREFIX = /usr
- INSTALL_LIBDIR = $(PREFIX)/lib
- INSTALL_INCLUDE = $(PREFIX)/include
- 
-+SUBDIRS=	jpwl mj2
-+
- # Converts cr/lf to just lf
- DOS2UNIX = dos2unix
- 
--COMPILERFLAGS = -Wall -O3 -ffast-math -std=c99 -fPIC
-+COMPILERFLAGS := $(CFLAGS) -Wall -std=c99 -fPIC
- LIBRARIES = -lstdc++
- 
- MODULES = $(SRCS:.c=.o)
-@@ -33,7 +32,13 @@
- 
- default: all
- 
--all: OpenJPEG
-+all: OpenJPEG subdirs
-+
-+subdirs:
-+	set -e; \
-+	for dir in $(SUBDIRS); do \
-+		$(MAKE) -C $$dir; \
-+	done
- 
- dist: OpenJPEG
- 	install -d dist
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-jpwl-Makefile ./files/patch-jpwl-Makefile
--- ../openjpeg.orig/files/patch-jpwl-Makefile	2009-03-21 07:04:30.000000000 -0500
+++ ./files/patch-jpwl-Makefile	1969-12-31 18:00:00.000000000 -0600
@@ -1,35 +0,0 @@
---- jpwl/Makefile.orig	2007-11-05 14:05:07.000000000 +0100
-+++ jpwl/Makefile	2009-03-21 11:54:55.000000000 +0100
-@@ -9,10 +9,7 @@
- INCLUDE = -Ilibopenjpeg_JPWL
- 
- # General configuration variables:
--CC = gcc
--AR = ar
- 
--PREFIX = /usr
- INSTALL_LIBDIR = $(PREFIX)/lib
- INSTALL_INCLUDE = $(PREFIX)/include
- 
-@@ -23,7 +20,7 @@
- LIBRARIES = -lstdc++
- 
- MODULES = $(SRCS:.c=.o)
--CFLAGS = $(COMPILERFLAGS) $(INCLUDE) -DUSE_JPWL
-+CFLAGS += $(COMPILERFLAGS) $(INCLUDE) -DUSE_JPWL
- 
- TARGET  = openjpeg_JPWL
- STATICLIB = lib$(TARGET).a
-@@ -60,10 +57,10 @@
- 	$(CC) -s -shared -Wl,-soname,$(LIBNAME) -o $@ $(MODULES) $(LIBRARIES)
- 
- JPWL_j2k_to_image: ../codec/j2k_to_image.c
--	gcc $(CFLAGS) ../codec/convert.c ../codec/j2k_to_image.c -o JPWL_j2k_to_image -I ../libopenjpeg/ -L . -lopenjpeg_JPWL -lm -ltiff
-+	gcc $(CFLAGS) ../codec/convert.c ../codec/j2k_to_image.c ../codec/index.c -o JPWL_j2k_to_image -I ../libopenjpeg/ -L . -L$(LOCALBASE)/lib -lopenjpeg_JPWL -lm -ltiff
- 
- JPWL_image_to_j2k: ../codec/image_to_j2k.c
--	gcc $(CFLAGS) ../codec/convert.c ../codec/image_to_j2k.c -o JPWL_image_to_j2k -I ../libopenjpeg/ -L . -lopenjpeg_JPWL -lm -ltiff
-+	gcc $(CFLAGS) ../codec/convert.c ../codec/image_to_j2k.c ../codec/index.c -o JPWL_image_to_j2k -I ../libopenjpeg/ -L . -L$(LOCALBASE)/lib -lopenjpeg_JPWL -lm -ltiff
- 
- install: OpenJPEG
- 	install -d '$(DESTDIR)$(INSTALL_LIBDIR)' '$(DESTDIR)$(INSTALL_INCLUDE)'
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-jpwl.c ./files/patch-jpwl.c
--- ../openjpeg.orig/files/patch-jpwl.c	2009-03-21 07:04:30.000000000 -0500
+++ ./files/patch-jpwl.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,149 +0,0 @@
---- jpwl/jpwl.c.orig	2007-11-29 15:38:26.000000000 +0100
-+++ jpwl/jpwl.c	2009-03-21 12:36:53.000000000 +0100
-@@ -122,19 +122,19 @@
- 		switch (jwmarker[mm].id) {
- 
- 		case J2K_MS_EPB:
--			free(jwmarker[mm].epbmark);
-+			opj_aligned_free(jwmarker[mm].u.epbmark);
- 			break;
- 
- 		case J2K_MS_EPC:
--			free(jwmarker[mm].epcmark);
-+			opj_aligned_free(jwmarker[mm].u.epcmark);
- 			break;
- 
- 		case J2K_MS_ESD:
--			free(jwmarker[mm].esdmark);
-+			opj_aligned_free(jwmarker[mm].u.esdmark);
- 			break;
- 
- 		case J2K_MS_RED:
--			free(jwmarker[mm].redmark);
-+			opj_aligned_free(jwmarker[mm].u.redmark);
- 			break;
- 
- 		default:
-@@ -213,7 +213,7 @@
- 		/* Add this marker to the 'insertanda' list */
- 		if (epc_mark) {
- 			jwmarker[jwmarker_num].id = J2K_MS_EPC; /* its type */
--			jwmarker[jwmarker_num].epcmark = epc_mark; /* the EPC */
-+			jwmarker[jwmarker_num].u.epcmark = epc_mark; /* the EPC */
- 			jwmarker[jwmarker_num].pos = soc_pos + socsiz_len; /* after SIZ */
- 			jwmarker[jwmarker_num].dpos = (double) jwmarker[jwmarker_num].pos + 0.1; /* not so first */
- 			jwmarker[jwmarker_num].len = epc_mark->Lepc; /* its length */
-@@ -258,7 +258,7 @@
- 			/* Add this marker to the 'insertanda' list */
- 			if (jwmarker_num < JPWL_MAX_NO_MARKERS) {
- 				jwmarker[jwmarker_num].id = J2K_MS_ESD; /* its type */
--				jwmarker[jwmarker_num].esdmark = esd_mark; /* the EPB */
-+				jwmarker[jwmarker_num].u.esdmark = esd_mark; /* the EPB */
- 				jwmarker[jwmarker_num].pos = soc_pos + socsiz_len; /* we choose to place it after SIZ */
- 				jwmarker[jwmarker_num].dpos = (double) jwmarker[jwmarker_num].pos + 0.2; /* not first at all! */
- 				jwmarker[jwmarker_num].len = esd_mark->Lesd; /* its length */
-@@ -352,7 +352,7 @@
- 					/* Add this marker to the 'insertanda' list */
- 					if (jwmarker_num < JPWL_MAX_NO_MARKERS) {
- 						jwmarker[jwmarker_num].id = J2K_MS_ESD; /* its type */
--						jwmarker[jwmarker_num].esdmark = esd_mark; /* the EPB */
-+						jwmarker[jwmarker_num].u.esdmark = esd_mark; /* the EPB */
- 						/****** jwmarker[jwmarker_num].pos = j2k->cstr_info->tile[tileno].start_pos + sot_len + 2; */ /* after SOT */
- 						jwmarker[jwmarker_num].pos = j2k->cstr_info->tile[tileno].tp[tpno].tp_start_pos + sot_len + 2; /* after SOT */
- 						jwmarker[jwmarker_num].dpos = (double) jwmarker[jwmarker_num].pos + 0.2; /* not first at all! */
-@@ -430,7 +430,7 @@
- 			/* Add this marker to the 'insertanda' list */
- 			if (jwmarker_num < JPWL_MAX_NO_MARKERS) {
- 				jwmarker[jwmarker_num].id = J2K_MS_EPB; /* its type */
--				jwmarker[jwmarker_num].epbmark = epb_mark; /* the EPB */
-+				jwmarker[jwmarker_num].u.epbmark = epb_mark; /* the EPB */
- 				jwmarker[jwmarker_num].pos = soc_pos + socsiz_len; /* after SIZ */
- 				jwmarker[jwmarker_num].dpos = (double) jwmarker[jwmarker_num].pos; /* first first first! */
- 				jwmarker[jwmarker_num].len = epb_mark->Lepb; /* its length */
-@@ -528,7 +528,7 @@
- 					/* Add this marker to the 'insertanda' list */
- 					if (jwmarker_num < JPWL_MAX_NO_MARKERS) {
- 						jwmarker[jwmarker_num].id = J2K_MS_EPB; /* its type */
--						jwmarker[jwmarker_num].epbmark = epb_mark; /* the EPB */
-+						jwmarker[jwmarker_num].u.epbmark = epb_mark; /* the EPB */
- 						/****** jwmarker[jwmarker_num].pos = j2k->cstr_info->tile[tileno].start_pos + sot_len + 2; */ /* after SOT */
- 						jwmarker[jwmarker_num].pos = j2k->cstr_info->tile[tileno].tp[tpno].tp_start_pos + sot_len + 2; /* after SOT */
- 						jwmarker[jwmarker_num].dpos = (double) jwmarker[jwmarker_num].pos; /* first first first! */
-@@ -758,15 +758,15 @@
- 		switch (jwmarker[mm].id) {
- 
- 		case J2K_MS_EPB:
--			jpwl_epb_write(j2k, jwmarker[mm].epbmark, jpwl_buf);
-+			jpwl_epb_write(j2k, jwmarker[mm].u.epbmark, jpwl_buf);
- 			break;
- 
- 		case J2K_MS_EPC:
--			jpwl_epc_write(j2k, jwmarker[mm].epcmark, jpwl_buf);
-+			jpwl_epc_write(j2k, jwmarker[mm].u.epcmark, jpwl_buf);
- 			break;
- 
- 		case J2K_MS_ESD:
--			jpwl_esd_write(j2k, jwmarker[mm].esdmark, jpwl_buf);
-+			jpwl_esd_write(j2k, jwmarker[mm].u.esdmark, jpwl_buf);
- 			break;
- 
- 		case J2K_MS_RED:
-@@ -812,11 +812,11 @@
- 			unsigned short int mycrc = 0x0000;
- 
- 			/* fix and fill the DL field */
--			jwmarker[mm].epcmark->DL = new_size;
--			orig_buf[epc_pos + 6] = (unsigned char) (jwmarker[mm].epcmark->DL >> 24);
--			orig_buf[epc_pos + 7] = (unsigned char) (jwmarker[mm].epcmark->DL >> 16);
--			orig_buf[epc_pos + 8] = (unsigned char) (jwmarker[mm].epcmark->DL >> 8);
--			orig_buf[epc_pos + 9] = (unsigned char) (jwmarker[mm].epcmark->DL >> 0);
-+			jwmarker[mm].u.epcmark->DL = new_size;
-+			orig_buf[epc_pos + 6] = (unsigned char) (jwmarker[mm].u.epcmark->DL >> 24);
-+			orig_buf[epc_pos + 7] = (unsigned char) (jwmarker[mm].u.epcmark->DL >> 16);
-+			orig_buf[epc_pos + 8] = (unsigned char) (jwmarker[mm].u.epcmark->DL >> 8);
-+			orig_buf[epc_pos + 9] = (unsigned char) (jwmarker[mm].u.epcmark->DL >> 0);
- 
- 			/* compute the CRC field (excluding itself) */
- 			for (pp = 0; pp < 4; pp++)
-@@ -825,9 +825,9 @@
- 				jpwl_updateCRC16(&mycrc, orig_buf[epc_pos + pp]);
- 
- 			/* fix and fill the CRC */
--			jwmarker[mm].epcmark->Pcrc = mycrc;
--			orig_buf[epc_pos + 4] = (unsigned char) (jwmarker[mm].epcmark->Pcrc >> 8);
--			orig_buf[epc_pos + 5] = (unsigned char) (jwmarker[mm].epcmark->Pcrc >> 0);
-+			jwmarker[mm].u.epcmark->Pcrc = mycrc;
-+			orig_buf[epc_pos + 4] = (unsigned char) (jwmarker[mm].u.epcmark->Pcrc >> 8);
-+			orig_buf[epc_pos + 5] = (unsigned char) (jwmarker[mm].u.epcmark->Pcrc >> 0);
- 
- 		}
- 	}
-@@ -842,7 +842,7 @@
- 			/* remember that they are now in a new position (dpos) */
- 			int esd_pos = (int) jwmarker[mm].dpos;
- 
--			jpwl_esd_fill(j2k, jwmarker[mm].esdmark, &orig_buf[esd_pos]);
-+			jpwl_esd_fill(j2k, jwmarker[mm].u.esdmark, &orig_buf[esd_pos]);
- 		
- 		}
- 
-@@ -867,16 +867,16 @@
- 			accum_len = 0;
- 			for (nn = mm; (nn < jwmarker_num) && (jwmarker[nn].id == J2K_MS_EPB) &&
- 				(jwmarker[nn].pos == jwmarker[mm].pos); nn++)
--				accum_len += jwmarker[nn].epbmark->Lepb + 2;
-+				accum_len += jwmarker[nn].u.epbmark->Lepb + 2;
- 
- 			/* fill the current (first) EPB with post-data starting from the computed position */
--			jpwl_epb_fill(j2k, jwmarker[mm].epbmark, &orig_buf[(int) jwmarker[mm].dpos],
-+			jpwl_epb_fill(j2k, jwmarker[mm].u.epbmark, &orig_buf[(int) jwmarker[mm].dpos],
- 				&orig_buf[(int) jwmarker[mm].dpos + accum_len]);
- 		
- 			/* fill the remaining EPBs in the header with post-data starting from the last position */
- 			for (nn = mm + 1; (nn < jwmarker_num) && (jwmarker[nn].id == J2K_MS_EPB) &&
- 				(jwmarker[nn].pos == jwmarker[mm].pos); nn++)
--				jpwl_epb_fill(j2k, jwmarker[nn].epbmark, &orig_buf[(int) jwmarker[nn].dpos], NULL);
-+				jpwl_epb_fill(j2k, jwmarker[nn].u.epbmark, &orig_buf[(int) jwmarker[nn].dpos], NULL);
- 
- 			/* skip all the processed EPBs */
- 			mm = nn - 1;
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-jpwl.h ./files/patch-jpwl.h
--- ../openjpeg.orig/files/patch-jpwl.h	2009-03-21 07:04:30.000000000 -0500
+++ ./files/patch-jpwl.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,11 +0,0 @@
---- jpwl/jpwl.h.orig	2007-11-05 14:05:07.000000000 +0100
-+++ jpwl/jpwl.h	2009-03-21 12:21:21.000000000 +0100
-@@ -188,7 +188,7 @@
- 		jpwl_esd_ms_t *esdmark;
- 		/** pointer to RED marker */
- 		jpwl_red_ms_t *redmark;
--	};
-+	} u;
- 	/** position where the marker should go, in the pre-JPWL codestream */ 
- 	unsigned long int pos;
- 	/** same as before, only written as a double, so we can sort it better */
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-jpwl_lib.c ./files/patch-jpwl_lib.c
--- ../openjpeg.orig/files/patch-jpwl_lib.c	2009-03-21 07:04:30.000000000 -0500
+++ ./files/patch-jpwl_lib.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,29 +0,0 @@
---- jpwl/jpwl_lib.c.orig	2007-11-29 15:38:26.000000000 +0100
-+++ jpwl/jpwl_lib.c	2009-03-21 12:39:09.000000000 +0100
-@@ -166,7 +166,7 @@
- 			/* Add this marker to the 'insertanda' list */
- 			if (*jwmarker_num < JPWL_MAX_NO_MARKERS) {
- 				jwmarker[*jwmarker_num].id = J2K_MS_EPB; /* its type */
--				jwmarker[*jwmarker_num].epbmark = epb_mark; /* the EPB */
-+				jwmarker[*jwmarker_num].u.epbmark = epb_mark; /* the EPB */
- 				jwmarker[*jwmarker_num].pos = (int) place_pos; /* after SOT */
- 				jwmarker[*jwmarker_num].dpos = place_pos + 0.0000001 * (double)(*idx); /* not very first! */
- 				jwmarker[*jwmarker_num].len = epb_mark->Lepb; /* its length */
-@@ -335,7 +335,7 @@
- 	jpwl_epc_ms_t *epc = NULL;
- 
- 	/* Alloc space */
--	if (!(epc = (jpwl_epc_ms_t *) malloc((size_t) 1 * sizeof (jpwl_epc_ms_t)))) {
-+	if (!(epc = (jpwl_epc_ms_t *) opj_aligned_malloc((size_t) 1 * sizeof (jpwl_epc_ms_t)))) {
- 		opj_event_msg(j2k->cinfo, EVT_ERROR, "Could not allocate room for EPC MS\n");
- 		return NULL;
- 	};
-@@ -1196,7 +1196,7 @@
- 	jpwl_esd_ms_t *esd = NULL;
- 
- 	/* Alloc space */
--	if (!(esd = (jpwl_esd_ms_t *) malloc((size_t) 1 * sizeof (jpwl_esd_ms_t)))) {
-+	if (!(esd = (jpwl_esd_ms_t *) opj_aligned_malloc((size_t) 1 * sizeof (jpwl_esd_ms_t)))) {
- 		opj_event_msg(j2k->cinfo, EVT_ERROR, "Could not allocate room for ESD MS\n");
- 		return NULL;
- 	};
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-libopenjpeg1.pc.cmake ./files/patch-libopenjpeg1.pc.cmake
--- ../openjpeg.orig/files/patch-libopenjpeg1.pc.cmake	1969-12-31 18:00:00.000000000 -0600
+++ ./files/patch-libopenjpeg1.pc.cmake	2012-04-07 17:13:40.561831304 -0500
@@ -0,0 +1,15 @@
+--- libopenjpeg1.pc.cmake~	2012-02-07 04:49:55.000000000 -0600
++++ libopenjpeg1.pc.cmake	2012-04-07 17:13:24.589503254 -0500
+@@ -1,8 +1,8 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+-bindir=@OPENJPEG_INSTALL_BIN_DIR@
+-datadir=@OPENJPEG_INSTALL_DATA_DIR@
+-libdir=@OPENJPEG_INSTALL_LIB_DIR@
+-includedir=@OPENJPEG_INSTALL_INCLUDE_DIR@
++bindir=${prefix}/@OPENJPEG_INSTALL_BIN_DIR@
++datadir=${prefix}/@OPENJPEG_INSTALL_DATA_DIR@
++libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
++includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
+ 
+ Name: openjpeg
+ Description: JPEG2000 files library
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-libopenjpeg_CMakeLists.txt ./files/patch-libopenjpeg_CMakeLists.txt
--- ../openjpeg.orig/files/patch-libopenjpeg_CMakeLists.txt	1969-12-31 18:00:00.000000000 -0600
+++ ./files/patch-libopenjpeg_CMakeLists.txt	2012-04-07 16:28:42.317870803 -0500
@@ -0,0 +1,11 @@
+--- libopenjpeg/CMakeLists.txt~	2012-02-07 04:49:55.000000000 -0600
++++ libopenjpeg/CMakeLists.txt	2012-04-07 16:28:11.038275932 -0500
+@@ -55,7 +55,7 @@ INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}
+ 
+ # Install includes files
+ INSTALL(FILES openjpeg.h
+-  DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers
++  DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR} COMPONENT Headers
+ )
+ 
+ # install man page of the library
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-mj2_Makefile ./files/patch-mj2_Makefile
--- ../openjpeg.orig/files/patch-mj2_Makefile	2007-07-30 10:50:09.000000000 -0500
+++ ./files/patch-mj2_Makefile	1969-12-31 18:00:00.000000000 -0600
@@ -1,28 +0,0 @@
---- mj2/Makefile.orig	2007-07-18 07:14:14.000000000 -0400
-+++ mj2/Makefile	2007-07-18 07:14:43.000000000 -0400
-@@ -1,20 +1,20 @@
- # Makefile for the MJ2 codecs of the OpenJPEG library: frames_to_mj2, mj2_to_frames, extract_j2k_from_mj2 and wrap_j2k_in_mj2
- 
--CFLAGS = -O3 -lstdc++ # -g -p -pg
-+CFLAGS += -lstdc++ # -g -p -pg
- 
- all: frames_to_mj2 mj2_to_frames extract_j2k_from_mj2 wrap_j2k_in_mj2
- 
- frames_to_mj2: frames_to_mj2.c ../libopenjpeg.a
--	gcc $(CFLAGS) compat/getopt.c mj2_convert.c mj2.c frames_to_mj2.c -o frames_to_mj2 -L.. -lopenjpeg -I ../libopenjpeg/ -lm
-+	$(CC) $(CFLAGS) compat/getopt.c mj2_convert.c mj2.c frames_to_mj2.c -o frames_to_mj2 -L.. -lopenjpeg -I ../libopenjpeg/ -lm
- 
- mj2_to_frames: mj2_to_frames.c ../libopenjpeg.a
--	gcc $(CFLAGS) compat/getopt.c mj2_convert.c mj2.c mj2_to_frames.c -o mj2_to_frames -L.. -lopenjpeg -I ../libopenjpeg/ -lm
-+	$(CC) $(CFLAGS) compat/getopt.c mj2_convert.c mj2.c mj2_to_frames.c -o mj2_to_frames -L.. -lopenjpeg -I ../libopenjpeg/ -lm
- 
- extract_j2k_from_mj2: extract_j2k_from_mj2.c ../libopenjpeg.a
--	gcc $(CFLAGS) mj2.c extract_j2k_from_mj2.c -o extract_j2k_from_mj2 -L.. -lopenjpeg -I ../libopenjpeg/ -lm
-+	$(CC) $(CFLAGS) mj2.c extract_j2k_from_mj2.c -o extract_j2k_from_mj2 -L.. -lopenjpeg -I ../libopenjpeg/ -lm
- 
- wrap_j2k_in_mj2: wrap_j2k_in_mj2.c ../libopenjpeg.a
--	gcc $(CFLAGS) mj2.c wrap_j2k_in_mj2.c -o wrap_j2k_in_mj2 -L.. -lopenjpeg -I ../libopenjpeg/ -lm
-+	$(CC) $(CFLAGS) mj2.c wrap_j2k_in_mj2.c -o wrap_j2k_in_mj2 -L.. -lopenjpeg -I ../libopenjpeg/ -lm
- 
- clean:
- 	rm -f frames_to_mj2 mj2_to_frames extract_j2k_from_mj2 wrap_j2k_in_mj2
diff -ruN --exclude=CVS ../openjpeg.orig/files/patch-opj_malloc.h ./files/patch-opj_malloc.h
--- ../openjpeg.orig/files/patch-opj_malloc.h	2009-03-21 07:04:30.000000000 -0500
+++ ./files/patch-opj_malloc.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,18 +0,0 @@
---- libopenjpeg/opj_malloc.h.orig	2007-12-21 11:19:01.000000000 +0100
-+++ libopenjpeg/opj_malloc.h	2009-03-21 12:02:37.000000000 +0100
-@@ -76,8 +76,15 @@
- 	#if defined(__sun)
- 			#define HAVE_MEMALIGN
- 		#elif defined(__GNUC__)
-+			#if defined(__FreeBSD__)
-+			#include <stdlib.h>
-+			#include <osreldate.h>
-+			#if __FreeBSD_versioni >= 700000 
-+			#endif
-+			#else
- 			#define HAVE_MEMALIGN
- 			#include <malloc.h>		
-+			#endif
- 		/* Linux x86_64 and OSX always align allocations to 16 bytes */
- 		#elif !defined(__amd64__) && !defined(__APPLE__)	
- 			/* FIXME: Yes, this is a big assumption */
diff -ruN --exclude=CVS ../openjpeg.orig/pkg-plist ./pkg-plist
--- ../openjpeg.orig/pkg-plist	1969-12-31 18:00:00.000000000 -0600
+++ ./pkg-plist	2012-04-07 16:32:03.762716185 -0500
@@ -0,0 +1,16 @@
+bin/extract_j2k_from_mj2
+bin/frames_to_mj2
+bin/image_to_j2k
+bin/j2k_dump
+bin/j2k_to_image
+bin/mj2_to_frames
+bin/wrap_j2k_in_mj2
+include/openjpeg.h
+lib/libopenjpeg.so
+lib/libopenjpeg.so.1
+lib/libopenjpeg.so.1.5.0
+%%DATADIR%%-1.5/OpenJPEGConfig.cmake
+%%DATADIR%%-1.5/OpenJPEGTargets-release.cmake
+%%DATADIR%%-1.5/OpenJPEGTargets.cmake
+libdata/pkgconfig/libopenjpeg1.pc
+@dirrm %%DATADIR%%-1.5
--- openjpeg-1.5.0.patch ends here ---


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->dinoex 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Sun Apr 8 01:14:32 UTC 2012 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=166744 
State-Changed-From-To: open->suspended 
State-Changed-By: dinoex 
State-Changed-When: Mon Apr 9 09:50:21 CEST 2012 
State-Changed-Why:  
this will effect lots of ports.  
This can not be done before the freeze is lifted. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=166744 

From: Zhihao Yuan <lichray@gmail.com>
To: bug-followup@FreeBSD.org, lichray@gmail.com
Cc:  
Subject: Re: ports/166744: [UPDATE] graphics/openjpeg to 1.5.0
Date: Mon, 9 Apr 2012 05:33:56 -0500

 --e89a8f3ba32d32426e04bd3c8b4a
 Content-Type: text/plain; charset=UTF-8
 
 I have tested all of the ports depend on openjpeg. Here is the step to
 make changes to them:
 
 0. Apply the updated patch openjpeg-1.5.0-1.patch;
 1. For gdcm, mtpaint, poppler, gmerlin-avdecoder, opencinematools,
 ffmpeg, ffmpeg-devel, change 'openjpeg.2' to 'openjpeg.1' in Makefile
 and bump port revision;
 2. For mplayer, do the same thing in Makefile.options;
 3. For blender, do the same thing and add the
 patch-source_blender_imbuf_intern_jp2.c to files/;
 4. For mupdf, do the same thing OR commit ports/166745;
 5. For xpaint, do nothing or just bump port revision.
 
 -- 
 Zhihao Yuan, nickname lichray
 The best way to predict the future is to invent it.
 ___________________________________________________
 4BSD -- http://4bsd.biz/
 
 --e89a8f3ba32d32426e04bd3c8b4a
 Content-Type: application/octet-stream; name="openjpeg-1.5.0-1.patch"
 Content-Disposition: attachment; filename="openjpeg-1.5.0-1.patch"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_h0tdswwt0
 
 ZGlmZiAtcnVOIC0tZXhjbHVkZT1DVlMgLi4vb3BlbmpwZWcub3JpZy9NYWtlZmlsZSAuL01ha2Vm
 aWxlCi0tLSAuLi9vcGVuanBlZy5vcmlnL01ha2VmaWxlCTIwMTEtMDgtMDcgMDQ6MzM6MDAuMDAw
 MDAwMDAwIC0wNTAwCisrKyAuL01ha2VmaWxlCTIwMTItMDQtMDcgMTY6MzI6MjIuMjgxMDcwMzMw
 IC0wNTAwCkBAIC02LDQ5ICs2LDMyIEBACiAjCiAKIFBPUlROQU1FPQlvcGVuanBlZwotUE9SVFZF
 UlNJT049CTEuMwotUE9SVFJFVklTSU9OPQkyCitQT1JUVkVSU0lPTj0JMS41LjAKIENBVEVHT1JJ
 RVM9CWdyYXBoaWNzCi1NQVNURVJfU0lURVM9CWh0dHA6Ly93d3cub3BlbmpwZWcub3JnLyBcCi0J
 CWh0dHA6Ly9vcGVuanBlZy5nb29nbGVjb2RlLmNvbS9maWxlcy8KLURJU1ROQU1FPQkke1BPUlRO
 QU1FfV92JHtQT1JUVkVSU0lPTjpTLy4vXy9nfQorTUFTVEVSX1NJVEVTPQkke01BU1RFUl9TSVRF
 X0dPT0dMRV9DT0RFfQogCi1NQUlOVEFJTkVSPQlkaW5vZXhARnJlZUJTRC5vcmcKK01BSU5UQUlO
 RVI9CWxpY2hyYXlAZ21haWwuY29tCiBDT01NRU5UPQlBbiBvcGVuLXNvdXJjZSBKUEVHIDIwMDAg
 Y29kZWMKIAotTElCX0RFUEVORFM9CXRpZmYuNDoke1BPUlRTRElSfS9ncmFwaGljcy90aWZmCi0K
 IExJQ0VOU0U9CUJTRAotTElDRU5TRV9GSUxFPQkke1dSS1NSQ30vanAzZC9MSUNFTlNFLnR4dAot
 TUFLRV9KT0JTX1VOU0FGRT0JeWVzCitMSUNFTlNFX0ZJTEU9CSR7V1JLU1JDfS9MSUNFTlNFCisK
 K0xJQl9ERVBFTkRTPQlwbmcuNjoke1BPUlRTRElSfS9ncmFwaGljcy9wbmcgXAorCQl0aWZmLjQ6
 JHtQT1JUU0RJUn0vZ3JhcGhpY3MvdGlmZgorCitNQU4xPQkJaW1hZ2VfdG9fajJrLjEgajJrX2R1
 bXAuMSBqMmtfdG9faW1hZ2UuMQorTUFOMz0JCWxpYm9wZW5qcGVnLjMKIAotVVNFX0dNQUtFPQl5
 ZXMKK1VTRV9DTUFLRT0JeWVzCiBVU0VfTERDT05GSUc9CXllcwotV1JLU1JDPQkJJHtXUktESVJ9
 L09wZW5KUEVHX3YxXzMKLUpQV0xfQklOUz0JSlBXTF9pbWFnZV90b19qMmsgSlBXTF9qMmtfdG9f
 aW1hZ2UKLU0ySl9CSU5TPQlleHRyYWN0X2oya19mcm9tX21qMiBmcmFtZXNfdG9fbWoyIG1qMl90
 b19mcmFtZXMgd3JhcF9qMmtfaW5fbWoyCi0KLVBMSVNUX0ZJTEVTPQlpbmNsdWRlL29wZW5qcGVn
 LmggXAotCQlsaWIvbGlib3BlbmpwZWcuYSBcCi0JCWxpYi9saWJvcGVuanBlZy5zby4ke1NITElC
 X1ZFUn0gXAotCQlsaWIvbGlib3BlbmpwZWcuc28gXAotCQkke0pQV0xfQklOUzpTfF58YmluL3x9
 IFwKLQkJJHtNMkpfQklOUzpTfF58YmluL3x9Ci0KLVNITElCX1ZFUj0JMgotCi1wb3N0LXBhdGNo
 OgkuU0lMRU5UCi0JCSR7RklORH0gJHtXUktTUkN9IC10eXBlIGYgLW5hbWUgTWFrZWZpbGUgLWV4
 ZWMgJHtSRUlOUExBQ0VfQ01EfSAnc3xnY2N8JCQoQ0MpfGcnIHt9ICsKLQotZG8taW5zdGFsbDoK
 LQkJJHtJTlNUQUxMX0RBVEF9ICR7V1JLU1JDfS9saWJvcGVuanBlZy9vcGVuanBlZy5oICR7UFJF
 RklYfS9pbmNsdWRlLwotCQkke0lOU1RBTExfREFUQX0gJHtXUktTUkN9L2xpYm9wZW5qcGVnLmEg
 JHtQUkVGSVh9L2xpYi8KLQkJJHtJTlNUQUxMX0RBVEF9ICR7V1JLU1JDfS9saWJvcGVuanBlZy0y
 LjEuMy4wLnNvIFwKLQkJCSR7UFJFRklYfS9saWIvbGlib3BlbmpwZWcuc28uJHtTSExJQl9WRVJ9
 Ci0JCWNkICR7UFJFRklYfS9saWIgJiYgXAotCQkJJHtMTn0gLXNmIGxpYm9wZW5qcGVnLnNvLiR7
 U0hMSUJfVkVSfSBsaWJvcGVuanBlZy5zbwotLmZvciBmaWxlIGluICR7TTJKX0JJTlM6U3xefG1q
 Mi98fSAke0pQV0xfQklOUzpTfF58anB3bC98fQotCQkke0lOU1RBTExfUFJPR1JBTX0gJHtXUktT
 UkN9LyR7ZmlsZX0gJHtQUkVGSVh9L2Jpbi8KLS5lbmRmb3IKK0NNQUtFX0FSR1M9CS1EQlVJTERf
 TUoyPU9OCisKKy5pbmNsdWRlIDxic2QucG9ydC5wcmUubWs+CisKKy5pZiBleGlzdHMoJHtMT0NB
 TEJBU0V9L2luY2x1ZGUvbGNtcy5oKSAmJiAhZXhpc3RzKCR7TE9DQUxCQVNFfS9pbmNsdWRlL2xj
 bXMyLmgpCitMSUJfREVQRU5EUys9CWxjbXM6JHtQT1JUU0RJUn0vZ3JhcGhpY3MvbGNtcworLmVs
 c2UKK0xJQl9ERVBFTkRTKz0JbGNtczI6JHtQT1JUU0RJUn0vZ3JhcGhpY3MvbGNtczIKKy5lbmRp
 ZgogCi0uaW5jbHVkZSA8YnNkLnBvcnQubWs+CisuaW5jbHVkZSA8YnNkLnBvcnQucG9zdC5taz4K
 ZGlmZiAtcnVOIC0tZXhjbHVkZT1DVlMgLi4vb3BlbmpwZWcub3JpZy9kaXN0aW5mbyAuL2Rpc3Rp
 bmZvCi0tLSAuLi9vcGVuanBlZy5vcmlnL2Rpc3RpbmZvCTIwMTEtMDctMDMgMDk6MTE6NDQuMDAw
 MDAwMDAwIC0wNTAwCisrKyAuL2Rpc3RpbmZvCTIwMTItMDQtMDcgMTU6MDI6MTYuMjgwMDE1NDU5
 IC0wNTAwCkBAIC0xLDIgKzEsMiBAQAotU0hBMjU2IChvcGVuanBlZ192MV8zLnRhci5neikgPSAz
 YmNhMmUxZTA0MGY5ZGNiYmNiMWUwNjI3ZjE3YTc2ZWViOTVlMTUzYmY2NjNkMDgyMDcwYzA0NGEy
 MTIwMmJkCi1TSVpFIChvcGVuanBlZ192MV8zLnRhci5neikgPSAxMDA0Njc4CitTSEEyNTYgKG9w
 ZW5qcGVnLTEuNS4wLnRhci5neikgPSBjOTkwOGZhYjQ0NDMyYTJlZDI1NTBjNDU3Y2I3ZTczNmRh
 NmQ3YzMyNmYxMjAzZDIzZDEwODJkOTkyMzY0YWNlCitTSVpFIChvcGVuanBlZy0xLjUuMC50YXIu
 Z3opID0gMjExNzU3MgpkaWZmIC1ydU4gLS1leGNsdWRlPUNWUyAuLi9vcGVuanBlZy5vcmlnL2Zp
 bGVzL3BhdGNoLUNNYWtlTGlzdHMudHh0IC4vZmlsZXMvcGF0Y2gtQ01ha2VMaXN0cy50eHQKLS0t
 IC4uL29wZW5qcGVnLm9yaWcvZmlsZXMvcGF0Y2gtQ01ha2VMaXN0cy50eHQJMTk2OS0xMi0zMSAx
 ODowMDowMC4wMDAwMDAwMDAgLTA2MDAKKysrIC4vZmlsZXMvcGF0Y2gtQ01ha2VMaXN0cy50eHQJ
 MjAxMi0wNC0wOSAwNToxODozOC40MjkzMTcwNTkgLTA1MDAKQEAgLTAsMCArMSw0MyBAQAorLS0t
 IENNYWtlTGlzdHMudHh0Lm9yaWcJMjAxMi0wMi0wNyAwNDo0OTo1NS4wMDAwMDAwMDAgLTA2MDAK
 KysrKyBDTWFrZUxpc3RzLnR4dAkyMDEyLTA0LTA5IDA1OjE4OjI0LjU4MDAyNzk3MCAtMDUwMAor
 QEAgLTk5LDcgKzk5LDcgQEAgSUYoTk9UIE9QRU5KUEVHX0lOU1RBTExfSU5DTFVERV9ESVIpCisg
 RU5ESUYoTk9UIE9QRU5KUEVHX0lOU1RBTExfSU5DTFVERV9ESVIpCisgCisgSUYoTk9UIE9QRU5K
 UEVHX0lOU1RBTExfTUFOX0RJUikKKy0gIFNFVChPUEVOSlBFR19JTlNUQUxMX01BTl9ESVIgInNo
 YXJlL21hbi8iKQorKyAgU0VUKE9QRU5KUEVHX0lOU1RBTExfTUFOX0RJUiAibWFuLyIpCisgRU5E
 SUYoTk9UIE9QRU5KUEVHX0lOU1RBTExfTUFOX0RJUikKKyAKKyBJRihOT1QgT1BFTkpQRUdfSU5T
 VEFMTF9ET0NfRElSKQorQEAgLTE0NiwxMCArMTQ2LDcgQEAgSUYoVU5JWCkKKyAgIENPTkZJR1VS
 RV9GSUxFKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9saWJvcGVuanBlZzEucGMuY21ha2UK
 KyAgICAgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2xpYm9wZW5qcGVnMS5wYyBAT05MWSkK
 KyAgIElOU1RBTEwoIEZJTEVTICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vbGlib3Blbmpw
 ZWcxLnBjIERFU1RJTkFUSU9OCistICAgICR7T1BFTkpQRUdfSU5TVEFMTF9TSEFSRV9ESVJ9L3Br
 Z2NvbmZpZyApCistICBJTlNUQUxMKCBDT0RFICJFWEVDVVRFX1BST0NFU1MoQ09NTUFORCAke0NN
 QUtFX0NPTU1BTkR9IC1FIGNyZWF0ZV9zeW1saW5rCistICBcImxpYm9wZW5qcGVnMS5wY1wiCist
 ICBcIlwkRU5We0RFU1RESVJ9JHtPUEVOSlBFR19JTlNUQUxMX0xJQl9ESVJ9L3BrZ2NvbmZpZy9s
 aWJvcGVuanBlZy5wY1wiKSIpCisrICAgIGxpYmRhdGEvcGtnY29uZmlnICkKKyBFTkRJRihVTklY
 KQorIAorICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQEAgLTI0NCw2ICsyNDEsNyBAQCBFTkRJRihC
 VUlMRF9URVNUSU5HKQorICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICMgaW5zdGFsbCBhbGwgdGFy
 Z2V0cyByZWZlcmVuY2VkIGFzIE9QRU5KUEVHVGFyZ2V0cworIElOU1RBTEwoRVhQT1JUIE9wZW5K
 UEVHVGFyZ2V0cyBERVNUSU5BVElPTiAke09QRU5KUEVHX0lOU1RBTExfUEFDS0FHRV9ESVJ9KQor
 K1NFVChPUEVOSlBFR19MSUJSQVJJRVMgIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7T1BFTkpQ
 RUdfSU5TVEFMTF9MSUJfRElSfS9saWIke09QRU5KUEVHX0xJQlJBUllfTkFNRX0uc28iKQorIENP
 TkZJR1VSRV9GSUxFKCAke09QRU5KUEVHX1NPVVJDRV9ESVJ9L0NNYWtlL09wZW5KUEVHQ29uZmln
 LmNtYWtlLmluCisgICAke09QRU5KUEVHX0JJTkFSWV9ESVJ9L09wZW5KUEVHQ29uZmlnLmNtYWtl
 CisgICBAT05MWQorQEAgLTI1MiwxMSArMjUwLDQgQEAgSU5TVEFMTCggRklMRVMgJHtPUEVOSlBF
 R19CSU5BUllfRElSfS9PcAorICAgREVTVElOQVRJT04gJHtPUEVOSlBFR19JTlNUQUxMX1BBQ0tB
 R0VfRElSfQorICkKKyAKKy0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0jIGluc3RhbGwgQ0hBTkdF
 UyBhbmQgTElDRU5TRQorLUlOU1RBTEwoCistICBGSUxFUyAgICAgICBDSEFOR0VTIAorLSAgICAg
 ICAgICAgICAgTElDRU5TRQorLSAgREVTVElOQVRJT04gJHtPUEVOSlBFR19JTlNUQUxMX0RPQ19E
 SVJ9KQorLQorIElOQ0xVREUgKENNYWtlL09wZW5KUEVHQ1BhY2suY21ha2UpCmRpZmYgLXJ1TiAt
 LWV4Y2x1ZGU9Q1ZTIC4uL29wZW5qcGVnLm9yaWcvZmlsZXMvcGF0Y2gtQ01ha2VfT3BlbkpQRUdD
 b25maWcuY21ha2UuaW4gLi9maWxlcy9wYXRjaC1DTWFrZV9PcGVuSlBFR0NvbmZpZy5jbWFrZS5p
 bgotLS0gLi4vb3BlbmpwZWcub3JpZy9maWxlcy9wYXRjaC1DTWFrZV9PcGVuSlBFR0NvbmZpZy5j
 bWFrZS5pbgkxOTY5LTEyLTMxIDE4OjAwOjAwLjAwMDAwMDAwMCAtMDYwMAorKysgLi9maWxlcy9w
 YXRjaC1DTWFrZV9PcGVuSlBFR0NvbmZpZy5jbWFrZS5pbgkyMDEyLTA0LTA5IDA1OjEzOjMyLjMw
 MzA0ODMwOSAtMDUwMApAQCAtMCwwICsxLDExIEBACistLS0gQ01ha2UvT3BlbkpQRUdDb25maWcu
 Y21ha2UuaW5+CTIwMTItMDItMDcgMDQ6NDk6NTUuMDAwMDAwMDAwIC0wNjAwCisrKysgQ01ha2Uv
 T3BlbkpQRUdDb25maWcuY21ha2UuaW4JMjAxMi0wNC0wOSAwNTowNTo0Ni4wMjQ1MTk2NTYgLTA1
 MDAKK0BAIC0xNyw3ICsxNyw3IEBAIFNFVChPUEVOSlBFR19MSUJSQVJJRVMgIkBPUEVOSlBFR19M
 SUJSQVIKKyBTRVQoT1BFTkpQRUdfQ01BS0VfRElSICJAT1BFTkpQRUdfQ01BS0VfRElSX0NPTkZJ
 R0AiKQorIAorICMgVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KKy1TRVQoT1BFTkpQRUdfQlVJ
 TERfU0hBUkVEX0xJQlMgIkBPUEVOSlBFR19CVUlMRF9TSEFSRURfTElCU0AiKQorK1NFVChPUEVO
 SlBFR19CVUlMRF9TSEFSRURfTElCUyBAQlVJTERfU0hBUkVEX0xJQlNAKQorIAorICMgVGhlICJ1
 c2UiIGZpbGUuCisgU0VUKE9QRU5KUEVHX1VTRV9GSUxFICJAT1BFTkpQRUdfVVNFX0ZJTEVfQ09O
 RklHQCIpCmRpZmYgLXJ1TiAtLWV4Y2x1ZGU9Q1ZTIC4uL29wZW5qcGVnLm9yaWcvZmlsZXMvcGF0
 Y2gtTWFrZWZpbGUgLi9maWxlcy9wYXRjaC1NYWtlZmlsZQotLS0gLi4vb3BlbmpwZWcub3JpZy9m
 aWxlcy9wYXRjaC1NYWtlZmlsZQkyMDA5LTAzLTIxIDA3OjA0OjMwLjAwMDAwMDAwMCAtMDUwMAor
 KysgLi9maWxlcy9wYXRjaC1NYWtlZmlsZQkxOTY5LTEyLTMxIDE4OjAwOjAwLjAwMDAwMDAwMCAt
 MDYwMApAQCAtMSwzOCArMCwwIEBACi0tLS0gTWFrZWZpbGUub3JpZwkyMDA3LTEyLTIxIDExOjM5
 OjQxLjAwMDAwMDAwMCArMDEwMAotKysrIE1ha2VmaWxlCTIwMDktMDMtMjEgMTE6NTE6MjYuMDAw
 MDAwMDAwICswMTAwCi1AQCAtOCwxNyArOCwxNiBAQAotIElOQ0xVREUgPSAtSWxpYm9wZW5qcGVn
 Ci0gCi0gIyBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzOgotLUNDID0gZ2NjCi0tQVIg
 PSBhcgotIAotLVBSRUZJWCA9IC91c3IKLSBJTlNUQUxMX0xJQkRJUiA9ICQoUFJFRklYKS9saWIK
 LSBJTlNUQUxMX0lOQ0xVREUgPSAkKFBSRUZJWCkvaW5jbHVkZQotIAotK1NVQkRJUlM9CWpwd2wg
 bWoyCi0rCi0gIyBDb252ZXJ0cyBjci9sZiB0byBqdXN0IGxmCi0gRE9TMlVOSVggPSBkb3MydW5p
 eAotIAotLUNPTVBJTEVSRkxBR1MgPSAtV2FsbCAtTzMgLWZmYXN0LW1hdGggLXN0ZD1jOTkgLWZQ
 SUMKLStDT01QSUxFUkZMQUdTIDo9ICQoQ0ZMQUdTKSAtV2FsbCAtc3RkPWM5OSAtZlBJQwotIExJ
 QlJBUklFUyA9IC1sc3RkYysrCi0gCi0gTU9EVUxFUyA9ICQoU1JDUzouYz0ubykKLUBAIC0zMyw3
 ICszMiwxMyBAQAotIAotIGRlZmF1bHQ6IGFsbAotIAotLWFsbDogT3BlbkpQRUcKLSthbGw6IE9w
 ZW5KUEVHIHN1YmRpcnMKLSsKLStzdWJkaXJzOgotKwlzZXQgLWU7IFwKLSsJZm9yIGRpciBpbiAk
 KFNVQkRJUlMpOyBkbyBcCi0rCQkkKE1BS0UpIC1DICQkZGlyOyBcCi0rCWRvbmUKLSAKLSBkaXN0
 OiBPcGVuSlBFRwotIAlpbnN0YWxsIC1kIGRpc3QKZGlmZiAtcnVOIC0tZXhjbHVkZT1DVlMgLi4v
 b3BlbmpwZWcub3JpZy9maWxlcy9wYXRjaC1qcHdsLU1ha2VmaWxlIC4vZmlsZXMvcGF0Y2gtanB3
 bC1NYWtlZmlsZQotLS0gLi4vb3BlbmpwZWcub3JpZy9maWxlcy9wYXRjaC1qcHdsLU1ha2VmaWxl
 CTIwMDktMDMtMjEgMDc6MDQ6MzAuMDAwMDAwMDAwIC0wNTAwCisrKyAuL2ZpbGVzL3BhdGNoLWpw
 d2wtTWFrZWZpbGUJMTk2OS0xMi0zMSAxODowMDowMC4wMDAwMDAwMDAgLTA2MDAKQEAgLTEsMzUg
 KzAsMCBAQAotLS0tIGpwd2wvTWFrZWZpbGUub3JpZwkyMDA3LTExLTA1IDE0OjA1OjA3LjAwMDAw
 MDAwMCArMDEwMAotKysrIGpwd2wvTWFrZWZpbGUJMjAwOS0wMy0yMSAxMTo1NDo1NS4wMDAwMDAw
 MDAgKzAxMDAKLUBAIC05LDEwICs5LDcgQEAKLSBJTkNMVURFID0gLUlsaWJvcGVuanBlZ19KUFdM
 DQotIA0KLSAjIEdlbmVyYWwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXM6DQotLUNDID0gZ2NjDQot
 LUFSID0gYXINCi0gDQotLVBSRUZJWCA9IC91c3INCi0gSU5TVEFMTF9MSUJESVIgPSAkKFBSRUZJ
 WCkvbGliDQotIElOU1RBTExfSU5DTFVERSA9ICQoUFJFRklYKS9pbmNsdWRlDQotIA0KLUBAIC0y
 Myw3ICsyMCw3IEBACi0gTElCUkFSSUVTID0gLWxzdGRjKysNCi0gDQotIE1PRFVMRVMgPSAkKFNS
 Q1M6LmM9Lm8pDQotLUNGTEFHUyA9ICQoQ09NUElMRVJGTEFHUykgJChJTkNMVURFKSAtRFVTRV9K
 UFdMDQotK0NGTEFHUyArPSAkKENPTVBJTEVSRkxBR1MpICQoSU5DTFVERSkgLURVU0VfSlBXTA0K
 LSANCi0gVEFSR0VUICA9IG9wZW5qcGVnX0pQV0wNCi0gU1RBVElDTElCID0gbGliJChUQVJHRVQp
 LmENCi1AQCAtNjAsMTAgKzU3LDEwIEBACi0gCSQoQ0MpIC1zIC1zaGFyZWQgLVdsLC1zb25hbWUs
 JChMSUJOQU1FKSAtbyAkQCAkKE1PRFVMRVMpICQoTElCUkFSSUVTKQ0KLSANCi0gSlBXTF9qMmtf
 dG9faW1hZ2U6IC4uL2NvZGVjL2oya190b19pbWFnZS5jDQotLQlnY2MgJChDRkxBR1MpIC4uL2Nv
 ZGVjL2NvbnZlcnQuYyAuLi9jb2RlYy9qMmtfdG9faW1hZ2UuYyAtbyBKUFdMX2oya190b19pbWFn
 ZSAtSSAuLi9saWJvcGVuanBlZy8gLUwgLiAtbG9wZW5qcGVnX0pQV0wgLWxtIC1sdGlmZg0KLSsJ
 Z2NjICQoQ0ZMQUdTKSAuLi9jb2RlYy9jb252ZXJ0LmMgLi4vY29kZWMvajJrX3RvX2ltYWdlLmMg
 Li4vY29kZWMvaW5kZXguYyAtbyBKUFdMX2oya190b19pbWFnZSAtSSAuLi9saWJvcGVuanBlZy8g
 LUwgLiAtTCQoTE9DQUxCQVNFKS9saWIgLWxvcGVuanBlZ19KUFdMIC1sbSAtbHRpZmYNCi0gDQot
 IEpQV0xfaW1hZ2VfdG9fajJrOiAuLi9jb2RlYy9pbWFnZV90b19qMmsuYw0KLS0JZ2NjICQoQ0ZM
 QUdTKSAuLi9jb2RlYy9jb252ZXJ0LmMgLi4vY29kZWMvaW1hZ2VfdG9fajJrLmMgLW8gSlBXTF9p
 bWFnZV90b19qMmsgLUkgLi4vbGlib3BlbmpwZWcvIC1MIC4gLWxvcGVuanBlZ19KUFdMIC1sbSAt
 bHRpZmYNCi0rCWdjYyAkKENGTEFHUykgLi4vY29kZWMvY29udmVydC5jIC4uL2NvZGVjL2ltYWdl
 X3RvX2oyay5jIC4uL2NvZGVjL2luZGV4LmMgLW8gSlBXTF9pbWFnZV90b19qMmsgLUkgLi4vbGli
 b3BlbmpwZWcvIC1MIC4gLUwkKExPQ0FMQkFTRSkvbGliIC1sb3BlbmpwZWdfSlBXTCAtbG0gLWx0
 aWZmDQotIA0KLSBpbnN0YWxsOiBPcGVuSlBFRw0KLSAJaW5zdGFsbCAtZCAnJChERVNURElSKSQo
 SU5TVEFMTF9MSUJESVIpJyAnJChERVNURElSKSQoSU5TVEFMTF9JTkNMVURFKScNCmRpZmYgLXJ1
 TiAtLWV4Y2x1ZGU9Q1ZTIC4uL29wZW5qcGVnLm9yaWcvZmlsZXMvcGF0Y2gtanB3bC5jIC4vZmls
 ZXMvcGF0Y2gtanB3bC5jCi0tLSAuLi9vcGVuanBlZy5vcmlnL2ZpbGVzL3BhdGNoLWpwd2wuYwky
 MDA5LTAzLTIxIDA3OjA0OjMwLjAwMDAwMDAwMCAtMDUwMAorKysgLi9maWxlcy9wYXRjaC1qcHds
 LmMJMTk2OS0xMi0zMSAxODowMDowMC4wMDAwMDAwMDAgLTA2MDAKQEAgLTEsMTQ5ICswLDAgQEAK
 LS0tLSBqcHdsL2pwd2wuYy5vcmlnCTIwMDctMTEtMjkgMTU6Mzg6MjYuMDAwMDAwMDAwICswMTAw
 Ci0rKysganB3bC9qcHdsLmMJMjAwOS0wMy0yMSAxMjozNjo1My4wMDAwMDAwMDAgKzAxMDAKLUBA
 IC0xMjIsMTkgKzEyMiwxOSBAQAotIAkJc3dpdGNoIChqd21hcmtlclttbV0uaWQpIHsNCi0gDQot
 IAkJY2FzZSBKMktfTVNfRVBCOg0KLS0JCQlmcmVlKGp3bWFya2VyW21tXS5lcGJtYXJrKTsNCi0r
 CQkJb3BqX2FsaWduZWRfZnJlZShqd21hcmtlclttbV0udS5lcGJtYXJrKTsNCi0gCQkJYnJlYWs7
 DQotIA0KLSAJCWNhc2UgSjJLX01TX0VQQzoNCi0tCQkJZnJlZShqd21hcmtlclttbV0uZXBjbWFy
 ayk7DQotKwkJCW9wal9hbGlnbmVkX2ZyZWUoandtYXJrZXJbbW1dLnUuZXBjbWFyayk7DQotIAkJ
 CWJyZWFrOw0KLSANCi0gCQljYXNlIEoyS19NU19FU0Q6DQotLQkJCWZyZWUoandtYXJrZXJbbW1d
 LmVzZG1hcmspOw0KLSsJCQlvcGpfYWxpZ25lZF9mcmVlKGp3bWFya2VyW21tXS51LmVzZG1hcmsp
 Ow0KLSAJCQlicmVhazsNCi0gDQotIAkJY2FzZSBKMktfTVNfUkVEOg0KLS0JCQlmcmVlKGp3bWFy
 a2VyW21tXS5yZWRtYXJrKTsNCi0rCQkJb3BqX2FsaWduZWRfZnJlZShqd21hcmtlclttbV0udS5y
 ZWRtYXJrKTsNCi0gCQkJYnJlYWs7DQotIA0KLSAJCWRlZmF1bHQ6DQotQEAgLTIxMyw3ICsyMTMs
 NyBAQAotIAkJLyogQWRkIHRoaXMgbWFya2VyIHRvIHRoZSAnaW5zZXJ0YW5kYScgbGlzdCAqLw0K
 LSAJCWlmIChlcGNfbWFyaykgew0KLSAJCQlqd21hcmtlcltqd21hcmtlcl9udW1dLmlkID0gSjJL
 X01TX0VQQzsgLyogaXRzIHR5cGUgKi8NCi0tCQkJandtYXJrZXJbandtYXJrZXJfbnVtXS5lcGNt
 YXJrID0gZXBjX21hcms7IC8qIHRoZSBFUEMgKi8NCi0rCQkJandtYXJrZXJbandtYXJrZXJfbnVt
 XS51LmVwY21hcmsgPSBlcGNfbWFyazsgLyogdGhlIEVQQyAqLw0KLSAJCQlqd21hcmtlcltqd21h
 cmtlcl9udW1dLnBvcyA9IHNvY19wb3MgKyBzb2NzaXpfbGVuOyAvKiBhZnRlciBTSVogKi8NCi0g
 CQkJandtYXJrZXJbandtYXJrZXJfbnVtXS5kcG9zID0gKGRvdWJsZSkgandtYXJrZXJbandtYXJr
 ZXJfbnVtXS5wb3MgKyAwLjE7IC8qIG5vdCBzbyBmaXJzdCAqLw0KLSAJCQlqd21hcmtlcltqd21h
 cmtlcl9udW1dLmxlbiA9IGVwY19tYXJrLT5MZXBjOyAvKiBpdHMgbGVuZ3RoICovDQotQEAgLTI1
 OCw3ICsyNTgsNyBAQAotIAkJCS8qIEFkZCB0aGlzIG1hcmtlciB0byB0aGUgJ2luc2VydGFuZGEn
 IGxpc3QgKi8NCi0gCQkJaWYgKGp3bWFya2VyX251bSA8IEpQV0xfTUFYX05PX01BUktFUlMpIHsN
 Ci0gCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0uaWQgPSBKMktfTVNfRVNEOyAvKiBpdHMgdHlw
 ZSAqLw0KLS0JCQkJandtYXJrZXJbandtYXJrZXJfbnVtXS5lc2RtYXJrID0gZXNkX21hcms7IC8q
 IHRoZSBFUEIgKi8NCi0rCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0udS5lc2RtYXJrID0gZXNk
 X21hcms7IC8qIHRoZSBFUEIgKi8NCi0gCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0ucG9zID0g
 c29jX3BvcyArIHNvY3Npel9sZW47IC8qIHdlIGNob29zZSB0byBwbGFjZSBpdCBhZnRlciBTSVog
 Ki8NCi0gCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0uZHBvcyA9IChkb3VibGUpIGp3bWFya2Vy
 W2p3bWFya2VyX251bV0ucG9zICsgMC4yOyAvKiBub3QgZmlyc3QgYXQgYWxsISAqLw0KLSAJCQkJ
 andtYXJrZXJbandtYXJrZXJfbnVtXS5sZW4gPSBlc2RfbWFyay0+TGVzZDsgLyogaXRzIGxlbmd0
 aCAqLw0KLUBAIC0zNTIsNyArMzUyLDcgQEAKLSAJCQkJCS8qIEFkZCB0aGlzIG1hcmtlciB0byB0
 aGUgJ2luc2VydGFuZGEnIGxpc3QgKi8NCi0gCQkJCQlpZiAoandtYXJrZXJfbnVtIDwgSlBXTF9N
 QVhfTk9fTUFSS0VSUykgew0KLSAJCQkJCQlqd21hcmtlcltqd21hcmtlcl9udW1dLmlkID0gSjJL
 X01TX0VTRDsgLyogaXRzIHR5cGUgKi8NCi0tCQkJCQkJandtYXJrZXJbandtYXJrZXJfbnVtXS5l
 c2RtYXJrID0gZXNkX21hcms7IC8qIHRoZSBFUEIgKi8NCi0rCQkJCQkJandtYXJrZXJbandtYXJr
 ZXJfbnVtXS51LmVzZG1hcmsgPSBlc2RfbWFyazsgLyogdGhlIEVQQiAqLw0KLSAJCQkJCQkvKioq
 KioqIGp3bWFya2VyW2p3bWFya2VyX251bV0ucG9zID0gajJrLT5jc3RyX2luZm8tPnRpbGVbdGls
 ZW5vXS5zdGFydF9wb3MgKyBzb3RfbGVuICsgMjsgKi8gLyogYWZ0ZXIgU09UICovDQotIAkJCQkJ
 CWp3bWFya2VyW2p3bWFya2VyX251bV0ucG9zID0gajJrLT5jc3RyX2luZm8tPnRpbGVbdGlsZW5v
 XS50cFt0cG5vXS50cF9zdGFydF9wb3MgKyBzb3RfbGVuICsgMjsgLyogYWZ0ZXIgU09UICovDQot
 IAkJCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0uZHBvcyA9IChkb3VibGUpIGp3bWFya2VyW2p3
 bWFya2VyX251bV0ucG9zICsgMC4yOyAvKiBub3QgZmlyc3QgYXQgYWxsISAqLw0KLUBAIC00MzAs
 NyArNDMwLDcgQEAKLSAJCQkvKiBBZGQgdGhpcyBtYXJrZXIgdG8gdGhlICdpbnNlcnRhbmRhJyBs
 aXN0ICovDQotIAkJCWlmIChqd21hcmtlcl9udW0gPCBKUFdMX01BWF9OT19NQVJLRVJTKSB7DQot
 IAkJCQlqd21hcmtlcltqd21hcmtlcl9udW1dLmlkID0gSjJLX01TX0VQQjsgLyogaXRzIHR5cGUg
 Ki8NCi0tCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0uZXBibWFyayA9IGVwYl9tYXJrOyAvKiB0
 aGUgRVBCICovDQotKwkJCQlqd21hcmtlcltqd21hcmtlcl9udW1dLnUuZXBibWFyayA9IGVwYl9t
 YXJrOyAvKiB0aGUgRVBCICovDQotIAkJCQlqd21hcmtlcltqd21hcmtlcl9udW1dLnBvcyA9IHNv
 Y19wb3MgKyBzb2NzaXpfbGVuOyAvKiBhZnRlciBTSVogKi8NCi0gCQkJCWp3bWFya2VyW2p3bWFy
 a2VyX251bV0uZHBvcyA9IChkb3VibGUpIGp3bWFya2VyW2p3bWFya2VyX251bV0ucG9zOyAvKiBm
 aXJzdCBmaXJzdCBmaXJzdCEgKi8NCi0gCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0ubGVuID0g
 ZXBiX21hcmstPkxlcGI7IC8qIGl0cyBsZW5ndGggKi8NCi1AQCAtNTI4LDcgKzUyOCw3IEBACi0g
 CQkJCQkvKiBBZGQgdGhpcyBtYXJrZXIgdG8gdGhlICdpbnNlcnRhbmRhJyBsaXN0ICovDQotIAkJ
 CQkJaWYgKGp3bWFya2VyX251bSA8IEpQV0xfTUFYX05PX01BUktFUlMpIHsNCi0gCQkJCQkJandt
 YXJrZXJbandtYXJrZXJfbnVtXS5pZCA9IEoyS19NU19FUEI7IC8qIGl0cyB0eXBlICovDQotLQkJ
 CQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0uZXBibWFyayA9IGVwYl9tYXJrOyAvKiB0aGUgRVBC
 ICovDQotKwkJCQkJCWp3bWFya2VyW2p3bWFya2VyX251bV0udS5lcGJtYXJrID0gZXBiX21hcms7
 IC8qIHRoZSBFUEIgKi8NCi0gCQkJCQkJLyoqKioqKiBqd21hcmtlcltqd21hcmtlcl9udW1dLnBv
 cyA9IGoyay0+Y3N0cl9pbmZvLT50aWxlW3RpbGVub10uc3RhcnRfcG9zICsgc290X2xlbiArIDI7
 ICovIC8qIGFmdGVyIFNPVCAqLw0KLSAJCQkJCQlqd21hcmtlcltqd21hcmtlcl9udW1dLnBvcyA9
 IGoyay0+Y3N0cl9pbmZvLT50aWxlW3RpbGVub10udHBbdHBub10udHBfc3RhcnRfcG9zICsgc290
 X2xlbiArIDI7IC8qIGFmdGVyIFNPVCAqLw0KLSAJCQkJCQlqd21hcmtlcltqd21hcmtlcl9udW1d
 LmRwb3MgPSAoZG91YmxlKSBqd21hcmtlcltqd21hcmtlcl9udW1dLnBvczsgLyogZmlyc3QgZmly
 c3QgZmlyc3QhICovDQotQEAgLTc1OCwxNSArNzU4LDE1IEBACi0gCQlzd2l0Y2ggKGp3bWFya2Vy
 W21tXS5pZCkgew0KLSANCi0gCQljYXNlIEoyS19NU19FUEI6DQotLQkJCWpwd2xfZXBiX3dyaXRl
 KGoyaywgandtYXJrZXJbbW1dLmVwYm1hcmssIGpwd2xfYnVmKTsNCi0rCQkJanB3bF9lcGJfd3Jp
 dGUoajJrLCBqd21hcmtlclttbV0udS5lcGJtYXJrLCBqcHdsX2J1Zik7DQotIAkJCWJyZWFrOw0K
 LSANCi0gCQljYXNlIEoyS19NU19FUEM6DQotLQkJCWpwd2xfZXBjX3dyaXRlKGoyaywgandtYXJr
 ZXJbbW1dLmVwY21hcmssIGpwd2xfYnVmKTsNCi0rCQkJanB3bF9lcGNfd3JpdGUoajJrLCBqd21h
 cmtlclttbV0udS5lcGNtYXJrLCBqcHdsX2J1Zik7DQotIAkJCWJyZWFrOw0KLSANCi0gCQljYXNl
 IEoyS19NU19FU0Q6DQotLQkJCWpwd2xfZXNkX3dyaXRlKGoyaywgandtYXJrZXJbbW1dLmVzZG1h
 cmssIGpwd2xfYnVmKTsNCi0rCQkJanB3bF9lc2Rfd3JpdGUoajJrLCBqd21hcmtlclttbV0udS5l
 c2RtYXJrLCBqcHdsX2J1Zik7DQotIAkJCWJyZWFrOw0KLSANCi0gCQljYXNlIEoyS19NU19SRUQ6
 DQotQEAgLTgxMiwxMSArODEyLDExIEBACi0gCQkJdW5zaWduZWQgc2hvcnQgaW50IG15Y3JjID0g
 MHgwMDAwOw0KLSANCi0gCQkJLyogZml4IGFuZCBmaWxsIHRoZSBETCBmaWVsZCAqLw0KLS0JCQlq
 d21hcmtlclttbV0uZXBjbWFyay0+REwgPSBuZXdfc2l6ZTsNCi0tCQkJb3JpZ19idWZbZXBjX3Bv
 cyArIDZdID0gKHVuc2lnbmVkIGNoYXIpIChqd21hcmtlclttbV0uZXBjbWFyay0+REwgPj4gMjQp
 Ow0KLS0JCQlvcmlnX2J1ZltlcGNfcG9zICsgN10gPSAodW5zaWduZWQgY2hhcikgKGp3bWFya2Vy
 W21tXS5lcGNtYXJrLT5ETCA+PiAxNik7DQotLQkJCW9yaWdfYnVmW2VwY19wb3MgKyA4XSA9ICh1
 bnNpZ25lZCBjaGFyKSAoandtYXJrZXJbbW1dLmVwY21hcmstPkRMID4+IDgpOw0KLS0JCQlvcmln
 X2J1ZltlcGNfcG9zICsgOV0gPSAodW5zaWduZWQgY2hhcikgKGp3bWFya2VyW21tXS5lcGNtYXJr
 LT5ETCA+PiAwKTsNCi0rCQkJandtYXJrZXJbbW1dLnUuZXBjbWFyay0+REwgPSBuZXdfc2l6ZTsN
 Ci0rCQkJb3JpZ19idWZbZXBjX3BvcyArIDZdID0gKHVuc2lnbmVkIGNoYXIpIChqd21hcmtlcltt
 bV0udS5lcGNtYXJrLT5ETCA+PiAyNCk7DQotKwkJCW9yaWdfYnVmW2VwY19wb3MgKyA3XSA9ICh1
 bnNpZ25lZCBjaGFyKSAoandtYXJrZXJbbW1dLnUuZXBjbWFyay0+REwgPj4gMTYpOw0KLSsJCQlv
 cmlnX2J1ZltlcGNfcG9zICsgOF0gPSAodW5zaWduZWQgY2hhcikgKGp3bWFya2VyW21tXS51LmVw
 Y21hcmstPkRMID4+IDgpOw0KLSsJCQlvcmlnX2J1ZltlcGNfcG9zICsgOV0gPSAodW5zaWduZWQg
 Y2hhcikgKGp3bWFya2VyW21tXS51LmVwY21hcmstPkRMID4+IDApOw0KLSANCi0gCQkJLyogY29t
 cHV0ZSB0aGUgQ1JDIGZpZWxkIChleGNsdWRpbmcgaXRzZWxmKSAqLw0KLSAJCQlmb3IgKHBwID0g
 MDsgcHAgPCA0OyBwcCsrKQ0KLUBAIC04MjUsOSArODI1LDkgQEAKLSAJCQkJanB3bF91cGRhdGVD
 UkMxNigmbXljcmMsIG9yaWdfYnVmW2VwY19wb3MgKyBwcF0pOw0KLSANCi0gCQkJLyogZml4IGFu
 ZCBmaWxsIHRoZSBDUkMgKi8NCi0tCQkJandtYXJrZXJbbW1dLmVwY21hcmstPlBjcmMgPSBteWNy
 YzsNCi0tCQkJb3JpZ19idWZbZXBjX3BvcyArIDRdID0gKHVuc2lnbmVkIGNoYXIpIChqd21hcmtl
 clttbV0uZXBjbWFyay0+UGNyYyA+PiA4KTsNCi0tCQkJb3JpZ19idWZbZXBjX3BvcyArIDVdID0g
 KHVuc2lnbmVkIGNoYXIpIChqd21hcmtlclttbV0uZXBjbWFyay0+UGNyYyA+PiAwKTsNCi0rCQkJ
 andtYXJrZXJbbW1dLnUuZXBjbWFyay0+UGNyYyA9IG15Y3JjOw0KLSsJCQlvcmlnX2J1ZltlcGNf
 cG9zICsgNF0gPSAodW5zaWduZWQgY2hhcikgKGp3bWFya2VyW21tXS51LmVwY21hcmstPlBjcmMg
 Pj4gOCk7DQotKwkJCW9yaWdfYnVmW2VwY19wb3MgKyA1XSA9ICh1bnNpZ25lZCBjaGFyKSAoandt
 YXJrZXJbbW1dLnUuZXBjbWFyay0+UGNyYyA+PiAwKTsNCi0gDQotIAkJfQ0KLSAJfQ0KLUBAIC04
 NDIsNyArODQyLDcgQEAKLSAJCQkvKiByZW1lbWJlciB0aGF0IHRoZXkgYXJlIG5vdyBpbiBhIG5l
 dyBwb3NpdGlvbiAoZHBvcykgKi8NCi0gCQkJaW50IGVzZF9wb3MgPSAoaW50KSBqd21hcmtlcltt
 bV0uZHBvczsNCi0gDQotLQkJCWpwd2xfZXNkX2ZpbGwoajJrLCBqd21hcmtlclttbV0uZXNkbWFy
 aywgJm9yaWdfYnVmW2VzZF9wb3NdKTsNCi0rCQkJanB3bF9lc2RfZmlsbChqMmssIGp3bWFya2Vy
 W21tXS51LmVzZG1hcmssICZvcmlnX2J1Zltlc2RfcG9zXSk7DQotIAkJDQotIAkJfQ0KLSANCi1A
 QCAtODY3LDE2ICs4NjcsMTYgQEAKLSAJCQlhY2N1bV9sZW4gPSAwOw0KLSAJCQlmb3IgKG5uID0g
 bW07IChubiA8IGp3bWFya2VyX251bSkgJiYgKGp3bWFya2VyW25uXS5pZCA9PSBKMktfTVNfRVBC
 KSAmJg0KLSAJCQkJKGp3bWFya2VyW25uXS5wb3MgPT0gandtYXJrZXJbbW1dLnBvcyk7IG5uKysp
 DQotLQkJCQlhY2N1bV9sZW4gKz0gandtYXJrZXJbbm5dLmVwYm1hcmstPkxlcGIgKyAyOw0KLSsJ
 CQkJYWNjdW1fbGVuICs9IGp3bWFya2VyW25uXS51LmVwYm1hcmstPkxlcGIgKyAyOw0KLSANCi0g
 CQkJLyogZmlsbCB0aGUgY3VycmVudCAoZmlyc3QpIEVQQiB3aXRoIHBvc3QtZGF0YSBzdGFydGlu
 ZyBmcm9tIHRoZSBjb21wdXRlZCBwb3NpdGlvbiAqLw0KLS0JCQlqcHdsX2VwYl9maWxsKGoyaywg
 andtYXJrZXJbbW1dLmVwYm1hcmssICZvcmlnX2J1ZlsoaW50KSBqd21hcmtlclttbV0uZHBvc10s
 DQotKwkJCWpwd2xfZXBiX2ZpbGwoajJrLCBqd21hcmtlclttbV0udS5lcGJtYXJrLCAmb3JpZ19i
 dWZbKGludCkgandtYXJrZXJbbW1dLmRwb3NdLA0KLSAJCQkJJm9yaWdfYnVmWyhpbnQpIGp3bWFy
 a2VyW21tXS5kcG9zICsgYWNjdW1fbGVuXSk7DQotIAkJDQotIAkJCS8qIGZpbGwgdGhlIHJlbWFp
 bmluZyBFUEJzIGluIHRoZSBoZWFkZXIgd2l0aCBwb3N0LWRhdGEgc3RhcnRpbmcgZnJvbSB0aGUg
 bGFzdCBwb3NpdGlvbiAqLw0KLSAJCQlmb3IgKG5uID0gbW0gKyAxOyAobm4gPCBqd21hcmtlcl9u
 dW0pICYmIChqd21hcmtlcltubl0uaWQgPT0gSjJLX01TX0VQQikgJiYNCi0gCQkJCShqd21hcmtl
 cltubl0ucG9zID09IGp3bWFya2VyW21tXS5wb3MpOyBubisrKQ0KLS0JCQkJanB3bF9lcGJfZmls
 bChqMmssIGp3bWFya2VyW25uXS5lcGJtYXJrLCAmb3JpZ19idWZbKGludCkgandtYXJrZXJbbm5d
 LmRwb3NdLCBOVUxMKTsNCi0rCQkJCWpwd2xfZXBiX2ZpbGwoajJrLCBqd21hcmtlcltubl0udS5l
 cGJtYXJrLCAmb3JpZ19idWZbKGludCkgandtYXJrZXJbbm5dLmRwb3NdLCBOVUxMKTsNCi0gDQot
 IAkJCS8qIHNraXAgYWxsIHRoZSBwcm9jZXNzZWQgRVBCcyAqLw0KLSAJCQltbSA9IG5uIC0gMTsN
 CmRpZmYgLXJ1TiAtLWV4Y2x1ZGU9Q1ZTIC4uL29wZW5qcGVnLm9yaWcvZmlsZXMvcGF0Y2gtanB3
 bC5oIC4vZmlsZXMvcGF0Y2gtanB3bC5oCi0tLSAuLi9vcGVuanBlZy5vcmlnL2ZpbGVzL3BhdGNo
 LWpwd2wuaAkyMDA5LTAzLTIxIDA3OjA0OjMwLjAwMDAwMDAwMCAtMDUwMAorKysgLi9maWxlcy9w
 YXRjaC1qcHdsLmgJMTk2OS0xMi0zMSAxODowMDowMC4wMDAwMDAwMDAgLTA2MDAKQEAgLTEsMTEg
 KzAsMCBAQAotLS0tIGpwd2wvanB3bC5oLm9yaWcJMjAwNy0xMS0wNSAxNDowNTowNy4wMDAwMDAw
 MDAgKzAxMDAKLSsrKyBqcHdsL2pwd2wuaAkyMDA5LTAzLTIxIDEyOjIxOjIxLjAwMDAwMDAwMCAr
 MDEwMAotQEAgLTE4OCw3ICsxODgsNyBAQAotIAkJanB3bF9lc2RfbXNfdCAqZXNkbWFyazsKLSAJ
 CS8qKiBwb2ludGVyIHRvIFJFRCBtYXJrZXIgKi8KLSAJCWpwd2xfcmVkX21zX3QgKnJlZG1hcms7
 Ci0tCX07Ci0rCX0gdTsKLSAJLyoqIHBvc2l0aW9uIHdoZXJlIHRoZSBtYXJrZXIgc2hvdWxkIGdv
 LCBpbiB0aGUgcHJlLUpQV0wgY29kZXN0cmVhbSAqLyAKLSAJdW5zaWduZWQgbG9uZyBpbnQgcG9z
 OwotIAkvKiogc2FtZSBhcyBiZWZvcmUsIG9ubHkgd3JpdHRlbiBhcyBhIGRvdWJsZSwgc28gd2Ug
 Y2FuIHNvcnQgaXQgYmV0dGVyICovCmRpZmYgLXJ1TiAtLWV4Y2x1ZGU9Q1ZTIC4uL29wZW5qcGVn
 Lm9yaWcvZmlsZXMvcGF0Y2gtanB3bF9saWIuYyAuL2ZpbGVzL3BhdGNoLWpwd2xfbGliLmMKLS0t
 IC4uL29wZW5qcGVnLm9yaWcvZmlsZXMvcGF0Y2gtanB3bF9saWIuYwkyMDA5LTAzLTIxIDA3OjA0
 OjMwLjAwMDAwMDAwMCAtMDUwMAorKysgLi9maWxlcy9wYXRjaC1qcHdsX2xpYi5jCTE5NjktMTIt
 MzEgMTg6MDA6MDAuMDAwMDAwMDAwIC0wNjAwCkBAIC0xLDI5ICswLDAgQEAKLS0tLSBqcHdsL2pw
 d2xfbGliLmMub3JpZwkyMDA3LTExLTI5IDE1OjM4OjI2LjAwMDAwMDAwMCArMDEwMAotKysrIGpw
 d2wvanB3bF9saWIuYwkyMDA5LTAzLTIxIDEyOjM5OjA5LjAwMDAwMDAwMCArMDEwMAotQEAgLTE2
 Niw3ICsxNjYsNyBAQAotIAkJCS8qIEFkZCB0aGlzIG1hcmtlciB0byB0aGUgJ2luc2VydGFuZGEn
 IGxpc3QgKi8KLSAJCQlpZiAoKmp3bWFya2VyX251bSA8IEpQV0xfTUFYX05PX01BUktFUlMpIHsK
 LSAJCQkJandtYXJrZXJbKmp3bWFya2VyX251bV0uaWQgPSBKMktfTVNfRVBCOyAvKiBpdHMgdHlw
 ZSAqLwotLQkJCQlqd21hcmtlclsqandtYXJrZXJfbnVtXS5lcGJtYXJrID0gZXBiX21hcms7IC8q
 IHRoZSBFUEIgKi8KLSsJCQkJandtYXJrZXJbKmp3bWFya2VyX251bV0udS5lcGJtYXJrID0gZXBi
 X21hcms7IC8qIHRoZSBFUEIgKi8KLSAJCQkJandtYXJrZXJbKmp3bWFya2VyX251bV0ucG9zID0g
 KGludCkgcGxhY2VfcG9zOyAvKiBhZnRlciBTT1QgKi8KLSAJCQkJandtYXJrZXJbKmp3bWFya2Vy
 X251bV0uZHBvcyA9IHBsYWNlX3BvcyArIDAuMDAwMDAwMSAqIChkb3VibGUpKCppZHgpOyAvKiBu
 b3QgdmVyeSBmaXJzdCEgKi8KLSAJCQkJandtYXJrZXJbKmp3bWFya2VyX251bV0ubGVuID0gZXBi
 X21hcmstPkxlcGI7IC8qIGl0cyBsZW5ndGggKi8KLUBAIC0zMzUsNyArMzM1LDcgQEAKLSAJanB3
 bF9lcGNfbXNfdCAqZXBjID0gTlVMTDsKLSAKLSAJLyogQWxsb2Mgc3BhY2UgKi8KLS0JaWYgKCEo
 ZXBjID0gKGpwd2xfZXBjX21zX3QgKikgbWFsbG9jKChzaXplX3QpIDEgKiBzaXplb2YgKGpwd2xf
 ZXBjX21zX3QpKSkpIHsKLSsJaWYgKCEoZXBjID0gKGpwd2xfZXBjX21zX3QgKikgb3BqX2FsaWdu
 ZWRfbWFsbG9jKChzaXplX3QpIDEgKiBzaXplb2YgKGpwd2xfZXBjX21zX3QpKSkpIHsKLSAJCW9w
 al9ldmVudF9tc2coajJrLT5jaW5mbywgRVZUX0VSUk9SLCAiQ291bGQgbm90IGFsbG9jYXRlIHJv
 b20gZm9yIEVQQyBNU1xuIik7Ci0gCQlyZXR1cm4gTlVMTDsKLSAJfTsKLUBAIC0xMTk2LDcgKzEx
 OTYsNyBAQAotIAlqcHdsX2VzZF9tc190ICplc2QgPSBOVUxMOwotIAotIAkvKiBBbGxvYyBzcGFj
 ZSAqLwotLQlpZiAoIShlc2QgPSAoanB3bF9lc2RfbXNfdCAqKSBtYWxsb2MoKHNpemVfdCkgMSAq
 IHNpemVvZiAoanB3bF9lc2RfbXNfdCkpKSkgewotKwlpZiAoIShlc2QgPSAoanB3bF9lc2RfbXNf
 dCAqKSBvcGpfYWxpZ25lZF9tYWxsb2MoKHNpemVfdCkgMSAqIHNpemVvZiAoanB3bF9lc2RfbXNf
 dCkpKSkgewotIAkJb3BqX2V2ZW50X21zZyhqMmstPmNpbmZvLCBFVlRfRVJST1IsICJDb3VsZCBu
 b3QgYWxsb2NhdGUgcm9vbSBmb3IgRVNEIE1TXG4iKTsKLSAJCXJldHVybiBOVUxMOwotIAl9Owpk
 aWZmIC1ydU4gLS1leGNsdWRlPUNWUyAuLi9vcGVuanBlZy5vcmlnL2ZpbGVzL3BhdGNoLWxpYm9w
 ZW5qcGVnMS5wYy5jbWFrZSAuL2ZpbGVzL3BhdGNoLWxpYm9wZW5qcGVnMS5wYy5jbWFrZQotLS0g
 Li4vb3BlbmpwZWcub3JpZy9maWxlcy9wYXRjaC1saWJvcGVuanBlZzEucGMuY21ha2UJMTk2OS0x
 Mi0zMSAxODowMDowMC4wMDAwMDAwMDAgLTA2MDAKKysrIC4vZmlsZXMvcGF0Y2gtbGlib3Blbmpw
 ZWcxLnBjLmNtYWtlCTIwMTItMDQtMDcgMTc6MTM6NDAuNTYxODMxMzA0IC0wNTAwCkBAIC0wLDAg
 KzEsMTUgQEAKKy0tLSBsaWJvcGVuanBlZzEucGMuY21ha2V+CTIwMTItMDItMDcgMDQ6NDk6NTUu
 MDAwMDAwMDAwIC0wNjAwCisrKysgbGlib3BlbmpwZWcxLnBjLmNtYWtlCTIwMTItMDQtMDcgMTc6
 MTM6MjQuNTg5NTAzMjU0IC0wNTAwCitAQCAtMSw4ICsxLDggQEAKKyBwcmVmaXg9QENNQUtFX0lO
 U1RBTExfUFJFRklYQAorLWJpbmRpcj1AT1BFTkpQRUdfSU5TVEFMTF9CSU5fRElSQAorLWRhdGFk
 aXI9QE9QRU5KUEVHX0lOU1RBTExfREFUQV9ESVJACistbGliZGlyPUBPUEVOSlBFR19JTlNUQUxM
 X0xJQl9ESVJACistaW5jbHVkZWRpcj1AT1BFTkpQRUdfSU5TVEFMTF9JTkNMVURFX0RJUkAKKyti
 aW5kaXI9JHtwcmVmaXh9L0BPUEVOSlBFR19JTlNUQUxMX0JJTl9ESVJACisrZGF0YWRpcj0ke3By
 ZWZpeH0vQE9QRU5KUEVHX0lOU1RBTExfREFUQV9ESVJACisrbGliZGlyPSR7cHJlZml4fS9AT1BF
 TkpQRUdfSU5TVEFMTF9MSUJfRElSQAorK2luY2x1ZGVkaXI9JHtwcmVmaXh9L0BPUEVOSlBFR19J
 TlNUQUxMX0lOQ0xVREVfRElSQAorIAorIE5hbWU6IG9wZW5qcGVnCisgRGVzY3JpcHRpb246IEpQ
 RUcyMDAwIGZpbGVzIGxpYnJhcnkKZGlmZiAtcnVOIC0tZXhjbHVkZT1DVlMgLi4vb3BlbmpwZWcu
 b3JpZy9maWxlcy9wYXRjaC1saWJvcGVuanBlZ19DTWFrZUxpc3RzLnR4dCAuL2ZpbGVzL3BhdGNo
 LWxpYm9wZW5qcGVnX0NNYWtlTGlzdHMudHh0Ci0tLSAuLi9vcGVuanBlZy5vcmlnL2ZpbGVzL3Bh
 dGNoLWxpYm9wZW5qcGVnX0NNYWtlTGlzdHMudHh0CTE5NjktMTItMzEgMTg6MDA6MDAuMDAwMDAw
 MDAwIC0wNjAwCisrKyAuL2ZpbGVzL3BhdGNoLWxpYm9wZW5qcGVnX0NNYWtlTGlzdHMudHh0CTIw
 MTItMDQtMDcgMTY6Mjg6NDIuMzE3ODcwODAzIC0wNTAwCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBs
 aWJvcGVuanBlZy9DTWFrZUxpc3RzLnR4dH4JMjAxMi0wMi0wNyAwNDo0OTo1NS4wMDAwMDAwMDAg
 LTA2MDAKKysrKyBsaWJvcGVuanBlZy9DTWFrZUxpc3RzLnR4dAkyMDEyLTA0LTA3IDE2OjI4OjEx
 LjAzODI3NTkzMiAtMDUwMAorQEAgLTU1LDcgKzU1LDcgQEAgSU5TVEFMTChUQVJHRVRTICR7T1BF
 TkpQRUdfTElCUkFSWV9OQU1FfQorIAorICMgSW5zdGFsbCBpbmNsdWRlcyBmaWxlcworIElOU1RB
 TEwoRklMRVMgb3BlbmpwZWcuaAorLSAgREVTVElOQVRJT04gJHtPUEVOSlBFR19JTlNUQUxMX0lO
 Q0xVREVfRElSfS8ke09QRU5KUEVHX0lOU1RBTExfU1VCRElSfSBDT01QT05FTlQgSGVhZGVycwor
 KyAgREVTVElOQVRJT04gJHtPUEVOSlBFR19JTlNUQUxMX0lOQ0xVREVfRElSfSBDT01QT05FTlQg
 SGVhZGVycworICkKKyAKKyAjIGluc3RhbGwgbWFuIHBhZ2Ugb2YgdGhlIGxpYnJhcnkKZGlmZiAt
 cnVOIC0tZXhjbHVkZT1DVlMgLi4vb3BlbmpwZWcub3JpZy9maWxlcy9wYXRjaC1tajJfTWFrZWZp
 bGUgLi9maWxlcy9wYXRjaC1tajJfTWFrZWZpbGUKLS0tIC4uL29wZW5qcGVnLm9yaWcvZmlsZXMv
 cGF0Y2gtbWoyX01ha2VmaWxlCTIwMDctMDctMzAgMTA6NTA6MDkuMDAwMDAwMDAwIC0wNTAwCisr
 KyAuL2ZpbGVzL3BhdGNoLW1qMl9NYWtlZmlsZQkxOTY5LTEyLTMxIDE4OjAwOjAwLjAwMDAwMDAw
 MCAtMDYwMApAQCAtMSwyOCArMCwwIEBACi0tLS0gbWoyL01ha2VmaWxlLm9yaWcJMjAwNy0wNy0x
 OCAwNzoxNDoxNC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBtajIvTWFrZWZpbGUJMjAwNy0wNy0xOCAw
 NzoxNDo0My4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xLDIwICsxLDIwIEBACi0gIyBNYWtlZmlsZSBm
 b3IgdGhlIE1KMiBjb2RlY3Mgb2YgdGhlIE9wZW5KUEVHIGxpYnJhcnk6IGZyYW1lc190b19tajIs
 IG1qMl90b19mcmFtZXMsIGV4dHJhY3RfajJrX2Zyb21fbWoyIGFuZCB3cmFwX2oya19pbl9tajIK
 LSAKLS1DRkxBR1MgPSAtTzMgLWxzdGRjKysgIyAtZyAtcCAtcGcKLStDRkxBR1MgKz0gLWxzdGRj
 KysgIyAtZyAtcCAtcGcKLSAKLSBhbGw6IGZyYW1lc190b19tajIgbWoyX3RvX2ZyYW1lcyBleHRy
 YWN0X2oya19mcm9tX21qMiB3cmFwX2oya19pbl9tajIKLSAKLSBmcmFtZXNfdG9fbWoyOiBmcmFt
 ZXNfdG9fbWoyLmMgLi4vbGlib3BlbmpwZWcuYQotLQlnY2MgJChDRkxBR1MpIGNvbXBhdC9nZXRv
 cHQuYyBtajJfY29udmVydC5jIG1qMi5jIGZyYW1lc190b19tajIuYyAtbyBmcmFtZXNfdG9fbWoy
 IC1MLi4gLWxvcGVuanBlZyAtSSAuLi9saWJvcGVuanBlZy8gLWxtCi0rCSQoQ0MpICQoQ0ZMQUdT
 KSBjb21wYXQvZ2V0b3B0LmMgbWoyX2NvbnZlcnQuYyBtajIuYyBmcmFtZXNfdG9fbWoyLmMgLW8g
 ZnJhbWVzX3RvX21qMiAtTC4uIC1sb3BlbmpwZWcgLUkgLi4vbGlib3BlbmpwZWcvIC1sbQotIAot
 IG1qMl90b19mcmFtZXM6IG1qMl90b19mcmFtZXMuYyAuLi9saWJvcGVuanBlZy5hCi0tCWdjYyAk
 KENGTEFHUykgY29tcGF0L2dldG9wdC5jIG1qMl9jb252ZXJ0LmMgbWoyLmMgbWoyX3RvX2ZyYW1l
 cy5jIC1vIG1qMl90b19mcmFtZXMgLUwuLiAtbG9wZW5qcGVnIC1JIC4uL2xpYm9wZW5qcGVnLyAt
 bG0KLSsJJChDQykgJChDRkxBR1MpIGNvbXBhdC9nZXRvcHQuYyBtajJfY29udmVydC5jIG1qMi5j
 IG1qMl90b19mcmFtZXMuYyAtbyBtajJfdG9fZnJhbWVzIC1MLi4gLWxvcGVuanBlZyAtSSAuLi9s
 aWJvcGVuanBlZy8gLWxtCi0gCi0gZXh0cmFjdF9qMmtfZnJvbV9tajI6IGV4dHJhY3RfajJrX2Zy
 b21fbWoyLmMgLi4vbGlib3BlbmpwZWcuYQotLQlnY2MgJChDRkxBR1MpIG1qMi5jIGV4dHJhY3Rf
 ajJrX2Zyb21fbWoyLmMgLW8gZXh0cmFjdF9qMmtfZnJvbV9tajIgLUwuLiAtbG9wZW5qcGVnIC1J
 IC4uL2xpYm9wZW5qcGVnLyAtbG0KLSsJJChDQykgJChDRkxBR1MpIG1qMi5jIGV4dHJhY3RfajJr
 X2Zyb21fbWoyLmMgLW8gZXh0cmFjdF9qMmtfZnJvbV9tajIgLUwuLiAtbG9wZW5qcGVnIC1JIC4u
 L2xpYm9wZW5qcGVnLyAtbG0KLSAKLSB3cmFwX2oya19pbl9tajI6IHdyYXBfajJrX2luX21qMi5j
 IC4uL2xpYm9wZW5qcGVnLmEKLS0JZ2NjICQoQ0ZMQUdTKSBtajIuYyB3cmFwX2oya19pbl9tajIu
 YyAtbyB3cmFwX2oya19pbl9tajIgLUwuLiAtbG9wZW5qcGVnIC1JIC4uL2xpYm9wZW5qcGVnLyAt
 bG0KLSsJJChDQykgJChDRkxBR1MpIG1qMi5jIHdyYXBfajJrX2luX21qMi5jIC1vIHdyYXBfajJr
 X2luX21qMiAtTC4uIC1sb3BlbmpwZWcgLUkgLi4vbGlib3BlbmpwZWcvIC1sbQotIAotIGNsZWFu
 OgotIAlybSAtZiBmcmFtZXNfdG9fbWoyIG1qMl90b19mcmFtZXMgZXh0cmFjdF9qMmtfZnJvbV9t
 ajIgd3JhcF9qMmtfaW5fbWoyCmRpZmYgLXJ1TiAtLWV4Y2x1ZGU9Q1ZTIC4uL29wZW5qcGVnLm9y
 aWcvZmlsZXMvcGF0Y2gtb3BqX21hbGxvYy5oIC4vZmlsZXMvcGF0Y2gtb3BqX21hbGxvYy5oCi0t
 LSAuLi9vcGVuanBlZy5vcmlnL2ZpbGVzL3BhdGNoLW9wal9tYWxsb2MuaAkyMDA5LTAzLTIxIDA3
 OjA0OjMwLjAwMDAwMDAwMCAtMDUwMAorKysgLi9maWxlcy9wYXRjaC1vcGpfbWFsbG9jLmgJMTk2
 OS0xMi0zMSAxODowMDowMC4wMDAwMDAwMDAgLTA2MDAKQEAgLTEsMTggKzAsMCBAQAotLS0tIGxp
 Ym9wZW5qcGVnL29wal9tYWxsb2MuaC5vcmlnCTIwMDctMTItMjEgMTE6MTk6MDEuMDAwMDAwMDAw
 ICswMTAwCi0rKysgbGlib3BlbmpwZWcvb3BqX21hbGxvYy5oCTIwMDktMDMtMjEgMTI6MDI6Mzcu
 MDAwMDAwMDAwICswMTAwCi1AQCAtNzYsOCArNzYsMTUgQEAKLSAJI2lmIGRlZmluZWQoX19zdW4p
 DQotIAkJCSNkZWZpbmUgSEFWRV9NRU1BTElHTg0KLSAJCSNlbGlmIGRlZmluZWQoX19HTlVDX18p
 DQotKwkJCSNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKQ0KLSsJCQkjaW5jbHVkZSA8c3RkbGliLmg+
 DQotKwkJCSNpbmNsdWRlIDxvc3JlbGRhdGUuaD4NCi0rCQkJI2lmIF9fRnJlZUJTRF92ZXJzaW9u
 aSA+PSA3MDAwMDAgDQotKwkJCSNlbmRpZg0KLSsJCQkjZWxzZQ0KLSAJCQkjZGVmaW5lIEhBVkVf
 TUVNQUxJR04NCi0gCQkJI2luY2x1ZGUgPG1hbGxvYy5oPgkJDQotKwkJCSNlbmRpZg0KLSAJCS8q
 IExpbnV4IHg4Nl82NCBhbmQgT1NYIGFsd2F5cyBhbGlnbiBhbGxvY2F0aW9ucyB0byAxNiBieXRl
 cyAqLw0KLSAJCSNlbGlmICFkZWZpbmVkKF9fYW1kNjRfXykgJiYgIWRlZmluZWQoX19BUFBMRV9f
 KQkNCi0gCQkJLyogRklYTUU6IFllcywgdGhpcyBpcyBhIGJpZyBhc3N1bXB0aW9uICovDQpkaWZm
 IC1ydU4gLS1leGNsdWRlPUNWUyAuLi9vcGVuanBlZy5vcmlnL3BrZy1wbGlzdCAuL3BrZy1wbGlz
 dAotLS0gLi4vb3BlbmpwZWcub3JpZy9wa2ctcGxpc3QJMTk2OS0xMi0zMSAxODowMDowMC4wMDAw
 MDAwMDAgLTA2MDAKKysrIC4vcGtnLXBsaXN0CTIwMTItMDQtMDcgMTY6MzI6MDMuNzYyNzE2MTg1
 IC0wNTAwCkBAIC0wLDAgKzEsMTYgQEAKK2Jpbi9leHRyYWN0X2oya19mcm9tX21qMgorYmluL2Zy
 YW1lc190b19tajIKK2Jpbi9pbWFnZV90b19qMmsKK2Jpbi9qMmtfZHVtcAorYmluL2oya190b19p
 bWFnZQorYmluL21qMl90b19mcmFtZXMKK2Jpbi93cmFwX2oya19pbl9tajIKK2luY2x1ZGUvb3Bl
 bmpwZWcuaAorbGliL2xpYm9wZW5qcGVnLnNvCitsaWIvbGlib3BlbmpwZWcuc28uMQorbGliL2xp
 Ym9wZW5qcGVnLnNvLjEuNS4wCislJURBVEFESVIlJS0xLjUvT3BlbkpQRUdDb25maWcuY21ha2UK
 KyUlREFUQURJUiUlLTEuNS9PcGVuSlBFR1RhcmdldHMtcmVsZWFzZS5jbWFrZQorJSVEQVRBRElS
 JSUtMS41L09wZW5KUEVHVGFyZ2V0cy5jbWFrZQorbGliZGF0YS9wa2djb25maWcvbGlib3Blbmpw
 ZWcxLnBjCitAZGlycm0gJSVEQVRBRElSJSUtMS41Cg==
 --e89a8f3ba32d32426e04bd3c8b4a
 Content-Type: text/x-csrc; charset=US-ASCII; name="patch-source_blender_imbuf_intern_jp2.c"
 Content-Disposition: attachment; 
 	filename="patch-source_blender_imbuf_intern_jp2.c"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_h0tdt2or1
 
 LS0tIHNvdXJjZS9ibGVuZGVyL2ltYnVmL2ludGVybi9qcDIuY34JMjAxMi0wMi0xNSAxMzozNToz
 Mi4wMDAwMDAwMDAgLTA2MDAKKysrIHNvdXJjZS9ibGVuZGVyL2ltYnVmL2ludGVybi9qcDIuYwky
 MDEyLTA0LTA5IDA0OjA3OjQzLjA5MTQ4NDI4OCAtMDUwMApAQCAtMzI5LDcgKzMyOSw3IEBAIHN0
 YXRpYyBpbnQgaW5pdGlhbGlzZV80S19wb2Mob3BqX3BvY190ICoKIAogc3RhdGljIHZvaWQgY2lu
 ZW1hX3BhcmFtZXRlcnMob3BqX2NwYXJhbWV0ZXJzX3QgKnBhcmFtZXRlcnMpCiB7Ci0JcGFyYW1l
 dGVycy0+dGlsZV9zaXplX29uID0gZmFsc2U7CisJcGFyYW1ldGVycy0+dGlsZV9zaXplX29uID0g
 RkFMU0U7CiAJcGFyYW1ldGVycy0+Y3BfdGR4PTE7CiAJcGFyYW1ldGVycy0+Y3BfdGR5PTE7CiAJ
 Cg==
 --e89a8f3ba32d32426e04bd3c8b4a--

From: Zhihao Yuan <lichray@gmail.com>
To: bug-followup@FreeBSD.org, lichray@gmail.com
Cc:  
Subject: Re: ports/166744: [UPDATE] graphics/openjpeg to 1.5.0
Date: Thu, 19 Apr 2012 14:07:59 -0500

 8.3 is released, and I've submitted the solutions. How about take a
 look at this? Thanks.
 
 -- 
 Zhihao Yuan, nickname lichray
 The best way to predict the future is to invent it.
 ___________________________________________________
 4BSD -- http://4bsd.biz/

From: Zhihao Yuan <lichray@gmail.com>
To: bug-followup@FreeBSD.org, lichray@gmail.com, dinoex@freebsd.org
Cc:  
Subject: Re: ports/166744: [UPDATE] graphics/openjpeg to 1.5.0
Date: Mon, 14 May 2012 19:04:30 -0500

 Hi, dinoex@:
 
 It's already one month after 8.3 being relased. If you still takes no
 action on this PR, I'm going to let portmgr to handle this. Thanks.
 
 -- 
 Zhihao Yuan, nickname lichray
 The best way to predict the future is to invent it.
 ___________________________________________________
 4BSD -- http://4bsd.biz/

From: dirk.meyer@dinoex.sub.org (Dirk Meyer)
To: FreeBSD-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: ports/166744: [UPDATE] graphics/openjpeg to 1.5.0
Date: Tue, 15 May 2012 19:14:04 +0200

 I wrote you:
 
 > Zhihao Yuan schrieb:,
 > 
 > >  8.3 is released, and I've submitted the solutions. How about take a
 > >  look at this? Thanks.
 > 
 > 1)
 > Someone has to create a patch with the version bump and changes for all 126 ports
 > unsing openjpeg.
 > 
 > 2)
 > This patch hast to be tested.
 > 
 > 3)
 > Then the update can be commited.
 > 
 > 
 > 4)
 > Problem: You reduced the shlib version.
 > The Linker will always link to the higher shlib version.
 > So any applaication will link against the old version if installed.
 > 
 > Please update your patch to avoid this problem, or wait.
 > 
 > kind regards Dirk
 > 
 > - Dirk Meyer, Im Grund 4, 34317 Habichtswald, Germany
 > - [dirk.meyer@dinoex.sub.org],[dirk.meyer@guug.de],[dinoex@FreeBSD.org]
 > http://people.freebsd.org/~dinoex/errorlogs/
 
 Please update your patch to avoid this problem, or wait.
 

From: Zhihao Yuan <lichray@gmail.com>
To: bug-followup@FreeBSD.org, lichray@gmail.com, dirk.meyer@dinoex.sub.org
Cc:  
Subject: Re: ports/166744: [UPDATE] graphics/openjpeg to 1.5.0
Date: Thu, 17 May 2012 03:54:01 -0500

 > 1)
 > Someone has to create a patch with the version bump and changes for all 126 ports
 > unsing openjpeg.
 
 There are only 11 ports ACTUALLY compile against openjpeg. All of the
 others depends on ffmpeg{-devel}, and poppler.
 
 >
 > 2)
 > This patch hast to be tested.
 
 Tested. I have listed how to make the changes instead of creating a big patch.
 
 >
 > 3)
 > Then the update can be commited.
 >
 >
 > 4)
 > Problem: You reduced the shlib version.
 > The Linker will always link to the higher shlib version.
 > So any applaication will link against the old version if installed.
 
 It's not a problem. Upgrade ffmpeg{-devel}, and poppler so that other
 ports will link to the lower version.
 
 -- 
 Zhihao Yuan, nickname lichray
 The best way to predict the future is to invent it.
 ___________________________________________________
 4BSD -- http://4bsd.biz/
State-Changed-From-To: suspended->feedback 
State-Changed-By: dinoex 
State-Changed-When: Fri May 25 06:39:10 CEST 2012 
State-Changed-Why:  


> > 1) 
> > Someone has to create a patch with the version bump and changes for all 126 ports 
> > unsing openjpeg. 
> There are only 11 ports ACTUALLY compile against openjpeg. All of the 
>  others depends on ffmpeg{-devel}, and poppler. 

But all 126 packages need a PORTREVISION bump if the sharead lib version changes. 

> > 2) 
> > This patch hast to be tested. 
> Tested. I have listed how to make the changes instead of creating a big patch. 

Thanks, dis you build all 126 ports s using it? 

> > 4) 
> > Problem: You reduced the shlib version. 
> > The Linker will always link to the higher shlib version. 
> > So any applaication will link against the old version if installed. 
> It's not a problem. Upgrade ffmpeg{-devel}, and poppler so that other 
> ports will link to the lower version.   

Please test again,, there is no know optiontion to force ld 
to link to a lover version of  a shared lib, 
when a higher version is still present. 

Please verify your applications with "ldd" 

This Problem ist a showstopper for yoru patch, sorry. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=166744 

From: Zhihao Yuan <lichray@gmail.com>
To: bug-followup@FreeBSD.org, lichray@gmail.com
Cc:  
Subject: Re: ports/166744: [UPDATE] graphics/openjpeg to 1.5.0
Date: Sat, 2 Jun 2012 00:39:36 -0500

 > But all 126 packages need a PORTREVISION bump if the sharead lib version changes.
 
 Let me make this more clear... unless a port explicitly links to a
 lib, there is no need to rebuild the port; ld-elf.so is not stupid.
 
 For example:
 
 wesnoth -> SDL -> png, so only SDL needs to be build, wesnoth continues to work.
 I know you updated png today, and I played with many ports without
 rebuilding them.
 
 > Please test again,, there is no know optiontion to force ld
 
 ld only do the link-time work, and ld-elf.so really decide which lib to use.
 
 > to link to a lover version of a shared lib,
 > when a higher version is still present.
 
 After openjpeg being upgraded, these is only one openjpeg shlib
 presents, so it'll be OK.
 
 Anyway, you can go ahead and bump 100+ ports' revision if you want. I
 can wait, along with my suspended mupdf-1.0 PR.
 
 -- 
 Zhihao Yuan, nickname lichray
 The best way to predict the future is to invent it.
 ___________________________________________________
 4BSD -- http://4bsd.biz/
State-Changed-From-To: feedback->closed 
State-Changed-By: dinoex 
State-Changed-When: Sun Jun 3 14:48:30 CEST 2012 
State-Changed-Why:  

update committed in different way, thanks. 

Sorry but the way you suggested wil break installations. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=166744 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/166744: commit references a PR
Date: Sun,  3 Jun 2012 12:43:17 +0000 (UTC)

 dinoex      2012-06-03 12:43:04 UTC
 
   FreeBSD ports repository
 
   Modified files:
     graphics/openjpeg    Makefile distinfo pkg-descr 
     graphics/openjpeg/files patch-opj_malloc.h 
   Added files:
     graphics/openjpeg    pkg-plist 
     graphics/openjpeg/files patch-CMakeLists.txt 
                             patch-libopenjpeg-CMakeLists.txt 
   Removed files:
     graphics/openjpeg/files patch-Makefile patch-jpwl-Makefile 
                             patch-jpwl.c patch-jpwl.h 
                             patch-jpwl_lib.c patch-mj2_Makefile 
   Log:
   - update to 1.5.0
   - new MASTER_SITE
   PR:             166744
   Suggested by:   Zhihao Yuan
   
   Revision  Changes    Path
   1.20      +10 -35    ports/graphics/openjpeg/Makefile
   1.6       +2 -2      ports/graphics/openjpeg/distinfo
   1.1       +38 -0     ports/graphics/openjpeg/files/patch-CMakeLists.txt (new)
   1.8       +0 -38     ports/graphics/openjpeg/files/patch-Makefile (dead)
   1.2       +0 -35     ports/graphics/openjpeg/files/patch-jpwl-Makefile (dead)
   1.2       +0 -149    ports/graphics/openjpeg/files/patch-jpwl.c (dead)
   1.2       +0 -11     ports/graphics/openjpeg/files/patch-jpwl.h (dead)
   1.2       +0 -29     ports/graphics/openjpeg/files/patch-jpwl_lib.c (dead)
   1.1       +11 -0     ports/graphics/openjpeg/files/patch-libopenjpeg-CMakeLists.txt (new)
   1.2       +0 -28     ports/graphics/openjpeg/files/patch-mj2_Makefile (dead)
   1.2       +12 -18    ports/graphics/openjpeg/files/patch-opj_malloc.h
   1.3       +1 -1      ports/graphics/openjpeg/pkg-descr
   1.1       +16 -0     ports/graphics/openjpeg/pkg-plist (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
